III IIHIIII US005457797A United States Patent (19) 11 Patent Number: 5,457,797 Butterworth Et Al
Total Page:16
File Type:pdf, Size:1020Kb
III IIHIIII US005457797A United States Patent (19) 11 Patent Number: 5,457,797 Butterworth et al. 45) Date of Patent: Oct. 10, 1995 54) FLEXIBLE MULTI-PLATFORM Jones, A. K. et al., "Task Forces: Distributed Software for PART TONING FOR COMPUTER Solving Problems of Substantial Size', Proc. 4th Int. Conf. APPLICATIONS on Software Eng. Sep. 1979, pp. 315-330. 75 Inventors: Paul Butterworth, Berkeley; Joseph Cortopassi, Fremont, Sean Fitts, Primary Examiner-David K. Moore Hayward, all of Calif. Assistant Examiner-A. Katbab 73) Assignee: Forte Software, Inc., Oakland, Calif. Attorney, Agent, or Firm-David J. Larwood; Crosby, Heafey, Roach & May 21 Appl. No.: 407,340 (22 Filed: Mar 22, 1995 57) ABSTRACT (51) Int. Cl. ................................. B06F 9/42 A method of partitioning an application program by defining 52 U.S. Cl. ..................................... 395/650, 364/DIG. 1; an application program for execution on at least two inter 364/230.3; 364/281.3; 364/280 connected computers, selected from at least two classes of 58 Field of Search ...................... 395/650; 364/DIG. 1, computers without considering what specific machine envi 364/230.3, 281.3, 281 ronment will be used at run time. Partitioning includes Related U.S. Application Data defining two or more objects as components of the applica tion program, where a first object is capable of execution on 63 Continuation of Ser. No. 101,411, Aug. 3, 1993, abondoned. one class of computers and a second object is capable of (56) References Cited execution on a second class of computers. Once the objects are defined, the method includes selecting an environment U.S. PATENT DOCUMENTS for the application program, and partitioning the application 4,742,467 5/1988 Mosserich et al. ..................... 364/200 by selecting each object to execute on the computer of the 5,056,000 10/1991 Chang ..................................... 364/200 corresponding class. A system using the method can gener 5,261,095 11/1993 Crawford et al. 395/650 ate a default partitioning scheme to partition the application 5,295.222 3/1994 Wadhwa et al. ............................ 395/1 program as a series of partitions, each of which is assigned FOREIGN PATENT DOCUMENTS to a computer among available computing resources. The 2242293 9/1991 United Kingdom. original partitioning selected by the computer can be modi fied automatically or by a user. OTHER PUBLICATIONS Nishikawa, H. et al. "Aroma:Language support for distrib uted objects', Proc. 6th Int, parallel proc. symp. 23-26 Mar. 1992, pp. 686–690. 51 Claims, 16 Drawing Sheets Logical Application Partitioned Deployment Definition U.S. Patent Oct. 10, 1995 Sheet 1 of 16 5,457,797 Hardware Software Prior Art Prior Art Presentation Services CLENT Application Logic SQL Prior Art Figure 2 U.S. Patent Oct. 10, 1995 Sheet 2 of 16 5,457,797 CLENT Presentation Services 3270 Data Stream SERVER Application Logic Figure 3 CLENT Application Logic SERVERS Data Management Figure 4 U.S. Patent Oct. 10, 1995 Sheet 3 of 16 5,457,797 Presentation Services CLENT Application Logic Messages SERVER Application Logic Data Management Application Database API live feed U.S. Patent Oct. 10, 1995 Sheet 4 of 16 5,457,797 C Data ACCess & Analysis Logical Application Partitioned Deployment Definition Figure 7 U.S. Patent Oct. 10, 1995 Sheet 5 of 16 5,457,797 ON 2 s b) a y 2 t s a 5D .S. 9 >Ea U.S. Patent Oct. 10, 1995 Sheet 6 of 16 5,457,797 E.S U.S. Patent Oct. 10, 1995 Sheet 7 of 16 5,457,797 Analysis Customer Usage Profile Billing Conservation Service Appointment Machine Quality Production Business Control Control Planning Services Milling Machines Measuring Machines Manufacturing Steps o Receiving Drilling Machines Tolerance Analysis Production Schedules • Inventory Conveyor Systems Shipping Figure 13 U.S. Patent Oct. 10, 1995 Sheet 8 of 16 5,457,797 U.S. Patent 5,457,797 #7I9InáH U.S. Patent Oct. 10, 1995 Sheet 10 of 16 5,457,797 suuøysÁSuo?onpol?||enBCIJQUUO]SnO ÇI9InãIH uo?ez?uIonsn)• U.S. Patent Oct. 10, 1995 Sheet 11 of 16 5,457,797 9I9JnãIAI TOW-IQO? U.S. Patent Oct. 10, 1995 Sheet 13 of 16 5,457,797 Forms Repository Debugger Painter Browser Object-Oriented 4GL Portability Abstractions De DaunalreakaweUser Windows Oracle ACMS DCE C-H Forté Motif Tuxedo ORB 3GL CDD/R Macintosh db Transarc NAS PCTE Ingres. AppleTalk Informix Figure 18 (O) Order/ Entry Screens CUSO 3 records database SeVCeS shipping Figure 19 U.S. Patent Oct. 10, 1995 Sheet 14 of 16 5,457,797 9.InãIHOZ. U.S. Patent Oct. 10, 1995 Sheet 15 of 16 5,457,797 Performance information Administration Node Partition Users Casper Order Entry 5 pe Scheduler 15 Sales Planner 3 No. 9 Trip Planner 1 E-Mail 3 Order Analysis 5 U.S. Patent Oct. 10, 1995 Sheet 16 of 16 5,457,797 Paties Partition Configuration Order Update PC Users Casper ChkScheduler inventory Order Entry Build BOM inventory Mgr. BarCOdé8S ReOrder Scan eOrder item Data Server Shipping Mgr OrderUpdate Brit Racking inventory Mor Calc Rates 5,457,797 1 2 FLEXBLE MULT-PLATFORM menu selection, graphic objects and such generally requires PARTITIONING FOR COMPUTER transferring large amounts of information, especially when APPLICATIONS manipulating bitmaps. If this information must be passed over a common network shared among many computers, This is a continuation of application Ser. No. 08/101,411 5 then the network can easily be filled with traffic moving filed on Aug. 3, 1993, abandoned entitled "Flexible Multi graphic images. In a similar way, the low level commands Platform Partitioning for Computer Applications.” required to select a specific storage media, move the reading heads to the correct portion of the media and pull the information from the media requires a fair amount of FIELD OF THE INVENTION 10 activity between the controller and the reading heads when The present invention relates to methods and apparatus all the user or program really needs is the result, typically for partitioning objects of an object-oriented program across some or all of the contents of the requested record. multiple computing devices, including real time monitoring This paradigm has evolved to be known as a client-server. and modification of the partitioning. The server, in general, provides control of and access to one 5 or more shared resources. One useful server is a database server, discussed above. Another useful server is a file BACKGROUND OF THE INVENTION server, where the server has access to program or data or A computer program generally consists of at least three other files and can access this information upon request. A components: a user interface; an application program; and print server might store and direct print jobs to a collection memory or storage. Early computers used tape or card 20 of printers which are then accessible to a large number of readers and printers for primary user interface. The program users through simple calls to this server. or application was loaded to run on the central processing The Evolution of Client-Server unit and either memory or disc storage or both provided data Client-server has grown rapidly with advances in database storage. As the industry matured, computers were able to management system (DBMS) technology and particularly interact with terminals to provide another important user 25 relational database management system (RDBMS) technol interface. Small computers, known as workstations, became ogy. The architectures of the leading multi-user RDBMSs available to provide a user interface and computing power in provide a separation between the user-specific work of the the same unit. With the advent of personal computers or PCs, application program and the shared data management ser inexpensive computers have replaced simple terminals in vices of the RDBMS engine. This architecture allows a 30 single RDBMS engine to service multiple applications as many computer installations. well as multiple users of the same application. Structured In early computers, a program could reside only in a query language (SQL) provides applications with an easy single computer. Large programs could be broken into way of requesting RDBMS services while shielding appli segments which could be loaded, as needed, into active cations from the details of data management (e.g., concur memory in the central processing unit. As computers 35 rency control, backup and recovery, data access strategies). became more powerful, larger programs could be run but the With the advent of RDBMS networking products, appli capacity of a single computer remained a fundamental limit cations could be off loaded from the host and placed on a for the size of a computer program. different machine, using SQL as the protocol to communi As workstations and PCs became more prevalent, a para cate between them. At first, this technology was used digm evolved which attempted to maximize efficiency by 40 between two multi-tasking minicomputers, one that ran the using available processing power in a logical manner. Since RDBMS engine (the back end) and the other (the front end) many users were interfacing with larger computers through that drove the users' dumb terminals. With the growing a workstation or a PC, programmers realized that functions acceptance of the PC, it was a logical step to replace a required to operate the user interface, such as screen redraw multi-tasking front end machine with a collection of PCs, ing, video refresh, graphics generation, windowing control 45 each of which ran its own copy of the front end application (size, position and overlap), and input processing (character program. The growing popularity of the graphical user and function key handling, interrupts, and such), logically interface (GUI) has further solidified the appropriateness of should be handled by software which was resident on the client-server, since inexpensive desktop computing cycles local workstation.