IPC분류정보
국가/구분 |
United States(US) Patent
등록
|
국제특허분류(IPC7판) |
|
출원번호 |
UP-0014106
(2001-12-11)
|
등록번호 |
US-7822860
(2010-11-15)
|
발명자
/ 주소 |
- Brown, Kyle G.
- Graham, Stephen Glen
- Miller, Steven M.
- Weitzel, Mark Douglas
|
출원인 / 주소 |
- International Business Machines Corporation
|
대리인 / 주소 |
|
인용정보 |
피인용 횟수 :
19 인용 특허 :
22 |
초록
▼
The invention provides a software construct, herein termed a Web service container, for managing Web services at a network node and an adaptive model for the dynamic configuration of a plurality of Web service containers distributed throughout a network, such as the Internet or an intranet, in a sof
The invention provides a software construct, herein termed a Web service container, for managing Web services at a network node and an adaptive model for the dynamic configuration of a plurality of Web service containers distributed throughout a network, such as the Internet or an intranet, in a software and hardware platform-independent manner. Containers can communicate with each other via the network to determine contextual information such as the identity of each other, the capabilities of each other, the operating system or platforms of each others, the contents of the container (i.e., the available Web services at that location), etc. By providing a container framework and the ability to exchange contextual information, the present invention allows servers as well as clients to dynamically exchange Web services software as well as contextual information, such as current workload, so that servers and clients are virtually limitlessly reconfigurable based on context.
대표청구항
▼
We claim: 1. A computer program product recorded on a non-transitory computer readable medium for organizing and manipulating Web services software modules in containers on a network, comprising: computer executable instructions to determine and describe Web services software modules in containers
We claim: 1. A computer program product recorded on a non-transitory computer readable medium for organizing and manipulating Web services software modules in containers on a network, comprising: computer executable instructions to determine and describe Web services software modules in containers that are available at a corresponding, local network node, said Web services software modules comprising executable software modules that can be exchanged between nodes of a network and run at said nodes; computer executable instructions to generate messages to be transmitted to other containers via a network disclosing said Web services software modules that are available at said corresponding network node, and including contextual information about said containers and said Web services available at said corresponding, local node; computer executable instructions to receive and decipher messages disclosing Web services software modules that are available at other network nodes corresponding to other containers; and computer executable instructions to cause the dynamic reconfiguration of said Web services software modules available at said corresponding network node on said transmitted and said received messages, including the exchange of said Web services software modules between said network nodes, wherein said instructions to cause the dynamic reconfiguration comprise: computer executable instructions to transmit messages that are hardware and software platform independent to said other containers, requesting said other containers to return copies of Web services software modules; computer executable instructions, responsive to receipt of messages from said other containers requesting copies of Web services software modules available at said corresponding network node, to send copies of said requested Web services software modules to said requesting containers; computer executable instructions to receive client requests for use of a Web services software module from client computers via said network; computer executable instructions that, responsive to receipt of one of said client requests from a client for a Web services software module that is not available at said corresponding network node, determine, based on said received messages disclosing said Web services software modules that are available at other network nodes, whether another network node has a copy of said particular Web services software module; and computer executable instructions that invoke a proxy to another of said containers having a copy of a particular Web services software module based on said determination. 2. The computer program product of claim 1 wherein said computer executable instructions to transmit messages further comprises computer executable instructions to transmit said messages to and from a Web services registry and said computer executable instructions to receive and decipher messages further comprises computer executable instructions to receive said messages from a Web service registry. 3. The computer program product of claim 2 wherein said messages disclosing said Web services software modules that are available at network nodes are in the Web Services Descriptor Language (WSDL). 4. The computer program product of claim 3 wherein said registry is a Universal Description, Discovery, and Integration initiative (UDDI) registry. 5. The computer program product of claim 1 wherein said computer executable instructions to transmit messages uses a peer to peer messaging protocol between said containers and said computer executable instructions to receive and decipher messages uses a peer to peer messaging protocol between containers. 6. The computer program product of claim 5 wherein said messaging protocol is SOAP. 7. The computer program product of claim 6 wherein said disclosures of said Web services software modules that are available at network nodes are contained in headers of Simple Object Access Protocol (SOAP) messages. 8. The computer program product of claim 5 wherein said messaging protocol is JXTA. 9. The computer program product of claim 1 wherein said proxy comprises: computer executable instructions to route said client requests for a Web services software module that is not available at said corresponding network node and has been determined to be available at another network node to another container corresponding to said another network node; computer executable instructions to receive responses to said client requests from said another network node; and computer executable instructions to return said responses to said requesting clients. 10. The computer program product of claim 9 further comprising: computer executable instructions to receive said client requests routed from another of said containers and causing said client requests to be handled by a copy of said particular Web services software module at a network node corresponding to said container to generate said response; and computer executable instructions to transmit said response to said another container that routed said client request to said container. 11. The computer program product of claim 1 further comprising: computer executable instructions to determine a load of client requests at said corresponding network node; and wherein said computer executable instructions to cause the dynamic reconfiguration of Web services software modules performs said dynamic reconfiguration based on said load determination. 12. The computer program product of claim 11 wherein said computer executable instructions to cause the dynamic reconfiguration of Web services software modules further comprises: computer executable instructions that, responsive to determination of a load of client requests for a particular Web services software module that is not available at said corresponding network node exceeding a predetermined level, issues a message requesting a copy of said particular Web services software module from another container that has a copy of said particular Web services software module; computer executable instructions to receive and locally invoke said particular Web services software module from said other container; and computer executable instructions to route client requests for said particular Web services software module to said local invocation of said particular Web services software modules. 13. The computer program product of claim 12 wherein said computer executable instructions to cause the dynamic reconfiguration of Web services software modules further comprises: computer executable instructions to offload said particular Web services software module received from other said container responsive to said load of client requests for said particular Web services software module dropping below a second predetermined level. 14. The computer program product of claim 11 wherein said computer executable instructions to cause the dynamic reconfiguration of Web services software modules comprises: computer executable instructions that, responsive to determination of a load of client requests for a particular Web services software module available at said corresponding network node exceeding a predetermined level, issues a message requesting another container to accept a copy of the code of said particular Web services software module from said computer program product; and computer executable instructions to send a copy of said code of said particular Web services software module to said other container responsive to affirmative responses to said message requesting another container to accept a copy of said particular Web services software module from said computer program product. 15. The computer program product of claim 14 wherein said computer executable instructions to cause the dynamic reconfiguration of Web services software modules further comprises: computer executable instructions to reconfigure said computer program product to route client requests for said particular Web services software module to said other container. 16. The computer program product of claim 15 wherein said other container comprises a plurality of other containers. 17. The computer program product of claim 16 wherein said computer executable instructions to reconfigure said computer program product to route client requests for said particular Web services software module to said other container distributes said client requests for said particular Web services software module between said other containers and said local invocation of said particular Web services software module. 18. The computer program product of claim 1 wherein said client requests indicate whether said requesting client has a container and a platform on which said client is running and wherein said computer program product further comprises computer executable instructions to read said client requests to determine whether said client has a container and said platform. 19. The computer program product of claim 18 wherein said computer executable instructions to cause the dynamic reconfiguration of Web services software modules further comprising: computer executable instructions to send a copy of the code of a particular Web services software module responsive to a client request for said Web services software module. 20. The computer program product of claim 1 further comprising: computer executable instructions to monitor usage of Web services software modules by clients; and computer executable instructions to charge said clients for said usage. 21. The computer program product of claim 1 wherein said contextual information includes at least one of an identity of a Web service, the capabilities of said Web service, the operating system of said Web service, the platform of said Web service, the Web services hosted by a container type Web service, the workload of said Web service, and a network location of said Web service. 22. A method for organizing and manipulating Web services software modules in containers, comprising: determining and describing Web services software modules in containers that are available at a corresponding network node, said Web services software modules comprising executable software modules that can be exchanged between nodes of a network and run at said nodes; transmitting messages via a network disclosing said Web services software modules that are available at said corresponding network node to other network nodes via said network and including contextual information about said container and said Web services available at said corresponding, local node; receiving and deciphering messages from other network nodes disclosing Web services software modules that are available at other network nodes; and dynamically reconfiguring Web services software modules on said network node transmitted and received based on said messages, including the exchange of said Web services software modules between said network nodes, wherein said instructions for causing the dynamic reconfiguration comprise: transmitting messages that are hardware and software platform independent to said other containers, requesting said other containers to return copies of Web services software modules; responsive to receipt of messages from said other containers, requesting copies of Web services software modules available at said corresponding network node, for sending copies of said requested Web services software modules to said requesting containers; receiving client requests for use of a Web services software module from client computers via said network; responsive to receipt of a client request from a client for a Web services software module that is not available at said corresponding network node, determining, based on said received messages disclosing said Web services software modules that are available at other network nodes, what network nodes have copies of said particular Web services software module; and invoking a proxy to another of said network nodes having a copy of a particular Web services software module based on said determination. 23. The method of claim 22 wherein transmitting and receiving messages comprises sending and receiving said messages to and from a Web services registry. 24. The method of claim 23 wherein said messages disclosing said Web services software modules that are available at network nodes are in the Web Services Descriptor Language (WSDL). 25. The method of claim 24 wherein said registry is a Universal Description, Discovery, and Integration initiative (UDDI) registry. 26. The method of claim 22 comprising sending and receiving said messages using a peer to peer messaging protocol between said network nodes. 27. The method of claim 26 wherein said messaging protocol is SOAP. 28. The method of claim 27 wherein said disclosures of said Web services software modules that are available at network nodes are contained in headers of Simple Object Access Protocol (SOAP) messages. 29. The method of claim 26 wherein said messaging protocol is JXTA. 30. The method of claim 22 wherein said proxy routes client requests for said particular Web services software module to said other of said network nodes, receives responses to said client requests, and returns said responses to said requesting clients. 31. The method of claim 30 further comprising: receiving said client requests forwarded from other of said network nodes and causing said client requests to be handled by said copy of said particular Web services software module corresponding to said network node to generate said response; and transmitting said response to said network node that issued said client request. 32. The method of claim 22 further comprising: determining a load of client requests at said corresponding network node; and wherein said dynamic reconfiguration is performed based on said load determination. 33. The method of claim 32 wherein dynamically reconfiguring further comprises: responsive to determination of a load of client requests for a particular Web services software module that is not available at said corresponding network node exceeding a predetermined level, issuing a message requesting a copy of the code of said particular Web services software module from another network node that has a copy of said particular Web services software module; receiving and locally invoking said code for said particular Web services software module from said other network node; and routing client requests for said particular Web services software module to said local invocation of said code for said particular Web services software module. 34. The method of claim 33 wherein dynamically reconfiguring further comprises: offloading said local code for said particular Web services software module responsive to said load of client requests for said particular Web services software module dropping below a second predetermined level. 35. The method of claim 32 wherein dynamically reconfiguring comprises: responsive to determination of a load of client requests for a particular Web services software module available at said corresponding network node exceeding a predetermined level, issuing a message requesting another network node to accept a copy of the code of said particular Web services software module from said network node; and sending a copy of said code of said particular Web services software module to said other network node responsive to affirmative responses to said message requesting another network node to accept a copy of the code of said particular Web services software module from said network node. 36. The method of claim 35 wherein dynamically reconfiguring further comprises: reconfiguring said network node to route client requests for said particular Web services software module to said other network node. 37. The method of claim 36 wherein said other network node comprises a plurality of other network nodes. 38. The method of claim 37 wherein reconfiguring said network node comprises distributing said client requests for said particular Web services software module between said other network nodes and said local invocation of said particular Web services software module. 39. The method of claim 22 wherein said client requests indicate a platform on which said client is running and wherein said method further comprises: reading said client requests to determine said platform of said client. 40. The method of claim 39 further comprising: sending a copy of the code of a particular Web services software module responsive to a client request for said Web services software module. 41. The method of claim 22 further comprising: monitoring usage of Web services software modules by clients; and charging said clients for said usage.
※ AI-Helper는 부적절한 답변을 할 수 있습니다.