This application relates to U.S. patent application Ser. No. 09/443102 filed on Nov. 18, 1999 and assigned to the present assignee, and U.S. patent application Ser. No. ______ being filed on ______ based on Japanese Application Serial No. 11-070623 filed on Mar. 16, 1999 and assigned to the present assignee. The contents of those applications are incorporated herein by reference.
The present invention relates to an inter-system cooperative system for implementing functional cooperation among a plurality of information systems, and a method therefor.
Heretofore, information systems corresponding to various kinds of business have been developed and put to practical use. In recent years, attempts for implementing a wide variety of services by making those existing information systems cooperate have been made.
When connecting information systems and making them cooperative as heretofore described, individual coping has heretofore been conducted. In other words, information systems to be made cooperative are individually subjected to alteration (such as function addition) to become cooperative. However, there are a great variety of kinds of information systems, and the number of their connection combinations is also very large. In such a scheme that systems to be made cooperative are individually altered, the development is troublesome and rapid inexpensive diversification is difficult. Furthermore, if a system cooperating with a plurality of other systems, such as the accounting system 1002 of
In recent years, therefore, there has been proposed such a scheme that various information systems are connected to a system having functions of route control and message conversion and serving as a core and systems are made cooperative via the system serving as the core. Such a scheme is called hub and spoke, and the core portion is called hub. The configuration of the hub and spoke is disclosed in U.S. Pat. No. 5,193,056, Boes as well.
By connecting the systems 1102 to 1107 to the hub 1101, they can cooperate with each other without being conscious of other systems. For example, a message used by the teller system 1102 to request another system to do business is first input to the hub 1101. The hub 1101 passes a judgment on the opposite party system to which the message should be sent. The hub 1101 converts the message into a message having a protocol and a message form conforming to the opposite party system, and sends a resultant message to the opposite party. Since a difference between systems is thus absorbed by the hub 1101, cooperation becomes easy by connecting systems to the hub 1101. When constructing a new service, cooperation of systems can be easily implemented by defining a processing procedure for making the systems cooperative in the hub, without conducting alterations on the systems (or with conducting slight alterations concerning the user interface on the systems).
For example, when an individual buys the investment trust commodity, typically there is needed such an operation that the individual withdraws money from the individual's saving account (withdraws money in the accounting system) and deposits the money in the investment trust system (sends the money to the investment trust system and buys the investment trust commodity). However, such processing extending over a plurality of systems can be defined in the hub easily. As a result, composite service through a teller shop and the Internet can be implemented. Also when the configuration of the system and the pattern of the cooperation are to be altered, it can be coped with by altering the definition stored in the hub. Alteration of one system exerts little influence upon other systems.
Whatever message may be input to the above described conventional hub, the conventional hub determines a route, conducts protocol conversion and message conversion, and transfers a result to the opposite party system. This results in a problem that the duration of the message communication and the response time taken until an answer message is obtained are prolonged.
An object of the present invention is to shorten the duration of the message communication through the hub and the response time taken until an answer message is obtained, in a “hub and spoke” system for implementing function cooperation among a plurality of information systems.
In order to achieve this object, a cooperative system includes a plurality of information systems and a hub system connected to the plurality of systems. The hub system receives a message from a first information system, determines necessity of message conversion and a kind of conversion, converts the message to a form suitable for a second information system which is destination, only when it has been determined that message conversion is necessary, and transmits the message to a second information system. The hub system may determine whether flow control determining a flow and destination of a message received from the first information system based on a class of the message should be conducted, and conduct flow control only when it has been determined that flow control should be conducted.
(1) System Summary
Hereafter, an embodiment of the present invention will be described by referring to drawing.
The hub 100 includes client side adapters 101, a service finder 102, a flow controller (or flow controllers) 103, and server side adapters 104. These components basically exchange messages with each other via a communication controller 105 which is formed according to CORBA (Common Object Request Broker Architecture) specifications, which provides a distributed object environment. The CORBA is the name of a distributed processing environment architecture advocated by Object Management Group. As a protocol according to the CORBA specifications used in the hub, IIOP (Internet inter-ORB protocol) is well known.
The client side adapters 101 are provided so as to be associated with respective client side systems. Each of the client side adapters 101 has functions of channel I/F (interface) control between the client side adapter and the client side system, protocol conversion between a protocol of the client side system and a protocol of CORBA specifications in the hub, and message conversion between a message form of the client side system and a message form of a server side system which is the destination of the message.
The adapter 101 may be provided for each protocol. Otherwise, one adapter may be associated with all systems.
The server side adapters 104 may be provided so as to be associated with respective server side systems. Each of the server side adapters 104 has functions of server I/F control between the server side adapter and the server side system, connection to a legacy system utilizing a wrapper, protocol conversion between a protocol of the server side system and a protocol of CORBA specifications in the hub, and message conversion between a message form in the hub and a message form of the server side system.
The adapter 104 may be provided for each protocol. Otherwise one adapter may be associated with all systems.
The service finder 102 manages message routing information. For example, when acquiring the destination of a message received by the client side adapter 101 or the flow controller 103, the service finder 102 is inquired of about the destination. The flow controller 103 provides composite service utilizing work management. In other words, when conducting cooperative processing in a plurality of servers in response to a message received by a client side adapter 101, the flow controller 103 controls the flow of messages, i.e., controls which server side adapter 104 the message should be transmitted to in which order. Such control may be accomplished by a plurality of flow controllers, each controller controlling a flow for one cooperative service.
(2) Route of Message
A message transmitted from the client side system 111 or 204 is transmitted to the server side system 121 or 123 via the hub 100. As message routes (paths), three paths are prepared in the hub 100. The three paths are a normal path, an adapter direct connection path, and a specific protocol direct connection path.
The path to be used is determined by each adapter on the basis of the received message. A method for determining the path will be described later.
(2-A) Normal Path
The normal path will now be described. An adapter 101b is an adapter associated with the teller terminal 204. A message transmitted from the teller terminal 204 is received by the adapter 101b. The adapter 101b converts the protocol of the message to a protocol in the hub by using a protocol conversion function 231. The adapter 101b then inquires of the service finder 102 the destination of the message by utilizing a destination acquisition (destination inquiry) function 232. The service finder 102 manages configuration information of adapters 101a, 101b, 104a, and 104b, and the flow controller 103, and management information of a message destination system. In the case of the normal path, the service finder 102 orders transmission of the message to the flow controller 103. Upon receiving the message, the adapter 101b conducts message conversion by using a message conversion function 233 as occasion demands, and transmits the message to the flow controller 103 by using a intra-hub message transmission and reception function 234. In the case where the adapter 101b conducts message conversion, the adapter 101b utilizes a message conversion engine 241 and a code conversion engine 242 of a common service 240. As for processing conducted in the hub 100, the processing history is recorded as a log by using a log acquisition function 243.
Methods of the message conversion and the protocol conversion are described in U.S. Pat. No. 5,187,787, Skeen et al., U.S. Pat. No. 5,257,369, Skeen et al., and U.S. Pat. No. 5,557,798, Skeen et al.
According to the received message, the flow controller 103 accesses some server side systems one after another in accordance with a determined flow, and conducts processing according to the message. The flow controller 103 determines a server side system to be accessed by inquiring of the service finder 102 and utilizing its management information. The flow controller 103 first accesses the accounting system 121 and conducts predetermined processing (261), and then accesses the investment trust system 123 and conducts predetermined processing (262). In the access (261) to the accounting system 121, the flow controller 103 sends a predetermined message to the adapter 104a associated with the accounting system 121, and obtains an answer message therefor. Thereafter, in the access (262) to the investment trust system 123, the flow controller 103 sends a predetermined message to the adapter 104b associated with the investment trust system 123, and obtains an answer message therefor. The flow controller 103 processes the obtained answer message as occasion demands, and returns a resultant message to the original adapter 101b. The adapter 101b conducts necessary processing such as protocol conversion and message conversion, and returns an answer message to the associated teller terminal 204.
The message transmitted from the flow controller 103 by the access processing (261) to the accounting system 121 is received by an intra-hub message transmission and reception function 274 of the adapter 104a associated with the accounting system 121. The adapter 104a converts the protocol of the message from the protocol in the hub to a protocol of the accounting system 205. As occasion demands, the adapter 104a then conducts message conversion by using a message conversion function 273. The adapter 104a then transmits the message to the accounting system 121. According to the received message, the accounting system 121 conducts predetermined business processing. The accounting system 121 then generates an answer message, and returns it to the adapter 104a. The adapter 104a receives the answer message, converts the protocol of the answer message to the protocol in the hub by using the protocol conversion function 271, and inquires of the service finder 102 the destination of the answer message by using a destination acquisition function 272. (The adapter 104a may store the massage source information in the memory when receiving the message, and use the information as the answer message destination.) Here, the destination is the flow controller 103. As occasion demands, the adapter 104a conducts message conversion by using the message conversion function 273. By using the message transmission and reception function 274, the adapter 104a sends the answer message to the flow controller 103 which is the request issuing source.
A message transmitted by the processing of accessing the investment trust system 123 (262) is received by the adapter 104b associated with the investment trust system 123. Processing conducted in the adapter 104 is similar to that conducted in the adapter 104a, and consequently its description will be omitted.
As heretofore described, in the normal path, a message issued by a client side system is subjected in a client side adapter to required conversion such as protocol conversion, and delivered to the flow controller. In a predetermined flow, the flow controller accesses a server side system via a server side adapter, and advances business processing. Between the client side and server side adapters and the flow controller, message transmission and reception are conducted by using the protocol in the hub (according to the CORBA specifications).
The flow of control from the client to the server heretofore described is shown in
(2-B) Adapter Direct Connection Path
The adapter direct connection path will now be described by referring to
The adapter 101a is an adapter associated with the teller system 111. A message transmitted from the teller system 111 is received by the adapter 101a. The adapter 101a converts a protocol of the message to the protocol in the hub by using a protocol conversion function 221, and inquires of the service finder 102 the destination of the message by using a destination acquisition (destination inquiry) function 222. In the case of the adapter direct connection path, the service finder 102 returns indication of an adapter of a server side system to which the message should be directly sent, as the destination of the message. Here, the adapter 104a of the accounting system 121 is indicated as the destination. Upon receiving this, the adapter 101a conducts message conversion by using a message conversion function 223 as occasion demands, and sends the message to the adapter 104a associated with the accounting system 121 by using an intra-hub message transmission and reception function 224. Processing conducted in the adapter 104a is the same as that described with reference to the normal path. However, an answer message is returned from the adapter 104a directly to the adapter 101a. Arrows 291 and 292 of
As heretofore described, on the adapter direct connection path, a message issued by a client side adapter is transmitted directly to a server side adapter, and the message is not passed through the flow controller 103. As compared with the normal path, therefore, the communication speed is fast and the response is also fast. On the above described adapter direct connection path, the client side adapter 101a converts the protocol of the client side system 111 to the protocol in the hub (according to the CORBA specifications), and the server side 104a converts the protocol in the hub to the protocol of the server side system 121. Instead of conducting such protocol conversion, the client side adapter 104a may convert the protocol of the client side system 111 to the protocol of the server side system 121, and send the message directly without intervention of the protocol in the hub. Since intervention of the protocol in the hub is thus obviated, communication can be conducted faster by that amount.
The flow of control from the client to the server heretofore described is shown in
(2-C) Specific Protocol Direct Connection Path
The specific protocol direct connection path will now be described by referring to
A message transmitted from the teller system 111 is received by the adapter 101a. The adapter 101a transmits the message directly to the adapter 104a. The adapter 104a receives the message. The adapter 104a transmits the received message to accounting system 121. An answer message is also returned via the specific protocol direct connection path in the same way.
As heretofore described, on the specific protocol direct connection path, a message issued by a client side adapter is transmitted directly to a server side adapter, and protocol conversion is not required. In other words, communication is not conducted by using intra-hub message transmission and reception functions 224 and 274 for exchanging messages according to the CORBA, but communication is conducted directly with the protocol used in the teller system 111 and the accounting system 121. As compared with the adapter direct connection path, therefore, the communication speed is further faster and the response is also fast. By the way, message conversion may be conducted in either a client side adapter 101a or 101b, or a server side adapter 104a or 104b, as occasion demands.
The flow of control from the client to the server heretofore described is shown in
(3) Determination of Path
In (2), three paths have been described. A method for determining the path will now be described.
The program 404 is divided into a protocol dependence section 405 and a protocol non-dependence section 406. The protocol dependence section 405 includes a message acceptance section 451, a path decision section 452, and a protocol conversion section 453. The protocol non-dependence section 406 includes a destination inquiry (destination acquisition) section 461, a message conversion section 462, and an intra-hub message transmission and reception section 463.
The message acceptance section 451 of the protocol dependence section 405 conducts acceptance processing of a message issued by the protocol of a client side or server side system associated with this adapter. According to the accepted message, the path decision section 452 determines which of the normal path, the adapter direct connection path, and the specific protocol direct connection path should be utilized, on the basis of a path decision rule 471. The protocol conversion section 453 (corresponding to 221, 231, 271, and 281 of
The destination inquiry section 461 (corresponding to 222, 232, 272, and 282 of
The sections heretofore described correspond to the functions of
The control information 901 may include a path decision result conducted by the adapter and a flag indicating whether message conversion has already been conducted. (These kinds of information may be transmitted between programs in the hub by an internal protocol of the hub.)
The path decision will now be described in detail by citing a plurality of examples.
In the processing flow of the client side adapter of
Relations between business codes and paths may be defined in a table form as the path decision rule 471. Further, information representing protocols used by respective systems (source and destination) is also stored in the path decision rule.
As a variation of
For example, when the business code is “saving account deposit,” the amount of money of deposit is set as business specific information. Therefore, it is possible to conduct a path decision depending on its amount of money. For example, the specific protocol direct connection path is used when the amount of money is at least a predetermined value, whereas the normal path is used when the amount of money is less than the predetermined value.
At the step 1305, the following additional service may be provided. If the amount of money is less than a predetermined value at the step 1305, then on the contrary the specific protocol direct connection is used to conduct a simple service. If the amount of money is at least the predetermined value, then the normal path is used to put an advertisement on the client side and/or access such a system as to activate a customer analysis system.
Furthermore, it is also possible to change the path to be used, according to the kind of a channel which accesses an adapter. This method is effective to the case where it is desirable to conduct especially processing from a specific channel at high speed, such as a teller terminal. For example, it is possible to pass only processing from a specific channel through the specific protocol direct connection path, and pass the same request from other channels through the normal path. By doing so, the load of the specific protocol direct connection path can be lowered. As a result, processing on the specific protocol direct connection path can be executed at higher speed.
Furthermore, by using user information in the path decision rule, processing from a specific customer can be processed at high speed. For example, only requests from excellent customers can be processed by using the specific protocol direct connection path.
The rule of such a path decision is set in the path decision rule 471 of
Processing of a server side adapter will now be described. By, for example, checking the control information 901 of a received message, the adapter can know the path via which the message has been transmitted.
(3) Form of System
On the hub servers 301 to 303, OSs (operating systems) 311, 321 and 331 and CORBAs 312, 322 and 332 are mounted. In the hub server 301, there are operating a client program 313, a client side adapter program 314, a server side adapter program 315, and a server program 316. In the hub server 302, there are operating a finder program 323, a flow control program 324, a server side adapter program 325, and a server program 326. In the hub server 303, there are operating a common service program 333, a client side adapter program 334, a client program 335, and a server program 336.
The client programs 313 and 335 are programs for implementing the client side systems described with reference to
These programs operate on an appropriate number of computers connected by a LAN (local area network). In the case where the hub is formed of a plurality of computers, arbitrary programs can be made to operate on each computer. Furthermore, each program can be distributed in function to a plurality of computers on CORBA. The client programs 313 and 335 and the server programs 316, 326, and 336 are programs for conducting individual business processing, and they are not included in the hub. However, the clients and servers may be mounted on computers forming the hub. Therefore, such an example is shown in
As another example, the hub may be implemented by using one or more independent computers as shown in
In any case, it is desirable to distribute the function of the hub so as not to concentrate the load on a part of computers and network lines.
Number | Date | Country | Kind |
---|---|---|---|
11-123508 | Apr 1999 | JP | national |
Number | Date | Country | |
---|---|---|---|
Parent | 09559060 | Apr 2000 | US |
Child | 10945934 | Sep 2004 | US |