The invention generally relates to the field of information processing and, more particularly, to processing requests for service between nodes.
As the popularity of the Internet has increased, e-business applications have emerged where geographically and organizationally distributed components are expected to operate together. For example, requests for software services can be handled by a distributed network of computer nodes that are owned by different businesses or enterprises. For example, if a first node that is part of a first organization requests service from a second node that is owned by a second organization, the first and second nodes may require detailed information regarding the operation of the other nodes included in a chain of nodes used to provide the service. The second node may be required to understand how the first node operates. Similarly, the first node may be required to understand how the second node operates. Furthermore, each of the nodes in the chain may need to understand how each of the other nodes included in the chain operates. Such an approach can become intractable when, for example, the number of nodes used to provide the service (i.e. the number of nodes in the chain) includes more than a few.
Embodiments according to the invention can provide methods, systems, and computer program products for configuring rules for service nodes in grid service architecture systems. In some embodiments according to the invention, operational rules are transmitted from a first service node that receives a request for service to a second service node that is configured to apply the operational rule to requests for service in response to the request. For example, operational rules can be propagated from a primary node to a secondary node that operates responsive to the primary node, wherein the operational rule defines how the secondary node is to process the request for service from the primary node. Furthermore, the operational rules provided by the primary node can be propagated in a hierarchical fashion throughout the grid to other nodes. For example, if a third and fourth level of nodes are registered with the secondary node, the secondary service node can propagate the operational rule provided by the primary node to the third and fourth service nodes.
Accordingly, the details associated with how service requests are to be handled are propagated throughout the grid rather than explicitly defined at each of the service nodes. Therefore, the infrastructure required in the grid can be reduced as the operational rules can be automatically propagated upon registration of service nodes with other service nodes in the grid. In this way, when a new service node enters the grid and requests registration from what will be a primary service node to the new service node, the primary service node can respond by registering the secondary service node and forwarding a set of operational rules that define how the secondary service node is to handle service requests from the primary service node.
In some embodiments according to the invention, the operational rule is propagated from the second service node to a third service node that is registered with the second service node as capable of providing service thereto. In some embodiments according to the invention, transmitting the operational rule is preceded by registering the second node with the first service node to define the second service node as available to the first service node to receive requests for service.
In some embodiments according to the invention, the first operational rule is modified to provide a second operational rule and the second operational rule is transmitted to the second service node responsive to modifying the first operational. rule. In some embodiments according to the invention, a first request for service is received at the first service node and a determination is made that the first request is associated with the operational rule. The operational rule is applied to the first request to provide a propagated first request. The propagated first request is transmitted to the second service node.
In some embodiments according to the invention, a first request for service is received at the first service node. A determination is made that the first request is associated with the operational rule and the operational rule is applied to the first request to provide a propagated first request. The propagated first request is transmitted to a third service node rather than the second service node responsive to a parameter associated with the third service node.
In further embodiments according to the invention, a request for registration is received at a primary service node from a secondary service node including that the secondary service node is capable of providing a service to the primary service node. The secondary service node is registered as being capable of providing the service with primary service node. A response is transmitted from the primary service node to the secondary service node including an operational rule that defines how the service is to be provided to the primary service node. The operational rule is maintained accessible to the secondary service node and associated with the primary service node. A request for service is received from the primary service node at the secondary service node. Service is provided to the primary service node responsive to determining that the request for service is associated with the primary service node.
In further embodiments according to the invention, a system for configuring nodes for service requests includes means for transmitting an operational rule from a first service node that receives a request for service to a second service node that is configured to apply the operational rule to the request for service in response to the request from the first service node for service.
In further embodiments according to the invention, a computer program product for configuring nodes for service requests includes computer readable program code configured to transmit an operational rule from a first service node that receives a request for service to a second service node that is configured to apply the operational rule to the request for service in response to the request from the first service node for service.
The invention is described herein with reference to the accompanying drawings, in which embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers and reference designators refer to like elements throughout.
As will be appreciated by one of skill in the art, the present invention may be embodied as methods, systems, and/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 on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices.
Computer program code or “code” for carrying out operations according to the present invention may be written in an object oriented programming language such as JAVA®, or in various other programming languages. Software embodiments of the present invention do not depend on implementation with a particular programming language. Portions of the code may execute entirely on one or more systems utilized by an intermediary server.
The code may execute entirely on one or more servers, or it may execute partly on a server and partly on a client within a client device or as a proxy server at an intermediate point in a communications network. In the latter scenario, the client device may be connected to a server over a LAN or a WAN (e.g., an intranet), or the connection may be made through the Internet (e.g., via an Internet Service Provider). It is understood that the present invention is not TCP/IP-specific or Internet-specific. The present invention may be embodied using various protocols over various types of computer networks.
The invention is described below with reference to diagram illustrations of methods, systems and computer program products according to embodiments of the invention. It is understood that each block shown in the diagrams (i.e., block diagram and/or flowchart diagram), and combinations of blocks in the 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, 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 diagram block or blocks.
These computer program instructions may 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 diagram block or blocks.
The computer program instructions may 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 diagram block or blocks.
Embodiments according to the invention can operate within what is sometimes referred to as an Open Grid Services Architecture (OGSA). In an OGSA system, world-wide-web, (i.e. Web) services can provide a framework for application-to-application interaction that grants access to services via the Internet. These services can allow a more extensive use of the Web's functionality by supporting automatic processes involving machine-to-machine cooperation and interaction. The infrastructure used to provide these services (as well as data) is sometimes referred to as a “grid.” As used herein, a grid can be a geographically distributed set of heterogeneous machines that are configured to communicate with one another via a network (such as the Internet). The heterogeneous machines that provide services in the grid are sometimes referred to as service nodes. In operation, a service node within the grid can request service from another service node within the grid. Furthermore, the service node to which this request for service is made can propagate the request to yet other service nodes within the grid, which ultimately results in the requested service being provided to the requesting node. OGSA, and grid architecture in general, is described further, for example, on the Internet at www.globus.org, the contents of which are incorporated herein by reference. In particular, the Globus Alliance has published various articles and presentations which discuss the infrastructure and architecture. One such article published by Globus (and also available on the Internet) is entitled The Physiology of the Grid and is available at www.globus.org/OGSA/, the contents of which are incorporated herein by reference. Other Globus articles are also available on the Internet generally and specifically at the above website.
Embodiments according to the invention are described herein using the terms “primary” and “secondary”, “third level”, “fourth level”, and the like to describe the hierarchical relationships between service nodes. It will be understood that the these terms may are not used in an absolute sense. For example, if a first service node is described as being a primary node whereas a second service node is described as a secondary node, the first and second nodes can be at any levels within the grid as long as the first service node is at a higher hierarchical level than the second service node.
Embodiments according to the invention can provide methods, systems, and computer program products for configuring rules for service nodes in grid service architecture systems. In some embodiments according to the invention, operational rules are transmitted from a first service node that receives a request for service to a second service node that is configured to apply the operational rule to requests for service in response to the request. For example, operational rules can be propagated from a primary node to a secondary node that operates responsive to the primary node, wherein the operational rule defines how the secondary node is to process the request for service from the primary node. Furthermore, the operational rules provided by the primary node can be propagated in a hierarchical fashion throughout the grid to other nodes. For example, if a third and fourth level of nodes are registered with the secondary node, the secondary service node can propagate the operational rule provided by the primary node to the third and fourth service nodes.
Accordingly, the details associated with how service requests are to be handled are propagated throughout the grid rather than explicitly defined at each of the service nodes. Therefore, the infrastructure required in the grid can be reduced as the operational rules can be automatically propagated upon registration of service nodes with other service nodes in the grid. In this way, when a new service node enters the grid and requests registration from what will be a primary service node to the new service node, the primary service node can respond by registering the secondary service node and forwarding a set of operational rules that define how the secondary service node is to handle service requests from the primary service node.
Furthermore, as described briefly above, the new service node may propagate the operational rules received from the primary node to other nodes that operate responsive to the new service node. It will be understood that ultimately, service nodes access service providers within the grid so that the services requested by the primary node can by provided. As used herein the service providers can be applications that provide data, such as address information, pricing information, etc. Accordingly, the service nodes that have a direct interface to the service providers will maintain information as to how to communicate with the service providers so that the requested services are provided.
Locating this information regarding control of the service providers may avoid having to propagate this type of specific information to every node within the grid which may need to access the particular service provider. Moreover, the service provider can be added to the grid with the service node that communicates with the new service provider (i.e., as a pair). When the new service node registers with an existing service node in the grid (i.e., a service node that is primary to the new service node) to introduce new services to the grid, the services will be available to the other service nodes in the grid via the primary service node with which the new service node is registered.
The primary service node 110 also transmits operational rules 120 to the secondary service node 105 that define how the secondary service node 105 is to handle service requests from the primary service node 110. For example, the operational rules can specify how services are to be provided when the secondary service node 105 determines that the service request has been issued by the primary service node 110 rather than another primary service node with which the secondary service node 105 is also registered. In some embodiments according to the invention, the operational rules can include pricing information, geographic information, specific information related to which service provider to use, and the like. For example, in some embodiments according to the invention, the operational rule can be price range information that can be used to determine which service provider to use based on a particular price point provided by a user included with the request 101 to the primary service node 110.
It will be further understood that the operational rules provided by the primary service node 110 can be further transmitted by the secondary service node 105 to propagate the operational rules throughout the grid 100 in general, and more particularly, to service nodes that operate responsive to the secondary service node 105. It will further be understood that the operational rules can be distinguished from parameters that are specified by part of the requests 105 for service made by the user. For example, in some requests, the user may specify a particular type of car for which pricing information is sought or a particular car buying service which is to be queried rather than an operational rule which defines how the service request is to be processed such as to which service nodes the request will be forwarded for ultimate service using the parameters specified by the user.
As further shown in
It will further be understood that new rules can be propagated by the first and second primary service nodes 405 and 450 based on changes introduced by the different employers. For example, if the employer represented by the first primary service node 405 increases the coverage for employees from $500.00 to $1,000.00, the new rule can be propagated from the first primary service node 405 to the secondary service node 410 so that subsequent requests for service are handled according to the updated operational rule associated with the first primary service node 405. In other embodiments according to the invention, the service grid 400 can provide additional operational rules such as security rules or error recovery rules. One example of an operational security rule is where the secondary service node 410 is registered with the first and second primary service nodes 405 and 450 as a trusted node, which may avoid requiring service requests from first and second primary service nodes 405 and 450 having to be authenticated. In some embodiments according to the invention where the service grid 400 provides error recovery, the secondary service node 410 may apply an operational rule that specifies that service is to be requested from a third-level service node 420A a certain number of times before making another request for service to a second third-level service node 420B. It will be understood that although the rules described above are discussed in reference to different embodiments, each of the embodiments can include combinations of the operational rules rather than only selected or individual rules. For example, in some embodiments according to the invention, the service grid 400 shown in
Referring again to the low-price range requests handled by the third-level service node 520A, the service request can be forwarded to nodes registered with the third-level service node 520A based on tokens that can be included with the request submitted by the primary service node 505. For example, some of the tokens included with the request can include a particular leased price or a latest model that specifies that only information for cars having a lease price are to be provided or only information regarding the latest models cars are to be provided. In other embodiments according to the invention, the token can include a geographic location preferred by the user, such as a northeast region, a southern region, or a western region. As shown in
The fourth-level service node 540A can operate on the service request based on an operational rule and is propagated by the primary service node 505, such as a round robin operational rule that specifies that among the northeast region service providers, information on cars are to be provided from service providers on a round robin basis. For example, on a first service request, information is provided from a first fifth-level service node 545A whereas subsequent requests are provided by other ones of the fifth-level service nodes.
As described above, embodiments according to the invention can provide methods, systems, and computer program products for configuring rules for service nodes in grid service architecture systems. In some embodiments according to the invention, operational rules are transmitted from a first service node that receives a request for service to a second service node that is configured to apply the operational rule to requests for service in response to the request. For example, operational rules can be propagated from a primary node to a secondary node that operates responsive to the primary node, wherein the operational rule defines how the secondary node is to process the request for service from the primary node. Furthermore, the operational rules provided by the primary node can be propagated in a hierarchical fashion throughout the grid to other nodes. For example, if a third and fourth level of nodes are registered with the secondary node, the secondary service node can propagate the operational rule provided by the primary node to the third and fourth service nodes.
Accordingly, the details associated with how service requests are to be handled are propagated throughout the grid rather than explicitly defined at each of the service nodes. Therefore, the infrastructure required in the grid can be reduced as the operational rules can be automatically propagated upon registration of service nodes with other service nodes in the grid. In this way, when a new service node enters the grid and requests registration from what will be a primary service node to the new service node, the primary service node can respond by registering the secondary service node and forwarding a set of operational rules that define how the secondary service node is to handle service requests from the primary service node.
Many alterations and modifications may be made by those having ordinary skill in the art, given the benefit of present disclosure, without departing from the spirit and scope of the invention. Therefore, it must be understood that the illustrated embodiments have been set forth only for the purposes of example, and that it should not be taken as limiting the invention as defined by the following claims. The following claims are, therefore, to be read to include not only the combination of elements which are literally set forth but all equivalent elements for performing substantially the same function in substantially the same way to obtain substantially the same result. The claims are thus to be understood to include what is specifically illustrated and described above, what is conceptually equivalent, and also what incorporates the essential idea of the invention.