Electrical computers and digital processing systems: multicomput – Computer-to-computer data routing – Least weight routing
Reexamination Certificate
1997-06-18
2001-02-20
Maung, Zarni (Department: 2755)
Electrical computers and digital processing systems: multicomput
Computer-to-computer data routing
Least weight routing
C709S205000
Reexamination Certificate
active
06192419
ABSTRACT:
FIELD OF THE INVENTION
This invention relates generally to collaborative application programs and, more particularly, to a collaborative framework that facilitates development of application programs which can share data with arbitrary formats.
BACKGROUND OF THE INVENTION
A collaborative manager is a program that facilitates communication between multiple application programs (“programs”) stored on one or more computers. The programs may reside in computers that are remote from each other and differ in hardware construction and operating system software. The computers can be connected via a network, such as the Internet or a local area network. Consequently, these programs, which may have radically different input and output requirements, must share information through the manager to accomplish a specified task. The manager also coordinates activities of the collaborating programs. For example, a stock market trading program, running on a particular computer platform, may collaborate with a database program, running on a different computer platform, to obtain and then store the name and value of a stock on a selected day. After locating the stock name and daily value via a network (e.g., the Internet), the stock market trading program generates an output with the latter information and transmits the output to the collaboration manager. The manager then broadcasts the information to all computers having programs which are collaborating by means of the manager. These computers may be terminals that are remote from a server on which the manager runs. Once the output from the manager is received by the database program, it is converted into a form which is usable with the database program, and then stored in a database. The manager in this example therefore provides the mechanism for receiving output from a stock market trading program in one format, and directing that output to the database program.
Programs utilized with such collaborative systems must be configured so that each program can recognize and process the output from the other programs. Specifically, each program must be preconfigured with a converter that converts output from any of the other programs into an input which the program can use. In the above example, the database program must include a converter that can accept output data from the stock market trading program in a particular configuration and change that configuration so that it corresponds with the data already stored in the database.
Problems arise, however, when a new program is added to the system after the converter in the existing programs are initially configured. In particular, the system and the existing programs typically will malfunction (i.e., crash) because none of the existing programs includes a converter with a knowledge of the output of such new program. Continuing with the above example, the addition of a new program that determines the stock name and the closing price of the stock for the preceding five days can cause the database program to crash since the database program has the capability of converting the stock name and daily price only. Absent a converter with a knowledge of the new program output, the database program cannot convert and utilize the new output. This problem may be solved by reconfiguring the converters for each program to recognize output from the new program. Reconfiguring the converters, however, typically is not a trivial task. It can be time consuming, inconvenient, and costly, especially when there is a large number of programs utilizing the collaborative system.
Accordingly, it would be desirable to have a collaborative system that facilitates the addition of new programs to the system without requiring that each of the existing programs be reconfigured. It also would be desirable to have a system that does not require a converter in each of the programs.
SUMMARY OF THE INVENTION
In accordance with one aspect of the invention, a collaborative application framework is used to build application programs which communicate with a central collaboration manager by means of a predetermined protocol. The predetermined protocol allows converters to be located at the collaboration manager site so that the programs neither include, nor require, preconfigured converters. Accordingly, new programs may easily and inexpensively be added to the system.
The framework includes class code information which is incorporated into each application program by subclassing and which allows the program to communicate with the central manager by passing messages. The framework further includes class code for creating in the central manager a session object which receives a first message from a first program, converts the information in the first message into an information format utilized by a second program and forward a second messages to the second program containing information in the appropriate format. Since the converting mechanism is a part of a session object, it is not incorporated into first and second programs.
In accordance with another aspect of the invention, a third message from the first program with information in a third format may be directed to the session object. The session object converts the third information into information with the second format and sends the third information to the second program via a fourth message.
In accordance with another aspect of the invention, each remote computer includes a single agent for directing messages between each program running on the computer and a session object. The agent incorporates a mailbox which receives and holds messages passing between the program and the session object.
REFERENCES:
patent: 4688170 (1987-08-01), Waite et al.
patent: 5146593 (1992-09-01), Brandle et al.
patent: 5187787 (1993-02-01), Skeen et al.
patent: 5218699 (1993-06-01), Brandle et al.
patent: 5247615 (1993-09-01), Mori et al.
patent: 5280583 (1994-01-01), Nakayama et al.
patent: 5390328 (1995-02-01), Frey et al.
patent: 5392400 (1995-02-01), Berkowitz et al.
patent: 5446842 (1995-08-01), Scheffer et al.
patent: 5481721 (1996-01-01), Serlet et al.
patent: 5546584 (1996-08-01), Lundin et al.
patent: 5590281 (1996-12-01), Stevens
patent: 5619710 (1997-04-01), Travis, Jr. et al.
patent: 5706349 (1998-01-01), Aditham et al.
patent: 5729671 (1998-03-01), Peterson et al.
patent: 5732271 (1998-03-01), Berry et al.
patent: 5748894 (1998-05-01), Ishizaki et al.
patent: 5781732 (1998-07-01), Adams
patent: 5812773 (1998-10-01), Norin
patent: 5812794 (1998-09-01), Heidel et al.
patent: 5822585 (1998-10-01), Noble et al.
Miller, “Troubleshooting TCP/IP: Analyzing the Protocols of the Internet”, M & T Books, pp. 368-370, Jan. 1993.
Yellin et al., Interfaces, Protocols, and the Semi-Automatic Construction of Software Adaptors, OOPSLA Compendium 1994, 176-190, Oct. 1994.
Martin, “Design and Strategy for Distributed Data Processing,” Prentice Hall, Inc., pp. 272-305, Dec. 1981.
Notkin et al., “Interconnecting Heterogeneous Computer Systems,” ACM, pp. 258-273, Mar. 1988.
Aditham Radhakrishna
Jain Rajiv
Srinivasan Muralidharan
Fourson Gary Scott
International Business Machines - Corporation
Kudirka & Jobse LLP
Maung Zarni
LandOfFree
Collaborative framework for disparate application programs does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Collaborative framework for disparate application programs, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Collaborative framework for disparate application programs will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2607979