Methods, systems, and computer program products are disclosed for dynamically integrating software resources (such as web services and other back-end software resources) using the services of a content framework (such as a portal platform). A portlet model is leveraged to allow programmatic portlets to serve as proxies for web services, thereby extending portlets beyond their traditional visual role. A deployment interface and a system interface are described for these portlet proxies. The deployment interface is used for composing new web services, and a composition tool is described. The system interface allows for run-time management of the web services by the portal platform. The service provider for a particular function may be bound to the portlet proxy at development time or at run-time.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method of dynamically integrating software resources in a computing network, comprising steps of: selecting a collection comprising a plurality of software resources for integrating as a software service for deployment in a content aggregation framework, wherein at least one operation is invocable from each of the software resources; programmatically building a markup language document to specify the operations invocable from the collection of software resources; and using the content aggregation framework, at run time, to programmatically and dynamically integrate the collection of software resources into the content aggregation framework to carry out the software service provided by the collection, further comprising the steps of: programmatically consulting the programmatically-built markup language document to determine the operations specified therein; using the determined operations as a functional interface of a proxying component, wherein the proxying component is accessible from the content aggregation framework; and deploying the software service in the content aggregation framework by using the functional interface of the proxying component to surface the software service in the content aggregation framework, wherein the functional interface of the proxying component represents, as operations invocable from the proxying component in the content aggregation framework, the operations specified in the markup language document as being invocable from the collection of software resources.
2. The method according to claim 1 , wherein the markup language document is used as a service description document specifying the functional interface for the proxying component; and further comprising the step of: registering the service description document in a network-accessible registry from which the service description document is dynamically discoverable, thereby enabling the operations invocable from the collection of software resources to be discoverable, in the programmatically consulting step, at run time from the network-accessible registry.
3. The method according to claim 2 , further comprising the steps of: defining, as a deployment interface for the proxying component, at least one deployment operation provided by at least one of the software resources in the collection, the deployment interface adapted for representing the collection in a service composition tool with which a user can build new distributed software services; and specifying the defined deployment interface in the service description document.
4. The method according to claim 2 , further comprising the steps of: defining, as a system interface for the proxying component, at least one system management operation provided by at least one of the software resources in the collection, each of the system management operations adapted for managing the providing at least one of the software resources; and specifying the defined system interface in the service description document.
5. The method according to claim 2 , wherein the network-accessible registry is accessed using standardized messages.
6. The method according to claim 1 , wherein the proxying component is a portlet, and wherein the software resources comprise at least one of other portlets and non-portlets.
7. The method according to claim 1 , wherein the collection of software resources comprises a web service.
8. The method according to claim 1 , wherein the markup language is Web Services Description Language (“WSDL”).
9. The method according to claim 1 , wherein the collection of software resources comprises a web service and wherein the using step provides dynamic integration of the web service into the content aggregation framework.
10. A system for dynamically integrating software resources in a computing network, comprising: a processor; and a memory coupled to the processor; a content aggregation framework adapted for supporting one or more plug-in components, each of which contributes content for aggregating in the content aggregation framework; a plurality of software resources, each comprising at least one invocable operation; a proxying component structured as one of the plug-in components; means for selecting a collection comprising a plurality of the software resources for integrating as a software service for deployment in the content aggregation framework; means for programmatically building a markup language document to specify the operations invocable from the collection of software resources; means for using the markup language document as a service description document specifying a functional interface of the proxying component; means for registering the service description document in a network-accessible registry; and means for using the content aggregation framework to programmatically and dynamically integrate the collection of software resources into the content aggregation framework at run-time to carry out the software service provided by the collection, further comprising: means for dynamically discovering the service description document, from the network-accessible registry, at run-time; means for programmatically consulting the dynamically-discovered service description document, by the content aggregation framework, to determine the operations specified therein; means for using the determined operations as the functional interface of the proxying component; and means for deploying the software service in the content aggregation framework, further comprising: means for using the functional interface of the proxying component to surface the software service in the content aggregation framework, wherein the functional interface of the proxying component represents, as operations invocable from the proxying component in the content aggregation framework, the operations specified in the service description document as being invocable from the selected collection of software resources; and means for programmatically binding, by the content aggregation framework, to the functional interface of the proxying component using the functional interface specified in the dynamically-discovered service description document, thereby enabling the operations invocable from the proxying component to be invocable from the content aggregation framework for carrying out the software service.
11. The system according to claim 10 , further comprising: means for defining, as a deployment interface for the proxying component, at least one deployment operation provided by at least one of the software resources in the collection, the deployment interface adapted for representing the collection in a service composition tool with which a user can build new distributed software services; and means for specifying the defined deployment interface in the service description document.
12. The system according to claim 10 , further comprising: means for defining, as a system interface for the proxying component, at least one system management operation provided by at least one of the software resources in the collection, each of the system management operations adapted for managing the providing at least one of the software resources; and means for specifying the defined system interface in the service description document.
13. The system according to claim 10 , wherein the proxying component is a portlet, and wherein the software resources comprise at least one of other portlets and non-portlets.
14. A method of using a proxying component to integrate software resources in a content aggregation framework, comprising: defining, as a functional interface to the proxying component in the content aggregation framework, operations invocable from a collection comprising a plurality of software resources as operations invocable from the proxying component, wherein the proxying component is adapted for plugging in to the content aggregation framework and serves, when plugged in to the content aggregation framework, as a proxy for the collection of software resources that are thereby accessible from the content aggregation framework; specifying the defined functional interface in a service description document; registering the service description document in a network-accessible registry, thereby enabling the functional interface of the proxying component to be programmatically and dynamically discoverable at run time from the network-accessible registry; retrieving, by the content aggregation framework, the registered service description document for the proxying component from the network-accessible registry upon discovery thereof; plugging the proxying component in to the content aggregation framework by dynamically binding, by the content aggregation framework, to the functional interface of the proxying component using the functional interface specified in the retrieved service description document, thereby enabling the operations invocable from the proxying component to be invocable in the content aggregation framework; and using the functional interface at run time to invoke at least one operation invocable from the proxying component, wherein each of the invocations causes the proxying component to invoke a corresponding one of the operations invocable from the collection of software resources.
15. The method according to claim 14 , wherein the proxying component is a portlet.
16. The method according to claim 14 , wherein the content aggregation framework is a portal platform.
17. The method according to claim 14 , wherein the collection provides a web service.
18. A computer program product for dynamically integrating software resources in a computing network, the computer program product embodied on one or more computer-readable media and comprising: computer-readable program code for selecting a collection comprising a plurality of software resources for integrating as a software service for deployment in a content aggregation framework, wherein at least one operation is invocable from each of the software resources; computer-readable program code for programmatically building a markup language document to specify the operations invocable from the collection of software resources; and computer-readable program code for using the content aggregation framework, at run time, to programmatically and dynamically integrate the collection of software resources into the content aggregation framework to carry out the software service provided by the collection, further comprising: computer-readable program code for programmatically consulting the programmatically-built markup language document to determine the operations specified therein; computer-readable program code for using the determined operations as a functional interface of a proxying component, wherein the proxying component is accessible from the content aggregation framework; and computer-readable program code for deploying the software service in the content aggregation framework by using the functional interface of the proxying component to surface the software service in the content aggregation framework, wherein the functional interface of the proxying component represents, as operations invocable from the proxying component in the content aggregation framework, the operations specified in the markup language document as being invocable from the collection of software resources.
19. The computer program product according to claim 18 , wherein the markup language document is used as a service description document specifying the functional interface for the proxying component; and further comprising: computer-readable program code for registering the service description document in a network-accessible registry from which the service description document is dynamically discoverable, thereby enabling the operations invocable from the collection of software resources to be discoverable, by the computer-readable program code for programmatically consulting, at run time from the network-accessible registry.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
September 19, 2001
March 11, 2008
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.