The present invention relates to computer networks and deals more particularly with a method, a service system, and a computer program product of self-organizing distributing services in a computing network (such as web services or other network accessible services) to/from various sites within a network.
The invention is based on a priority application, EP 04290471.4, which is hereby incorporated by reference.
Web services are an emerging mechanism for distributed application integration. A web service is an interface that describes a collection of network-accessible operations. Even a web server providing hyper text pages might be regarded as a web service. A web service might also fulfill a specific task.
When it comes to handling high-volume service requests the actual quality of service of a web server typically depends on two parameters: network-transfer capabilities and server-capabilities. Network-transfer capabilities are mainly a matter of Internet-link bandwidth or jitter, etc., while server capability might be e.g. response time depending upon resources like fast processors, lots of memory, and good input/output performance etc.
Practical approaches for distributing e.g. hypertext transfer protocol traffic improve performance by increasing the number of web servers. This involves an attempt to distribute the traffic onto a cluster of back-end web servers. The goal then is to balance the traffic which is currently done either by extending a domain name system by a round robin assignment or by introducing a (reverse) proxy.
With web services, distributed network access to software will become a widely available and a widely used operation. This, however, places a heavy demand on the computing resources. Several techniques have been developed for alleviating the processing burden on back-end servers, including caching of static content; workload balancing; and content distribution.
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 pro-actively (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 provide access to their broad network infrastructure for caching of static content in close proximity to the end user. This content distribution process will typically result in reduced response time. Use of edge servers in a network configuration provides increased network efficiency and availability by caching static application components. An edge server is a server which is physically located at or near the edge of a network.
International patent application WO 02/095605 generalizes these vector processing like solutions and rather static configurations by a dynamic service deployment mechanism.
Such a generalized service deployment mechanism is the next generation of edge server technology that bring 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, Java Server Pages, Personal Home Page, etc. at those edge servers.
The web services will facilitate application integration via open web-based standards, such as Hypertext Transfer Protocol, Simple Object Access Protocol and/or Extensible Markup Language Protocol, Web Services Description Language, and Universal Description, Discovery, and Integration. Using such 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.
The generalized service deployment mechanism encounters the service demand by providing a technique for dynamically deploying network-accessible services in a distributed network in contrast to a static deployment.
This dynamic deployment is organized by means of a cloning mechanism and a deployment entity controlling the dynamic distribution and organizing the client server association.
Replication or migration of a complete service together with a central client server association is not smooth but inharmonious, i.e. there are inherent latencies in migration phases. This leads to a coarse deployment. The service site arrangement should approximate the client's requests with respect to certain qualities like response time.
Accordingly, what is needed is a technique for avoiding these drawbacks and limitations of the prior art which are self-organizing high available and performant web services.
This problem is solved by a method of self-organizing distributing services in a computing network, comprising the steps of
The problem is solved inter alia by a service system for self-organized distributing services in a computing network, the service system comprising receiving means for receiving requests for a selected service from a client, processing means for identifying a first approximate server for the selected service and for serving the received requests from the first approximate server, means for effecting a dynamic deployment of the service to one or more other servers when a dynamic deployment is indicated, and means for serving the received requests from the one or more other servers, where the system comprises further metering means for metering performance of the web service and processing means for deriving a local environmental area performance map, processing means for deriving a performance topology for identifying approximate server locations, and processing means for indicating the dynamic deployment based on a cluster analysis of the performance topology.
And the problem is solved by a computer program product for self-organized distributing services in a computing network according to the above mentioned method.
In other words, the invention provides self-organizing web services. Due to the self-organizing principle and the awareness of the performance topology or at least of a partial awareness derived from a local environmental area an automatic network (performance) management is enabled. A highly dynamic deployment, transfer, partial deployment, partial transfer, and client server association result in a fault tolerance system ensuring high quality of a web service.
Service instances are distributed, maintained, and synchronized such that quality of service requirements are met. And an optimization method for network resource allocation that allows to decide on clone or re-locate services and service parts is presented. Service quality is monitored continuously. When the service quality in focus degrades and there is a payoff the server is cloned or re-located (local) environment dependent. It is suggested to compute a performance topology out of the measurements, e.g. by topological sheafication of neighboring, i.e. by gluing neighboring information together. When it is indicated to clone a service onto another server the requests are parted according to the locations of the clients originating the requests. Corresponding sub-networks are identified, preferably using established network partitions like domain name server responsibilities in order to establish an advantageous client server assignment. The services might also be transferred (located) to the neighborhood and the request resolution mechanism is informed. The network itself will optimize as a living self-organizing system like an organism.
An advantage of such an optimized network resource allocation is among the increased efficiency and performance of the network that the method enhances the fault-tolerance of the system. The mechanism allows to optimize with respect to any effective observable service quality. The technique also allows to monitor real performance and performance requirements, thus enhancing network transparence. The computational techniques for the main geometric problems are very efficient.
These and many other advantages of the present invention will become apparent to those of ordinary skill in the art from a consideration of the drawings and ensuing description, where
The invention establishes a dynamic relation between network resources and requests with respect to (any kind of) observable service quality. Such quality might be reactivity, reply time, availability, performance, functionality, security, etc. This relation is treated as a clustering.
When a service quality in focus degrades for a client, a server clone or at least a partial clone or a transferred service part in the vicinity of the client is established. The requests are partitioned or assigned according to the location of the server sites. A site is identified therefor and e.g. a clone is at least partially moved there in order to reduce the distance which reflects the service quality. Correspondingly the name server instances (and routers) are informed.
In contrast, the prior art scenario in
The server instance S1, S2, and S3 each provide a service. The client is enabled to invoke a certain service by asking the name server NS for this certain service. This might for instance be a domain name server or the like. The answer allows the client to contact a server providing the certain service. One service might be provided by several servers, S1, S2, and S3, say. This enables a load balancing at the name server NS. Technically most domain name servers support at least a blind round robin, i.e. the load is balanced randomized.
The deployment of services in a network is shown in
A dynamic deployment of services in a network is shown in
Even with the very large bandwidths or in general the high performance of the current networks, it is preferable to maximize its use and to ensure service availability and performance as well. This is important for instance when the capacity is much smaller and over provisioning is not an option. Thus a (communication or network) quality of service is related to a service performance and it is preferable to optimize or at least consider the quality of service when providing a service. There are approaches like performance guarantees on e.g. delay, delay variation, etc. based on a kind of service level agreements. It is also possible to provide guarantee that individual applications will work end-to-end. It is also known to provide some dispatching to determine granted and available quality of service.
When considering a network as a set of consumers, i.e. any kind of requests like a service invocation, e.g. a web-browser client etc. and a set of producers, i.e. any kind of resources like a service or a web-server the association between clients and services induces a topology with respect to a service performance. Such a performance might be reaction (reply) time, jitter, availability, actuality etc. Suppose for illustration purposes the performance is reply time. The performance is reflected in
A clustering of the clients (in this space) is advantageous in order to minimize the number of servers and to maximize the performance of the service. A space is considered as a virtual extension, including so many things that they can never be grasped all at once. Second, space connotes the idea of free movement, of being able to visit a variety of states or places. Third, a space has some kind of a geometry (topology), implying concepts such as distance, direction, or dimension. The geometry of the performance space reflects the effective network and resource performance, i.e. the service performance.
A complex set of performance aspects might induce a complex high-dimensional metric space. The (distance-)relation, i.e. a consumer is near to a producer, is then defined in terms of the metric space. Replication and/or movement of a producer is a consequence of distance change with the goal of a distance reduction. In addition distance reduction might propagate through the network influencing other producers.
For solving this kind of geometrical matching problems, i.e. client server association, server positioning (deployment) efficient algorithms are known and it is suggested to apply and reuse e.g. computational geometry for network resource management. Such computational geometry problems are for instance:
These two problem solutions are suited to identify approximation servers.
This problem solution is suited to establish a minimal inter-link between the service sites e.g. for propagating service updates.
These structures are suited to identify new approximation servers.
The concrete presentation in case when the performance distance establishes indeed an Euclidean space could be used to establish at least heuristics for a less structured space. The geometric interpretation of the problem provides an advice for deriving clustering and approximation algorithms.
From the virtual performance space consequences to the real deployment have to be derived. The simplest is the try out and measuring e.g. suggested by M. Karlsson and M. Mahalingam in their paper “Do We Need Replica Placement Algorithms in Content Delivery Networks”. There the authors suggest to model the topology with a (full) distance matrix a placement matrix and a routing matrix.
A further aspect of service deployment is targeted in
Another replica placement algorithm for web server replicas than the brute force greedy placement algorithm above is described in the paper “On the Placement of Web Server Replica” of L. Qui et al. where a reduction onto the K-median problem is used. Approximation algorithms following operations research approaches are e.g. mentioned in the paper “An improved approximation algorithm for the metric ancapacitated facility location problem” of M. Sviridenko et al.
It is a self-organizing wide area network for service deployment and partial service deployment suggested where as shown in
A (partial) distribution link and an indication of the distributed part allows to maintain service integrity and update consistency.
This approach yields to a self-organized morphing network (graph) of services that is hosted and partitioned with respect to metered service performance. The service might clone itself (partially), a clone might die, i.e. disappear (at least partially) or the client server association might change dynamically, i.e. on-the-fly. The possible service part decomposition could be based on the (object) structure of the service or might even be random, resulting in self-organizing mobile resources.
Number | Date | Country | Kind |
---|---|---|---|
04290471.4 | Feb 2004 | EP | regional |