Since the 21st century, the Internet technology has been constantly maturing, and the network information age is coming, which leads to the explosive growth of information resources. The role of the Internet is to promote the interaction of information resources, and the role of libraries is to promote the sharing and interaction of information resources; however the traditional library was at a mode of “information island” (Schneider et al. 2018), i.e., the geographical scope of sharing and interaction is limited, which wastes a lot of idle resources. In order to cope with this dilemma, the electronic library combined with Internet technology arises at the historic moment. Because of the combination of Internet technology, electronic libraries also have the characteristics of the Internet, breaks through geographical constraints, and achieves efficient, rapid and accurate resource sharing (Pan et al. 2017). The data storage in the current library sharing system in China is distributed basically. Different electronic libraries have independent data structure, organization form and query interface. Users need to enter different electronic libraries when they want to query more complete and accurate resources. Therefore, it is very inconvenient to be familiar with the query methods of a large number of electronic libraries. The electronic library system using cloud computing technology manages different databases in a unified way, shields the formats of different databases, and constructs a unified retrieval entry, which makes the user’s query work more efficient. There are many researches on electronic libraries. For example, Georgieva-Trifonova and Chotova (2015) studied the role of electronic libraries in information technology teaching in Bulgarian schools and summarized and explained the advantages and disadvantages of electronic libraries in information technology teaching and the main characteristics of electronic libraries. Gupta et al. (2015) put forward an aggregator-based distributed digital library system integration model to connect different digital libraries of the same institution. The experiments showed that the model could maintain the quality of service provided to end users in terms of request processing ability and request failure rate. He et al. (2015) proposed a novel network security architecture for cloud computing (NetSecCC) with greatly improved scalability, fault tolerance, resource utilization to solve network security problems and found that the. The experiments suggested that NetSecCC was an effective framework and could be applied to practical applications of cloud computing. In this study, a library information resources co-construction and sharing system was designed based on Squid reverse proxy technology, and the login function, user opening function, announcement publishing function and message reply function of the system were tested.
2. Library information resource sharing system
As shown in Figure 1, the information resource sharing system can be divided into service layer, transaction management layer, virtual management layer and physical resource layer (Pritting et al. 2017). The physical resource layer is at the bottom of the system, including the most basic hardware facilities: network devices, databases, servers, storage devices and computers. The virtual management layer is in the second layer of the system, which transforms the same type of resource application virtualization technology into a resource pool with similar structure in the physical resource layer to reduce the cost of hardware facilities, improve resource utilization and ensure the expansibility of the system. The transaction management layer is in the third layer of the system, which is the core part of the whole system, and its components includes resource management, security management, user management, etc. Its role is to control the resources integrated by virtual management layer (Collins et al. 2015) and respond to the needs of users to the service layer. The service layer is the fourth layer of the system and it is the implementation platform of the whole system. Its function is to provide users with corresponding services and solutions and establish an unified interface for all libraries participating in resource sharing. Users can access different libraries at will through this interface and can query the same resources in different libraries.
The sharing system can satisfy the resource co-construction and sharing between different libraries (Holfeld et al. 2015) and make dynamic management of different services; moreover it has certain expansion capability. To ensure the normal operation of the system, finally the management mode of user system was selected, i.e., users must open accounts in the system if they want to obtain normal and complete services. In view of this mode, a sharing system is designed briefly below.
3. Design of the sharing system
3.1. Data flow of the system
As shown in Figure 2 (Froud 2016), the user interacts with the reverse proxy server via the Internet, and the reverse proxy server backs up the accessed data into the data cache and logs in with the accessed data. In the authentication link, the password in the access data is compared with the password set in advance. If something goes wrong, it will be fed back to the reverse proxy server and fed back to the user. If it passes the authentication, it will go to the next step. After login, users can input instructions according to their own needs and select the corresponding functions on the online resource server. The online resource server searches the target data from the database according to the input instructions, and the database feeds back the searched data to the online resource server (Fenlon et al. 2016).
3.2. Squid configuration and authentication
Squid software as one of the mature technologies of linux was designed in this study. Its main function is to make a cache backup of the feedback data when the user’s access request passes through and connects to the server. When other users apply to access the same data, they do not connect to the resource server, and the cached data in the proxy server is directly feed back to the user, which reduces visit time. The advantage of Squid is that the content of connection requests can be checked by access control list and privilege list to ensure the security of LAN when illegal or unsafe connection requests occur.
The parameters which need to be configured in Squid configuration file include host name, authentication, cache, port, access and timeout. The parameters are shown in Table 1.
|Configuration of port||System proxy port 6158, ICP port 3781.|
|Cache Configuration||Chained address which contains cgi-bin or starts with “https:\\” and scripts which are compiled by asp, cgi and php are not cached; cache capacity is set as 2 G, and the upper and lower limits are 80% and 90%; single document is not cached when it exceeds 10 MB or exceeds 512 KB in internal storage.|
|Authentication configuration||Set number of certification process as 500, and effective time of certification as 1 min.|
|Timeout configuration||Set the time-out time of Squid connecting with other host as 2 min, the maximum time of connecting proxy as 30s, the maximum time of return information as 5 min, and the time-out time of online connection as 2 min.|
|Access configuration||The security port of HTTP is set as 188.8.131.52/253.253.253, that of FTP as 22, that of https, snews as 445 564, and that of gopher as 71; IP field of LAN is 192.168.1.1/25; address file of MAC is “/usr/local/squid/localmac”; inside rule is let through; address which login in MAC address document is let through; administrators and non-administrators can visit local host; non-security port is not allowed to open; SSL port is not allowed to connect; in access list, there are all user visits.|
|Configuration of host name||Name of host is set as 184.108.40.206.|
3.3. Design of functions
As shown in Figure 3, the resource sharing system can be divided into foreground program and background program in terms of function. The function of foreground program is for ordinary users, and the function of background program is for administrators.
Front-end program functions (Burns 2015) include user feedback, user status display, bulletins viewing, password modification, use details and information modification. Suggestion feedback function allows users to leave messages and query whether their opinions are accepted; user status function allows users to query their own application status of the system; bulletins viewing function allows users to browse announcements set by administrators, and users can automatically receive prompts online when administrators issue new announcements; password modification function allows users to modify passwords independently; use details function is similar to user status function, user can query their own application status of the system, but only the historical information of the status; information modification function allows users to modify personal identity information and other information entered before.
Background program functions (Panda 2016) include batch user modification, batch user import, user opening, user list, current online users, users to be audited, user message management and user announcement management. Batch user modification function allows administrators to modify all user access rights in batches/. Batch user import function allows administrators to import information from multiple new users at one time, thus opening the access rights of users in batches. User opening function allows administrators to open resource access rights for new users, and users can use them only after opening the access rights. User list function records all users’ system usage information, including login name, usage flow, online time, etc., and administrator can query each user’s usage information accurately by this function. Current online user function can list the status information of all current online users for administrators. Function of user to be audited will list the information provided by applicant users, which is convenient for administrators to review. User message management function can let administrator handle user feedback. User announcement management function can let administrator publish announcements to all users and operate announcements.
3.4. Design of database
For the database design of the information resource sharing system in this paper, a structural concept model is designed firstly according to the requirements of the system, and then corresponding data tables are designed according to the model. E-R model (Liu et al. 2015) was used to design the database structure diagram.
The structural concept model of the information resource sharing system (Jerkov et al. 2015) is shown in Figure 4. The solid rectangle represents the entity; the solid ellipse represents the attribute, and the entity is connected by the solid line; the solid line diamond represents the connection and connects with the entity by the solid line, and the connection type is marked on the line: one vs. one, one vs. many or many vs. many.
Entities of the whole system include administrators, users, announcements, status and messages. There are many attributes to build users. Attributes of the announcement include author, ID, title, clicks and publishing time; attributes of the status include login time, ID, online time, MAC address, login IP and day traffic; attributes of the message include content, ID, reply and time. Only user list is displayed because of the length of the paper, as shown in Table 2, and the style of the other table is similar to Table 2.
|Attribute name||Field||Length||Data type|
|Answer to security question||readeranswer||50||Varchar|
3.5. SQL Server 2005
The data storage and management in the system designed in this study was realized by SQL Server 2005. The core program was set in the config. web file of the software:
<addkey=“rasconn”value=“server=.;datebase=tushudate;uid=ABCD;pwd=1234”/> was taken as the catenated string between system and database. The content of its core kernel program was: user name “ABCD”, password “1234” and name of database “tushudate” were used when the system connected with database.
4. System test
4.1. Purpose of test
The system designed in this study needs to be tested before it is put into use to find errors or program vulnerabilities in the system design (Han et al. 2015). The test of the system is generally divided into two stages, one is to test a single module independently, and the other is to test the whole system. All library resources used in the experiment have been authorized.
4.2. Test program
(1) Test of login:
In order to test the login function interface of the system, the real login account was designed as “ABCD” and the password was “1234”, and it was logged in with different account numbers and passwords, including not inputting the account number or password. The system prompts and page jumps were recorded and judged.
(2) Test of registration of new users:
Five user information were designed to test the opening and deleting function of the system, including the input of information, the prompt of the system and page jump.
(3) Test of system resource sharing:
In order to test the resource sharing function of the system, a single account and password were used to enter different libraries through jump channels in the system, and then the same resource names were queried separately to compare the query results.
(4) System feedback speed test:
Library resource data in topics of “electronic library”, “cloud computing” and “resource sharing” were searched in the system with the same account. Each topic was searched 10 times. After each search, exit the system and log in again. The search time was recorded, and the average value was taken as the result. A third-party platform website was logged in, and the library resource data in the above three topics were searched in the same way. The search time was recorded, and the average value was taken as the final result.
4.3. Test results
(1) Test results of login:
As shown in Table 3, the login function of the verification could be passed when the account number and password were correct. Before judging the wrong account number and password, whether account and password were input was judged firstly. The system prompted input of user account number or password rather than judge the correctness of account and password when one of them was not input. When the account number and password were not input, the system was down and directly crashed, and the bug needed to be repaired.
|Input||System feedback output||Judgement results|
|ABCD||1234||Page jumps and verification passes||Correct or wrong|
|BBCD||1234||Wrong user name||Wrong|
|Blank||1234||Please input account number||Wrong|
|Blank||1111||Please input account number||Wrong|
|ABCD||Blank||Please input password||Wrong|
|BBCD||Blank||Please input password||Wrong|
|Blank||Blank||No response||Fail to judge|
(2) Test results of registration of new users:
When the five user information were input, the system operation was not smooth. The prompt of the system to operation is alright, but the system had no response for several seconds during page jump. Considering that the configuration of the computer and server used for operating the system was the newest, the reason might be the insufficient optimization.
(3) Test results of resource sharing:
After login with the account “1234”, the library jump channel interface was smoothly entered. When different library links were clicked, the system got stuck for several seconds, but could jump to the corresponding search interface. After “library resource sharing” was input, the search results appeared rapidly. Comparing the search results of different libraries, it was found that the search results were consistent. The test results showed that the same account could log in different library databases, which showed that user information was shared in the system. Moreover the same search results were found for the same search information, showing that different libraries in the system realized resource information sharing. The process of realizing sharing is shown in Figure 5.
The validation of the input account password is as mentioned above. After entering the link selection interface, different library links could be selected according to users’ needs. The database of the system stored all the links of libraries which were installed with the shared system, and the Internet-based cloud computing service updated the library links in real time, including deletion, modification and addition. It would go to the electronic interface if the link of some library was clicked. Traditional electronic libraries need separate account passwords to operate normally. The information resource sharing system uploaded user information to the general database through cloud computing services. All electronic libraries participating in the sharing system would receive user information automatically and open the corresponding account, that is, user information would be shared by all electronic libraries. In addition, the test results showed that the final search results were the same when the same information were searched in different libraries. The reason was that all information resources in electronic libraries participating in the sharing system were uploaded to a general database through cloud computing services and classified according to structural similarity, and then other electronic libraries would search the data in the general database. The shared entry interface of the system is shown in Figure 6.
(4) Test results of system feedback speed:
As shown in Figure 7, the feedback time of the designed system and the third-party website was 315 ms and 523 ms respectively when searching topic of electronic library, 321 ms and 541 ms when searching topic of cloud computing, and 332 ms and 532 ms when searching topic of resource sharing. It was found that the search time of both systems was stable, and the system designed in this study took much less time than the third-party website on the premise of searching the same topic. The reason was that the Squid proxy service system was adopted in this system. The data information which has been searched will be cached and backup in its server, and it will feedback directly from the proxy server without connecting to the library resource server. Although the third-party website provides library resource sharing, it needs to apply for connection with the library resource server when searching the same content, which greatly slows searching.
In this study, a library information resources co-construction and sharing system was designed based on Squid reverse proxy technology. Firstly, the basic framework was constructed, then the functions of the system were designed according to the requirements, and the database was designed using E-R model, including user table, bulletin table, status table and message table. The login function, user opening function, announcement function and message reply function of the system were tested. The results were as follows. The login interface could effectively identify the accuracy of the account and password, and make corresponding prompts, but when the account box and password box were not input, the system would collapse. When new accounts were opened, the system got struck for several seconds, but the system prompt had no problems; the jump page had no response for several seconds after the information was input, but return to normal quickly. The database of different libraries could be logged in with the same account, and the search results were the same when the same information was searched in different libraries. Compared to the third-party library sharing website, the system designed in this study was more efficient in searching and feeding back data resources and moreover had more stable user security.