Title of Invention: Programmatic management of software resources in a content framework environment Abstract: 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 brandon81@example.org. Detailed Description: RELATED INVENTIONS The present invention is a Continuation of commonly-assigned and co-pending U.S. patent application Ser. No. 09/956,268, filed on Sep. 19, 2001, which is hereby incorporated herein by reference. The present invention is related to U.S. Pat. No. ______ (Ser. No. 09/956,276,), which is titled “Dynamic, Real-Time Integration of Software Resources through Service of a Content Framework”, and U.S. Pat. No. ______ (Ser. No. ______), which is titled “Building Distributed Software Services as Aggregations of Other Services”, both are which are commonly assigned to International Business Machines Corporation and which were filed concurrently herewith. BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to computer software, and deals more particularly with techniques for programmatic management of software resources in a content framework environment. 2. Description of the Related Art The popularity of distributed computing networks and network computing has increased tremendously in recent years, due in large part to growing business and consumer use of the public Internet and the subset thereof known as the “World Wide Web” (or simply “Web”). Other types of distributed computing networks, such as corporate intranets and extranets, are also increasingly popular. As solutions providers focus on delivering improved Web-based computing, many of the solutions which are developed are adaptable to other distributed computing environments. Thus, references herein to the Internet and Web are for purposes of illustration and not of limitation. The early Internet served primarily as a distributed file system in which users could request delivery of already-generated static documents. In recent years, the trend has been to add more and more dynamic and personalized aspects into the content that is served to requesters. One area where this trend is evident is in the increasing popularity of content frameworks such as those commonly referred to as “portals” (or, equivalently, portal platforms, portal systems, or portal servers). A portal is a type of content framework which is designed to serve as a gateway, or focal point, for end users to access an aggregation or collection of information and applications from many different sources. Portals are typically visual in nature, and provide their users with a Web page known as a “portal page”. A portal page is often structured as a single overview-style page (which may provide links for the user to navigate to more detailed information). Alternatively, portal pages may be designed using a notebook paradigm whereby multiple pages are available to the user upon selecting a tab for that page. Some experts predict that portal pages will become the computing “desktop” view of the future. Another area where advances are being made regarding dynamic content is in the so-called “web services” initiative. This initiative is also commonly referred to as the “service-oriented architecture” for distributed computing. Web services are a rapidly emerging technology for distributed application integration in the Internet. In general, a “web service” is an interface that describes a collection of network-accessible operations. Web services fulfill a specific task or a set of tasks. They may work with one or more other web services in an interoperable manner to carry out their part of a complex workflow or a business transaction. For example, completing a complex purchase order transaction may require automated interaction between an order placement service (i.e. order placement software) at the ordering business and an order fulfillment service at one or more of its business partners. Many industry experts consider the service-oriented web services initiative to be the next evolutionary phase of the Internet. With web services, distributed network access to software will become widely available for program-to-program operation, without requiring intervention from humans. Web services are generally structured using a model in which an enterprise providing network-accessible services publishes the services to a network-accessible registry, and other enterprises needing services are able to query the registry to learn of the services' availability. The participants in this computing model are commonly referred to as (1) service providers, (2) service requesters, and (3) service brokers. These participants, and the fundamental operations involved with exchanging messages between them, are illustrated in FIG. 1. The service providers 100 are the entities having services available, and the registry to which these services are published 110 is maintained by a service broker 120. The service requesters 150 are the entities needing services and querying 140 the service broker's registry. When a desired service is found using the registry, the service requester binds 130 to the located service provider in order to use the service. These operations are designed to occur programmatically, without human intervention, such that a service requester can search for a particular service and make use of that service dynamically, at run-time. The web services model is theoretically available for any type of computing application. However, the web services which are accessible from registries today are limited to relatively simple programs such as “Hello, World!” demo programs, programs which look up the current temperature for a particular zip code, programs which perform currency exchange calculations, and so forth. The core set of standards on which web services work is being built includes HTTP (“Hypertext Transfer Protocol”), SOAP (“Simple Object Access Protocol”) and/or XML (“Extensible Markup Language”) Protocol, WSDL (“Web Services Description Language”), and UDDI (“Universal Description, Discovery, and Integration”). HTTP is commonly used to exchange messages over TCP/IP (“Transmission Control Protocol/Internet Protocol”) networks such as the Internet. SOAP is an XML-based protocol used to send messages for invoking methods in a distributed environment. XML Protocol is an evolving specification of the World Wide Web Consortium (“W3C”) for an application-layer transfer protocol that will enable application-to-application messaging, and may converge with SOAP. WSDL is an XML format for describing distributed network services. UDDI is an XML-based registry technique with which businesses may list their services and with which service requesters may find businesses providing particular services. (For more information on SOAP, refer to “Simple Object Access Protocol (SOAP) 1.1, W3C Note 8 May 2000”, which is available on the Internet at http://www.w3.org/TR/2000/NOTE-SOAP-20000508. See http://www.w3.org/2000/xp for more information on XML Protocol and the creation of an XML Protocol standard. The WSDL specification is titled “Web Services Description Language (WSDL) 1.1, W3C Note 15 Mar. 2001”, and may be found on the Internet at http://www.w3.org/TR/2001/NOTE-wsdl-20010315. For more information on UDDI, refer to the UDDI specification which is entitled “UDDI Version 2.0 API Specification, UDDI Open Draft Specification 8 Jun. 2001”, and which can be found on the Internet at http://www.uddi.org/specification.html. HTTP is described in Request For Comments (“RFC”) 2616 from the Internet Engineering Task Force, titled “Hypertext Transfer Protocol—HTTP/1.1” (June 1999).) Application integration using these open standards requires several steps. The interface to a web service must be described, including the method name(s) with which the service is invoked, the input and output parameters and their data types, and so forth. WSDL documents provide this information, and are transmitted using a UDDI publish operation to a registry implemented according to the UDDI specification. Once the service is registered in the UDDI registry, service requesters can issue UDDI find requests to locate distributed services. A service requester locating a service in this manner then issues a UDDI bind request, which dynamically binds the requester to the located service using the service information from the WSDL document. (These UDDI operations have been illustrated, at a high level, in FIG. 1.) SOAP/XML Protocol and HTTP messages are commonly used for transmitting the WSDL documents and the UDDI requests. (Hereinafter, references to SOAP should be construed as referring equivalently to semantically similar aspects of XML Protocol. Furthermore, it should be noted that references herein to “HTTP” are intended in a generic sense to refer to HTTP-like functions. Some UDDI operations, for example, require HTTPS instead of HTTP, where HTTPS is a security-enhanced version of HTTP. These differences are not pertinent to the present invention, however, and thus no distinction is made hereinafter when discussing HTTP.) The goal of web services is to provide service requesters with transparent access to program components which may reside in one or more remote locations, even though those components might run on different operating systems and be written in different programming languages than those of the requester. While a significant amount of work has been done to define the goals, architecture, and standards on which web services will be based, much work remains to be done to make web services operate effectively and efficiently. SUMMARY OF THE INVENTION An object of the present invention is to provide a technique for dynamically integrating software resources (including, but not limited to, web services) in a distributed network. Another object of the present invention is to provide a technique for leveraging a portal model and framework for real-time integration of software resources as web services. A further object of the present invention is to define techniques for making software resources available for web services using a portlet model. Yet another object of the present invention is to define techniques for using portlets as web service intermediaries. Another object of the present invention is to provide a technique for enabling programmatic management of software resources used in web services. A further object of the present invention is to provide a composition model for building web services as aggregations of other services and/or software resources. Still another object of the present invention is to provide a composition utility which enables fast and efficient construction of web services from other services and/or software resources. A further object of the present invention is to leverage a dual aggregation model for web services. Other objects and advantages of the present invention will be set forth in part in the description and in the drawings which follow and, in part, will be obvious from the description or may be learned by practice of the invention. To achieve the foregoing objects, and in accordance with the purpose of the invention as broadly described herein, the present invention provides methods, systems, and computer program products for enabling programmatic management of software resources in a content framework environment. In preferred embodiments, this technique comprises: defining a system interface for a collection of one or more software resources; populating the system interface with one or more management functions; specifying the populated system interface in a service description document; and registering the service description document in a network-accessible registry. The technique may further comprise using the populated system interface at run-time to manage the collection of software resources, and using the populated system may further comprise: retrieving, by a first retriever, the registered service description document for a selected service from the registry; binding, by the first retriever, to the populated system interface of the selected service using the retrieved service description document; programmatically notifying the selected service of an identifier of the first retriever; and establishing 2-way communications, by the selected service, using the identifier of the first retriever. Establishing the 2-way communication may further comprise: retrieving, by the selected service, the registered service description document of the first retriever from the registry; and binding, by the selected service, to the populated system interface of the first retriever using the retrieved service description document of the first retriever. The technique may further comprise using the 2-way communications to send auditing information to the first retriever, wherein the auditing information may comprise at least one of (1) quality of service information, (2) billing information, (3) events for logging, and (4) operational messages. In preferred embodiments, the collection comprises a web service modeled as a portlet, and the first retriever is a portal platform. The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 provides a diagram illustrating the participants and fundamental operations of a service-oriented architecture, according to the prior art; FIG. 2 illustrates a sample portal page in which content from visually-oriented portlets is rendered, according to the prior art; FIG. 3 is a block diagram illustrating a portlet structured as a web service proxy, according to preferred embodiments of the present invention; FIGS. 4A and 4B illustrate the content of sample WSDL documents specifying a deployment interface and a system interface, respectively, according to preferred embodiments of the present invention; FIG. 5 illustrates a graphical web service composition tool of the type which may be created according to the teachings of the present invention; FIGS. 6, 7, 9, 12, 13, and 17 provide flowcharts depicting logic which may be used to implement preferred embodiments of the present invention; FIG. 8 illustrates a web services stack which may be used in a networking environment in which the present invention operates; FIG. 10 provides a sample “tModel” which may be used to publish information to a registry; FIGS. 11A-11C are used to illustrate signatures of methods, and the need to provide a signature superset when dynamic run-time binding is to be used; FIG. 14 illustrates a sample “plug link” specification which is representative of those used according to the present invention; FIGS. 15A-15C provide syntax used to describe mapping of data between operations; FIG. 16 is a simple example of information that may be contained in a transformation registry; and FIG. 18 provides an overview of components used in describing the present invention. DESCRIPTION OF PREFERRED EMBODIMENTS The promise of web services is that disparate applications will be able to interoperate like never before, offering a new breed of seamless hyper-integrated applications through openness and urbanization of enterprise systems. Web services will make distributed software resources more widely available, and will allow software to be marketed as a service. As web services become widespread, there will be a need for managing the services and for an aggregation point where these services can be aggregated to form new services which can then be deployed. A content framework such as a portal platform provides many built-in services for content management and service hosting, such as persistence, personalization, and transcoding. The present invention defines novel techniques for leveraging portal platforms, extending the platforms to provide for aggregation, deployment, and management of web services. Providing access to software services through portal aggregation will lower integration costs and help speed time-to-market. This type of portal usage for application-to-application communication may be referred to as an “application portal”, in contrast to the “visual portals” which are designed to display information to human users. Companies providing application portals today promote low-cost Enterprise Application Integration (“EAI”) and provide application access and management through a standard portal platform. However, existing EAI products do not yet programmatically integrate web services nor do they integrate web services in real-time, and these existing products require that small “engagements” are manually provided as the “glue” necessary to define a static binding to hook web services into a portal before applications can be deployed. (For example, an engagement may be needed to surface the interface to an enterprise's customer relationship management, or “CRM”, software resources at the visual portal. The engagements often use proprietary software and/or custom-defined XML communications. This approach is therefore not suitable for dynamic, programmatic aggregation or integration on a global scale.) Current estimates are that creating such engagements requires anywhere from several days to several weeks. JamCracker, Onyx, and USInternetworking are among the companies providing EAI using application portals today. No systems are known to the inventors which enable real-time deployment of software resources by aggregating them in a modeling composition tool, and then programmatically integrating and managing them using open industry standards as disclosed herein. The present invention defines techniques for integrating web services and other back-end software resources into an application portal platform using a portlet model or paradigm, thereby creating new web services. One commercially-available portal platform on which the present invention may be implemented is the WebSphere® Portal Server (“WPS”) from the International Business Machines Corporation (“IBM”). (“WebSphere” is a registered trademark of IBM.) Note, however, that while discussions herein are in terms of a portal platform, the inventive concepts are applicable to other types of content frameworks which provide analogous functionality and are also applicable to portals other than WPS, and thus references to portals and their portlet paradigm is by way of illustration and not of limitation. Using the disclosed techniques, an application portal functions not only as an access point for statically integrating services after manually providing engagements, as in the prior art, but also functions as a full web service utility. In its capacity as a web service utility, a portal platform according to the present invention provides programmatic management of web services and dynamic run-time integration of web services. One aspect of the present invention also provides a tool for composition or aggregation of new web services. Using this composition tool, a systems administrator (or, equivalently, a service composer or other person) may define a new service composed of more fine-grained services. According to preferred embodiments of this aspect, the fine-grained services from which other services are built may reside locally or remotely, and the techniques disclosed herein enable referencing those services and using those services in a transparent manner without regard to whether they are local or remote. The fine-grained services may include any form of programming logic, including script programs, Java™ classes, COM classes, EJBs (“Enterprise JavaBeans”™), stored procedures, IMS or other database transactions, legacy applications, and so forth. (“Java” and “Enterprise JavaBeans” are trademarks of Sun Microsystems, Inc.) The web services created in this manner can then automatically be managed by the portal platform and can also be used in creating new web services in a recursive manner, as will be described. The disclosed techniques build on the portal concept of a plug-in, which is referred to in the art as a “portlet”. Portlets are known in the prior art which are visual in nature. In the visual portal model, each portlet is responsible for obtaining a portion of the content that is to be rendered as part of the complete portal page for the user. By convention, the portlet's “service” method is invoked to return markup language (such as Hypertext Markup Language, or “HTML”) syntax encapsulating the result of the portlet's execution. Once the visual portlet's content has been aggregated with other markup language syntax by the portal page from which it was invoked, the result is a Web page whose content is well suited for the needs of the portal page's human user. FIG. 2 provides an example of a prior art portal page 200 from a visual portal, where this portal page includes content from three visually-oriented portlets (see elements 210, 220, 230). Portlet 210 in this example displays news headlines. Portlet 220 shows a stock ticker for the user's favorite stocks, and portlet 230 displays the current weather and weather forecast for the user's selected city. In many content-rich visual portals, the output of visually-oriented portlets is aggregated physically on the portal page according to the portlets' content categorization or taxonomy. For example, output of news feed portlets may be provided on one tabbed page of a notebook-style visual portal, with output of weather portlets on another tabbed page and perhaps the output of portlets of interest to an enterprise's employees may be provided on another. Or, portlet output may be grouped within logical sections of a single portal page. The physical layout of the portal page may therefore enable end users to find information more quickly and efficiently. Work is ongoing to build remote interfaces to visually-oriented portlets such that visual portals can aggregate content from applications which may be located on machines other than the machine on which the portal code resides. This aggregated content will then be presented on the portal page, and whether it was obtained from a locally-available portlet or from a remote portlet will be transparent to the end user. (See, for example, “WebSphere Portal Server and Web Services Whitepaper”, T. Schaeck, published by IBM on the Internet at http://www-4.ibm.com/software/solutions/webservices/pdf/WPS.pdf, which discusses remote interfaces to visually-oriented portlets.) A portal platform provides a number of services for the portlets it hosts, as described above. The present invention leverages portlets as a portal interface, and also builds upon the concept of a remote portlet interface (where this concept is extended as disclosed herein to apply to programmatic portlets), to enable access to software resources. Portlets functioning according to the present invention are also referred to herein as “web service intermediaries” or “web service proxies”, or simply as “intermediaries” or “proxies”. That is, a portlet may now act as an intermediary between an application or software resource requesting a particular service and a software resource providing that service. According to the present invention, the software resource performing a particular function may be statically bound to a web service proxy (for example, at development time), or a web service proxy may be bound to a software resource which is dynamically selected (for example, based upon criteria which are evaluated at run-time). In either case, the portlet proxy receives request messages and forwards them to the software resource to which it is bound; once the software resource has completed the requested function, it returns its response to the portlet proxy which then forwards the response to the requester. A block diagram illustrating a portlet structured as a web service proxy is shown in FIG. 3. As shown therein, portlet proxy 340 includes a deployment interface 310, a system interface 320, and a functional interface 330. The portlet proxy communicates with a portal platform 300 using these interfaces, acting as an intermediary between the portal platform and the software resource 350 which carries out the function of interest. Details of each functional interface are specific to the web service provided by software resource 350, and do not form part of the present invention. The present invention, however, makes the functional interface of the software resources available as an interface 330 of the portlet proxy. (Exposing the functional interface using WSDL definitions and SOAP services may be accomplished using a commercially-available tool such as the IBM Web Services Toolkit, or “WSTK”, during the deployment process.) The deployment interface and system interface will be described in more detail below. The software resources invoked using the techniques of the present invention are typically designed for program-to-program interaction, but may alternatively be visual in nature. For example, visually-oriented resources may be invoked during execution of a web service which operates primarily in a program-to-program manner. The term “programmatic portlet” is used herein to refer generally to portlet proxies according to the present invention, whether or not the underlying software resource involves visually-oriented code. A deployment interface and a system interface are defined for each portlet which serves as a web service proxy, according to preferred embodiments of the present invention. (In alternative embodiments, advantages of the present invention may be realized by implementing either the deployment interface or the system interface separately, and such implementations are within the scope of the present invention. For example, there may be cases in which it may be desirable not to implement management services for some web services. In such cases, the system interface may be omitted; alternatively, a system interface might be provided which has no operations or which has operations implemented as empty functions.) These new interfaces may also be referred to as the deployment port type and system port type, respectively. A portlet according to the present invention thus defines a service provider type that includes the port types necessary for portal integration of software resources and service interaction and management. (“Port types” is a term used in the art to signify the specification of a portlet's operations, and “service provider type” is a term used to signify a collection of port types.) The deployment interface enables a portlet proxy (that is, an aggregated web service which is represented by a portlet proxy) to be used in subsequent web service composition operations, in a recursive manner. For example, the deployment interface of a portlet “A” provides information about portlet A for use as portlet A is aggregated with other portlets to form a new web service “Z”; by defining a deployment interface for web service Z, according to the present invention, information about web service Z can subsequently be provided as service Z is used for composing other new services. The system interface is used for run-time management of portlets (that is, of web services represented by portlet proxies) by the portal platform. Use of the system interface allows the portal platform to perform functions such as logging of events, billing, and other types of administrative operations pertaining to execution of the web service. This requires 2-way communication between the portal platform and the portlet proxy, and uses novel techniques which are disclosed herein. Referring now to the sample WSDL documents in FIGS. 4A and 4B (representing interface definitions), the deployment interface specification and system interface specification, respectively, are illustrated. According to preferred embodiments, the deployment and system port types are represented as WSDL documents for registration in a registry. As shown at 410 of the WSDL document 400 in FIG. 4A, the example deployment interface is named “Deployment” and includes operations such as “getDisplayName” and “getDisplayIcon16×16” (see element 430). These operations may be used, for example, to retrieve a descriptive name of the web service and to retrieve a graphic image representing the web service for placement on a palette of a web service composition tool (such as that illustrated in FIG. 5). According to the WSDL specification, the input and output messages used for communicating with a service are specified in “<message>” elements 420, where the parameters used by those messages are defined as “<part>” elements. Thus, a message element is defined for each message of each operation specified for this port type. (Refer to the WSDL specification for more information about the details of a WSDL document.) The WSDL document 450 in FIG. 4B defines the system interface, which in the example is named “System” (see element 460). A complex data type named “Event” is defined (see element 470), comprising 2 string parameters and a date parameter. This data type may be used, for example, when exchanging logging data to be recorded in an auditing log file. A “logEvent” operation is defined (see element 490), and in this example is a 1-way operation invoked using a “logEventReceive” message (see element 480) which has a parameter of type Event. In addition, the example defines a “reportUsage” operation which has 2 messages “reportInput” and “reportOutput”. The deployment port type is used at design time, and allows a new web service to be composed with a web service composition tool such as that illustrated by FIG. 5. The deployment port type contains operations pertinent to the modeling composition process. Representative examples of operations which may be useful for this purpose include “getIcon16×16” and “getIcon32×32” to retrieve icons (such as 520a, 520b) of different sizes for placement on a portlet palette (illustrated by element 510), “getDisplayName” and “getDisplayDescription” to provide textual information for presenting to a service composer (such as that illustrated at 521a and 521b), “getAuthorName” to retrieve an identification of the software developer or the service composer, and so forth. Turning now to FIG. 6, logic is depicted which may be used for creating a portlet proxy for use in a composition tool such as that represented by the sample user interface of FIG. 5. Note that while the description of FIG. 6 is presented herein in terms of preparing a WSDL document describing the portlet's operations, this logic also outlines what is required for a developer creating source code for a software resource. For example, if the software resource will report information through its system interface for quality of service or billing purposes, the developer must provide code to gather the appropriate data and return this data when requested; the method or methods which perform this function may then be identified as part of the system port type of the portlet proxy for the software resource. (See interface 320 of FIG. 3, for example, illustrating that the system interface of portlet proxy 340 exposes the management operations of software resource 350.) This process comprises first determining the operations that will be exposed as the portlet proxy's published functional interface (Block 600). For example, suppose a programmatic portlet such as the portlet represented by icon 520a in FIG. 5 provides order fulfillment services. The public interface of this portlet might include a method named “receivePurchaseOrder” (see element 530), which can be used to invoke operations of the underlying software resource. Preferably, a human determines which methods of a software resource should be publicly exposed; alternatively, programmatic operations could be used to select the methods which comprise the public interface. (For example, programmatic operations might be designed to select all public methods for exposing, or perhaps to select only the “getter” public methods.) Once the public interface is identified, WSDL markup language syntax is programmatically created to specify this information. This comprises generating <message> and <operation> elements, similar to those illustrated in FIGS. 4A and 4B. The composer may be asked to supply information for use in this process, such as the port type name, the location of the name space information, and so forth. Or, this information or parts thereof may be programmatically generated and/or retrieved from a configuration file. Techniques for programmatic generation of markup language syntax (using input supplied by a human, as well as programmatically-derived information) are known in the art, and a detailed description thereof is not deemed necessary for an understanding of the present invention. IBM's WSTK is an example of a commercially-available product which may be used to programmatically generate WSDL for an existing software resource. See “The Web services (r)evolution: Part 4, Web Services Description Language (WSDL)”, G. Glass (February 2001), published by IBM on the Internet at http://www-106.ibm.com/developerworks/webservices/library/ws-peer4, which presents an example of programmatically generating a WSDL document for a simple weather service which has “getTemp” and “setTemp” operations. FIG. 4 of this document illustrates asking a composer which methods of a class should be used in creating a public interface. It should be noted that references herein to using a WSDL syntax generator are merely for purposes of illustration; alternatively, a developer might manually create WSDL documents or another type of markup language syntax tool might be used for this purpose. In addition to specifying the public interface, the portlet's deployment port type information must be created (Block 610). An example of the deployment port type is illustrated in FIG. 4A. If the port type information is programmatically generated, for example using WSTK, this process comprises parsing the software resource's class definition to locate its methods providing the operations of the predefined deployment port type and to identify the parameters and parameter types of each method, and then generating <message> and <operation> elements, as well as <part> elements and <type> definitions as necessary. The composer may be asked to provide input during this process, as needed, such as populating the parameters for the messages of the operations. (For example, to populate the “displayIcon16×16Output” parameter of the “getDisplayIcon16×16Output” parameter, the composer might specify the Uniform Resource Locator, or “URL”, of a particular image file.) The portlet's system port type information is also created (Block 620), in a similar manner, resulting in a WSDL document such as that shown in FIG. 4B. (In preferred embodiments, the deployment and system interface definitions are placed in separate WSDL documents as shown in the examples of FIGS. 4A and 4B because they describe different behavior.) Finally, the portlet proxy for the web service is published to a registry (Block 630), after which the portlet proxy is available for use in composing new web services and its services are available for invocation (e.g. using a conventional UDDI find and bind). In preferred embodiments, documents known in the art as “tModels” are used for publishing a portlet proxy's web services information to a registry. (A “tModel”, according to the UDDI specification, is metadata which describes the specifications and the versions of specifications that were used to design published services. “tModel” is a generic term for a service “blueprint”, defining the conventions to which the registered service conforms. For example, if a registered service includes an “HTTP 1.1 tModel”, then this service is known to adhere to certain requirements and conventions associated with that tModel—and, by implication, adheres to particular requirements in its use of HTTP.) Note that a WSDL port type definition can be a tModel; it can also be a partial tModel, which is a tModel in a tModel set. Thus, a single tModel may be used to register both the deployment and system interfaces. (Refer to the UDDI specification for more information on tModels and tModel sets.) Referring now to FIG. 7, logic is shown which may be used to implement a service modeling and deployment process via a web service composition tool. Block 700 indicates that the new web service is modeled using portlets as proxies or templates for the service being aggregated. That is, a portlet may serve as an intermediary for a web service or for a local resource, defining an interface to the operations provided by one or more back-end software resources. However, the actual software resource(s) providing that service on the back end might not be selected and bound until run-time. The service composer is also able to reuse the composed templates and dynamically plug in different service providers for a static (development-time) binding. The web service composition tool preferably provides a portlet palette for use in this modeling operation, where registered portlets for a particular taxonomy or category are presented on the palette. The service composer then creates a new web service using the composition tool, for example by right-clicking on a web service icon to display its available methods and then using drag and drop operations to position selection method invocations as operations for carrying out a service. FIG. 9, discussed below, illustrates logic with which information may be gathered for use by the web service composition tool, including locating the appropriate web services to use when constructing the palette. In preferred embodiments, a directed graph is used to model the operations involved in executing the new web service. Selected portlet operations represent the nodes of the graph, and the graph edges which link the nodes represent potential transitions from one service operation or process to another. These service links can be qualified with one or more transition conditions, and also with data mapping information if applicable. The conditions specify under what conditions the next linked service should be invoked. Often, these conditions will be determined using the results of a previous service invocation. Data mapping refers to the ability to link operations between portlet port types and transfer data from one operation to another. For example, the data mapping information may indicate that the output parameters of one service are mapped to the input parameters of another service. Preferred embodiments of the present invention leverage the Web Services Flow Language (“WSFL”) for directed graphs. In particular, WSFL's persistent storage techniques and run-time evaluation techniques using directed graphs are added to a web services stack to operate upon the graphs created by a service composer. For a detailed discussion of WSFL, refer to the WSFL specification, which is entitled “Web Services Flow Language (WSFL 1.0)”, Prof. Dr. F. Leymann (May 2001), available on the Internet from IBM at http://www-4.ibm.com/software/solutions/webservices/pdf/WSFL.pdf, which is hereby incorporated herein by reference as if set forth fully. (Note that the WSFL specification discusses use of directed graphs for modeling web services, but does not teach directed graphs in combination with services which are provided by programmatic portlet proxies. The WSFL specification defines a “plug link” mechanism, discussed in more detail below with reference to Block 1380 of FIG. 13, which can be used in a proxy model to map interfaces in a simple manner as described herein. This plug link mechanism is used by preferred embodiments of the present invention as the persistent definition of integrating portlet proxies to implement web services.) A web services stack 800 used in preferred embodiments is illustrated in FIG. 8. Service flow support 810 is preferably provided by WSFL, as stated earlier. Service discovery 820 and service publication 830 are preferably provided using UDDI. A WSDL layer 840 supports service description documents. SOAP may be used to provide XML-based messaging 850. Protocols such as HTTP, File Transfer Protocol (“FTP”), e-mail, message queuing (“MQ”), and so forth may be used for network support 860. As discussed herein, WSDL is used to define web service port types and to define how to invoke operations of these port types, and WSFL is used to aggregate the web services (and therefore to aggregate their interfaces). At run-time, services are found within a registry using the UDDI service discovery process, and bound to using information from their WSDL definitions. The WSFL run-time then uses these (port type) definitions to aggregate the services. (Because the signatures of the operations will typically not match one-to-one, the WSFL plug link mechanism may be used to map between the operation interfaces.) Referring again to the example composition tool user interface in FIG. 5, the composer has selected to begin the new service with a “receive purchase order” operation 530. For purposes of illustration, suppose this operation evaluates the items on an incoming purchase order to determine whether they are in stock or not. Thus, a transition condition 535 indicates that if an item is out of stock, the next service to be executed is “place order with supplier” 540, whereas if an item is in stock, transition condition 545 applies and the next service to be executed for this item is “add item to invoice” 550. Upon occurrence of some event, such as receiving a shipment of new items or perhaps receiving a notification that the item had to be ordered from the supplier's supplier, transition condition 555 applies and a service “response from supplier” 560 is to be executed. Presumably, this service evaluates the supplier's response, and if a requested item was determined to be available, transition condition 565 applies and the item will be added to an invoice by service 550, whereas if a requested item is not available then transition condition 575 applies and the next service to be executed is “add item to backorder” 580. As will be obvious, the nodes and conditions illustrated in FIG. 5 are merely for purposes of illustration. (Data mapping information has been omitted from the example.) Turning now to FIG. 9, the process of obtaining information to present to the service composer on the user interface of a composition tool during execution of Block 700 of FIG. 7 preferably begins at Block 900 by determining the taxonomy of interest. One way in which this may be performed is to query the composer. As shown by the example in FIG. 5, the composer may have requested portlet proxies pertaining to item ordering services, and therefore palette 510 includes icons 520a, 520b representing an order fulfillment service and an order payment service. Once the taxonomy is known, the registry is programmatically scanned (Block 910) for portlets whose tModels indicate support for that taxonomy. The scan also checks for tModels representing support for the deployment interface disclosed herein, and optionally the system interface disclosed herein. See FIG. 10 for an example of a tModel that may be used to indicate support for the system service provider type of the present invention. (Optionally, a single tModel may be used to represent both the deployment and system service provider types. Or, a tModel similar to the one shown in FIG. 10 may be separately created for the deployment service provider type.) Note that the WSDL document in FIG. 4B defines an interface template for portlet proxies conforming to the sample tModel in FIG. 10. This correspondence is shown, for example, in the service provider type named in the descriptive information at 1010, and in the file name wherein the service provider type forms part of the brandon81@example.org. The <overviewURL> element of a tModel functions as a type of import statement to reference a WSDL service specification, as is known in the art. This tModel, along with its associated key, is published as a technical blueprint for a portlet proxy registered in a UDDI registry. Block 920 performs a test to see if any more portlets meeting the current criteria are available in the registry. If not, then processing continues at Block 930 where the dynamically-gathered information is used in the modeling operation to assemble aggregated services as portlet proxies. Discussion of the modeling operation continues below with reference to Block 710 of FIG. 7. When the test in Block 920 has a positive result, then the processing of Blocks 940 through 980 is performed to obtain information about the registered portlet proxy which has been located. Block 940 obtains the portlet proxy's deployment description, which is preferably implemented to provide a description of the web service, and Block 950 obtains its deployment author information. Use of this information was previously discussed with reference to FIG. 5. For example, it may be used if the composer requests to see the properties of a web service presented on the user interface of the composition tool. Block 960 obtains information about the icon to be displayed for this service on the user interface of the composition tool. Preferably, this information comprises an address such as a URL specifying where an icon image is stored. Block 970 obtains the deployment operations for this portlet, in effect determining what the portlet can do. Preferably, obtaining the deployment information for the portlet proxy in Blocks 940 through 970 comprises executing well-known methods of the deployment interface by issuing the corresponding message from the service's deployment port type. For example, using the deployment port type defined in FIG. 4A, the message “getDisplayIcon16×16Input” may be invoked to obtain the portlet's 16 by 16 icon, and if the portlet has a “getDisplayIcon32×32Input” message, this message can be invoked to obtain the portlet's 32 by 32 icon. (Blocks 940 through 970 should be considered as representative of the information that may be beneficially retrieved for a portlet proxy; additional or different information may be deemed useful in a particular implementation of the present invention.) After obtaining the pertinent deployment information about the portlet, a representation of the portlet is added to the modeling palette (Block 980), and control returns to Block 920 to determine if there are more portlets of interest in the registry. The processing of Block 920 has been described above. Returning now to the discussion of FIG. 7, once the composer completes the model of service interaction as a directed graph, at Block 710 the composer declares a service provider port type for the newly-aggregated service. In order to define this public interface, the composer may select operations to be exposed, or exported, within port types of the service of the composition, thereby identifying the public port type. The composer may select as many operations for exporting as necessary, and may also define new operations if desired. (For example, the composer might decide to define a new name for an operation, and provide a one-to-one mapping for that new name to the old name.) These exposed operations specify the means for invoking the new service. For example, with reference to the sample directed graph in FIG. 5, the composer would specify (at least) the operation “receivePurchaseOrder” corresponding to node 530 as a public interface. The composer may also provide a data mapping between an exposed operation and an internal service port type operation. For the sample directed graph in FIG. 5, having a public interface of “receivePurchaseOrder”, the composer might specify (for example) a data mapping that converts data to a particular format required by this operation, such that an input parameter named “inputPurchaseOrder” adhering to a predefined type “purchaseOrder” would be available to the service upon invocation. Providing the data mapping may comprise identifying a canned transformation component, such as an integer-to-float transform; identifying a stylesheet which contains an appropriate transformation, such as an XSLT (Extensible Stylesheet Language Transformations) stylesheet; identifying customized transformation logic, which may for example convert one complex data type to another; and so forth. (Refer to the discussion of FIG. 11, below, for more information about declaring the interface to a web service intermediary and potential web service software resources, and about providing transformation information.) The process of declaring the exposed port types (i.e. operations) results in the new service provider type for the aggregated composition. Thus, this new composition is itself a portlet proxy, or web service intermediary, that can be used as a building block in further compositions. The composer also provides a mapping for the deployment port type and for the system port type, if applicable, such that the resulting web service will be able to be used within a web service composition tool and will be able to be programmatically managed by the portal platform as disclosed herein. This is preferably accomplished by prompting the composer (using a menu-driven approach, for example) to identify operations and data mappings that will then be represented in WSFL markup language <export> and <dataLink> elements, which enable providing a new interface and doing internal mapping for that interface. (Refer to section 4.5.3, “Data Links and Data Mapping”, and section 4.6.4, “Exporting Operations”, for more information on the syntax and semantics of the <export> and <dataLink> elements.) In some cases, it may be desirable to generate the deployment and/or system port types (and similarly, the public interface of the portlet proxy) without reference to a particular target software resource. For example, suppose that run-time quality of service is an important factor in choosing a service provider for some service such as credit card processing. To provide a more generic interface which will programmatically adapt to one of several target service providers after a run-time service selection, according to the present invention, the composer may be asked to provide input for use in creating the WSDL document (see the description of Blocks 600 through 620; this process may be assisted by parsing class definitions and having the composer point to the right operations. The examples in FIGS. 11A and 11B show signatures that might exist for two candidate software resources for a credit card processing operation. The example in FIG. 11C shows a sample signature that might be designed as a superset which includes all parameters for both possible candidates. The manner in which a run-time mapping of input parameter values to the parameters required by the selected resource occurs is described below. In preferred embodiments, a WSFL “flow model” is used to persistently store the new service composition. Thus, the flow model of the newly-composed web service is created (Block 720). This flow model is transmitted as a document accompanying the UDDI publish message for the new web service (Block 730), after which the new web service becomes automatically available to service requesters (such as other business units of an organization or its business partners). A WSFL flow model is a markup language specification of the execution sequence of the functionality provided by the web service which has been composed as a directed graph (where the directed graph was constructed during execution of Block 700). See section 8.4, “The Flow Models for Airline and Agent”, in the WSFL specification for examples of flow models and their syntax. The WSFL specification provides a thorough description of the syntax requirements for flow models, and that discussion is not repeated herein. The flow model used with the present invention may be programmatically constructed using the logic shown in FIG. 12, as will now be described. The flow model construction process, wherein the directed graph created by the composer is converted to a WSFL flow model, is shown in FIG. 12 and begins at Block 1200 by locating the starting node of the graph. A WSFL activity element will be defined for each graph node, or operation, within the composition, as indicated by Block 1210, beginning from the located starting node. (Refer to the WSFL specification for a detailed description of the syntax of the elements created during the processing of FIG.
{'app_number': None, 'application_number': '<application-reference appl-type="utility">\n<document-id>\n<country>US</country>\n<doc-number>11247360</doc-number>\n<date>20051011</date>\n</document-id>\n</application-reference>', 'doc_number': None, 'publication_number': '<publication-reference>\n<document-id>\n<country>US</country>\n<doc-number>20060036682</doc-number>\n<kind>A1</kind>\n<date>20060216</date>\n</document-id>\n</publication-reference>', 'source_file': './application/2006/ipa060216.xml', 'source_data': 'USPTO-Application'}