The present disclosure generally relates to computer systems and more specifically to propagating subscriber and offer identities across calls in hosted offers and/or solutions of multi-tenant systems.
Supplying and hosting software offers for subscribing organizations is a current trend in the hosted software solutions market. An example of this trend is when software provider “A” creates a business and/or solution asset. That asset is then wrapped and published to an offering repository and hosted there, optionally by another company, “B”. Potential customers, for example, who can subscribe to the assets and/or offers can then search the offering repository. The offers may represent a diverse set of capabilities such as human resources, content management services, sales and distribution management solutions, etc. Hosted offers and/or solutions are multi-tenant systems that can be accessed simultaneously by different subscribers. Furthermore, the same offer can be published in different configurations, for example, for platinum, gold and silver clients. In such systems, client requests should be routed to the right services comprising the offer. Because this process takes place during each request, it is desirable to have optimum performance.
Several methods exist for subscriber-based routing. Examples of such subscriber-based routing include authentication-based routing, routing based on originating IP addresses, etc. These approaches have various disadvantages, for example, in that user's identity must be propagated across calls even within the offer, loss of the originating address, code must be added to maintain the subscriber and offer identity across calls. Accordingly, an improved routing method for propagating subscriber and offer identities across calls, for example, without programmer intervention is desirable
A system and method of propagating subscriber and offer identities in URL (Uniform Resource Locator) patterns for multi-tenant systems are provided. The method in one aspect comprises intercepting a request for accessing a web service, the request being in a virtual URI (Uniform Resource Identifier) format or similar address format or the like that includes at least a service access point, subscriber identity and offer identity. The method may also include resolving the virtual URI to determine customer identity, offer identity and destination information, invoking a web service defined in the destination information and returning results of the invoking step.
A system for propagating subscriber and offer identities in URL patterns for multi-tenant systems in one aspect may comprise a router operable to receive a virtual URI, the virtual URI including at least a service access point, subscriber identity and offer identity, and a route rules database operable to store rules associated with resolving the virtual URI, the router further operable to invoke a service associated with the service access point and return results of the invocation to a requestor.
Further features as well as the structure and operation of various embodiments are described in detail below with reference to the accompanying drawings. In the drawings, like reference numbers indicate identical or functionally similar elements.
An exemplary embodiment of the present disclosure uses virtual URIs to the requested resources, where the subscriber identity and required offer ID is made part of the URI. The routing system uses a regular expression pattern-based database to resolve subscriber and offer IDs and to map the client requests to the real destination. In an exemplary embodiment, the virtual URIs are injected into the hosted applications during their deployment process. For instance, an automated deployment tool may create and inject the virtual URIs into the hosted application assets that make up the offer. The offers are published over a Web Service interface, for example, as part of the deployment process. Web Service interface is described by a Web Service Definition Language file. This Web Service is accessible by a dynamic URI, where only the initial part of the URI is used to map to the Web Service. In an exemplary embodiment, the rest of the URI contains subscriber, offer and optional additional information.
In an exemplary embodiment, the routing system of the present disclosure may include a Web Services router and its manager with a routing rules database. The Web Services router and its manager with a routing rules database may be installed on the same server or on different servers. For instance, for scalability, reliability and load-balancing considerations, the routing system may be implemented such that the components are split across different servers.
In an exemplary embodiment, the routing system further may have two external Web Service interfaces: management and routing. In one embodiment, the management interface is used, for example, for creating, updating, querying, and removing the routing rules. The routing interface in one embodiment is used, for example, by various clients of the system to access remote Web Services. In one embodiment, the router may use an internal cache to reduce the communication between the router and the manager, and consequently reduce the client request latency.
In one aspect, the subscriber and offering information can be used for billing. For instance, as the virtual URI passes through various components of the router, the information contained therein may be captured or logged by the various components and used appropriately. The explicit listing in the URI allows more specific logging of calls that are easily mapped to offers and subscribers.
In one embodiment, the routing rules can be managed through separate interfaces. For example, in addition to providing the routing services, other interfaces may exist or may be defined to allow creation and removal of the routing rules. Further, while
In one embodiment, the routing mechanism of the present disclosure can use very simple and effective regular expression rules for subscriber, offer and service destination resolutions. For example, the system has the following routing rules:
An example of a destination rule may include:
Therefore, the ingoing URI into the deployed solution may have the following address:
According to the above routing rules and using pattern mapping, the router discovers the subscriber (customer) and offer (solution) names, and matches them to the appropriate stock service, based on the customer, solution, and/or service level (gold) defined in the pattern.
The request is forwarded to the actual endpoint:
In one embodiment, the endpoint service may have access to logged information containing the offer and subscriber information, which may be used by the endpoint to bill firstSubscriber according to firstOffer.
The system and method of the present disclosure may be implemented on general purpose computer, specific purpose computer or the like. The embodiments described above are illustrative examples and it should not be construed that the present invention is limited to these particular embodiments. Thus, various changes and modifications may be effected by one skilled in the art without departing from the spirit or scope of the invention as defined in the appended claims.