US20020178254A1 - Dynamic deployment of services in a computing network - Google Patents

Dynamic deployment of services in a computing network Download PDF

Info

Publication number
US20020178254A1
US20020178254A1 US09/864,663 US86466301A US2002178254A1 US 20020178254 A1 US20020178254 A1 US 20020178254A1 US 86466301 A US86466301 A US 86466301A US 2002178254 A1 US2002178254 A1 US 2002178254A1
Authority
US
United States
Prior art keywords
deployment
service
server
selected service
servers
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
US09/864,663
Inventor
Peter Brittenham
Douglas Davis
David Lindquist
Ajamu Wesley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to US09/864,608 priority Critical patent/US8180871B2/en
Priority to US09/864,663 priority patent/US20020178254A1/en
Priority to US09/864,607 priority patent/US7325047B2/en
Assigned to INTERNATIONAL BUSINESS MACHINES CORPORATION reassignment INTERNATIONAL BUSINESS MACHINES CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LINDQUIST, DAVID B., BRITTENHAM, PETER J., DAVIS, DOUGLAS B., WESLEY, AJAMU A.
Priority to IL15296301A priority patent/IL152963A0/en
Priority to JP2002591999A priority patent/JP2004533687A/en
Priority to CA002415314A priority patent/CA2415314A1/en
Priority to KR10-2003-7013871A priority patent/KR20040000441A/en
Priority to CNA018220134A priority patent/CN1620653A/en
Priority to PCT/US2001/031268 priority patent/WO2002095605A1/en
Priority to EP01979520A priority patent/EP1402385A4/en
Priority to TW091110821A priority patent/TW591909B/en
Publication of US20020178254A1 publication Critical patent/US20020178254A1/en
Priority to US11/867,927 priority patent/US7523177B2/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1012Server selection for load balancing based on compliance of requirements or conditions with available server resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Definitions

  • the present invention is related to U.S. Pat. No. ______ (Ser. No. ______), which is titled “Dynamic Undeployment of Services in a Computing Network”, and U.S. Pat. No. ______ (Ser. No. ______) which is titled “Dynamic Redeployment of Services in a Computing Network”, both are which are commonly assigned to International Business Machines Corporation and which were filed concurrently herewith.
  • the present invention relates to computer networks, and deals more particularly with methods, systems, and computer program products for dynamically deploying services (such as web services or other network-accessible services) to various sites within a network.
  • services such as web services or other network-accessible services
  • Web services technology is rapidly emerging as a mechanism for distributed application integration.
  • 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.
  • order placement service i.e. order placement software
  • Caching attempts to avoid repeated generation of content by storing content and serving it to subsequent requesters whenever possible.
  • Serving cached content not only reduces the workload on the back-end computing resources, but it also improves response time to the user.
  • Workload balancing improves the performance of a Web site by dynamically adjusting the amount of work sent to each server in a clustered group of servers.
  • Content distribution attempts to proactively (statically) publish static content to various locations in the network, for example to cache servers in order to increase the likelihood that requests can be served from cache.
  • Content Distribution Service Providers (“CDSPs”) offer a valuable service by providing access to their broad network infrastructure for caching of static content in close proximity to the end user. This, in turn, enables enterprises to scale their operations in a cost-effective manner.
  • Dynamic content distribution i.e. dynamically moving generated content closer to users
  • Dynamic content distribution would yield the same scalability benefits.
  • applications e.g. those which provide session management within their presentation logic, and which only access the back-end business logic in batch mode
  • FIG. 1 provides a diagram of a representative server site 100 (i.e.
  • This example server site 100 comprises a cluster 150 of application servers 140 (such as IBM WebSphere application servers);
  • back-end enterprise data servers 160 such as IBM OS/390® servers running the DB/2, CICS® and/or MQI products from IBM
  • Web servers 130 such as Apache, Netscape, or Microsoft servers; note that the application server and Web server are often co-resident in a single hardware box
  • firewalls 110 and several edge servers or reverse proxies/caches/load balancers 120 are registered trademarks of IBM.
  • edge server technology will bring some dynamic aspects of application programs to the edge of the network. This will be accomplished via hosting web applications at the network edge and statically deploying presentation logic (such as servlets, JSPTM, PHP, etc.) at those edge servers.
  • presentation logic such as servlets, JSPTM, PHP, etc.
  • JSP, or JavaServer PagesTM is presentation logic represented using scripting commands for dynamically embedding content into Web documents.
  • JSP and “JavaServer Pages” are trademarks of Sun Microsystems, Inc.) PHP (“Personal Home Page”) is another scripting language that may be used to embed content in Web documents dynamically.
  • Web services will facilitate “just-in-time” application integration via open web-based standards, such as 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 invoke 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.
  • W3C World Wide Web Consortium
  • XML Protocol 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. Just-in-time application integration will be possible by Issuing UDDI requests to locate distributed services through a UDDI registry, and dynamically binding the requester to a located service using service information which is conveyed in a platform-neutral WSDL format using SOAP/XML Protocol and HTTP messages.
  • WSDL Web Services Description Language
  • An object of the present invention is to provide a technique for dynamically deploying network-accessible services (including, but not limited to, web services) in a distributed network.
  • Yet another object of the present invention is to provide a technique for dynamically deploying network-accessible services based upon usage metrics.
  • Another object of the present invention is to provide a technique for dynamically deploying network-accessible services based upon load balancing considerations.
  • this technique comprises: receiving client requests for a selected service; serving the received requests from a first server when the selected service has not yet been dynamically deployed; effecting a dynamic deployment by programmatically moving the selected service from the first server to one or more other servers when the dynamic deployment is triggered; and serving the received requests from the one or more other servers after the effecting step causes the selected service to be dynamically deployed.
  • the present invention may also be used advantageously in methods of doing business, for example by offering dynamic deployment services that will result in more efficient web hosting sites (which may in turn offer their customers the advantage of reduced end-to-end costs and/or improved efficiency for the customer site).
  • FIG. 1 is a diagram of a server site in which edge servers route incoming content requests, according to the prior art
  • FIG. 2 provides a diagram illustrating components of the present invention and their placement and interconnection within a network configuration
  • FIG. 3 illustrates a data structure that may be used to accumulate usage metrics for use with the present invention
  • FIG. 4 illustrates a 12-stage process with which dynamic service deployment may be performed, according to preferred embodiments of the present invention
  • FIG. 5 illustrates the content of a sample deployment request which may issued, according to preferred embodiments of the present invention
  • FIG. 6 illustrates the content of a SOAP request which may issued in response to receiving the message in FIG. 5, according to preferred embodiments of the present invention
  • FIG. 7 illustrates the content of a sample SOAP envelope that may be returned as a response to the deployment request of FIG. 6, according to preferred embodiments of the present invention
  • FIGS. 8 and 10 illustrate two approaches that may be used for dynamically undeploying services, according to an optional enhancement of the present invention
  • FIG. 9 illustrates a data structure that may be used to record deployment locations for deployed services.
  • FIG. 11 illustrates a process that may be used for dynamically updating or redeploying services, according to another optional enhancement of the present invention.
  • usage metrics are computed dynamically based upon incoming client requests for particular web services.
  • services dynamically as a function of user demand, the right software will be accessible from the edge, even in cases of rapidly fluctuating usage patterns.
  • web services may encapsulate any form of programming logic, including script programs, JavaTM classes, COM classes, EJBs (“Enterprise JavaBeans”TM), stored procedures, IMS or other database transactions, etc., as is known in the art. (“Java” and “Enterprise JavaBeans” are trademarks of Sun Microsystems, Inc.)
  • JavaTM classes COM classes
  • EJBs Enterprise JavaBeans
  • stored procedures IMS or other database transactions, etc.
  • IMS Internet Services
  • web services may encapsulate any form of programming logic, including script programs, JavaTM classes, COM classes, EJBs (“Enterprise JavaBeans”TM), stored procedures, IMS or other database transactions, etc., as is known in the art. (“Java” and “Enterprise JavaBeans” are trademarks of Sun Microsystems, Inc.)
  • the prior art restriction of deploying only presentation logic at the edge is removed when using the present invention (assuming the necessary run-times exist at the point of deployment, as will be
  • usage metrics is used herein to refer to gathered information about the number of times a particular web service is requested.
  • a threshold may be set for a usage counter and may be used to determine when a service is being requested often enough that efficiencies may be realized by deploying the service to an edge server.
  • it may be desirable to use a single threshold for all web services in other implementations, it may be desirable to provide for multiple threshold values (including a different threshold for each individual web service).
  • the value of the threshold(s) will be set by a systems administrator when configuring network parameters. (Alternatively, default values may be used for some threshold values, and/or some threshold values may be set programmatically.)
  • the dynamic deployment technique of the present invention may operate within a network configuration such as the sample network shown in FIG. 1, where the edge servers 120 are modified to enable dynamic deployment as described herein.
  • FIG. 2 shows an abstract representation of a network configuration in which the present invention may operate, illustrating placement of components that perform the dynamic deployment process and their network interconnection. These components will now be described.
  • the components of the deployment system comprise a Point of Presence (“POP”) Deployment Facilitator 230 (also referred to herein as the “deployment facilitator or “DF”), a CDSP Deployment Node 260 (also referred to herein as the “deployment node” or “DN”), and a Deployment Provider 280 (“DP”).
  • POP Point of Presence
  • DF Deployment facilitator
  • DN CDSP Deployment Node
  • DP Deployment Provider 280
  • a deployment run-time container (“DRTC is used for optional enhancements of the present invention which provide for undeployment and redeployment, as discussed below.
  • the DRTC may also be used in the dynamic deployment system, if desired.)
  • a service requester 210 e.g.
  • a client application a public UDDI registry 220 , an edge server or POP 240 , a Domain Name System (“DNS”)-based host resolution system 250 , a private UDDI registry 270 , and an origin server 290 are shown.
  • DNS Domain Name System
  • Elements 210 , 220 , 240 , 250 , 270 , and 290 are generally known in the art (with the exception of the dynamic deployment, undeployment, and redeployment functions to be described herein), and these existing elements will not be described in detail herein.
  • the deployment facilitator component 230 resides on an edge server 240 and will coordinates deployment of web services from one or more origin servers 290 to the CDSP access point which is co-located with the DF 230 , as will be described in more detail with reference to FIG. 4.
  • the deployment node 260 stores usage metrics for this CDSP, and updates these metrics as it monitors incoming service requests. Upon reaching a threshold usage value, the deployment node is responsible for initiating the deployment of the corresponding service to a particular POP (e.g. to a particular edge server).
  • the deployment node further comprises a private UDDI registry 270 , which manages the current state of the service deployments for this specific CDSP.
  • the private UDDI node is preferably a partner catalog UDDI node which is hosted within the CDSP's firewall, and which allows only vetted partners to publish their services for inclusion in its UDDI registry. In addition, only requesters within the organization (i.e. behind the firewall) are allowed to request information from this private UDDI node. By replicating the contents of the private UDDI registry 270 with public UDDI registry 220 , requesters outside the organization are able to request services which are located within the organization.
  • UDDI registry 220 may alternatively be a portal UDDI node (i.e. another type of private node) which is hosted in the CDSP's demilitarized zone (“DMZ”).
  • a portal UDDI node allows any requester to find services, but only allows the CDSP to publish to it.
  • CDSPs of the prior art typically provide an internal service which includes a DNS 250 for dynamically locating a server which provides requested content, ping triangulation means for determining the geographic location of a requester, and IP address maps which are used to transparently redirect client requests to the appropriate POP (i.e. to a POP which is located relatively near to the requester) given a common request URL (“Uniform Resource Locator”).
  • the DN 260 will interact with such a system such that dynamic service deployments will be reflected to the client transparently. (That is, the client will ask for a particular service, and the DNS system will determine where that service is currently deployed and automatically route the client's request to that current location.) This transparent redirection is discussed in more detail below with reference to FIG. 4.
  • the deployment provider 280 exists within the enterprise network, preferably at an origin server 290 , and will respond to deployment requests in order to automatically and programmatically deploy a service to a requesting edge server 240 . It is assumed that the “edgeable” aspects of a service application (that is, those aspects which are capable of deployment to the edge of the network) will be packaged and stored within the deployment provider's context appropriately (i.e. as an Enterprise Archive (“EAR”), as a Web Archive (“WAR”), as a Java archive (“JAR”), etc.)
  • EAR Enterprise Archive
  • WAR Web Archive
  • JAR Java archive
  • FIG. 3 A data structure that may be used by preferred embodiments of the present invention is illustrated in FIG. 3.
  • this data structure is used by DN 260 to store usage counts for particular services at individual POPs. (In some embodiments, it may be desirable to track and deployed services based upon usage metrics which reflect system-wide activity.)
  • the services are preferably identified by their UDDI binding keys. (Alternatively, they may be identified by their service name or other similar identifier, service provider, and ultimate end point.)
  • the data structure is referred to herein as a “table” for purposes of illustration, and the service information stored therein is shown as having a distinct row for each POP managed by the CD SP.
  • a process which is described herein using 12 stages is used for deploying web services dynamically.
  • a standards-based web services platform is preferably leveraged in this deployment process, where that platform includes SOAP, WSDL, UDDI, and HTTP message flows.
  • a specification being promulgated by W3C which is titled “SOAP Messages with Attachments, W3C Note 11 December 2000” (see http://www.w3.org/TR/2000/NOTE-SOAP-attachments-20001211) describes a standard way to associate a SOAP message with one or more attachments in their native format using a multi-part MIME (“Multi-purpose Internet Mail Extensions”) structure for transporting the attachments.
  • MIME Multi-purpose Internet Mail Extensions
  • SOAP is the standard messaging format for invoking web services
  • this SOAP attachment standard is used in preferred embodiments of the present invention as the mechanism for dynamically deploying web services.
  • semantically similar components may be substituted for those described herein without deviating from the scope of the present invention.
  • SMTP Simple Mail Transfer Protocol
  • XML Protocol may be used instead of SOAP.
  • FIG. 4 uses encircled numerals to indicate each of the stages in the 12-stage process of the preferred embodiments, in terms of the components which were depicted in FIG. 2. Each of the 12 stages will now be described with reference to FIG. 4.
  • stage 1 a web service 495 is deployed at an origin server 290 .
  • This stage uses prior art deployment techniques which do not form part of the present invention.
  • the web service 495 is then published (stage 2) to the deployment node 260 .
  • this publish operation uses the UDDI Programmer's API (“Application Program Interface”) to transmit a WSDL document from origin server 290 to deployment node 260 for storage in the private UDDI registry 270 .
  • the UDDI Programmer's API may be found at http://www.uddi.org/pubs/ProgrammersAPI-V1-1.pdf, and is titled “UDDI Programmer's API 1.0, UDDI Open Draft Specification 30 September 2000”.
  • the transmitted WSDL document describes the deployed service, using the format specified in the WSDL specification.
  • the deployment node 260 also preferably stores provider meta-data associated with this document (such as the network location of the origin server 290 which sent the document).
  • the deployment node 260 replicates its private UDDI registry 270 with public UDDI registry 220 , preferably using a UDDI command (such as “save_service”) of the “publish” API.
  • a UDDI command such as “save_service”
  • the following HTTP request may be used to publish information to a test-level IBM registry named “testregistry”:
  • the deployment node 260 also preferably updates the DNS entries in repository 452 at this point, so that DNS 250 will automatically cause subsequent client requests for this web service 495 to be routed to the deployment node 260 . (The deployment node will then forward these subsequent requests to the proper location of web service 495 , using information stored in the data structure shown at 300 in FIG. 3. The DN's processing of incoming client requests is described in more detail below, with reference to stage 5.) The DN also preferably creates an initial entry in its table 300 , comprising the UDDI binding key for this published service and having a zero value for the usage count.
  • a hosting redirector relationship may be established between the private UDDI registry 270 (i.e. partner catalog) and the public UDDI operator node at 220 .
  • This relationship enables any “find” requests to the public node to reference the entries in the private node. In this case, the triangulation process described in stage 5 is not needed when routing requests.
  • a client i.e. service requester 210 issues a UDDI command such as “find_service” from the “inquiry” API to interrogate the public UDDI registry 220 for the location of a particular service.
  • a UDDI command such as “find_service” from the “inquiry” API to interrogate the public UDDI registry 220 for the location of a particular service.
  • the following HTTP request may be used to inquire into the location of a service using the registry named “testregistry”:
  • the resolved service definition will contain end point information which references the URL of deployment node 260 (thereby causing client 210 to send its subsequent request to the DN).
  • the UDDI binding template will provide a binding key “A” referencing a second binding template “B” managed by the deployment node.
  • Binding template “B” will provide the “access point” element for the redirection service hosted at the deployment node.
  • This redirection service will respond to get_bindingDetail messages given the appropriate binding key “A” with a binding template which provides the access point for the desired service.
  • the client then issues a service request (stage 5), depicted in FIG. 4 as “binding” to the service.
  • this service request is routed to the deployment node 260 .
  • the CDSP's DNS function 250 intercepts this request and obtains a current location of the requested service from its DNS repository 452 . If the service has already been deployed at the client's POP 240 (which may be determined using techniques such as ping triangulation to determine where the client is, and IP maps to find the client's POP, or via the hosting redirector relationship), then the request is routed to that POP for processing (as shown in FIG. 4). If the service has not yet been deployed at the client's POP, then processing occurs as in stage 6.
  • the deployment node receives the client's service request and forwards it on to the origin server 290 where the requested web service 495 is currently deployed.
  • the service is processed at the origin server, and the service results are returned to the client (not shown in FIG. 4).
  • the deployment node After the deployment node receives each service request, in stage 7 of preferred embodiments it updates the usage metrics for the service to reflect the client request. (Refer to the table in FIG. 3, where the DN deployment node preferably maintains information for client requests.) If the service has been accessed previously, the usage counter is incremented. If this is the first request issued for the service, the usage counter is set to 1. The example in FIG. 3 shows that a service having the UDDI binding key “xxx” has been requested 100 times from the San Francisco-based POP but only 33 times from the New York City-based POP.
  • the DN 260 After updating the usage metric, in stage 8 the DN 260 checks to see if the usage counter is equal or greater to the threshold value which was configured by the administrator (or otherwise set). If it is, this indicates that the service should be deployed to the client's POP. That is, clients of this POP are requesting the service sufficiently often that it appears to be useful and efficient to deploy a copy of the service at the local POP (e.g. to reduce network round-trip times and thereby improve response time to the client, as well as to reduce the transmission and processing burden within the back-end system). Therefore, the deployment node will issue a deployment request to the deployment facilitator (shown in FIG. 4 as flow 8 ) at the appropriate POP 240 . This deployment request preferably provides the service description which can be used to initiate a deployment from the deployment provider 280 .
  • FIG. 5 shows a sample deployment request, containing a service description which is encoded using WSDL
  • the sample deployment request in FIGS. 5A and 5B specifies an interface definition.
  • the interface definition is that of the deployment service of the present invention.
  • the example interface is named “Deployment-interface” and is invoked using a “getDeployedService” method 540 (see FIG. 5B).
  • Two messages “DeploymentRequest” 520 and “DeploymentResponse” 530 are defined.
  • the DeploymentRequest message includes a “runtimeEnvironment” part, whereby a deployment facilitator may specify POP-specific information to be used by the deployment provider when preparing a particular service for deployment at that POP (as discussed in more detail below with reference to stage 9).
  • a binding is defined which provides mappings between the WSDL operations and messages to SOAP, as shown at 550 .
  • the result of invoking the Deploy method is either an archive reference or a service archive (see element 560 ).
  • FIG. 5C specifies an implementation definition of the deployment service, which is also sent in stage 8.
  • stage 9 the deployment facilitator 230 at the client's POP then issues a SOAP request to the deployment provider 280 , using the information obtained from the deployment node 260 in stage 8, where this SOAP request asks that the service in question be deployed dynamically.
  • An example of the SOAP request which may be transmitted in stage 9 is shown in FIG. 6. Note that the name or other identifier of the service to be deployed is specified as the content of a tag such as “serviceName” 610 . In this example, the unique service identifier “urn:www.acme.com: stockquoteservice” has been specified, indicating that the “stockquoteservice” service requested by client 210 and located at “www. acme.com” is to be dynamically deployed.
  • the deployment request sent in stage 9 need only identify the requested service.
  • this simple approach is appropriate if the requested service is written in Java and each POP has a Java run-time, if each POP is running the same operating system, and if each POP supports the same version of SOAP and thus understands the same deployment message syntax.
  • different SOAP servers might be running at some POPs, where these servers have different ways of deploying services.
  • the requested web service might be written in a language which is not portable.
  • each service to be deployed may be stored at the origin server (or in a repository which is accessible to the origin server).
  • a different version of the service can then be sent to particular POPs, depending on the support available at that POP.
  • a COM application for a Windows operating system may be deployed to one requester of a particular service, whereas this same service might be deployed as a C program to a POP running a LinuxTM operating system.
  • LinuxTM is a trademark of Linus Torvalds.
  • preferred embodiments of the present invention support the “runtimeEnvironment” element which was defined in 520 of FIG. 5A to allow the POP to provide information on its configuration to the deployment provider when requesting deployment of a service.
  • the deployment facilitator has provided several types of runtime information.
  • the information includes the name of the operating system running at the POP (Windows 2000), the name of the SOAP server (Apache SOAP V2.1), and the run-time environment (Java).
  • the deployment provider can then choose the correct implementation of the web service to deploy on that particular POP.
  • the contents of the deployment run-time environment string can be as simple or as complex as needed for the overall environment. (That is, the parameter value may be empty if the same SOAP server is used throughout the environment and all web services in written in Java, for example; or, different or additional types of information might be provided.
  • the deployment facilitator may specify a version number for use by the deployment provider.
  • the deployment provider 280 then returns (in stage 10) a SOAP envelope to the deployment facilitator 230 , where the SOAP envelope includes either an archive reference or a service archive (as discussed above with reference to element 560 of FIG. 5).
  • an enterprise archive EAR is included as a MIME attachment within the HTTP response transporting this SOAP envelope, in accordance with the SOAP Messages with Attachments specification which has been described.
  • an “href” attribute on a tag having a name such as “ArchiveRef” specifies an address that matches the content ID 720 in a binary attachment.
  • the href attribute may be omitted, assuming that the SOAP server is adapted to process the ArchiveRef tag and then issue a search against the Content ID elements of the attachments, using the content of the ArchiveRef tag.
  • the deployment facilitator 230 accesses the local SOAP Server API to deploy the service on the client's POP 240 .
  • the SOAP Server API is known in the art and does not form part of the present invention.
  • the deployment facilitator 230 preferably returns a successful return code to the deployment node 260 , which then updates the DNS entries in repository 452 to indicate that this web service is now deployed at edge server 240 (as shown at 448 in FIG. 4).
  • the DNS By updating the DNS in this manner, subsequent requests for this service from those clients who use this edge server 240 as a POP will now be automatically routed to the service deployed at 448 , rather than the service 495 deployed at the origin server 290 .
  • the deployment system of the present invention provides an extensible framework for deploying web services dynamically.
  • Preferred embodiments, as described herein, use usage metrics to initiate service deployment.
  • Other embodiments may use other triggering events without deviating from the inventive concepts disclosed herein.
  • the DN may monitor load on the network, and may use this information in the dynamic deployment decision of stage 8 instead of (or in addition to) the usage metrics which have been discussed.
  • preferred embodiments of this deployment system leverage the web services stack of UDDI, WSDL, SOAP/XML Protocol, and HTTP, as has been described, they may be seamlessly integrated on a myriad of platforms.
  • Edge servers represent one application platform which will make use of such a deployment system, and are described herein for purposes of illustration and not of limitation.
  • an implementation may provide for dynamically undeploying and/or redeploying web services.
  • These enhancements will now be described. (Note that while preferred embodiments of these optional enhancements are described with reference to the deployment process which has been described above, this is for purposes of illustration and not of limitation. The undeployment and redeployment techniques described below may also be used advantageously with services which have been otherwise deployed.)
  • an optional enhancement of the present invention enables a web service to be undeployed dynamically.
  • this undeployment may be conditional or selective; in another aspect, it is unconditional.
  • the usage metrics for a web service may be used to determine when the service should be undeployed.
  • the usage metrics are the average number of usage requests received over a period of time.
  • a threshold may be set to indicate the utilization rate at which the service should be undeployed.
  • the threshold is preferably stored at the deployment node 260 , and may optionally be changed if necessary (e.g. by the deployment provider 280 , by a systems administrator, etc.). For example, if the usage metric is the average number of requests per day for a month and the threshold is set at 100 requests per day, then the web service will be undeployed if the utilization rate at the end of a month drops below 100 requests per day. (In implementations where criteria other than usage requests determines the dynamic deployment of a service, the undeployment preferably reflects that other criteria.)
  • this usage metric is maintained on the edge server 240 .
  • the usage metric is calculated by maintaining a usage counter for a period of time equal to one month.
  • the edge server also stores the date that the count was started, and the usage counter is reset at the end of each month. Or, a sliding one-month interval may be used. (Note that it is not strictly required that each edge server maintain usage metrics for a particular service deployed on that server. In some implementations, it may be sufficient to accumulate representative usage metrics at selected edge servers.)
  • the deployment node 260 is responsible for issuing the undeployment request according to preferred embodiments of this optional enhancement.
  • the deployment node therefore monitors the utilization rate that will be used to determine when a web service on an edge server should be undeployed. Periodically, the deployment node may query each edge server to obtain the usage metrics. If the usage metric is less than the threshold value, then the web service is undeployed.
  • the deployment node 260 When the deployment node 260 is started, it is preferably configured to check the status of deployed services at a specified time interval. This time interval should be set based on the usage patterns for the deployed web services. The particular time interval used is not significant, and may be expressed (for example) in minutes, hours, days, weeks, or months.
  • an undeployment threshold value for that service is preferably stored on the deployment node 260 . This threshold value may then be used to determine when a dynamically deployed web service should be undeployed.
  • the deployment node will obtain a list of all dynamically deployed web services. This list is obtained from the private registry 270 , since a new business service entry is created in the registry for each dynamically deployed web service. This list will contain a reference to all of the deployment facilitators where web services have been deployed.
  • the table 900 in FIG. 9 illustrates a simple example of a format in which this information may be stored. As shown therein, a service identifier 910 such as a UDDI binding key identifies each deployed service, and information 920 such as an IP address identifies where these services have been deployed. (Note that information in the table 300 of FIG. 3 and the table 900 of FIG. 9 may be merged, or may be separately stored, as desired.)
  • Each deployment facilitator 230 is sent a usage metrics request. In response, the deployment facilitator will obtain the usage metrics from the deployment run-time container and return them to the deployment node 260 . (In each POP 240 , each deployment facilitator 230 has access to the deployment run-time container 245 , which provides the interface to the run-time environment for the web service. The deployment run-time container maintains the POP-specific usage metrics used for this undeployment mechanism.)
  • the deployment node 260 will compare the usage metrics to the threshold value. If the usage metrics are less than the threshold, the deployment node will start the undeploy process for the web service.
  • the undeploy process will start by sending a request to the DNS server 250 to remove the entry for the web service from the DNS repository 452 . After this request is processed, the web service will not receive any further requests.
  • the deployment node will then send the deployment facilitator a request to undeploy the web service.
  • a deployment facilitator When a deployment facilitator receives an undeploy request, the web service 448 is shut down and the executable code for the web service is removed from the run-time environment on the edge server 240 . After the undeploy request is completed, a response is preferably sent to the deployment node that indicates that the web service has been successfully undeployed (not shown in FIG. 8).
  • the deployment node will then remove the entry in the private registry for the web service that was undeployed.
  • the deployment provider 280 will issue an undeploy request from the origin server 290 to the deployment node 260 .
  • the deployment provider is preferably the only participant in scheme that is allowed to issue this type of request.
  • the deployment node will verify that the web service is deployed at its node, by searching for it in its private registry 270 .
  • the deployment node will start the undeploy process by sending an unpublish request to the public registry 220 . After this request is processed, service requesters 210 will not be able to find the web service description, but all of the web services will still be running.
  • the deployment node After the unpublish request is completed, the deployment node notifies the DNS 250 server to remove all of the entries for the web service. When these entries are removed, the only version of the web service that can be accessed by a service requestor is the one running on the origin server.
  • the private registry on the deployment node 260 contains references to the deployment facilitators and the origin server 290 .
  • the deployment node will remove the entry for the origin server so that it will no longer forward service requests to the origin server.
  • the deployment node 260 will obtain a list of the deployment facilitators 230 where the web service was deployed. This list is obtained from the private registry 270 , since a new business service entry is created for each dynamically deployed web service.
  • a response will preferably be sent to the deployment provider that indicates that the undeploy request has been completed.
  • the deployment provider will shut down the web service 495 that is running on the origin server and then remove the executable code.
  • a web service After a web service has been deployed initially, it may have to be updated (e.g. to fix defects or to add new functions). For a web service that is statically deployed according to the prior art, there are four basic steps to the typical web service update process.
  • this redeployment process needs to be enhanced to update the original deployed web service, as well as all of the dynamically deployed web services.
  • all of the web services should be updated, so that the update is available on all deployed systems at the same time.
  • the update process preferably starts when the deployment provider updates the web service on the origin server 290 . This may be done by shutting down the web service, updating the service's executable code and meta information, and then starting the service again.
  • the deployment provider 280 will issue an update request from the origin server 290 to the deployment node 260 .
  • the deployment provider is preferably the only participant in this scheme that is allowed to issue this type of request.
  • the deployment node will verify that the web service has been deployed, by searching for it in its private registry 270 .
  • the private registry contains a reference to the web service that is deployed on the origin server 290 , as well as all of the dynamically deployed web services.
  • the update request will be processed by the deployment node.
  • the deployment node is responsible for completing the update request from the deployment provider. If the web service is not found in the private registry, then an error message is preferably sent back to the deployment provider (not shown in FIG. 11).
  • the deployment node starts the update process by sending an unpublish request to the public registry 220 . After this request is processed, service requesters 210 will not be able to find the web service, but all of the web services will still be running.
  • the deployment node After the unpublish request is completed, the deployment node will obtain a list from its registry 270 of the deployment facilitators 230 where the web service was deployed.
  • the DNS server 250 is updated so that all requests are sent to the deployment node. While the update is being processed, the deployment node will preferably return an error message to any service requesters that try to access the service.
  • the deployment node After the DNS server is updated, the deployment node sends an update request to each deployment facilitator in the list obtained in step 5 .
  • this update request is formatted in a similar manner and uses a similar syntax as the deployment request which is sent in stage 8 of the deployment process (see FIG. 4), but differs in that it conveys that this is an update request.
  • this (re)deployment request uses the same format and syntax which has previously been described with reference to stage 9 (see FIG. 4) of the deployment process.
  • the deployment facilitator After the deployment facilitator receives the updated web service package from the deployment provider 280 , it will deploy the web service code and meta information in the runtime environment and then start the service.
  • the deployment node When the deployment node has completed the update request from the deployment provider, it will send a request to the DNS server to re-activate the original DNS entries for the deployed web services and will publish the updated service description to the public registry 220 .
  • Service requests will be re-routed to the deployed web services by the DNS server, or will be routed to the deployment node and forwarded to the web service that is running on the origin server, in the manner which has previously been described for stages 5 and 6 of the deployment process. (Refer to FIG. 4 for a depiction of these flows, which have not been shown in FIG. 11.)
  • the update process is preferably completed when the deployment node sends a response to the update request to the deployment provider (not shown in FIG. 11).
  • embodiments of the present invention may be provided as methods, systems, or computer program products. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product which is embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and so forth) having computer-usable program code embodied therein.
  • computer-usable storage media including, but not limited to, disk storage, CD-ROM, optical storage, and so forth
  • These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flow diagram flow or flows and/or block diagram block or blocks.
  • the computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flow diagram flow or flows and/or block diagram block or blocks.

Abstract

Methods, systems, and computer program products for improving network operations by dynamically deploying services (such as web services or other network-accessible services) in a computing network. A process is defined whereby conditions such as usage metrics for incoming client requests (or other network conditions such as load balancing considerations) are monitored, and used to trigger dynamic deployment of web services to locations in the network in order to improve efficiency (e.g. by reducing response time to the client and/or reducing the burden on the back-end computing system resources). Service requests are dynamically routed to the destination where the service resides, in a manner which is transparent to the client. In an optional aspect, programmatic replication of system upgrades may be implemented by redeploying services using this same dynamic deployment approach, enabling the complexity of upgrading previously-deployed software to be reduced significantly. As another optional aspect, previously-deployed software may also be automatically and programmatically undeployed using disclosed techniques.

Description

    RELATED INVENTIONS
  • The present invention is related to U.S. Pat. No. ______ (Ser. No. ______), which is titled “Dynamic Undeployment of Services in a Computing Network”, and U.S. Pat. No. ______ (Ser. No. ______) which is titled “Dynamic Redeployment of Services in a Computing Network”, both are which are commonly assigned to International Business Machines Corporation and which were filed concurrently herewith.[0001]
  • BACKGROUND OF THE INVENTION
  • 1. Field of the Invention [0002]
  • The present invention relates to computer networks, and deals more particularly with methods, systems, and computer program products for dynamically deploying services (such as web services or other network-accessible services) to various sites within a network. [0003]
  • 2. Description of the Related Art [0004]
  • Web services technology is rapidly emerging as a mechanism for distributed application integration. 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. [0005]
  • 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. Whereas the early Internet served primarily as a distributed file system in which human users could request delivery of already-generated static documents, the trend in recent years has been to add more and more dynamic and personalized aspects into the content that is served to requesters. Typically, this dynamic and personalized content has been generated in the enterprise network. This approach, however, places a heavy demand on the enterprise computing resources. Several techniques have been developed for alleviating the processing burden on back-end servers, including caching of static content (and to a limited extent, caching of content after it has been dynamically generated); workload balancing; and content distribution. [0006]
  • Caching attempts to avoid repeated generation of content by storing content and serving it to subsequent requesters whenever possible. Serving cached content not only reduces the workload on the back-end computing resources, but it also improves response time to the user. Workload balancing improves the performance of a Web site by dynamically adjusting the amount of work sent to each server in a clustered group of servers. Content distribution attempts to proactively (statically) publish static content to various locations in the network, for example to cache servers in order to increase the likelihood that requests can be served from cache. Content Distribution Service Providers (“CDSPs”) offer a valuable service by providing access to their broad network infrastructure for caching of static content in close proximity to the end user. This, in turn, enables enterprises to scale their operations in a cost-effective manner. Dynamic content distribution (i.e. dynamically moving generated content closer to users) would yield the same scalability benefits. For some applications (e.g. those which provide session management within their presentation logic, and which only access the back-end business logic in batch mode), it may be possible to (statically) deploy the presentation logic at the edge. In these cases, the content distribution process will typically result in reduced response time as well. [0007]
  • Use of “edge servers” in a network configuration provides increased network efficiency and availability by caching static application components (such as images, forms, etc.) near the edge of the network, where they can be quickly returned to a requester (or quickly retrieved by presentation logic for use in assembling a response to be delivered to a requester). An edge server is a server which is physically located at or near the edge of a network. Edge servers may perform workload balancing, and are sometimes referred to as distributed web caches, surrogates, and/or proxies. (The IBM WebSphere® Edge Server, for example, performs workload balancing and also functions as a reverse proxy and/or cache server.) FIG. 1 provides a diagram of a representative server site [0008] 100 (i.e. a collection of server nodes that serve web content associated with a given fully-qualified domain name) within a network, which may (for purposes of example) serve content for a domain name such as “www.ibm.com”. This example server site 100 comprises a cluster 150 of application servers 140 (such as IBM WebSphere application servers);
  • several back-end enterprise data servers [0009] 160 (such as IBM OS/390® servers running the DB/2, CICS® and/or MQI products from IBM), several Web servers 130 (such as Apache, Netscape, or Microsoft servers; note that the application server and Web server are often co-resident in a single hardware box); several firewalls 110 and several edge servers or reverse proxies/caches/load balancers 120. (“WebSphere”, “OS/390”, and “CICS” are registered trademarks of IBM.)
  • The next generation of edge server technology will bring some dynamic aspects of application programs to the edge of the network. This will be accomplished via hosting web applications at the network edge and statically deploying presentation logic (such as servlets, JSP™, PHP, etc.) at those edge servers. JSP, or JavaServer Pages™, is presentation logic represented using scripting commands for dynamically embedding content into Web documents. (“JSP” and “JavaServer Pages” are trademarks of Sun Microsystems, Inc.) PHP (“Personal Home Page”) is another scripting language that may be used to embed content in Web documents dynamically. Web services will facilitate “just-in-time” application integration via open web-based standards, such as 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 invoke 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. XML Protocol 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. Just-in-time application integration will be possible by Issuing UDDI requests to locate distributed services through a UDDI registry, and dynamically binding the requester to a located service using service information which is conveyed in a platform-neutral WSDL format using SOAP/XML Protocol and HTTP messages. (Hereinafter, references to SOAP should be construed as referring equivalently to semantically similar aspects of XML Protocol.) Using these components, web services will provide 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. (For more information on SOAP, refer to http://www.w3.org/TR/2000/NOTE-SOAP-20000508, titled “Simple Object Access Protocol (SOAP) 1.1, W3C Note 08 May 2000”. See http://www.w3.org/2000/xp for more information on XML Protocol. More information on WSDL may be found at http://www.w3.org/TR/2001/NOTE-wsdl-20010315, titled “Web Services Description Language (WSDL) 1.1, W3C Note 15 March 2001”. For more information on UDDI, refer to http://www.uddi.org/specification.html”. HTTP is described in Request For Comments (“RFC”) [0010] 2616 from the Internet Engineering Task Force, titled hypertext Transfer Protocol—HTTP/1.1” (June 1999).)
  • While statically deploying presentation logic at the edge of the network lessens some of the burden on back-end computing resources and will improve response times for those content requests which do not require executing back-end business logic, there will still be many requests which must be sent into the enterprise for content generation. When the business logic remains within the heart of the enterprise, network efficiencies are not realized and the enterprise may continue to be a processing bottleneck and a limiting factor in growth of the business. Furthermore, the static deployment of presentation logic at the network edge is only efficient so long as usage patterns remain constant and predictable: if the usage patterns change, the statically deployed logic might no longer be highly leveraged. In addition, static deployment of software in this manner will likely increase administration complexity, specifically for software upgrades, as a means must be provided for recording which levels of software have been deployed at which systems and for modifying the deployed software when necessary. This upgrade process is often manual, and requires tedious, error-prone work. And, while web services will make distributed software resources more widely available, it is likely that the physical location of some services will result in less-than-optimal response time for large numbers of remote service requesters. [0011]
  • Accordingly, what is needed is a technique for avoiding these drawbacks and limitations of the prior art. [0012]
  • SUMMARY OF THE INVENTION
  • An object of the present invention is to provide a technique for dynamically deploying network-accessible services (including, but not limited to, web services) in a distributed network. [0013]
  • Yet another object of the present invention is to provide a technique for dynamically deploying network-accessible services based upon usage metrics. [0014]
  • Another object of the present invention is to provide a technique for dynamically deploying network-accessible services based upon load balancing considerations. [0015]
  • 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. [0016]
  • 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 dynamically deploying services in a computing network. In preferred embodiments, this technique comprises: receiving client requests for a selected service; serving the received requests from a first server when the selected service has not yet been dynamically deployed; effecting a dynamic deployment by programmatically moving the selected service from the first server to one or more other servers when the dynamic deployment is triggered; and serving the received requests from the one or more other servers after the effecting step causes the selected service to be dynamically deployed. [0017]
  • The present invention may also be used advantageously in methods of doing business, for example by offering dynamic deployment services that will result in more efficient web hosting sites (which may in turn offer their customers the advantage of reduced end-to-end costs and/or improved efficiency for the customer site). [0018]
  • The present invention will now be described with reference to the following drawings, in which like reference numbers denote the same element throughout.[0019]
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a diagram of a server site in which edge servers route incoming content requests, according to the prior art; [0020]
  • FIG. 2 provides a diagram illustrating components of the present invention and their placement and interconnection within a network configuration; [0021]
  • FIG. 3 illustrates a data structure that may be used to accumulate usage metrics for use with the present invention; [0022]
  • FIG. 4 illustrates a 12-stage process with which dynamic service deployment may be performed, according to preferred embodiments of the present invention; [0023]
  • FIG. 5 illustrates the content of a sample deployment request which may issued, according to preferred embodiments of the present invention; [0024]
  • FIG. 6 illustrates the content of a SOAP request which may issued in response to receiving the message in FIG. 5, according to preferred embodiments of the present invention; [0025]
  • FIG. 7 illustrates the content of a sample SOAP envelope that may be returned as a response to the deployment request of FIG. 6, according to preferred embodiments of the present invention; [0026]
  • FIGS. 8 and 10 illustrate two approaches that may be used for dynamically undeploying services, according to an optional enhancement of the present invention; [0027]
  • FIG. 9 illustrates a data structure that may be used to record deployment locations for deployed services; and [0028]
  • FIG. 11 illustrates a process that may be used for dynamically updating or redeploying services, according to another optional enhancement of the present invention.[0029]
  • DESCRIPTION OF PREFERRED EMBODIMENTS
  • The present invention defines techniques for improving network operations by dynamically deploying network-accessible services, and thereby addresses the shortcomings of the prior art. In addition, the complexity of upgrading previously-deployed software is reduced via automated, programmatic replication of system upgrades through an optional enhancement based on this same dynamic deployment mechanism. In another optional enhancement, previously-deployed software may also be automatically and programmatically undeployed using the techniques of the present invention. (Note that while preferred embodiments of the present invention are described herein as operating at the edge of a network, these techniques may also be adapted for use at the front-end of a server farm, as will be obvious to one of skill in the art. Furthermore, while preferred embodiments are described herein as pertaining to use with web services, this is for purposes of illustration and not of limitation. The disclosed techniques may also be used advantageously with other types of network-accessible services.) According to preferred embodiments, usage metrics are computed dynamically based upon incoming client requests for particular web services. By deploying services dynamically as a function of user demand, the right software will be accessible from the edge, even in cases of rapidly fluctuating usage patterns. [0030]
  • In general, web services may encapsulate any form of programming logic, including script programs, Java™ classes, COM classes, EJBs (“Enterprise JavaBeans”™), stored procedures, IMS or other database transactions, etc., as is known in the art. (“Java” and “Enterprise JavaBeans” are trademarks of Sun Microsystems, Inc.) As web services are operating system, component model, and programming language neutral, the prior art restriction of deploying only presentation logic at the edge is removed when using the present invention (assuming the necessary run-times exist at the point of deployment, as will be described in more detail below). Thus, the network efficiencies which are gained in the prior art from the caching of static content may now be realized for content that is truly dynamic in nature as well. [0031]
  • The term “usage metrics” is used herein to refer to gathered information about the number of times a particular web service is requested. A threshold may be set for a usage counter and may be used to determine when a service is being requested often enough that efficiencies may be realized by deploying the service to an edge server. In some implementations of the present invention, it may be desirable to use a single threshold for all web services, in other implementations, it may be desirable to provide for multiple threshold values (including a different threshold for each individual web service). Typically, the value of the threshold(s) will be set by a systems administrator when configuring network parameters. (Alternatively, default values may be used for some threshold values, and/or some threshold values may be set programmatically.) [0032]
  • The dynamic deployment technique of the present invention may operate within a network configuration such as the sample network shown in FIG. 1, where the [0033] edge servers 120 are modified to enable dynamic deployment as described herein. FIG. 2 shows an abstract representation of a network configuration in which the present invention may operate, illustrating placement of components that perform the dynamic deployment process and their network interconnection. These components will now be described.
  • As shown in FIG. 2, the components of the deployment system comprise a Point of Presence (“POP”) Deployment Facilitator [0034] 230 (also referred to herein as the “deployment facilitator or “DF”), a CDSP Deployment Node 260 (also referred to herein as the “deployment node” or “DN”), and a Deployment Provider 280 (“DP”). Optionally, a deployment run-time container (“DRTC”) 245 may be provided. (The DRTC is used for optional enhancements of the present invention which provide for undeployment and redeployment, as discussed below. The DRTC may also be used in the dynamic deployment system, if desired.) In addition, a service requester 210 (e.g. a client application), a public UDDI registry 220, an edge server or POP 240, a Domain Name System (“DNS”)-based host resolution system 250, a private UDDI registry 270, and an origin server 290 are shown. Elements 210, 220, 240, 250, 270, and 290 are generally known in the art (with the exception of the dynamic deployment, undeployment, and redeployment functions to be described herein), and these existing elements will not be described in detail herein.
  • The [0035] deployment facilitator component 230 resides on an edge server 240 and will coordinates deployment of web services from one or more origin servers 290 to the CDSP access point which is co-located with the DF 230, as will be described in more detail with reference to FIG. 4.
  • In preferred embodiments, the [0036] deployment node 260 stores usage metrics for this CDSP, and updates these metrics as it monitors incoming service requests. Upon reaching a threshold usage value, the deployment node is responsible for initiating the deployment of the corresponding service to a particular POP (e.g. to a particular edge server). The deployment node further comprises a private UDDI registry 270, which manages the current state of the service deployments for this specific CDSP. As used herein, the private UDDI node is preferably a partner catalog UDDI node which is hosted within the CDSP's firewall, and which allows only vetted partners to publish their services for inclusion in its UDDI registry. In addition, only requesters within the organization (i.e. behind the firewall) are allowed to request information from this private UDDI node. By replicating the contents of the private UDDI registry 270 with public UDDI registry 220, requesters outside the organization are able to request services which are located within the organization.
  • Note that [0037] UDDI registry 220 may alternatively be a portal UDDI node (i.e. another type of private node) which is hosted in the CDSP's demilitarized zone (“DMZ”). A portal UDDI node allows any requester to find services, but only allows the CDSP to publish to it.
  • CDSPs of the prior art typically provide an internal service which includes a [0038] DNS 250 for dynamically locating a server which provides requested content, ping triangulation means for determining the geographic location of a requester, and IP address maps which are used to transparently redirect client requests to the appropriate POP (i.e. to a POP which is located relatively near to the requester) given a common request URL (“Uniform Resource Locator”). According to the present invention, the DN 260 will interact with such a system such that dynamic service deployments will be reflected to the client transparently. (That is, the client will ask for a particular service, and the DNS system will determine where that service is currently deployed and automatically route the client's request to that current location.) This transparent redirection is discussed in more detail below with reference to FIG. 4.
  • The [0039] deployment provider 280 exists within the enterprise network, preferably at an origin server 290, and will respond to deployment requests in order to automatically and programmatically deploy a service to a requesting edge server 240. It is assumed that the “edgeable” aspects of a service application (that is, those aspects which are capable of deployment to the edge of the network) will be packaged and stored within the deployment provider's context appropriately (i.e. as an Enterprise Archive (“EAR”), as a Web Archive (“WAR”), as a Java archive (“JAR”), etc.)
  • A data structure that may be used by preferred embodiments of the present invention is illustrated in FIG. 3. In preferred embodiments, this data structure is used by [0040] DN 260 to store usage counts for particular services at individual POPs. (In some embodiments, it may be desirable to track and deployed services based upon usage metrics which reflect system-wide activity.) As shown in FIG. 3, the services are preferably identified by their UDDI binding keys. (Alternatively, they may be identified by their service name or other similar identifier, service provider, and ultimate end point.) The data structure is referred to herein as a “table” for purposes of illustration, and the service information stored therein is shown as having a distinct row for each POP managed by the CD SP.
  • In preferred embodiments, a process which is described herein using [0041] 12 stages is used for deploying web services dynamically. A standards-based web services platform is preferably leveraged in this deployment process, where that platform includes SOAP, WSDL, UDDI, and HTTP message flows. A specification being promulgated by W3C which is titled “SOAP Messages with Attachments, W3C Note 11 December 2000” (see http://www.w3.org/TR/2000/NOTE-SOAP-attachments-20001211) describes a standard way to associate a SOAP message with one or more attachments in their native format using a multi-part MIME (“Multi-purpose Internet Mail Extensions”) structure for transporting the attachments. As SOAP is the standard messaging format for invoking web services, this SOAP attachment standard is used in preferred embodiments of the present invention as the mechanism for dynamically deploying web services. As will be obvious, semantically similar components may be substituted for those described herein without deviating from the scope of the present invention. For example, SMTP (“Simple Mail Transfer Protocol”) flows may be used instead of HTTP flows in some embodiments, and as stated earlier, XML Protocol may be used instead of SOAP.
  • FIG. 4 uses encircled numerals to indicate each of the stages in the 12-stage process of the preferred embodiments, in terms of the components which were depicted in FIG. 2. Each of the 12 stages will now be described with reference to FIG. 4. [0042]
  • In [0043] stage 1, a web service 495 is deployed at an origin server 290. This stage uses prior art deployment techniques which do not form part of the present invention. The web service 495 is then published (stage 2) to the deployment node 260. In preferred embodiments, this publish operation uses the UDDI Programmer's API (“Application Program Interface”) to transmit a WSDL document from origin server 290 to deployment node 260 for storage in the private UDDI registry 270. (The UDDI Programmer's API may be found at http://www.uddi.org/pubs/ProgrammersAPI-V1-1.pdf, and is titled “UDDI Programmer's API 1.0, UDDI Open Draft Specification 30 September 2000”.) The transmitted WSDL document describes the deployed service, using the format specified in the WSDL specification. In addition to storing the WSDL document in the registry 270, the deployment node 260 also preferably stores provider meta-data associated with this document (such as the network location of the origin server 290 which sent the document).
  • In [0044] stage 3, the deployment node 260 replicates its private UDDI registry 270 with public UDDI registry 220, preferably using a UDDI command (such as “save_service”) of the “publish” API. For example, the following HTTP request may be used to publish information to a test-level IBM registry named “testregistry”:
  • http://www-3.ibm.com/services/uddi/testregistry/protect/publishapi The [0045] deployment node 260 also preferably updates the DNS entries in repository 452 at this point, so that DNS 250 will automatically cause subsequent client requests for this web service 495 to be routed to the deployment node 260. (The deployment node will then forward these subsequent requests to the proper location of web service 495, using information stored in the data structure shown at 300 in FIG. 3. The DN's processing of incoming client requests is described in more detail below, with reference to stage 5.) The DN also preferably creates an initial entry in its table 300, comprising the UDDI binding key for this published service and having a zero value for the usage count.
  • Optionally, a hosting redirector relationship may be established between the private UDDI registry [0046] 270 (i.e. partner catalog) and the public UDDI operator node at 220. This relationship enables any “find” requests to the public node to reference the entries in the private node. In this case, the triangulation process described in stage 5 is not needed when routing requests.
  • In [0047] stage 4, a client (i.e. service requester) 210 issues a UDDI command such as “find_service” from the “inquiry” API to interrogate the public UDDI registry 220 for the location of a particular service. As an example, the following HTTP request may be used to inquire into the location of a service using the registry named “testregistry”:
  • http://www-3.ibm.com/services/uddi/testregistry/inquiryapi According to preferred embodiments of the present invention, the resolved service definition will contain end point information which references the URL of deployment node [0048] 260 (thereby causing client 210 to send its subsequent request to the DN). Alternatively, if a hosting redirector approach is used, then the UDDI binding template will provide a binding key “A” referencing a second binding template “B” managed by the deployment node. Binding template “B” will provide the “access point” element for the redirection service hosted at the deployment node. This redirection service will respond to get_bindingDetail messages given the appropriate binding key “A” with a binding template which provides the access point for the desired service.
  • The client then issues a service request (stage 5), depicted in FIG. 4 as “binding” to the service. Using the end point information obtained from [0049] UDDI registry 220 in stage 4, this service request is routed to the deployment node 260. The CDSP's DNS function 250 intercepts this request and obtains a current location of the requested service from its DNS repository 452. If the service has already been deployed at the client's POP 240 (which may be determined using techniques such as ping triangulation to determine where the client is, and IP maps to find the client's POP, or via the hosting redirector relationship), then the request is routed to that POP for processing (as shown in FIG. 4). If the service has not yet been deployed at the client's POP, then processing occurs as in stage 6.
  • At [0050] stage 6, the deployment node receives the client's service request and forwards it on to the origin server 290 where the requested web service 495 is currently deployed. The service is processed at the origin server, and the service results are returned to the client (not shown in FIG. 4).
  • After the deployment node receives each service request, in [0051] stage 7 of preferred embodiments it updates the usage metrics for the service to reflect the client request. (Refer to the table in FIG. 3, where the DN deployment node preferably maintains information for client requests.) If the service has been accessed previously, the usage counter is incremented. If this is the first request issued for the service, the usage counter is set to 1. The example in FIG. 3 shows that a service having the UDDI binding key “xxx” has been requested 100 times from the San Francisco-based POP but only 33 times from the New York City-based POP.
  • After updating the usage metric, in [0052] stage 8 the DN 260 checks to see if the usage counter is equal or greater to the threshold value which was configured by the administrator (or otherwise set). If it is, this indicates that the service should be deployed to the client's POP. That is, clients of this POP are requesting the service sufficiently often that it appears to be useful and efficient to deploy a copy of the service at the local POP (e.g. to reduce network round-trip times and thereby improve response time to the client, as well as to reduce the transmission and processing burden within the back-end system). Therefore, the deployment node will issue a deployment request to the deployment facilitator (shown in FIG. 4 as flow 8) at the appropriate POP 240. This deployment request preferably provides the service description which can be used to initiate a deployment from the deployment provider 280. FIG. 5 shows a sample deployment request, containing a service description which is encoded using WSDL
  • As will be obvious to one familiar with WSDL encoding, the sample deployment request in FIGS. 5A and 5B specifies an interface definition. In this example, the interface definition is that of the deployment service of the present invention. As shown at [0053] 510, the example interface is named “Deployment-interface” and is invoked using a “getDeployedService” method 540 (see FIG. 5B). Two messages “DeploymentRequest” 520 and “DeploymentResponse” 530 are defined. The DeploymentRequest message includes a “runtimeEnvironment” part, whereby a deployment facilitator may specify POP-specific information to be used by the deployment provider when preparing a particular service for deployment at that POP (as discussed in more detail below with reference to stage 9). A binding is defined which provides mappings between the WSDL operations and messages to SOAP, as shown at 550. The result of invoking the Deploy method is either an archive reference or a service archive (see element 560). FIG. 5C specifies an implementation definition of the deployment service, which is also sent in stage 8.
  • In [0054] stage 9, the deployment facilitator 230 at the client's POP then issues a SOAP request to the deployment provider 280, using the information obtained from the deployment node 260 in stage 8, where this SOAP request asks that the service in question be deployed dynamically. An example of the SOAP request which may be transmitted in stage 9 is shown in FIG. 6. Note that the name or other identifier of the service to be deployed is specified as the content of a tag such as “serviceName” 610. In this example, the unique service identifier “urn:www.acme.com: stockquoteservice” has been specified, indicating that the “stockquoteservice” service requested by client 210 and located at “www. acme.com” is to be dynamically deployed.
  • In environments where the run-time environment on the POPs is known and is consistent for each POP to which a particular service will be deployed, the deployment request sent in [0055] stage 9 need only identify the requested service. As an example, this simple approach is appropriate if the requested service is written in Java and each POP has a Java run-time, if each POP is running the same operating system, and if each POP supports the same version of SOAP and thus understands the same deployment message syntax. However, in many networking environments there may be differences in these types of information among the different POPs. For example, different SOAP servers might be running at some POPs, where these servers have different ways of deploying services. Or, the requested web service might be written in a language which is not portable. Therefore, multiple versions of each service to be deployed may be stored at the origin server (or in a repository which is accessible to the origin server). A different version of the service can then be sent to particular POPs, depending on the support available at that POP. For example, a COM application for a Windows operating system may be deployed to one requester of a particular service, whereas this same service might be deployed as a C program to a POP running a Linux™ operating system. (“Linux” is a trademark of Linus Torvalds.) Therefore, preferred embodiments of the present invention support the “runtimeEnvironment” element which was defined in 520 of FIG. 5A to allow the POP to provide information on its configuration to the deployment provider when requesting deployment of a service. In FIG. 6, an example of this technique is illustrated at 620, where the deployment facilitator has provided several types of runtime information. In this example, the information includes the name of the operating system running at the POP (Windows 2000), the name of the SOAP server (Apache SOAP V2.1), and the run-time environment (Java). Using this information, the deployment provider can then choose the correct implementation of the web service to deploy on that particular POP. The contents of the deployment run-time environment string can be as simple or as complex as needed for the overall environment. (That is, the parameter value may be empty if the same SOAP server is used throughout the environment and all web services in written in Java, for example; or, different or additional types of information might be provided. As an example of providing additional information, if multiple versions of a web service are available from the deployment provider, then the deployment facilitator may specify a version number for use by the deployment provider.) Referring again to FIG. 4, after the deployment request is sent in stage 9, the deployment provider 280 then returns (in stage 10) a SOAP envelope to the deployment facilitator 230, where the SOAP envelope includes either an archive reference or a service archive (as discussed above with reference to element 560 of FIG. 5). As shown at 730 in the example SOAP envelope in FIG. 7, an enterprise archive (EAR) is included as a MIME attachment within the HTTP response transporting this SOAP envelope, in accordance with the SOAP Messages with Attachments specification which has been described. (Alternatively, a WAR or JAR might be included as an attachment to, or referenced from, the SOAP envelope.) As shown in the example at 710, an “href” attribute on a tag having a name such as “ArchiveRef” specifies an address that matches the content ID 720 in a binary attachment. (Alternatively, the href attribute may be omitted, assuming that the SOAP server is adapted to process the ArchiveRef tag and then issue a search against the Content ID elements of the attachments, using the content of the ArchiveRef tag.)
  • At [0056] stage 11, after receiving the SOAP envelope and attachments, the deployment facilitator 230 then accesses the local SOAP Server API to deploy the service on the client's POP 240. (The SOAP Server API is known in the art and does not form part of the present invention.)
  • Finally, at [0057] stage 12, the deployment facilitator 230 preferably returns a successful return code to the deployment node 260, which then updates the DNS entries in repository 452 to indicate that this web service is now deployed at edge server 240 (as shown at 448 in FIG. 4). By updating the DNS in this manner, subsequent requests for this service from those clients who use this edge server 240 as a POP will now be automatically routed to the service deployed at 448, rather than the service 495 deployed at the origin server 290.
  • As has been demonstrated, the deployment system of the present invention provides an extensible framework for deploying web services dynamically. Preferred embodiments, as described herein, use usage metrics to initiate service deployment. Other embodiments may use other triggering events without deviating from the inventive concepts disclosed herein. For example, the DN may monitor load on the network, and may use this information in the dynamic deployment decision of [0058] stage 8 instead of (or in addition to) the usage metrics which have been discussed. Because preferred embodiments of this deployment system leverage the web services stack of UDDI, WSDL, SOAP/XML Protocol, and HTTP, as has been described, they may be seamlessly integrated on a myriad of platforms. Edge servers represent one application platform which will make use of such a deployment system, and are described herein for purposes of illustration and not of limitation.
  • In optional enhancements of the present invention, an implementation may provide for dynamically undeploying and/or redeploying web services. These enhancements will now be described. (Note that while preferred embodiments of these optional enhancements are described with reference to the deployment process which has been described above, this is for purposes of illustration and not of limitation. The undeployment and redeployment techniques described below may also be used advantageously with services which have been otherwise deployed.) [0059]
  • First Optional Enhancement
  • Just as web services are deployed dynamically, an optional enhancement of the present invention enables a web service to be undeployed dynamically. In one aspect, this undeployment may be conditional or selective; in another aspect, it is unconditional. Each aspect will be described in turn. [0060]
  • To enable conditional undeployment, the usage metrics for a web service may be used to determine when the service should be undeployed. Typically, the usage metrics are the average number of usage requests received over a period of time. Based on this usage metric, a threshold may be set to indicate the utilization rate at which the service should be undeployed. The threshold is preferably stored at the [0061] deployment node 260, and may optionally be changed if necessary (e.g. by the deployment provider 280, by a systems administrator, etc.). For example, if the usage metric is the average number of requests per day for a month and the threshold is set at 100 requests per day, then the web service will be undeployed if the utilization rate at the end of a month drops below 100 requests per day. (In implementations where criteria other than usage requests determines the dynamic deployment of a service, the undeployment preferably reflects that other criteria.)
  • Preferably, this usage metric is maintained on the [0062] edge server 240. Using the example above, the usage metric is calculated by maintaining a usage counter for a period of time equal to one month. In this example, in order to calculate the usage rate, the edge server also stores the date that the count was started, and the usage counter is reset at the end of each month. Or, a sliding one-month interval may be used. (Note that it is not strictly required that each edge server maintain usage metrics for a particular service deployed on that server. In some implementations, it may be sufficient to accumulate representative usage metrics at selected edge servers.) Although the usage metric is maintained on the edge server, the deployment node 260 is responsible for issuing the undeployment request according to preferred embodiments of this optional enhancement. The deployment node therefore monitors the utilization rate that will be used to determine when a web service on an edge server should be undeployed. Periodically, the deployment node may query each edge server to obtain the usage metrics. If the usage metric is less than the threshold value, then the web service is undeployed.
  • After a web service is dynamically deployed according to the present invention, the following process is used in preferred embodiments to conditionally dynamically undeploy a web service. Referring now to FIG. 8, encircled numerals illustrate the flows and operations which may be used to carry out this process. [0063]
  • 1. When the [0064] deployment node 260 is started, it is preferably configured to check the status of deployed services at a specified time interval. This time interval should be set based on the usage patterns for the deployed web services. The particular time interval used is not significant, and may be expressed (for example) in minutes, hours, days, weeks, or months.
  • 2. When a new web service is deployed, an undeployment threshold value for that service is preferably stored on the [0065] deployment node 260. This threshold value may then be used to determine when a dynamically deployed web service should be undeployed.
  • 3. At the specified time interval, the deployment node will obtain a list of all dynamically deployed web services. This list is obtained from the [0066] private registry 270, since a new business service entry is created in the registry for each dynamically deployed web service. This list will contain a reference to all of the deployment facilitators where web services have been deployed. The table 900 in FIG. 9 illustrates a simple example of a format in which this information may be stored. As shown therein, a service identifier 910 such as a UDDI binding key identifies each deployed service, and information 920 such as an IP address identifies where these services have been deployed. (Note that information in the table 300 of FIG. 3 and the table 900 of FIG. 9 may be merged, or may be separately stored, as desired.)
  • 4. Each [0067] deployment facilitator 230 is sent a usage metrics request. In response, the deployment facilitator will obtain the usage metrics from the deployment run-time container and return them to the deployment node 260. (In each POP 240, each deployment facilitator 230 has access to the deployment run-time container 245, which provides the interface to the run-time environment for the web service. The deployment run-time container maintains the POP-specific usage metrics used for this undeployment mechanism.)
  • 5. The [0068] deployment node 260 will compare the usage metrics to the threshold value. If the usage metrics are less than the threshold, the deployment node will start the undeploy process for the web service.
  • 6. The undeploy process will start by sending a request to the [0069] DNS server 250 to remove the entry for the web service from the DNS repository 452. After this request is processed, the web service will not receive any further requests.
  • 7. The deployment node will then send the deployment facilitator a request to undeploy the web service. [0070]
  • 8. When a deployment facilitator receives an undeploy request, the [0071] web service 448 is shut down and the executable code for the web service is removed from the run-time environment on the edge server 240. After the undeploy request is completed, a response is preferably sent to the deployment node that indicates that the web service has been successfully undeployed (not shown in FIG. 8).
  • 9. The deployment node will then remove the entry in the private registry for the web service that was undeployed. [0072]
  • In an aspect of this enhancement which provides unconditional undeployment, a web service is undeployed when it is no longer needed, or when it will be replaced by a new web service. For a web service that is statically deployed as in the prior art, there are two basic steps to the typical undeploy process. [0073]
  • 1. Unpublish the service description for the web service from the service registry. After the service is unpublished, no one will be able to find the service description. [0074]
  • 2. Remove the web service from the run-time environment. This includes an orderly shut down of the running web service, removal of any meta information required by the run-time environment , and removal of the web service's executable code from the run-time environment. (The deployment descriptor that is required to deploy a SOAP service is an example of this type of meta information.) [0075]
  • For services which are dynamically deployed according to the present invention, this undeployment process needs to be enhanced to undeploy the original web services, as well as all of the dynamically deployed web services. The manner in which this is accomplished in preferred embodiments will now be described with reference to FIG. 10, where encircled numerals correspond to the listed steps. [0076]
  • 1. The [0077] deployment provider 280 will issue an undeploy request from the origin server 290 to the deployment node 260. The deployment provider is preferably the only participant in scheme that is allowed to issue this type of request.
  • 2. The deployment node will verify that the web service is deployed at its node, by searching for it in its [0078] private registry 270.
  • 3. If the web service is found in the private registry, then the undeployment processing at the deployment node will continue. The deployment node is responsible for completing the undeployment request from the deployment provider. If the web service is not found in the private registry, then an error message is preferably sent back to the deployment provider (not shown in FIG. 10). [0079]
  • 4. The deployment node will start the undeploy process by sending an unpublish request to the [0080] public registry 220. After this request is processed, service requesters 210 will not be able to find the web service description, but all of the web services will still be running.
  • 5. After the unpublish request is completed, the deployment node notifies the [0081] DNS 250 server to remove all of the entries for the web service. When these entries are removed, the only version of the web service that can be accessed by a service requestor is the one running on the origin server.
  • 6. The private registry on the [0082] deployment node 260 contains references to the deployment facilitators and the origin server 290. The deployment node will remove the entry for the origin server so that it will no longer forward service requests to the origin server.
  • 7. The [0083] deployment node 260 will obtain a list of the deployment facilitators 230 where the web service was deployed. This list is obtained from the private registry 270, since a new business service entry is created for each dynamically deployed web service.
  • 8. An undeploy request will be sent to each deployment facilitator in the list obtained at [0084] step 7.
  • 9. When a deployment facilitator receives an undeploy request, the [0085] web service 448 is shut down and the executable code for the web service is removed from the run-time environment on the edge server 240. After the undeploy request is completed, a response is preferably sent to the deployment node that indicates that the web service has been successfully undeployed (not shown in FIG. 10).
  • 10. When the deployment node has completed the undeploy request from the deployment provider, a response will preferably be sent to the deployment provider that indicates that the undeploy request has been completed. [0086]
  • 11. The deployment provider will shut down the [0087] web service 495 that is running on the origin server and then remove the executable code.
  • Second Optional Enhancement
  • After a web service has been deployed initially, it may have to be updated (e.g. to fix defects or to add new functions). For a web service that is statically deployed according to the prior art, there are four basic steps to the typical web service update process. [0088]
  • 1. Disable dynamic access to the web service by removing its entry from the service registry. After its entry is removed, a service requester should not be able to find the service description for the web service. [0089]
  • 2. Remove the web service from the run-time environment. This includes an orderly shut down of the running web service, removal of any meta information required by the run-time environment, and removal of the web service's executable code from the run-time environment. An orderly shut down will verify that all outstanding requests are processed before shutting down the web service. [0090]
  • 3. Deploy the updated web service code and meta information in the run-time environment, and then start the service. [0091]
  • 4. Re-publish the service description for the web service. This will enable dynamic access to the web service. [0092]
  • For services which are dynamically deployed according to the present invention, this redeployment process needs to be enhanced to update the original deployed web service, as well as all of the dynamically deployed web services. Preferably, all of the web services should be updated, so that the update is available on all deployed systems at the same time. The manner in which this is accomplished in preferred embodiments will now be described with reference to FIG. 11, where encircled numbers correspond to the steps listed below. [0093]
  • 1. The update process preferably starts when the deployment provider updates the web service on the [0094] origin server 290. This may be done by shutting down the web service, updating the service's executable code and meta information, and then starting the service again.
  • 2. The [0095] deployment provider 280 will issue an update request from the origin server 290 to the deployment node 260. The deployment provider is preferably the only participant in this scheme that is allowed to issue this type of request.
  • 3. The deployment node will verify that the web service has been deployed, by searching for it in its [0096] private registry 270. The private registry contains a reference to the web service that is deployed on the origin server 290, as well as all of the dynamically deployed web services.
  • 4. If the web service is found in the private registry, then the update request will be processed by the deployment node. The deployment node is responsible for completing the update request from the deployment provider. If the web service is not found in the private registry, then an error message is preferably sent back to the deployment provider (not shown in FIG. 11). [0097]
  • 5. The deployment node starts the update process by sending an unpublish request to the [0098] public registry 220. After this request is processed, service requesters 210 will not be able to find the web service, but all of the web services will still be running.
  • 6. After the unpublish request is completed, the deployment node will obtain a list from its [0099] registry 270 of the deployment facilitators 230 where the web service was deployed.
  • 7. For each web service on the list, the [0100] DNS server 250 is updated so that all requests are sent to the deployment node. While the update is being processed, the deployment node will preferably return an error message to any service requesters that try to access the service.
  • 8. After the DNS server is updated, the deployment node sends an update request to each deployment facilitator in the list obtained in [0101] step 5. Preferably, this update request is formatted in a similar manner and uses a similar syntax as the deployment request which is sent in stage 8 of the deployment process (see FIG. 4), but differs in that it conveys that this is an update request.
  • 9. When the deployment facilitator receives an update request, it will shut down the web service and then send a deployment request to the origin server to obtain the updated web service. In preferred embodiments, this (re)deployment request uses the same format and syntax which has previously been described with reference to stage 9 (see FIG. 4) of the deployment process. [0102]
  • 10. After the deployment facilitator receives the updated web service package from the [0103] deployment provider 280, it will deploy the web service code and meta information in the runtime environment and then start the service.
  • 11. When the deployment node has completed the update request from the deployment provider, it will send a request to the DNS server to re-activate the original DNS entries for the deployed web services and will publish the updated service description to the [0104] public registry 220.
  • 12. After the service description is published, a service requester can find the updated service description and use any of the updated web services. Service requests will be re-routed to the deployed web services by the DNS server, or will be routed to the deployment node and forwarded to the web service that is running on the origin server, in the manner which has previously been described for [0105] stages 5 and 6 of the deployment process. (Refer to FIG. 4 for a depiction of these flows, which have not been shown in FIG. 11.)
  • 13. The update process is preferably completed when the deployment node sends a response to the update request to the deployment provider (not shown in FIG. 11). [0106]
  • Thus, it can be seen that use of either or both of the optional enhancements provides advantages in addition to the dynamic deployment technique which has been described. [0107]
  • As will be appreciated by one of skill in the art, embodiments of the present invention may be provided as methods, systems, or computer program products. Accordingly, the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present invention may take the form of a computer program product which is embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and so forth) having computer-usable program code embodied therein. [0108]
  • The present invention has been described with reference to flow diagrams and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flow diagram flow or flows and/or block diagram block or blocks. [0109]
  • These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flow diagram flow or flows and/or block diagram block or blocks. [0110]
  • The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flow diagram flow or flows and/or block diagram block or blocks. [0111]
  • While the preferred embodiments of the present invention have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims shall be construed to include both the preferred embodiment and all such variations and modifications as fall within the spirit and scope of the invention. [0112]

Claims (27)

What is claimed is:
1. A method of dynamically deploying services in a computing network, comprising steps of:
receiving client requests for a selected service;
serving the received requests from a first server when the selected service has not yet been dynamically deployed;
effecting a dynamic deployment by programmatically moving the selected service from the first server to one or more other servers when the dynamic deployment is triggered; and
serving the received requests from the one or more other servers after the effecting step causes the selected service to be dynamically deployed.
2. The method according to claim 1, further comprising the steps of:
monitoring a number of the received client requests for the selected service; and
triggering the dynamic deployment when the monitored number exceeds a predetermined threshold.
3. The method according to claim 2, wherein the predetermined threshold applies to a plurality of dynamically deployable services.
4. The method according to claim 2, wherein the predetermined threshold applies to the selected service.
5. The method according to claim 2, wherein a value of the predetermined threshold applies to all of the one or more other servers.
6. The method according to claim 2, wherein values of the predetermined threshold apply to individual ones of the one or more other servers.
7. The method according to claim 2, wherein a value of the predetermined threshold is specified by a systems administrator.
8. The method according to claim 2, wherein a value of the predetermined threshold is specified as a default value.
9. The method according to claim 2, wherein a value of the predetermined threshold is specified programmatically.
10. The method according to claim 2, wherein the monitoring step counts the received client requests at individual ones of the one or more other servers.
11. The method according to claim 2, wherein the monitoring step counts the received client requests at a plurality of the one or more other servers.
12. The method according to claim 1, further comprising the steps of:
monitoring a load on the computing network; and
triggering the dynamic deployment when the monitored load exceeds a predetermined threshold.
13. The method according to claim 1, wherein the programmatically moving step further comprises the step of issuing a deployment request for the selected service.
14. The method according to claim 13, wherein the deployment request comprises a service description of the selected service encoded in a standardized service description notation.
15. The method according to claim 14, wherein the service description comprises an interface definition of a dynamic deployment service and an implementation definition of the dynamic deployment service.
16. The method according to claim 15, wherein the dynamic deployment service resides on the first server.
17. The method according to claim 13, further comprising steps of:
receiving the deployment request at a particular one of the one or more other servers, the particular one being that server to which the selected service is being dynamically deployed;
issuing a subsequent deployment request, responsive to the receiving step, from the particular one to the first server; and
receiving, responsive to the subsequent deployment request, a deployment response from the first server.
18. The method according to claim 17, wherein the subsequent deployment request comprises a SOAP (“Simple Object Access Protocol”) request.
19. The method according to claim 17, wherein the subsequent deployment request comprises an XML (“Extensible Markup Language”) Protocol request.
20. The method according to claim 17, wherein the subsequent deployment request identifies the selected service.
21. The method according to claim 17, wherein the subsequent deployment request provides information about run-time conditions on the particular one.
22. The method according to claim 17, wherein the deployment response comprises executable code to be deployed on the particular one.
23. The method according to claim 21, wherein the deployment response comprises executable code which is adapted to the run-time conditions on the particular one.
24. The method according to claim 22, further comprising the step of deploying the executable code on the particular one.
25. The method according to claim 1, further comprising the steps of:
transparently routing the received client requests using a repository which tracks whether the selected service is deployed on the one or more other servers; and
wherein the serving steps serve the received requests from the first server or from the one or more other servers, depending on the transparently routing step.
26. A system for dynamically deploying services in a computing network, comprising:
means for receiving client requests for a selected service;
means for serving the received requests from a first server when the selected service has not yet been dynamically deployed;
means for effecting a dynamic deployment by programmatically moving the selected service from the first server to one or more other servers when the dynamic deployment is triggered; and
means for serving the received requests from the one or more other servers after the effecting step causes the selected service to be dynamically deployed.
27. A computer program product for dynamically deploying services in a computing network, the computer program product embodied on one or more computer-readable media and comprising:
computer-readable program code means for receiving client requests for a selected service;
computer-readable program code means for serving the received requests from a first server when the selected service has not yet been dynamically deployed;
computer-readable program code means for effecting a dynamic deployment by programmatically moving the selected service from the first server to one or more other servers when the dynamic deployment is triggered; and
computer-readable program code means for serving the received requests from the one or more other servers after the effecting step causes the selected service to be dynamically deployed.
US09/864,663 2001-05-23 2001-05-23 Dynamic deployment of services in a computing network Abandoned US20020178254A1 (en)

Priority Applications (12)

Application Number Priority Date Filing Date Title
US09/864,608 US8180871B2 (en) 2001-05-23 2001-05-23 Dynamic redeployment of services in a computing network
US09/864,663 US20020178254A1 (en) 2001-05-23 2001-05-23 Dynamic deployment of services in a computing network
US09/864,607 US7325047B2 (en) 2001-05-23 2001-05-23 Dynamic undeployment of services in a computing network
EP01979520A EP1402385A4 (en) 2001-05-23 2001-10-05 Dynamic deployment of services in a computing network
KR10-2003-7013871A KR20040000441A (en) 2001-05-23 2001-10-05 Dynamic deployment of services in a computing network
JP2002591999A JP2004533687A (en) 2001-05-23 2001-10-05 Dynamic deployment of services in computer networks
CA002415314A CA2415314A1 (en) 2001-05-23 2001-10-05 Dynamic deployment of services in a computing network
IL15296301A IL152963A0 (en) 2001-05-23 2001-10-05 Dymanic deployment of services in a computing network
CNA018220134A CN1620653A (en) 2001-05-23 2001-10-05 Dynamic arrangement of service in computing network
PCT/US2001/031268 WO2002095605A1 (en) 2001-05-23 2001-10-05 Dynamic deployment of services in a computing network
TW091110821A TW591909B (en) 2001-05-23 2002-05-22 Dynamic deployment of services in a computing network
US11/867,927 US7523177B2 (en) 2001-05-23 2007-10-05 Systems providing dynamic undeployment of services in a computing network

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/864,608 US8180871B2 (en) 2001-05-23 2001-05-23 Dynamic redeployment of services in a computing network
US09/864,663 US20020178254A1 (en) 2001-05-23 2001-05-23 Dynamic deployment of services in a computing network
US09/864,607 US7325047B2 (en) 2001-05-23 2001-05-23 Dynamic undeployment of services in a computing network

Publications (1)

Publication Number Publication Date
US20020178254A1 true US20020178254A1 (en) 2002-11-28

Family

ID=27420431

Family Applications (4)

Application Number Title Priority Date Filing Date
US09/864,608 Active 2027-01-23 US8180871B2 (en) 2001-05-23 2001-05-23 Dynamic redeployment of services in a computing network
US09/864,663 Abandoned US20020178254A1 (en) 2001-05-23 2001-05-23 Dynamic deployment of services in a computing network
US09/864,607 Expired - Fee Related US7325047B2 (en) 2001-05-23 2001-05-23 Dynamic undeployment of services in a computing network
US11/867,927 Expired - Fee Related US7523177B2 (en) 2001-05-23 2007-10-05 Systems providing dynamic undeployment of services in a computing network

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US09/864,608 Active 2027-01-23 US8180871B2 (en) 2001-05-23 2001-05-23 Dynamic redeployment of services in a computing network

Family Applications After (2)

Application Number Title Priority Date Filing Date
US09/864,607 Expired - Fee Related US7325047B2 (en) 2001-05-23 2001-05-23 Dynamic undeployment of services in a computing network
US11/867,927 Expired - Fee Related US7523177B2 (en) 2001-05-23 2007-10-05 Systems providing dynamic undeployment of services in a computing network

Country Status (9)

Country Link
US (4) US8180871B2 (en)
EP (1) EP1402385A4 (en)
JP (1) JP2004533687A (en)
KR (1) KR20040000441A (en)
CN (1) CN1620653A (en)
CA (1) CA2415314A1 (en)
IL (1) IL152963A0 (en)
TW (1) TW591909B (en)
WO (1) WO2002095605A1 (en)

Cited By (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030018906A1 (en) * 2001-07-17 2003-01-23 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US20030055875A1 (en) * 2001-08-27 2003-03-20 Carter Frederick H. Mechanism for facilitating invocation of a service
US20030135509A1 (en) * 2002-01-11 2003-07-17 Davis Andrew Thomas Edge server java application framework having application server instance resource monitoring and management
WO2003073309A1 (en) * 2002-02-22 2003-09-04 Bea Systems, Inc. Web services programming and deployment
US20030220993A1 (en) * 2002-05-21 2003-11-27 Blizniak Paul K. Method and apparatus for dynamically determining information for deploying a web service
US20030220925A1 (en) * 2002-01-31 2003-11-27 Avi Lior System and method for web services management
US20040015578A1 (en) * 2002-02-22 2004-01-22 Todd Karakashian Web services runtime architecture
US20040049579A1 (en) * 2002-04-10 2004-03-11 International Business Machines Corporation Capacity-on-demand in distributed computing environments
US20040054722A1 (en) * 2002-09-18 2004-03-18 Alcatel Meta service selector, meta service selector protocol, method, client, service, network access server, distributed system, and a computer software product for deploying services over a plurality of networks
US20040064503A1 (en) * 2002-02-22 2004-04-01 Bea Systems, Inc. System and method for web services Java API-based invocation
US20040205199A1 (en) * 2003-03-07 2004-10-14 Michael Gormish Communication of compressed digital images with restricted access and server/client hand-offs
US20040225724A1 (en) * 2003-05-08 2004-11-11 Gregory Pavlik RPC type SOAP service access via taglibs for dynamic web content
US20050015761A1 (en) * 2003-07-17 2005-01-20 International Business Machines Corporation Method and system for application installation and management using an application-based naming system including aliases
US20050038867A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation Method, system and program product for integrating web services on a client
US20050038708A1 (en) * 2003-08-10 2005-02-17 Gmorpher Incorporated Consuming Web Services on Demand
US20050038771A1 (en) * 2003-06-04 2005-02-17 Jun Sugihara Method and system for managing programs for web service system
US20050071758A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Client-side processing of alternative component-level views
US20050071745A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Autonomic content load balancing
US20050080801A1 (en) * 2000-05-17 2005-04-14 Vijayakumar Kothandaraman System for transactionally deploying content across multiple machines
US20050177825A1 (en) * 2003-02-27 2005-08-11 Chandar Kamalanathan Method and system for customized information handling system support updates
US20050198201A1 (en) * 2004-03-05 2005-09-08 International Business Machines Corporation Using content aggregation to build administration consoles
US20050262477A1 (en) * 2004-05-24 2005-11-24 Kovachka-Dimitrova Monika M Deploying a variety of containers in a Java 2 Enterprise Edition-based architecture
US20050268297A1 (en) * 2004-05-25 2005-12-01 Kovachka-Dimitrova Monika M Single file update
US20050273507A1 (en) * 2004-06-08 2005-12-08 Yong Yan Method and system for managing heterogeneous resources across a distributed computer network
US20050273787A1 (en) * 2004-05-24 2005-12-08 Kovachka-Dimitrova Monika M Deploy callback system
US20050278274A1 (en) * 2004-05-25 2005-12-15 Kovachka-Dimitrova Monika M Transaction model for deployment operations
US20050278338A1 (en) * 2004-05-25 2005-12-15 Todorova Mariela T Application cloning
US20060031849A1 (en) * 2004-04-06 2006-02-09 International Business Machines Corporation User task interface in a Web application
US20060029054A1 (en) * 2004-04-29 2006-02-09 International Business Machines Corporation System and method for modeling and dynamically deploying services into a distributed networking architecture
US20060037030A1 (en) * 2004-05-24 2006-02-16 Kovachka-Dimitrova Monika M Deploy service implementation
US20060041662A1 (en) * 2004-05-24 2006-02-23 Georgiev Anton G Application loading and visualization
US20060212855A1 (en) * 2005-03-16 2006-09-21 Bournas Redha M Methods, systems and computer program products for implementing production processes
US20060248121A1 (en) * 2005-04-15 2006-11-02 Michael Cacenco System and method for supporting packaging, publishing and republishing of wireless component applications
US20060259594A1 (en) * 2005-05-16 2006-11-16 Bharat Paliwal Progressive deployment and maintenance of applications on a set of peer nodes
US20070094364A1 (en) * 2003-04-30 2007-04-26 Roy Oberhauser Method and array for transparent, dynamic provision of a web services
US20070135941A1 (en) * 2005-12-13 2007-06-14 Bryant Eastham Systems and methods for handling failover in a distributed routing environment
US7313824B1 (en) * 2001-07-13 2007-12-25 Liquid Machines, Inc. Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
US20080052294A1 (en) * 2002-09-26 2008-02-28 Larkin Michael K Web services data aggregation system and method
US20080086573A1 (en) * 2001-11-21 2008-04-10 Frank Martinez Distributed Web Services Network Architecture
US20080195693A1 (en) * 2005-10-25 2008-08-14 Huawei Technologies Co., Ltd. Method and Device for Monitoring and Upgrading Software in Device Management
US20080222284A1 (en) * 2007-03-06 2008-09-11 Ankur Barua Methods of processing and segmenting web usage information
US20080250097A1 (en) * 2007-04-04 2008-10-09 Adadeus S.A.S Method and system for extending the services provided by an enterprise service bus
US20080270929A1 (en) * 2004-03-05 2008-10-30 International Business Machines Corporation Federating Legacy/Remote Content into a Central Network Console
US20080291908A1 (en) * 2007-05-21 2008-11-27 Hans Ruediger Bachmann Method and Apparatus for Mapping an Appropriate Service Version for a Client
US20080320003A1 (en) * 2007-06-25 2008-12-25 Microsoft Corporation Scaling network services using dns
US20090019106A1 (en) * 2003-12-10 2009-01-15 David Loupia Method of redirecting client requests to web services
US7483914B2 (en) 2003-07-17 2009-01-27 International Business Machines Corporation Method and system for implementing an application-based naming system
US20090064104A1 (en) * 2007-08-31 2009-03-05 Tom Baeyens Method and apparatus for supporting multiple business process languages in BPM
US20090063225A1 (en) * 2007-08-31 2009-03-05 Tom Baeyens Tool for automated transformation of a business process definition into a web application package
US20090070362A1 (en) * 2007-09-12 2009-03-12 Alejandro Guizar BPM system portable across databases
US20090070764A1 (en) * 2007-09-12 2009-03-12 Alejandro Guizar Handling queues associated with web services of business processes
US20090094364A1 (en) * 2002-05-22 2009-04-09 Stevens Luis F Virtualization method and apparatus for integrating enterprise applications
US20090144729A1 (en) * 2007-11-30 2009-06-04 Alejandro Guizar Portable business process deployment model across different application servers
US20090144305A1 (en) * 2007-11-29 2009-06-04 Mark Cameron Little Dependency management with atomic decay
US20090234941A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Resource Management System For Hosting Of User Solutions
US20090235353A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Scalable Hosting of User Solutions
US20100058329A1 (en) * 2008-08-26 2010-03-04 Cisco Technology, Inc. Method and apparatus for dynamically instantiating services using a service insertion architecture
US20100131854A1 (en) * 2008-11-26 2010-05-27 Mark Cameron Little Graphical user interface for managing services in a distributed computing system
US7853643B1 (en) * 2001-11-21 2010-12-14 Blue Titan Software, Inc. Web services-based computing resource lifecycle management
US7881198B2 (en) * 2005-04-25 2011-02-01 Telefonaktiebolaget L M Ericsson (Publ) Method for managing service bindings over an access domain and nodes therefor
US20110047591A1 (en) * 2003-05-22 2011-02-24 Scott George M Application network communication method and apparatus
US20110047127A1 (en) * 2002-05-22 2011-02-24 Scott George M Application network communication method and apparatus
US20110258315A1 (en) * 2002-11-13 2011-10-20 Mcafee, Inc., A Delaware Corporation Network analysis system and method utilizing collected metadata
US8073935B2 (en) * 2002-07-25 2011-12-06 Oracle America, Inc. Pluggable semantic verification and validation of configuration data
CN102882984A (en) * 2012-10-24 2013-01-16 曲阜师范大学 Method for balancing resource load of cloud computing platform
US20130019013A1 (en) * 2011-07-12 2013-01-17 Bank Of America Corporation Dynamic Provisioning of Service Requests
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US8813065B2 (en) 2010-04-26 2014-08-19 Vmware, Inc. Microcloud platform delivery system
US8918761B1 (en) 2008-12-05 2014-12-23 Amazon Technologies, Inc. Elastic application framework for deploying software
US8997078B2 (en) 2011-04-12 2015-03-31 Pivotal Software, Inc. Release lifecycle management system for a multi-node application
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9071522B2 (en) 2010-04-26 2015-06-30 Pivotal Software, Inc. Policy engine for cloud platform
US20150281204A1 (en) * 2014-03-29 2015-10-01 Akamai Technologies, Inc. Traffic on-boarding for acceleration through out-of-band security authenticators
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9369307B2 (en) 2011-07-12 2016-06-14 Bank Of America Corporation Optimized service integration
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
TWI552547B (en) * 2014-07-22 2016-10-01 廣達電腦股份有限公司 Data transmission service switch system and method
US20160308733A1 (en) * 2015-04-20 2016-10-20 Splunk Inc. Systems and Methods for Indicating Deployment of Application Features
US9772831B2 (en) * 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US9866455B2 (en) 2007-11-30 2018-01-09 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
CN111552482A (en) * 2020-04-21 2020-08-18 深圳市塔洛思技术有限公司 Decentralized dynamic service deployment method and device suitable for edge computing
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
US11449348B2 (en) * 2016-09-16 2022-09-20 Oracle International Corporation Pre/post deployment customization
US11734734B2 (en) 2003-09-18 2023-08-22 NetCracker Technology Solutions Inc. System and method for web service billing

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7136913B2 (en) * 2000-05-31 2006-11-14 Lab 7 Networks, Inc. Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US7596784B2 (en) 2000-09-12 2009-09-29 Symantec Operating Corporation Method system and apparatus for providing pay-per-use distributed computing resources
US8180871B2 (en) * 2001-05-23 2012-05-15 International Business Machines Corporation Dynamic redeployment of services in a computing network
US7194529B2 (en) * 2001-07-12 2007-03-20 Abb Inc. Method and apparatus for the delivery and integration of an asset management system into an existing enterprise network
US20030033467A1 (en) * 2001-08-08 2003-02-13 Satoshi Yoshizawa Method and apparatus for resource allocation in network router and switch
EP1321853A3 (en) * 2001-12-10 2009-12-23 Sap Ag Dynamic component transfer based on resource negotiations between computer systems
US20060075070A1 (en) * 2002-04-02 2006-04-06 Patrick Merissert-Coffinieres Development and deployment of mobile and desktop applications within a flexible markup-based distributed architecture
ITTO20020341A1 (en) * 2002-04-19 2003-10-20 Telecom Italia Lab Spa PROCEDURE FOR CARRYING OUT THE INTERLAPHY BETWEEN NETWORKS OF THE CONTENT DELIVERY NETWORK -CDN- TYPE, RELATIVE NETWORK SET AND INTERFAC COMPONENT
US20030204612A1 (en) * 2002-04-30 2003-10-30 Mark Warren System and method for facilitating device communication, management and control in a network
US8892895B1 (en) 2002-05-07 2014-11-18 Data Recognition Corporation Integrated system for electronic tracking and control of documents
US6772081B1 (en) * 2002-05-21 2004-08-03 Data Recognition Corporation Priority system and method for processing standardized tests
US20040010510A1 (en) * 2002-07-10 2004-01-15 Timo Hotti Method and system for database synchronization
US8356067B2 (en) * 2002-10-24 2013-01-15 Intel Corporation Servicing device aggregates
US8385811B1 (en) 2003-02-11 2013-02-26 Data Recognition Corporation System and method for processing forms using color
US6901590B2 (en) * 2003-03-03 2005-05-31 Computer Associates Think, Inc. System and method for single transparent deployment flow
WO2005006219A2 (en) * 2003-07-11 2005-01-20 Computer Associates Think, Inc. Method and apparatus for translating a web services address
CN100349116C (en) * 2003-08-05 2007-11-14 华为技术有限公司 Method for device for improving computer furction for accessing internet
US7512949B2 (en) * 2003-09-03 2009-03-31 International Business Machines Corporation Status hub used by autonomic application servers
CA2538800A1 (en) * 2003-09-19 2005-04-14 Pctel, Inc. Apparatus and method for automated updating system for wireless networks
US7529824B2 (en) * 2003-10-14 2009-05-05 International Business Machines Corporation Method for selecting a service binding protocol in a service-oriented architecture
US7380003B1 (en) * 2003-10-30 2008-05-27 Microsoft Corporation Method and system for staged web service upgrade from an existing version to a different version
CA2449534A1 (en) * 2003-11-14 2005-05-14 Ibm Canada Limited - Ibm Canada Limitee On-demand software module deployment
ATE384994T1 (en) * 2003-12-10 2008-02-15 Ibm METHOD AND SYSTEM FOR AUTOMATICALLY GENERATING SERVICE INTERFACES FOR A SERVICE-ORIENTED ARCHITECTURE
US7464142B2 (en) * 2003-12-12 2008-12-09 International Business Machines Corporation Port type agnostic proxy support for web services intermediates
CA2548368C (en) * 2003-12-12 2010-11-02 International Business Machines Corporation Port type agnostic proxy support for web services intermediaries
EP1566940A1 (en) * 2004-02-20 2005-08-24 Alcatel Alsthom Compagnie Generale D'electricite A method, a service system, and a computer software product of self-organizing distributing services in a computing network
JP2005250548A (en) * 2004-03-01 2005-09-15 Fujitsu Ltd Relay control method, relay control program, and relay controller
KR100505344B1 (en) * 2004-03-03 2005-08-03 함경수 Service method and system for providing name identifier multiple resolution service using urn(uniform resource name)technology
US8095658B2 (en) * 2004-05-07 2012-01-10 International Business Machines Corporation Method and system for externalizing session management using a reverse proxy server
FR2870022B1 (en) 2004-05-07 2007-02-02 Canon Kk METHOD AND DEVICE FOR DISTRIBUTING DIGITAL DATA, IN PARTICULAR FOR A PAIR-A-PAIR NETWORK
WO2005114964A1 (en) * 2004-05-21 2005-12-01 Computer Associates Think, Inc. Method and apparatus for web service communication
US7481867B2 (en) * 2004-06-16 2009-01-27 Edwards Limited Vacuum system for immersion photolithography
DE102004054648A1 (en) 2004-11-11 2006-05-24 Francotyp-Postalia Ag & Co. Kg Method for providing services between data processing devices
US20060149583A1 (en) * 2004-11-26 2006-07-06 Pfeiffer Clemens A Method and apparatus for using software automatically and without user interaction the same way people would use such software
US8347285B2 (en) * 2004-12-16 2013-01-01 Intel Corporation Embedded agent for self-healing software
JP4189379B2 (en) * 2004-12-27 2008-12-03 株式会社日立製作所 Application operation control method and system
US20060287967A1 (en) * 2005-06-16 2006-12-21 International Business Machines Corporation Methods and apparatus for agreement-based automated service provisioning
US8078671B2 (en) 2005-09-21 2011-12-13 Sap Ag System and method for dynamic web services descriptor generation using templates
US20070067388A1 (en) * 2005-09-21 2007-03-22 Angelov Dimitar V System and method for configuration to web services descriptor
US7673028B2 (en) * 2005-09-28 2010-03-02 Sap Ag Method and system for container-managed configuration and administration
US7702789B2 (en) * 2005-11-03 2010-04-20 International Business Machines Corporation Apparatus, system, and method for reassigning a client
US20070118496A1 (en) * 2005-11-21 2007-05-24 Christof Bornhoevd Service-to-device mapping for smart items
US8005879B2 (en) * 2005-11-21 2011-08-23 Sap Ag Service-to-device re-mapping for smart items
US8156208B2 (en) 2005-11-21 2012-04-10 Sap Ag Hierarchical, multi-tiered mapping and monitoring architecture for service-to-device re-mapping for smart items
US20070156872A1 (en) * 2005-12-30 2007-07-05 Stoyanova Dimitrina G Method and system for Web services deployment
US8024425B2 (en) * 2005-12-30 2011-09-20 Sap Ag Web services deployment
US7814060B2 (en) * 2005-12-30 2010-10-12 Sap Ag Apparatus and method for web service client deployment
US8010695B2 (en) * 2005-12-30 2011-08-30 Sap Ag Web services archive
US8522341B2 (en) 2006-03-31 2013-08-27 Sap Ag Active intervention in service-to-device mapping for smart items
US8284423B2 (en) * 2006-04-07 2012-10-09 Ricoh Production Print Solutions LLC Customer-configurable print workflow system
US8296413B2 (en) 2006-05-31 2012-10-23 Sap Ag Device registration in a hierarchical monitor service
US8131838B2 (en) 2006-05-31 2012-03-06 Sap Ag Modular monitor service for smart item monitoring
US8396788B2 (en) 2006-07-31 2013-03-12 Sap Ag Cost-based deployment of components in smart item environments
US20080228459A1 (en) * 2006-10-12 2008-09-18 Nec Laboratories America, Inc. Method and Apparatus for Performing Capacity Planning and Resource Optimization in a Distributed System
CN101192937B (en) * 2006-11-24 2010-05-12 华为技术有限公司 A hot deployable method and its system
US8504711B1 (en) * 2006-12-12 2013-08-06 Google Inc. Integrating web services with a content item
US8499311B2 (en) * 2006-12-29 2013-07-30 Sap Ag Web container extension classloading
US7882301B2 (en) * 2007-05-09 2011-02-01 Stmicroelectronics S.R.L. Wear leveling in storage devices based on flash memories and related circuit, system, and method
US8181071B2 (en) 2007-06-29 2012-05-15 Microsoft Corporation Automatically managing system downtime in a computer network
US20090086269A1 (en) * 2007-09-28 2009-04-02 Kyocera Mita Corporation Image Forming Apparatus and Image Forming System
US8527622B2 (en) 2007-10-12 2013-09-03 Sap Ag Fault tolerance framework for networks of nodes
US8145747B2 (en) * 2007-12-11 2012-03-27 Microsoft Corporation Webpage domain monitoring
US8893141B2 (en) * 2008-01-28 2014-11-18 Microsoft Corporation System and method for describing applications for manageability and efficient scale-up deployment
MX2009008285A (en) * 2008-08-12 2010-05-17 Bank Of America Workflow automation & request processing.
US8370613B1 (en) * 2009-06-30 2013-02-05 Symantec Corporation Method and apparatus for automatically optimizing a startup sequence to improve system boot time
US8543686B2 (en) * 2009-07-23 2013-09-24 University-Industry Cooperation Group Of Kyung Hee University Dynamic resource collaboration between network service providers
US8898287B2 (en) * 2010-02-24 2014-11-25 Salesforce.Com, Inc. System, method and computer program product for monitoring data activity utilizing a shared data store
US9483312B2 (en) * 2010-08-16 2016-11-01 International Business Machines Corporation Locating service endpoints from a service registry
CN101951402B (en) * 2010-09-17 2013-02-20 山东中创软件工程股份有限公司 Tracking and detecting method, device and system of Web Service availability
KR101201904B1 (en) * 2010-11-18 2012-11-16 와이즈토드 피티이. 엘티디. Apparatus and method for resource distribution in cloud computing
WO2012068465A1 (en) * 2010-11-19 2012-05-24 Interdigital Patent Holdings, Inc. Machine-to-machine (m2m) interface procedures for announce and de-announce of resources
US20120131162A1 (en) * 2010-11-24 2012-05-24 Brandt Mark S Using a web service to delete dns records in a server hosting system
CN103947140B (en) 2011-09-20 2017-09-29 以太杰作有限责任公司 System and method for the deployment of the requirement drive of position independent software
US10348573B2 (en) * 2012-01-11 2019-07-09 Saguna Networks Ltd. Methods, circuits, devices, systems and associated computer executable code for facilitating local hosting and access of internet based information
US8862984B1 (en) * 2012-02-01 2014-10-14 Amazon Technologies, Inc. Data contracts for network page generation code
US8819477B1 (en) 2012-02-01 2014-08-26 Amazon Technologies, Inc. Error handling in a network page generation environment
US9800455B1 (en) 2012-02-08 2017-10-24 Amazon Technologies, Inc. Log monitoring system
CN103297497B (en) * 2012-02-28 2018-03-16 Sap欧洲公司 Computer implemented method, computer system and computer-readable medium
US8972968B1 (en) * 2012-05-31 2015-03-03 Amazon Technologies, Inc. Alternate service for applications
EP2782316A1 (en) * 2013-03-18 2014-09-24 Koninklijke KPN N.V. Localizing and placement of network node functions in a network
CN105474177B (en) 2013-05-31 2019-06-04 日本电气株式会社 Distributed processing system(DPS), equipment, method and recording medium
CN104243190B (en) * 2013-06-09 2018-06-15 新华三技术有限公司 A kind of method and the network equipment for realizing zero configuration networking protocol service
US8745221B1 (en) 2013-09-18 2014-06-03 Limelight Networks, Inc. Dynamic request rerouting
EP3241112A1 (en) 2014-12-31 2017-11-08 Servicenow, Inc. Classification based automated instance management
CN105991687B (en) * 2015-02-03 2019-09-17 阿里巴巴集团控股有限公司 A kind of service management and device
US10749985B2 (en) 2015-05-19 2020-08-18 Amazon Technologies, Inc. Custom communication channels for application deployment
JP2017126238A (en) * 2016-01-15 2017-07-20 日本電気株式会社 System management device, information processing system, system management method, and program
US10554751B2 (en) 2016-01-27 2020-02-04 Oracle International Corporation Initial resource provisioning in cloud systems
US10009775B1 (en) * 2017-03-14 2018-06-26 Aruba Networks, Inc. Network deployment
US10360012B2 (en) * 2017-11-09 2019-07-23 International Business Machines Corporation Dynamic selection of deployment configurations of software applications
US11425085B1 (en) * 2017-11-20 2022-08-23 Amazon Technologies, Inc. Service discovery and renaming
US20190197596A1 (en) * 2017-12-21 2019-06-27 Octraves Technology Sdn Bhd System, apparatus, and method for integrating a plurality of supplier systems
US11196837B2 (en) 2019-03-29 2021-12-07 Intel Corporation Technologies for multi-tier prefetching in a context-aware edge gateway
US11388054B2 (en) 2019-04-30 2022-07-12 Intel Corporation Modular I/O configurations for edge computing using disaggregated chiplets
CN112532758B (en) * 2019-09-19 2023-04-18 贵州白山云科技股份有限公司 Method, device and medium for establishing network edge computing system
US11669368B2 (en) 2019-09-28 2023-06-06 Intel Corporation Multi-tenant data protection in edge computing environments
US11102630B2 (en) 2019-10-25 2021-08-24 Telefonaktiebolaget Lm Ericsson (Publ) Method for service placement in a multi-access/mobile edge computing (MEC) system
CN111343002B (en) * 2020-02-10 2021-10-15 腾讯科技(深圳)有限公司 Server capacity expansion deployment method and device and server
CN113453194B (en) * 2020-03-24 2022-08-23 大唐移动通信设备有限公司 Mobile edge service updating method, device, system, equipment and medium
WO2021231333A1 (en) * 2020-05-12 2021-11-18 Harmonic, Inc. Dynamic adjustment of deployment location of software within a network

Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5657451A (en) * 1994-01-24 1997-08-12 Telefonaktiebolaget Lm Ericsson System for determining whether to accept new supplementary services based upon identified types of supplementary service interactions and identified supplementary service interaction criteria
US5907675A (en) * 1995-03-22 1999-05-25 Sun Microsystems, Inc. Methods and apparatus for managing deactivation and shutdown of a server
US5951694A (en) * 1995-06-07 1999-09-14 Microsoft Corporation Method of redirecting a client service session to a second application server without interrupting the session by forwarding service-specific information to the second server
US6055570A (en) * 1997-04-03 2000-04-25 Sun Microsystems, Inc. Subscribed update monitors
US6081840A (en) * 1997-10-14 2000-06-27 Zhao; Yan Two-level content distribution system
US6094680A (en) * 1996-06-27 2000-07-25 Microsoft Corporation System and method for managing distributed resources on networks
US6167444A (en) * 1998-05-08 2000-12-26 International Business Machines Corporation Method and system for exchanging routing information
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6324543B1 (en) * 1998-03-06 2001-11-27 International Business Machines Corporation Dynamic object migration method using proxy object links to support automatic object distribution in an object-oriented environment
US20020078167A1 (en) * 2000-12-20 2002-06-20 Moshe Shavit System and method for migration of subscriber data
US6418452B1 (en) * 1999-11-03 2002-07-09 International Business Machines Corporation Network repository service directory for efficient web crawling
US6421727B1 (en) * 1998-09-22 2002-07-16 Abraham Issachar Reifer Internetworking system and method for a global telecommunications network
US20020104071A1 (en) * 1999-10-05 2002-08-01 Dietrich Charisius Methods and systems for supporting and deploying distributed computing components
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6631425B1 (en) * 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US6654610B1 (en) * 2000-05-05 2003-11-25 Lucent Technologies Inc. Two-way packet data protocol methods and apparatus for a mobile telecommunication system
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US6745241B1 (en) * 1999-03-31 2004-06-01 International Business Machines Corporation Method and system for dynamic addition and removal of multiple network names on a single server
US6779032B1 (en) * 1999-07-01 2004-08-17 International Business Machines Corporation Method and system for optimally selecting a Telnet 3270 server in a TCP/IP network
US6857012B2 (en) * 2000-10-26 2005-02-15 Intel Corporation Method and apparatus for initializing a new node in a network

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US78167A (en) * 1868-05-19 Improvement in mfting-jack
US104071A (en) * 1870-06-07 Improved grater
US5983281A (en) * 1997-04-24 1999-11-09 International Business Machines Corporation Load balancing in a multiple network environment
US6363411B1 (en) * 1998-08-05 2002-03-26 Mci Worldcom, Inc. Intelligent network
US6167427A (en) * 1997-11-28 2000-12-26 Lucent Technologies Inc. Replication service system and method for directing the replication of information servers based on selected plurality of servers load
US6631512B1 (en) * 1999-01-15 2003-10-07 Gillis E Onyeabor Method and system for database-driven, scalable web page development, deployment-download, and execution
JP3545252B2 (en) 1999-03-30 2004-07-21 富士通株式会社 Information processing equipment
US6553423B1 (en) * 1999-05-27 2003-04-22 Cisco Technology, Inc. Method and apparatus for dynamic exchange of capabilities between adjacent/neighboring networks nodes
JP2001306537A (en) * 2000-04-18 2001-11-02 Hitachi Ltd Distributed object system
US6880156B1 (en) * 2000-07-27 2005-04-12 Hewlett-Packard Development Company. L.P. Demand responsive method and apparatus to automatically activate spare servers
US6990574B2 (en) * 2001-05-01 2006-01-24 General Electric Company Object oriented framework for scanner/workstation configuration
US8180871B2 (en) * 2001-05-23 2012-05-15 International Business Machines Corporation Dynamic redeployment of services in a computing network

Patent Citations (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
US5657451A (en) * 1994-01-24 1997-08-12 Telefonaktiebolaget Lm Ericsson System for determining whether to accept new supplementary services based upon identified types of supplementary service interactions and identified supplementary service interaction criteria
US5907675A (en) * 1995-03-22 1999-05-25 Sun Microsystems, Inc. Methods and apparatus for managing deactivation and shutdown of a server
US5951694A (en) * 1995-06-07 1999-09-14 Microsoft Corporation Method of redirecting a client service session to a second application server without interrupting the session by forwarding service-specific information to the second server
US6094680A (en) * 1996-06-27 2000-07-25 Microsoft Corporation System and method for managing distributed resources on networks
US6055570A (en) * 1997-04-03 2000-04-25 Sun Microsystems, Inc. Subscribed update monitors
US6256675B1 (en) * 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6081840A (en) * 1997-10-14 2000-06-27 Zhao; Yan Two-level content distribution system
US6631425B1 (en) * 1997-10-28 2003-10-07 Microsoft Corporation Just-in-time activation and as-soon-as-possible deactivation or server application components
US6324543B1 (en) * 1998-03-06 2001-11-27 International Business Machines Corporation Dynamic object migration method using proxy object links to support automatic object distribution in an object-oriented environment
US6167444A (en) * 1998-05-08 2000-12-26 International Business Machines Corporation Method and system for exchanging routing information
US6549932B1 (en) * 1998-06-03 2003-04-15 International Business Machines Corporation System, method and computer program product for discovery in a distributed computing environment
US6421727B1 (en) * 1998-09-22 2002-07-16 Abraham Issachar Reifer Internetworking system and method for a global telecommunications network
US6745241B1 (en) * 1999-03-31 2004-06-01 International Business Machines Corporation Method and system for dynamic addition and removal of multiple network names on a single server
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6779032B1 (en) * 1999-07-01 2004-08-17 International Business Machines Corporation Method and system for optimally selecting a Telnet 3270 server in a TCP/IP network
US20020104071A1 (en) * 1999-10-05 2002-08-01 Dietrich Charisius Methods and systems for supporting and deploying distributed computing components
US6418452B1 (en) * 1999-11-03 2002-07-09 International Business Machines Corporation Network repository service directory for efficient web crawling
US6654610B1 (en) * 2000-05-05 2003-11-25 Lucent Technologies Inc. Two-way packet data protocol methods and apparatus for a mobile telecommunication system
US6704024B2 (en) * 2000-08-07 2004-03-09 Zframe, Inc. Visual content browsing using rasterized representations
US6857012B2 (en) * 2000-10-26 2005-02-15 Intel Corporation Method and apparatus for initializing a new node in a network
US20020078167A1 (en) * 2000-12-20 2002-06-20 Moshe Shavit System and method for migration of subscriber data

Cited By (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050080801A1 (en) * 2000-05-17 2005-04-14 Vijayakumar Kothandaraman System for transactionally deploying content across multiple machines
US7657887B2 (en) 2000-05-17 2010-02-02 Interwoven, Inc. System for transactionally deploying content across multiple machines
US7313824B1 (en) * 2001-07-13 2007-12-25 Liquid Machines, Inc. Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
US7111285B2 (en) 2001-07-17 2006-09-19 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US20030018906A1 (en) * 2001-07-17 2003-01-23 Liquid Machines, Inc. Method and system for protecting software applications against static and dynamic software piracy techniques
US7130898B2 (en) * 2001-08-27 2006-10-31 Sun Microsystems, Inc. Mechanism for facilitating invocation of a service
US20030055875A1 (en) * 2001-08-27 2003-03-20 Carter Frederick H. Mechanism for facilitating invocation of a service
US7853643B1 (en) * 2001-11-21 2010-12-14 Blue Titan Software, Inc. Web services-based computing resource lifecycle management
US20110196940A1 (en) * 2001-11-21 2011-08-11 Soa Software, Inc. Web Services-Based Computing Resource Lifecycle Management
US8255485B2 (en) * 2001-11-21 2012-08-28 Blue Titan Software, Inc. Web services-based computing resource lifecycle management
US7529805B2 (en) 2001-11-21 2009-05-05 Blue Titan Software, Inc. Distributed web services network architecture
US20080086573A1 (en) * 2001-11-21 2008-04-10 Frank Martinez Distributed Web Services Network Architecture
US20030135509A1 (en) * 2002-01-11 2003-07-17 Davis Andrew Thomas Edge server java application framework having application server instance resource monitoring and management
US20030220925A1 (en) * 2002-01-31 2003-11-27 Avi Lior System and method for web services management
US20040064503A1 (en) * 2002-02-22 2004-04-01 Bea Systems, Inc. System and method for web services Java API-based invocation
US20040045005A1 (en) * 2002-02-22 2004-03-04 Todd Karakashian Web services programming and deployment
US7693955B2 (en) * 2002-02-22 2010-04-06 Bea Systems, Inc. System and method for deploying a web service
US20040015578A1 (en) * 2002-02-22 2004-01-22 Todd Karakashian Web services runtime architecture
US7769825B2 (en) 2002-02-22 2010-08-03 Bea Systems, Inc. System and method for web services Java API-based invocation
WO2003073309A1 (en) * 2002-02-22 2003-09-04 Bea Systems, Inc. Web services programming and deployment
US20040049579A1 (en) * 2002-04-10 2004-03-11 International Business Machines Corporation Capacity-on-demand in distributed computing environments
US9137324B2 (en) * 2002-04-10 2015-09-15 International Business Machines Corporation Capacity on-demand in distributed computing environments
US7290262B2 (en) * 2002-05-21 2007-10-30 International Business Machine Corporation Method and apparatus for dynamically determining information for deploying a web service
US20030220993A1 (en) * 2002-05-21 2003-11-27 Blizniak Paul K. Method and apparatus for dynamically determining information for deploying a web service
US20110047127A1 (en) * 2002-05-22 2011-02-24 Scott George M Application network communication method and apparatus
US20110047293A1 (en) * 2002-05-22 2011-02-24 George Scott Application network communication method and apparatus
US8285873B2 (en) 2002-05-22 2012-10-09 International Business Machines Corporation Application network communication
US8296433B2 (en) 2002-05-22 2012-10-23 International Business Machines Corporation Virtualization method and apparatus for integrating enterprise applications
US20090094364A1 (en) * 2002-05-22 2009-04-09 Stevens Luis F Virtualization method and apparatus for integrating enterprise applications
US8468264B2 (en) * 2002-05-22 2013-06-18 International Businsess Machines Corporation Application network communication
US8073935B2 (en) * 2002-07-25 2011-12-06 Oracle America, Inc. Pluggable semantic verification and validation of configuration data
US20040054722A1 (en) * 2002-09-18 2004-03-18 Alcatel Meta service selector, meta service selector protocol, method, client, service, network access server, distributed system, and a computer software product for deploying services over a plurality of networks
US20080052294A1 (en) * 2002-09-26 2008-02-28 Larkin Michael K Web services data aggregation system and method
US7933891B2 (en) * 2002-09-26 2011-04-26 International Business Machines Corporation Web services data aggregation system and method
US8631124B2 (en) * 2002-11-13 2014-01-14 Mcafee, Inc. Network analysis system and method utilizing collected metadata
US20110258315A1 (en) * 2002-11-13 2011-10-20 Mcafee, Inc., A Delaware Corporation Network analysis system and method utilizing collected metadata
US7302681B2 (en) * 2003-02-27 2007-11-27 Dell Products L.P. Method and system for customized information handling system support updates
US20050177825A1 (en) * 2003-02-27 2005-08-11 Chandar Kamalanathan Method and system for customized information handling system support updates
US8209375B2 (en) * 2003-03-07 2012-06-26 Ricoh Co., Ltd. Communication of compressed digital images with restricted access and server/client hand-offs
US20040205199A1 (en) * 2003-03-07 2004-10-14 Michael Gormish Communication of compressed digital images with restricted access and server/client hand-offs
US7689668B2 (en) * 2003-04-30 2010-03-30 Siemens Aktiengesellschaft Method and array for transparent, dynamic provision of a web services
US20070094364A1 (en) * 2003-04-30 2007-04-26 Roy Oberhauser Method and array for transparent, dynamic provision of a web services
US20040225724A1 (en) * 2003-05-08 2004-11-11 Gregory Pavlik RPC type SOAP service access via taglibs for dynamic web content
US8321590B2 (en) 2003-05-22 2012-11-27 International Business Machines Corporation Application network communication
US20110047591A1 (en) * 2003-05-22 2011-02-24 Scott George M Application network communication method and apparatus
US20050038771A1 (en) * 2003-06-04 2005-02-17 Jun Sugihara Method and system for managing programs for web service system
US7500251B2 (en) * 2003-06-04 2009-03-03 Hitachi, Ltd. Method and system for managing programs for web service system
US7483914B2 (en) 2003-07-17 2009-01-27 International Business Machines Corporation Method and system for implementing an application-based naming system
US7210125B2 (en) 2003-07-17 2007-04-24 International Business Machines Corporation Method and system for application installation and management using an application-based naming system including aliases
US20050015761A1 (en) * 2003-07-17 2005-01-20 International Business Machines Corporation Method and system for application installation and management using an application-based naming system including aliases
US20050038708A1 (en) * 2003-08-10 2005-02-17 Gmorpher Incorporated Consuming Web Services on Demand
US20050038867A1 (en) * 2003-08-14 2005-02-17 International Business Machines Corporation Method, system and program product for integrating web services on a client
US11734734B2 (en) 2003-09-18 2023-08-22 NetCracker Technology Solutions Inc. System and method for web service billing
US20050071745A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Autonomic content load balancing
US9614889B2 (en) 2003-09-30 2017-04-04 International Business Machines Corporation Autonomic content load balancing
US20050071758A1 (en) * 2003-09-30 2005-03-31 International Business Machines Corporation Client-side processing of alternative component-level views
US20100218107A1 (en) * 2003-09-30 2010-08-26 International Business Machines Corporation Autonomic Content Load Balancing
US7761534B2 (en) 2003-09-30 2010-07-20 International Business Machines Corporation Autonomic content load balancing
US7502834B2 (en) * 2003-09-30 2009-03-10 International Business Machines Corporation Autonomic content load balancing
US20090070464A1 (en) * 2003-09-30 2009-03-12 International Business Machines Corporation Autonomic Content Load Balancing
US9807160B2 (en) 2003-09-30 2017-10-31 International Business Machines Corporation Autonomic content load balancing
US20090019106A1 (en) * 2003-12-10 2009-01-15 David Loupia Method of redirecting client requests to web services
US8234406B2 (en) * 2003-12-10 2012-07-31 International Business Machines Corporation Method of redirecting client requests to web services
US20090044152A1 (en) * 2004-03-05 2009-02-12 International Business Machines Corporation Using content aggregation to build administration consoles
US8140976B2 (en) 2004-03-05 2012-03-20 International Business Machines Corporation Using content aggregation to build administration consoles
US7493563B2 (en) * 2004-03-05 2009-02-17 International Business Machines Corporation Using content aggregation to build administration consoles
US7930696B2 (en) 2004-03-05 2011-04-19 International Business Machines Corporation Federating legacy/remote content into a central network console
US20080270929A1 (en) * 2004-03-05 2008-10-30 International Business Machines Corporation Federating Legacy/Remote Content into a Central Network Console
US20050198201A1 (en) * 2004-03-05 2005-09-08 International Business Machines Corporation Using content aggregation to build administration consoles
US8327290B2 (en) 2004-04-06 2012-12-04 International Business Machines Corporation User task interface in a web application
US20060031849A1 (en) * 2004-04-06 2006-02-09 International Business Machines Corporation User task interface in a Web application
US20060029054A1 (en) * 2004-04-29 2006-02-09 International Business Machines Corporation System and method for modeling and dynamically deploying services into a distributed networking architecture
JP2007538313A (en) * 2004-04-29 2007-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション System and method for modeling and dynamically deploying services within a distributed networking architecture
US20060037030A1 (en) * 2004-05-24 2006-02-16 Kovachka-Dimitrova Monika M Deploy service implementation
US7562341B2 (en) 2004-05-24 2009-07-14 Sap Ag Deploy callback system with bidirectional containers
US7721283B2 (en) 2004-05-24 2010-05-18 Sap Ag Deploying a variety of containers in a Java 2 enterprise edition-based architecture
US20060041662A1 (en) * 2004-05-24 2006-02-23 Georgiev Anton G Application loading and visualization
US7735097B2 (en) 2004-05-24 2010-06-08 Sap Ag Method and system to implement a deploy service to perform deployment services to extend and enhance functionalities of deployed applications
US20050273787A1 (en) * 2004-05-24 2005-12-08 Kovachka-Dimitrova Monika M Deploy callback system
US8762981B2 (en) 2004-05-24 2014-06-24 Sap Ag Application loading and visualization
US20050262477A1 (en) * 2004-05-24 2005-11-24 Kovachka-Dimitrova Monika M Deploying a variety of containers in a Java 2 Enterprise Edition-based architecture
US7747698B2 (en) * 2004-05-25 2010-06-29 Sap Ag Transaction model for deployment operations
US7877735B2 (en) 2004-05-25 2011-01-25 Sap Ag Application cloning
US7882502B2 (en) 2004-05-25 2011-02-01 Sap Ag Single file update
US20050278274A1 (en) * 2004-05-25 2005-12-15 Kovachka-Dimitrova Monika M Transaction model for deployment operations
US20050268297A1 (en) * 2004-05-25 2005-12-01 Kovachka-Dimitrova Monika M Single file update
US20050278338A1 (en) * 2004-05-25 2005-12-15 Todorova Mariela T Application cloning
US20050273507A1 (en) * 2004-06-08 2005-12-08 Yong Yan Method and system for managing heterogeneous resources across a distributed computer network
US20060212855A1 (en) * 2005-03-16 2006-09-21 Bournas Redha M Methods, systems and computer program products for implementing production processes
US20060248121A1 (en) * 2005-04-15 2006-11-02 Michael Cacenco System and method for supporting packaging, publishing and republishing of wireless component applications
US7881198B2 (en) * 2005-04-25 2011-02-01 Telefonaktiebolaget L M Ericsson (Publ) Method for managing service bindings over an access domain and nodes therefor
US20060259594A1 (en) * 2005-05-16 2006-11-16 Bharat Paliwal Progressive deployment and maintenance of applications on a set of peer nodes
US20080195693A1 (en) * 2005-10-25 2008-08-14 Huawei Technologies Co., Ltd. Method and Device for Monitoring and Upgrading Software in Device Management
US8346913B2 (en) * 2005-10-25 2013-01-01 Huawei Technologies Co., Ltd. Method and device for monitoring and upgrading software in device management
US20070135941A1 (en) * 2005-12-13 2007-06-14 Bryant Eastham Systems and methods for handling failover in a distributed routing environment
US8533255B2 (en) * 2005-12-13 2013-09-10 Panasonic Corporation Systems and methods for handling failover in a distributed routing environment
US20080222284A1 (en) * 2007-03-06 2008-09-11 Ankur Barua Methods of processing and segmenting web usage information
US7822755B2 (en) * 2007-03-06 2010-10-26 Yahoo! Inc. Methods of processing and segmenting web usage information
US20080250097A1 (en) * 2007-04-04 2008-10-09 Adadeus S.A.S Method and system for extending the services provided by an enterprise service bus
US8572286B2 (en) * 2007-05-21 2013-10-29 Sap Ag Method and apparatus for mapping an appropriate service version for a client
US20080291908A1 (en) * 2007-05-21 2008-11-27 Hans Ruediger Bachmann Method and Apparatus for Mapping an Appropriate Service Version for a Client
US9219705B2 (en) 2007-06-25 2015-12-22 Microsoft Technology Licensing, Llc Scaling network services using DNS
US20080320003A1 (en) * 2007-06-25 2008-12-25 Microsoft Corporation Scaling network services using dns
US9058571B2 (en) 2007-08-31 2015-06-16 Red Hat, Inc. Tool for automated transformation of a business process definition into a web application package
US20090063225A1 (en) * 2007-08-31 2009-03-05 Tom Baeyens Tool for automated transformation of a business process definition into a web application package
US8423955B2 (en) 2007-08-31 2013-04-16 Red Hat, Inc. Method and apparatus for supporting multiple business process languages in BPM
US20090064104A1 (en) * 2007-08-31 2009-03-05 Tom Baeyens Method and apparatus for supporting multiple business process languages in BPM
US20090070362A1 (en) * 2007-09-12 2009-03-12 Alejandro Guizar BPM system portable across databases
US8825713B2 (en) 2007-09-12 2014-09-02 Red Hat, Inc. BPM system portable across databases
US20090070764A1 (en) * 2007-09-12 2009-03-12 Alejandro Guizar Handling queues associated with web services of business processes
US8914804B2 (en) * 2007-09-12 2014-12-16 Red Hat, Inc. Handling queues associated with web services of business processes
US8464270B2 (en) 2007-11-29 2013-06-11 Red Hat, Inc. Dependency management with atomic decay
US9621634B2 (en) 2007-11-29 2017-04-11 Red Hat, Inc. Dependency management with atomic decay
US20090144305A1 (en) * 2007-11-29 2009-06-04 Mark Cameron Little Dependency management with atomic decay
US10027563B2 (en) 2007-11-30 2018-07-17 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
US8954952B2 (en) 2007-11-30 2015-02-10 Red Hat, Inc. Portable business process deployment model across different application servers
US9866455B2 (en) 2007-11-30 2018-01-09 Red Hat, Inc. Using status inquiry and status response messages to exchange management information
US20090144729A1 (en) * 2007-11-30 2009-06-04 Alejandro Guizar Portable business process deployment model across different application servers
US20090234941A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Resource Management System For Hosting Of User Solutions
US8316101B2 (en) 2008-03-15 2012-11-20 Microsoft Corporation Resource management system for hosting of user solutions
US20090235353A1 (en) * 2008-03-15 2009-09-17 Microsoft Corporation Scalable Hosting of User Solutions
US20100058329A1 (en) * 2008-08-26 2010-03-04 Cisco Technology, Inc. Method and apparatus for dynamically instantiating services using a service insertion architecture
EP2319211B1 (en) * 2008-08-26 2018-03-21 Cisco Technology, Inc. Method and apparatus for dynamically instantiating services using a service insertion architecture
WO2010027659A2 (en) 2008-08-26 2010-03-11 Cisco Technology, Inc. Method and apparatus for dynamically instantiating services using a service insertion architecture
US8281302B2 (en) 2008-08-26 2012-10-02 Cisco Technology, Inc. Method and apparatus for dynamically instantiating services using a service insertion architecture
US8645837B2 (en) * 2008-11-26 2014-02-04 Red Hat, Inc. Graphical user interface for managing services in a distributed computing system
US20100131854A1 (en) * 2008-11-26 2010-05-27 Mark Cameron Little Graphical user interface for managing services in a distributed computing system
US8918761B1 (en) 2008-12-05 2014-12-23 Amazon Technologies, Inc. Elastic application framework for deploying software
US11175913B2 (en) 2008-12-05 2021-11-16 Amazon Technologies, Inc. Elastic application framework for deploying software
US10564960B2 (en) 2008-12-05 2020-02-18 Amazon Technologies, Inc. Elastic application framework for deploying software
US9817658B2 (en) 2008-12-05 2017-11-14 Amazon Technologies, Inc. Elastic application framework for deploying software
US10817273B1 (en) * 2010-04-26 2020-10-27 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US8813065B2 (en) 2010-04-26 2014-08-19 Vmware, Inc. Microcloud platform delivery system
US20140130038A1 (en) * 2010-04-26 2014-05-08 Vmware, Inc. Cloud platform architecture
US11604630B2 (en) 2010-04-26 2023-03-14 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US9250887B2 (en) * 2010-04-26 2016-02-02 Pivotal Software, Inc. Cloud platform architecture
US11496523B2 (en) 2010-04-26 2022-11-08 Pivotal Software, Inc. Policy engine for cloud platform
US10805351B2 (en) 2010-04-26 2020-10-13 Pivotal Software, Inc. Policy engine for cloud platform
US9448790B2 (en) 2010-04-26 2016-09-20 Pivotal Software, Inc. Rapid updating of cloud applications
US9942277B2 (en) 2010-04-26 2018-04-10 Pivotal Software, Inc. Policy engine for cloud platform
US8627426B2 (en) 2010-04-26 2014-01-07 Vmware, Inc. Cloud platform architecture
US9560079B1 (en) 2010-04-26 2017-01-31 Pivotal Software, Inc. Policy engine for cloud platform
US9772831B2 (en) * 2010-04-26 2017-09-26 Pivotal Software, Inc. Droplet execution engine for dynamic server application deployment
US9071522B2 (en) 2010-04-26 2015-06-30 Pivotal Software, Inc. Policy engine for cloud platform
US9015710B2 (en) 2011-04-12 2015-04-21 Pivotal Software, Inc. Deployment system for multi-node applications
US8997078B2 (en) 2011-04-12 2015-03-31 Pivotal Software, Inc. Release lifecycle management system for a multi-node application
US10241774B2 (en) 2011-04-12 2019-03-26 Pivotal Software, Inc. Release lifecycle management system for multi-node application
US9569198B2 (en) 2011-04-12 2017-02-14 Pivotal Software, Inc. Release lifecycle management system for multi-node application
US10942724B2 (en) 2011-04-12 2021-03-09 Pivotal Software, Inc. Release lifecycle management system for multi-node application
US9043767B2 (en) 2011-04-12 2015-05-26 Pivotal Software, Inc. Release management system for a multi-node application
US20130019013A1 (en) * 2011-07-12 2013-01-17 Bank Of America Corporation Dynamic Provisioning of Service Requests
US9369307B2 (en) 2011-07-12 2016-06-14 Bank Of America Corporation Optimized service integration
US9015320B2 (en) * 2011-07-12 2015-04-21 Bank Of America Corporation Dynamic provisioning of service requests
US9710259B2 (en) 2011-07-13 2017-07-18 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US9047133B2 (en) 2012-03-02 2015-06-02 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud environment
US9052961B2 (en) 2012-03-02 2015-06-09 Vmware, Inc. System to generate a deployment plan for a cloud infrastructure according to logical, multi-tier application blueprint
US9170798B2 (en) 2012-03-02 2015-10-27 Vmware, Inc. System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US10031783B2 (en) 2012-03-02 2018-07-24 Vmware, Inc. Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure
US10095496B2 (en) 2012-03-02 2018-10-09 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud infrastructure
US9645858B2 (en) 2012-03-02 2017-05-09 Vmware, Inc. Single, logical, multi-tier application blueprint used for deployment and management of multiple physical applications in a cloud infrastructure
US10257261B2 (en) 2012-07-02 2019-04-09 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US11516283B2 (en) 2012-07-02 2022-11-29 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US9348652B2 (en) 2012-07-02 2016-05-24 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US10911524B2 (en) 2012-07-02 2021-02-02 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
US11856050B2 (en) 2012-07-02 2023-12-26 Vmware, Inc. Multi-tenant-cloud-aggregation and application-support system
CN102882984A (en) * 2012-10-24 2013-01-16 曲阜师范大学 Method for balancing resource load of cloud computing platform
US9917770B1 (en) * 2014-03-29 2018-03-13 Akamai Technologies, Inc. Traffic on-boarding for acceleration through out-of-band security authenticators
US20150281204A1 (en) * 2014-03-29 2015-10-01 Akamai Technologies, Inc. Traffic on-boarding for acceleration through out-of-band security authenticators
US9819582B2 (en) * 2014-03-29 2017-11-14 Akamai Technologies, Inc. Traffic on-boarding for acceleration through out-of-band security authenticators
TWI552547B (en) * 2014-07-22 2016-10-01 廣達電腦股份有限公司 Data transmission service switch system and method
US11477263B2 (en) 2015-04-20 2022-10-18 Splunk Inc. Identifying un-deployed features of an application
US10735492B2 (en) 2015-04-20 2020-08-04 Splunk Inc. Reporting un-deployed application features
US10320877B2 (en) * 2015-04-20 2019-06-11 Splunk Inc. Systems and methods for indicating deployment of application features
US20160308733A1 (en) * 2015-04-20 2016-10-20 Splunk Inc. Systems and Methods for Indicating Deployment of Application Features
US11449348B2 (en) * 2016-09-16 2022-09-20 Oracle International Corporation Pre/post deployment customization
US20220391221A1 (en) * 2016-09-16 2022-12-08 Oracle International Corporation Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US11635974B2 (en) * 2016-09-16 2023-04-25 Oracle International Corporation Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US10884815B2 (en) 2018-10-29 2021-01-05 Pivotal Software, Inc. Independent services platform
CN111552482A (en) * 2020-04-21 2020-08-18 深圳市塔洛思技术有限公司 Decentralized dynamic service deployment method and device suitable for edge computing

Also Published As

Publication number Publication date
US20080028024A1 (en) 2008-01-31
IL152963A0 (en) 2003-06-24
EP1402385A4 (en) 2007-05-16
CN1620653A (en) 2005-05-25
TW591909B (en) 2004-06-11
US20020178214A1 (en) 2002-11-28
EP1402385A1 (en) 2004-03-31
KR20040000441A (en) 2004-01-03
WO2002095605A1 (en) 2002-11-28
CA2415314A1 (en) 2002-11-28
US8180871B2 (en) 2012-05-15
US20020178244A1 (en) 2002-11-28
US7325047B2 (en) 2008-01-29
US7523177B2 (en) 2009-04-21
JP2004533687A (en) 2004-11-04

Similar Documents

Publication Publication Date Title
US8180871B2 (en) Dynamic redeployment of services in a computing network
US7127713B2 (en) Java application framework for use in a content delivery network (CDN)
US7552189B2 (en) System and method for using virtual directories to service URL requests URL requests in application servers
US7356562B2 (en) Dynamic generator for fast-client static proxy from service interface definition document
US6697849B1 (en) System and method for caching JavaServer Pages™ responses
US7729363B2 (en) System and method for managing communication for component applications
JP3980596B2 (en) Method and system for remotely and dynamically configuring a server
US20060168355A1 (en) System and method for provisioning component applications
US20120166650A1 (en) Method of load balancing edge-enabled applications in a content delivery network (CDN)
WO2001082023A2 (en) Differentiated content and application delivery via internet
WO2004092884A2 (en) Method of executing and edge-enabled application in a content delivery network (cdn)
US7685289B2 (en) Method and apparatus for proxying initial client requests to support asynchronous resource initialization
CN1312923A (en) Global document hosting system utilizing embedded content distributed ghost servers
EP1684169A1 (en) System and Method for Provisioning Component Applications
CA2533543C (en) System and method for managing communication for component applications
Mountjoy et al. WebLogic: The Definitive Guide: Development, Deployment & Maintenance
AU2012203811A1 (en) Java application framework for use in a content delivery network (CDN)
Morgan et al. JBoss Enterprise Application Platform 5 HTTP Connectors Load Balancing Guide

Legal Events

Date Code Title Description
AS Assignment

Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:BRITTENHAM, PETER J.;DAVIS, DOUGLAS B.;LINDQUIST, DAVID B.;AND OTHERS;REEL/FRAME:011853/0589;SIGNING DATES FROM 20010521 TO 20010523

STCB Information on status: application discontinuation

Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION