1. Field of the Invention
The present invention relates to Web service providing methods, server devices and client terminals in Web service systems, Web service systems, Web service programs and recording media for storing Web service programs.
2. Description of the Related Art
Many Web services that are Web-based application software in which text search, etc. are made components have been realized due to the spread of the Internet. This technology is described in Java Web Services (2002.3, pp. 3-9) by David A. Cbappell, et al., published by O'Reilly & Associates, Inc. These web services are used through SOAP (Simple Object Access Protocol) messages that are used to call data and services relating to Web services.
Furthermore, client terminals access Universal Description, Discovery and Integration (UDDI) that manages registered information of Web services to know whereabouts of Web services. UDDI manages registered information of Web services, which are described in XML (eXtensible Markup Language)-based WSDL (Web services Description Language) format, as UDDI registry.
Conventional clients that request Web services and servers that provide Web services are not equipped with means that can provide connection information concerning connected servers or clients to their counterparts connected. For this reason, even when servers or clients are to change connection information, their counterparts cannot find the changes promptly.
For example, even when a server is scheduled to be shut down (to turn off the power supply) in ten minutes, a client connected to the server can detect the shut down of the server only after the server has been shut down, and at the time when the shut down is detected. Therefore, the client cannot effectively perform processing to change its connection destination from the server that is shut down to a substitute server.
Since no mechanism is currently available for realizing Web service processings that utilize connection information, the Web service processings are ineffective, which pose a substantial problem.
It is a primary object of the present invention to solve the problems described above, and improve the efficiency of Web service processings through the use of connection information.
An embodiment of the present invention pertains to a method for providing a Web service by a Web service system including at least one client terminal that uses the Web service, at least one server device that provides the Web service, and a UDDI server that manages registered information concerning the Web service in WSDL format in a UDDI registry, and the method comprises:
Other modules, devices and procedures are described in an embodiment described below.
In accordance with the present invention, connection information concerning Web services is registered, and the registered connection information can be used by connection counterparts at any time. As a result, processings relating to Web services can be made more effective by the use of the connection information.
Other features and advantages of the invention will be apparent from the following detailed description, taken in conjunction with the accompanying drawings that illustrate, by way of example, various features of embodiments of the invention.
A Web service system in accordance with an embodiment of the present invention is described in detail below with reference to the accompanying drawings. First, a configuration of the Web service system in accordance with the present embodiment is described with reference to
The UDDI server 10 includes a UDDI registry 11 that stores registered information of Web services that are provided by the server device 60, and an UDDI registry access section 12 that provides the client terminals 20 with searches for the UDDI registry 11 and provides the server device 60 with updates of the UDDI registry 11. The registered information of Web services are described in, for example, a XML-based WSDL format. In the conventional technology, only specific information (address) of the server device 60 that provides Web services is accepted as the registered information of Web services. However, in accordance with the present embodiment, specific formation (address) of a server state management device 70 of the server device 60 is also accepted, in addition to the specific information (addresses) of the server device 60.
The Web service system includes a client state management device 30 that manages connection states of the client terminal 20 to the server device 60, and a server state management device 70 that manages connection states of the server device 60 to the client terminal 20
Each of the devices (terminals) that compose the Web service system can be implemented by a computer that is equipped at least with a memory (storage device) as a storage region that is used for executing arithmetic processings, and a processor device that executes the aforementioned arithmetic processings. As one of the features of the present embodiment, the Web service system is equipped with a system that manages the connection states.
More specifically, the client terminal 20 notifies the client state management device 30 that manages connection states of the client terminal 20 of its current connection state (by a current state notification section 25), and notifies the server state management device 70 that manages the server device 60 that is a connection counterpart of a scheduled connection state that is scheduled in the future (by a scheduled state notification section 26). Similarly, the server device 60 notifies the server state management device 70 that manages connection states of the server device 60 of its current connection state (by a current state notification section 65), and notifies the client state management device 30 that manages the client terminal 20 that is a connection counterpart of a scheduled connection state that is scheduled in the future (by a scheduled state notification section 66).
The client terminal 20 and the server device 60 can use high quality Web services by referring to these connection states. Hereafter, examples of using the connection states are enumerated.
According to First Example, a client can use connection states of servers for its connection processings. For example, the client terminal 20 decides a server device 60 that is most lightly accessed as a connection destination among a group of server devices 60 that provide a Web service of the same type. More specifically, when the client terminal 20 is to decide a server device 60 that provides a specified service (text search, or the like), the client terminal 20 connects to the server state management device 70 of the server device 60 and obtains the current state of the server device 60, instead of directly connecting to the server device 60. If the connection state of the server device 60 indicates that the server device 60 is accessed by many of the client terminals 20 as connection counterparts, the client terminal 20 excludes the congested server device 60 as a candidate of connection counterpart, because the probability to connect to the server device 60 and its service quality are expected to be deteriorated due to the congestion. In this manner, the client terminal 20 decides a connection counterpart according to the current state acquired from the server state management device 70, such that the probability of successful connections can be improved. Also, to obtain the degree of congestion of each server device, scheduled states can be referred to, instead of current states.
According to another embodiment of First Example, the client terminal 20 decides, among a group of server devices 60 that provide a Web service of the same type, a server device 60 as a connection destination that has a longest period of operating time until the next scheduled stop state (or has no scheduled stop state). As a result, the probability of sustaining the connection of the client terminal 20 and the selected server device 60 for a long term increases.
According to still another embodiment of First Example, when the client terminal 20 attempts to connect to a specified server device 60, the client terminal 20 may refer to parameters of connection information on connections that the specified server device 60 has already established, thereby achieving connection negotiation based on the parameters. As a result, processings required for the negotiation can be eliminated when the specified service device 60 provides the client terminal 20 with connections of the same quality.
According to Second Example, a client can use connection states of servers for Web service usage processings. For example, let us consider the case where the client terminal 20 is connected to two server devices 60 that provide a Web service of the same type. When the client terminal 20 wants to receive the Web service as soon as possible, the client terminal 20 can select a connection with a higher communication quality indicated by connection information of the server devices. When the client terminal 20 treats secret hidden information such as private information, the client terminal 20 may select a connection that achieves a secured communication indicated by connection information of the server devices.
According to Third Example, a client can use connection states of servers for update processings to update connection counterparts. When the client terminal 20 has already established a connection with a specified server device 60, and the specified server device 60 notifies a scheduled state indicating that the connection will be cut in 10 minutes. Then, the client terminal 20 refers to the scheduled state, and attempts to connect to another server 60 (that provides the same Web service) other than the specified server 60. As a result, compared to a system where the client terminal 20 connects to another server 60 after the specified server device 60 has actually cut the connection, the waiting time for switching the connection can be better controlled and/or reduced.
According to Fourth Example, a server can use connection information of clients for connection processings. For example, when a client terminal 20 requests to connect to a server device 60, the server device 60 obtains, from the client state management table 31 (that is stored in the storage device) that manages the client terminal 20 that requested the connection, a scheduled state of connection concerning the client terminal 20. If the scheduled state indicates that the client terminal 20 will “stop connection in ten minutes,” the server device 60 opens (cuts) the connection to the client terminal 20 in ten minutes. In this manner, the server device 60 changes its connection state according to scheduled states of the client terminals 20, thereby more effectively opening its resources. As a result, the Web service can be provided for a large number of client terminals 20.
It is noted that the SOAP processing section 22 of the client terminal 20 may be composed of a SOAP Sender 22A that generates and transmits SOAP messages, and a SOAP receiver 22B that receives and interprets SOAP messages. Also, the SOAP processing section 62 of the server device 60, like the SOAP processing section 22, may be composed of a SOAP sender 62A that generates and transmits SOAP messages, and a SOAP receiver 62B that receives and interprets SOAP messages. Because the client terminal 20 and the server device 60 have their own independent SOAP message generation and interpretation engines, Web services can be called even when the two devices are placed in mutually different environments (for example, on different operating systems).
Accordingly, for updating a scheduled state in the future of the server device 60 or the client terminal 20, the scheduled state update message 110 includes a subject device ID 111 (ID of a connection counterpart) and a state content 112 (“service stop” in this example), and in addition a scheduled time 113 when the state content is executed.
The current states may include, for example, “Level A connected,” “Level B connected,” “Level C connected,” and “Cut.” The current state of “Level A connected” indicates that a service is provided without fail in the top priority. The current state of “Level B connected” indicates that a service is provided without fail although not in the top priority. The current state of “Level C connected” indicates that there is a possibility that a service may not be provided depending on the condition of the server at the time of a high processing load or the like. The current state of “Cut” indicates that a device is not currently in a state of providing a service. It is noted that a current state of “Stopped” indicating that a server is stopped is one example of the current state.
The connection policy may be “Secure communication” or “None.” The “Secure communication” indicates that SSL (Secure Socket Layer) is used as a connection configuration.
A exemplary configuration of the Web service system in accordance with the present embodiment is described above. Each of the systems, each of the processing sections, each of the devices and each of the servers can be realized by at least one of implementation methods including programs, objects, processes or threads, and may also be realized by hardware. Furthermore, each of the systems, each of the processing sections, each of the devices and each of the servers can be realized by a virtual computer such as a logical server. Next, operations of the Web service system in accordance with the present embodiment are described below with reference to
First, the client terminal 20 accesses the UDDI server 10 and searches a Web service to be used (S101). It is noted here that the client terminal 20 obtains not only addresses of the server devices 60, but also addresses of the server state management devices 70 that manage the states of the respective server devices 60. Next, the client terminal 20 obtains connection information of the server devices 60 from the server state management devices 70 corresponding to the addresses obtained in step S101 (S102).
Then, the client terminal 20 decides one of the server devices 60 as a connection destination based on the connection information obtained (S103).
The client terminal 20 transmits a request message to request a Web service to the server device 20 at the destination that is decided based on the connection state (S104). Then, upon receiving the request message, the server device 60 executes the Web service for the client terminal 20 (S105).
Further, the client terminal 20 updates the current connection state concerning Web services registered on the client state management device 30 in view of the Web service provided by the server device 60 (S106). The server device 60 also updates the current connection state registered on the server state management device 70 (S107).
First, the client terminal 20 accepts an input of a scheduled connection state (S201). This input can be made from an administrator of the client terminal 20 who plans to cut connections in ten minutes to all of the server devices 60 that are currently connected as a result of the device of the client terminal 20 being transferred elsewhere.
Next, the client terminal 20 searches Web services (server devices 60) of connection counterparts that are subject to the scheduled connection state in step S201 from among the client state management devices 30 (S202). Then, the client terminal 20 sends a request to update the scheduled connection state inputted in step S201 to those of the server state management devices 70 that manage the server devices 60 searched in step S202 (S203).
As the time passes, and when the time comes to execute the scheduled connection state requested in step S203, the client terminal 20 and the server devices 60 update the connection state of the Web service to the scheduled connection state requested in step S203 (S204).
Then, the client terminal 20 updates the current connection state after the update on the client state management device 30 according to the updated connection state executed in step S204 (S205). Further, each of the server devices 60 also updates the current connection state after the update on the server state management device 70 according to the updated connection state executed in step S204 (S206).
First, the server device 60 accepts an input of a scheduled connection state (S301). This input can be made from an administrator of the server device 60 who plans to cut connections in ten minutes to all of the client terminals 20 that are currently connected as a result of the device of the server device 60 being maintained.
Next, the server device 60 searches Web services (client terminals 20) of connection counterparts that are subject to the scheduled connection state in step S301 from among the server state management devices 70 (S302). Then, the server device 60 sends a request to update the scheduled connection state inputted in step S301 to those of the client state management devices 30 that manage the client terminals 20 searched in step S202 (and to the server state management device 70) (S303).
As the time passes, and when the time comes to execute the scheduled connection state requested in step S303, the server device 60 and the client terminals 20 update the connection state of the Web service to the scheduled connection state requested in step S303 (S304).
Then, the server device 60 updates the current connection state after the update on the server state management device 70 according to the updated connection state executed in step S304 (S305). Further, each of the client terminals 20 also updates the current connection state after the update on the client state management devices 30 according to the updated connection state executed in step S304 (S306).
The processings in accordance with the present embodiment described above can be modified and implemented without departing from the scope of the subject matter of the present invention as follows.
For example, in the embodiment described above, a device that manages and a device that is managed are configured to form a one to one pair. As a result, data to be managed are distributed, such that the influence on a failure of a specified device can be localized. However, instead of the one-to-one configuration, connection states of a plurality of client terminals 20 may be managed. When a plurality of client terminals 20 are to be managed, pairs of client terminals 20 and server devices 60 may be managed as information to specify connections in the client state management table 31, as shown in
Further, the client state management device 30 and the server state management device 70 may be composed with one device having the functions of the two devices, instead of composing them on individual devices. In this case, the client state management table 31 and the server state management table 71 can be integrated on one table as indicated in
Further, in accordance with the present embodiment described above, the client terminal 20 or the server device 60 notifies a scheduled connection state (S203, S303), and then makes a change (updates) the connection state for shifting to the scheduled connection state (S204, S304). In this instance, a message that is created at the time when the scheduled connection state is notified can be used (diverted) for processings to change the connection state for shifting to the scheduled connection state.
While the description above refers to particular embodiments of the present invention, it will be understood that many modifications may be made without departing from the spirit thereof. The accompanying claims are intended to cover such modifications as would fall within the true scope and spirit of the present invention.
The presently disclosed embodiments are therefore to be considered in all respects as illustrative and not restrictive, the scope of the invention being indicated by the appended claims, rather than the foregoing description, and all changes which come within the meaning and range of equivalency of the claims are therefore intended to be embraced therein.
Number | Date | Country | Kind |
---|---|---|---|
2004-167548 | Jun 2004 | JP | national |