This application claims priority under 35 U.S.C. §119(a) to Taiwanese Patent Application Serial No. 97146368 entitled “SYSTEM, DEVICE, METHOD AND COMPUTER-READABLE MEDIUM FOR PROVIDING NETWORK SERVICE INFORMATION”, filed on Nov. 28, 2008.
The present invention relates to a system and method for providing network service information, and more particularly to a system and method for automatically providing network service information through a network service information list.
As the Internet technology continuously develops, people may perform more and more services through the Internet and receive more accurate and real-time feedbacks. Due to the variety of services, the technical structures related to the Internet become more and more complex. In the era of Web 1.0, either the technical structure or the interaction between users is relatively simple. However, the interaction and integration between services and technologies, such as RSS and XML, become critical after the new era of Web 2.0.
For example, AJAX is one of the major and important network techniques. AJAX, namely the “Asynchronous JavaScript and XML”, is a kind of technique used to create interactive web applications, which typically uses Javascript to create interactive Internet applications. With Ajax, applications can retrieve data from the server asynchronously in the background without interfering with the display and behavior of the existing page. Data is usually retrieved using the XML format. Since the processing tasks are moved from server side to client side, the processing speed is significantly accelerated. Traditional web applications allow the client to use standard “form” to submit the request to the server and the server will return a new web page upon receiving the request. This approach wastes a lot of bandwidth to transmit redundant data because many contents are still unchanged between different requests. Furthermore, each communication requires one independent request to be processed by the server, which causes the response time to be much longer than local processes. On the contrary, AJAX uses the Javascript embedded in web pages to send requests to and receive data from the server while simultaneously performing local tasks. Therefore, the data required to be exchanged between the server and the client is dramatically decreased (almost 5% processing time comparing to traditional scheme).
Besides, it is an important trend to release Application Programming Interface (API) for web services thereby the services provided by service providers may be easily integrated. However, even a single service provider may maintain thousands of APIs at the same time, either stored at centralized or distributed hosts according to their functions or characteristics. Users may also access the APIs by a unique web path to identify each API and even may require to access and integrate several APIs provided by different service providers in their own applications. For example, a service developer must reference to tremendous descriptions and manuals upon developing a new network services and find the most suitable one from thousands of APIs. Meanwhile, the web path of the selected API must be correctly recorded, which causes unnecessary developing time and cost, particularly when the developer has to input a typically lengthy web path to identify a single API, such as: http://www.ibm.com/developerworks/websphere/atom/profile.do?format=lite&email=true.
On the other hand, such a lengthy web path usually causes many typographical errors and results in malfunction of the network services. Furthermore, when the service provider updates the web path of one API, other application, which references such API, requires to be accordingly amended. To maintain all web paths of APIs in the most current status would cost a lot of work and become an annoying issue to developers.
Unfortunately, not only the service developers but also general users may face the above problem. For example, an Internet user may need to input a web path to access a specific service, such as the Uniform Resource Locator (URL) for accessing web page or other web services. It is quite common that a user unintentionally enters a wrong web path or forgets the correct web path and fails to obtain the required network service. Even though some solutions have been disclosed to display the review histories for user's selection, while they fail to provide the web paths, which the user has never accessed, and also fail to deal with the condition that a previous web path becomes invalid. It becomes more and more serious since the Internet plays an important role in modern society.
Therefore, it is advantageous to provide a system and method for automatically providing network service information for quickly and correctly selecting the required network services.
Responsive to the above-mentioned issues in traditional techniques, several embodiments of the present invention are provided, such as a system and a method to automatically provide network service information in order to improve one or many issues mentioned above.
One aspect of the present invention discloses a system for providing network service information. The system includes a server and a client. The server provides a plurality of network services and includes a service list module for generating a network service information list. The network service information list at least includes network paths, such as a URL, of the plurality of network services. The client, coupled to the server, includes an automatic information retrieving handler. The automatic information retrieving handler sends a request to the service list module of the server upon detecting a network path, inputted by an user, pointing to the server, receives at least a portion of network service information from the network service information list of the server, and selectively displays at least a portion of the network service information to the user.
Another aspect of the present invention discloses an electronic device for providing network service information. The electronic device includes an automatic information retrieving handler. The electronic device is coupled to a server for selectively using a plurality of network services provided by the server. A request is sent to the server upon the automatic information retrieving handler automatically detecting a network path, inputted by a user, pointing to the server and the automatic information retrieving handler receives at least a portion of network service information from one of the network service information lists of the server. The network service information list at least includes network paths of the network services, and the automatic information retrieving handler selectively displays the at least a portion of network service information to the user.
Still another aspect of the present invention discloses an electronic device for providing a plurality of network services and network service information. The electronic device includes a service list module for generating a network service information list. The network service information list at least includes network paths of the plurality of network services. At least a portion of network service information of the network service information list is returned to a client upon receiving a request from the client.
Yet another aspect of the present invention discloses a method for providing network service information. The method includes the following steps: detecting a network path inputted by an user; identifying a server pointed by the network path; sending a request to the server; receiving at least a portion of network service information of a network service information list returned by the server, the network service information list comprising at least a portion of network paths of the plurality of network services; and displaying at least a portion of the network service information to the user.
Yet still another aspect of the present invention discloses a method for providing network service information. The method includes the following steps: analyzing a plurality of network services; generating a network service information list according to the plurality of network services, the network service information list at least comprising network paths of the plurality of network services; receiving a request from a client; and returning at least a portion of network service information of the network service information list to the client.
Yet still another aspect of the present invention discloses a computer readable medium carrying a program code to perform a method, upon execution in a computer, for providing network service information. The method comprising the following steps: detecting a network path inputted by an user; identifying a server pointed by the network path; sending a request to the server; receiving at least a portion of network service information of a network service information lists returned by the server, the network service information list comprising at least a portion of network paths of the plurality of network services; and displaying at least a portion of the network service information to the user.
Yet still another aspect of the present invention discloses a computer readable medium carrying a program code to performing a method, upon execution in a computer, for providing a network service information, the method comprising the following steps: analyzing a plurality of network services; generating a network service information list according to the plurality of network services, the network service information list at least comprising network paths of the plurality of network services; receiving a request from a client; and returning at least a portion of network service information of the network service information list to the client.
Reference throughout this specification to features, advantages, or similar language does not imply that all of the features and advantages that may be realized with the present invention should be or are in any single embodiment of the invention. Rather, language referring to the features and advantages is understood to mean that a specific feature, advantage, or characteristic described in connection with an embodiment is included in at least one embodiment of the present invention. Thus, discussion of the features and advantages, and similar language, throughout this specification may, but do not necessarily, refer to the same embodiment.
Furthermore, the described features, advantages, and characteristics of the invention may be combined in any suitable manner in one or more embodiments. One skilled in the relevant art will recognize that the invention may be practiced without one or more of the specific features or advantages of a particular embodiment. In other instances, additional features and advantages may be recognized in certain embodiments that may not be present in all embodiments of the invention.
For the advantages of the invention to be readily understood, a more specific description of the invention briefly described above will be rendered by reference to specific embodiments that are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings.
Reference throughout this specification to “one embodiment,” “an embodiment,” or similar language means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the present invention. Thus, appearances of the phrases “in one embodiment,” “in an embodiment,” and similar language throughout this specification may, but do not necessarily, all refer to the same embodiment.
As will be appreciated by one skilled in the art, the present invention may be embodied as a system, method or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer-usable program code embodied in the medium.
Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
Computer program code for carrying out operations of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The present invention is described below with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable medium that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
Referring now to
Client 110, server 130 and application servers 140 and 150 may be coupled and communicated by any hardware structures or software protocols, such as Internet structure and TCP/IP protocols, or any other communication techniques. Application servers 140 and 150 may provide identical or different network services comparing to server 130. For example, application server 140 is another web page server while application server 150 is a database server in this embodiment. Therefore, those who skilled in the art should understand that the present invention does not limit to specific services provided by the servers or the quantity of the servers. The details recited here are illustrated for exemplary purpose in order to facilitate those skilled in the art to clearly understand the present invention. For example, the so-called server and application server are named for convenient and illustrative purpose depending on whether they directly receive and/or reply the request from client 110. In this specification, those servers directly receive and/or reply the requests issued by client 110 will be referred as a Service Gateway. However, it should not be considered as a limitation to the present invention. For example, client 110 may issue a request directly to application server 140 in other embodiments depending on specific considerations and, in that case, application server 140 will be referred as a Service Gateway while client 110 may indirectly access the service information from server 130 and/or application server 150 through application server 140. Alternatively, the system 100 may has more or less application servers, or even without any application server.
The client 110, server 130 and application servers 140 and 150 may be embodied as a computer according to one embodiment of the present invention. For example,
In the depicted example, local area network (LAN) adapter 115, small computer system interface (SCSI) host bust adapter 116, and expansion bus interface 117 are connected to PCI local bus 114 by direct component connection. In contrast, audio adapter 118, graphics adapter 119, and audio/video adapter 120 are connected to PCI local bus 114 by add-in boards inserted into expansion slots. Expansion bus interface 117 provides a connection for a keyboard and mouse adapter 121, modem 122, and additional memory 124. SCSI host bus adapter 116 provides a connection for hard disk drive 124, tape drive 125, and CD-ROM drive 130. Typical PCI local bus implementations will support three or four PCI expansion slots or add-in connectors.
An operating system runs on processor 111 and is used to coordinate and provide control of various components within client 110. The operating system may be a commercially available operating system such as Windows XP, which is available from Microsoft Corporation. An object oriented programming system such as Java may run in conjunction with the operating system and provides calls to the operating system from Java programs or applications executing on client 110. “Java” is a trademark of Sun Microsystems, Inc. Instructions for the operating system, the object-oriented programming system, and applications or programs are located on storage devices, such as hard disk drive 124, and may be loaded into main memory 112 for execution by processor 111.
Those of ordinary skill in the art will appreciate that the hardware in
Further referring to
As mentioned above, it is a common demand to integrate several network services together. For example, a network service provided by server 130 may require incorporating some services provided by application servers 140 and/or 150. In such case, it will cause tremendous time waste and cost expanding to manually check and confirm all network services distributed in several servers by the developer. In this embodiment, the service list module 132 periodically communicates with the service list modules 142 and/or 152 to update the network service information provided by application servers 140 and/or 15o (step 310 and 312). Therefore, the developer may easily and quickly obtain all related network service information without additional burden even when the services provided by the servers other than server 130 are required.
It should be noted that many of the functional units described in this specification have been labeled as modules, in order to more particularly emphasize their implementation independence. For example, a module may be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module may also be implemented in programmable hardware devices such as field programmable gate arrays, programmable array logic, programmable logic devices or the like. Modules may also be implemented in software for execution by various types of processors. An identified module of executable code may, for instance, comprise one or more physical or logical blocks of computer instructions which may, for instance, be organized as an object, procedure, or function. Nevertheless, the executables of an identified module need not be physically located together, but may comprise disparate instructions stored in different locations which, when joined logically together, comprise the module and achieve the stated purpose for the module.
Indeed, a module of executable code may be a single instruction, or many instructions, and may even be distributed over several different code segments, among different programs, and across several memory devices. Similarly, operational data may be identified and illustrated herein within modules, and may be embodied in any suitable form and organized within any suitable type of data structure. The operational data may be collected as a single data set, or may be distributed over different locations including over different storage devices, and may exist, at least partially, merely as electronic signals on a system or network.
In step 510 as shown in
Referring back to
Now, referring back to
In the condition that the network service information list of the server 130 contains network services redirected to other server,
The network service information list shown in
The current JavaEE(J2EE) web container standard is used to describe the attributes of the web application program. In one embodiment of the present invention, exemplary codes of JavaEE(J2EE) web application are illustrated below by extending the current JavaEE(J2EE) web container standard, namely “web.xml” so that the above-mentioned network service information list may be easily stored via REST/ATOM APIs. Those extension codes are shown in bold font between tags of <web2.0> and </web2.0>.
method>
status,
url>http://www.lenovo.com/sales/thinkpad/<redirected-url>
In another embodiment of the present invention, an update (or detecting) function may be further implemented. For example, when a user selects a specific network service information via the IDE 128, a detect process may be initiated upon storing or compiling the program codes to detect whether the related information of the selected network service is updated. The server 130 may inform client 110 the updated information upon a request from the client 110 (such as via the detect process described above), or otherwise actively inform the client 110 even without a specific request. Alternatively, the client 110 may periodically synchronize the updated information with server 130.
The above descriptions are recited for illustrative purpose rather than limitations. The present invention may still have various amendments and/or changes. For example, the present invention may be embodied in the conditions other than the IDE 128.
The description shown above is only about the preferred embodiments of the present invention and is not intended to limit the scope of the invention. Any equivalent variations or modifications without departing from the spirit disclosed by the present invention should be included in the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
97146368 | Nov 2008 | TW | national |