WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Network system containing program modules residing in different computers and executing commands without return results to calling modules    

Get related patents on CD
United States Patent5764908   
Link to this pagehttp://www.wikipatents.com/5764908.html
Inventor(s)Shoji; Wataru (Tokyo, JP); Tabuchi; Daisuke (Tokyo, JP); Nakajima; Ichiro (Tokyo, JP)
AbstractA computer network system of the present invention contains program modules residing in different computers and executing commands without return results to calling program modules. The system contains a communication network connecting a plurality of computers. It also contains a plurality of program modules each associated with a parameter file. These program modules can send commands to other program modules. The program modules executes these commands without returning results to the calling program modules. The parameter files and program modules may locate in different computers of the network system. The system contains means for downloading a parameter file to a computer containing its associated program module and means for invoking the program module in response to downloading of the parameter file.
   














 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History Custom Search
Drawing from US Patent 5764908
Network system containing program modules residing in different

     computers and executing commands without return results to calling

     modules - US Patent 5764908 Drawing
Network system containing program modules residing in different computers and executing commands without return results to calling modules
Inventor     Shoji; Wataru (Tokyo, JP); Tabuchi; Daisuke (Tokyo, JP); Nakajima; Ichiro (Tokyo, JP)
Owner/Assignee     Sofmap Future Design, Inc. (Tokyo, JP)
Patent assignment
All assignments
Company News
Publication Date     June 9, 1998
Application Number     08/680,722
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     July 12, 1996
US Classification     709/217 709/203 709/216
Int'l Classification     G06F 015/16
Examiner     Lall; Parshotam S.
Assistant Examiner     Maung; Zarni
Attorney/Law Firm     Chan; H. C .
Address
Parent Case    
Priority Data    
USPTO Field of Search     395/200.01 395/200.019 395/160 395/600 395/601 395/602 395/603 395/604 395/200.47 395/200.46 395/200.33
Patent Tags     network containing program modules residing different computers executing commands without return results calling modules
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5649186
Ferguson
707/10
Jul,1997

[0 after 0 votes]
5630066
Gosling
709/221
May,1997

[0 after 0 votes]
5625781
Cline
715/854
Apr,1997

[0 after 0 votes]
5623589
Needham
715/853
Apr,1997

[0 after 0 votes]
5623656
Lyons
707/10
Apr,1997

[0 after 0 votes]
5590197
Chen
705/65
Dec,1996

[0 after 0 votes]
5572643
Judson
709/218
Nov,1996

[0 after 0 votes]
5530852
Meske, Jr.
709/206
Jun,1996

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B

[0 market size comments]
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 market share comments]
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%

[0 reasonable royalty comments]
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

[0 Guesstimation of Royalty Value Comments]
License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 license availability comments]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
[0 owner/assignee comments]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

[0 competitive advantage comments]
Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

[0 commercial alternatives comments]
 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


We claim:

1. A system having a communication network connecting a plurality of computers, said system comprising:

a first program module and an associated first parameter file;

a second program module and an associated second parameter file;

said first program module containing means for sending a first command to said second parameter file;

said second program module containing means for sending a second command to said first parameter file;

said first program module containing means for executing said second command without returning result of execution to said second program module;

said second program module containing means for executing said first command without returning result of execution to said first program module;

said first parameter file being located in a first computer;

said first and said second program modules being located in a second computer;

means for downloading at least a portion of said first parameter file to said second computer; and

means for invoking said first program module in response to downloading of said first parameter file.

2. The system of claim 1 wherein said first and said second parameter files are ASCII files.

3. The system of claim 1 wherein said means for invoking comprises means for using an extension of said first parameter file to invoke said first program module.

4. The system of claim 1 wherein each parameter file has a network accessible address, said system further comprising a cache located in said second computer for storing downloaded parameter files and their corresponding addresses.

5. The system of claim 4 wherein said addresses comprise uniform resource locators.

6. The system of claim 4 wherein said second computer further comprises a display window containing one or more icons indicating downloadable parameter files, each of said indicated parameter files capable of invoking a third program module, said third program module downloading a further parameter file related to one of said indicated parameter files invoking said third program module.

7. The system of claim 1 wherein said means for downloading comprises a hypertext transport protocol.

8. The system of claim 1 wherein said first computer is a server and said second computer is a client.

9. The system of claim 8 wherein said first parameter file is created in a third computer, said third computer being a client, said system further comprising means for uploading said first parameter file from said third computer to said first computer.

10. A computer connected to a communication network connecting a plurality of clients and servers, said computer comprising:

a first program module and an associated first parameter file;

a second program module and an associated second parameter file;

said first program module containing means for sending a first command to said second parameter file;

said second program module containing means for sending a second command to said first parameter file;

said first program module containing means for executing said second command without returning result of execution to said second program module;

said second program module containing means for executing said first command without returning result of execution to said first program module;

said first parameter file containing an address of a remote file located in one of said clients and said servers; and

said first program module having a behavior determined by said remote file.

11. The computer of claim 10 further comprising means for communicating with said clients and said servers using a hypertext transport protocol.

12. The computer of claim 10 wherein said address is a uniform resource locator.

13. The computer of claim 11 further comprising a first cache, accessible by said first and said second program modules, for storing a predetermined number of addresses processed by said means for communicating.

14. The computer of claim 13 further comprising

a browser displaying at least one icon associated with a parameter file, and

a second cache associated with said browser for storing addresses processed by said browser.
 Description Submit all comments and votes
 


BACKGROUND OF THE INVENTION

Microcomputers have evolved from simple 8-bit electronic toys to powerful business management tools. Almost all large and medium size companies in this country now use at least one microcomputer for business purposes. As a result of mass production, the price of microcomputers dropped drastically over the last few years. Currently, microcomputers are within the reach of many homes and small companies.

In order to make computers more useful in a corporate environment, many companies connect their desktop microcomputers in local area networks. Currently, some companies also install wide-area communication networks so that information can be shared among microcomputers dispersed over many cities. The experiences of these companies confirm that sharing of information among computers increases the overall productivity of the whole system.

However, computers owned by different companies are generally not linked together. Further, the computers owned by homes and small companies tend to be stand-alone desktop machines. Consequently, there is no sharing of information among all the computers. The availability of a wide-area network called the "Internet" changes the situation and potentially allows all these computer to be electronically connected.

The Internet grew out of research in the 1960s to design a robust wide-area data communication network. For a long time, the Internet was used by researchers in universities and national laboratories to share information. As the existence of the Internet became more widely known, many users outside of the academic/research community (e.g., employees of large corporations) started to use Internet to carry electronic mails. In late 1980s, a wide-area information system know as the World Wide Web ("the Web") was developed. The Web is a wide-area hypermedia information publishing and retrieval system aimed to give universal access to a large universe of documents. At that time, the Web was known to and used by the academic/research community only. There was no easily available tool which allows a technically untrained person to access the Web. An development in Internet is the release of a software called a Web "browser." It has a simple but powerful graphic interface. The browser allows a user to retrieve web documents and navigate the Web using simple commands and popular tools such as point-and-click. Because the user does not have to be technically trained and the browser is pleasant to use, it has the potential of opening up the Internet to the masses.

A document designed to be accessed and read over the Web is written in a language called the "Hypertext Markup Language" (the "HTML"). The HTML document, when interpreted by a Web browser, is able to display text, images and other multimedia contents. However, the HTML document itself is merely an ASCII coded text document together with "tags" of predefined format that add some features to the basic text. As a result, the multimedia presentation (e.g., computer display) generated by the HTML document can only contain simple structure.

Another problem of HTML document is that it is difficult to design. As explained above, HTML document is an ASCII coded document while the final display is a multimedia presentation. It is not easy to relate the ASCII document to the presentation. Even though there are tools that help users to write HTML documents, these tools are not easy to use. Consequently, only well-trained persons are able to design HTML documents. Thus, most user can only be a recipient of information instead of being able to share their information.

Recently, there are movements to improve the basic Web architecture. When the Web was first developed, the aim was to share documents. It has been pointed out that programs can also be shared over the Internet. In this systems, a first computer can send program code to a second computer via the Internet. The second computer then executes the code so as to dynamically alter the display generated by a browser. As a result, the Web can be changed from a passive wide-area document sharing system to a dynamic information processing system. Examples of such developments are Java and ActiveX. Java is a variation of a popular programming language called "C++" while ActiveX derives from Microsoft's Object Linking and Embedding (OLE).

Even though sharing program code is a powerful idea, the current direction of implementation (e.g., Java and ActiveX) is counter to the trend of opening the resource of the Internet to a large number of users. Both Java and ActiveX require writing computer programs by experienced programmers. These programs are more difficult to write than HTML documents. Thus, the current direction reduces the number of users who can participate interactively in the Internet experience.

SUMMARY OF THE INVENTION

The present invention involves applying a new programming architecture, called the "digital cell technology," to a digital data network. In this invention, the multimedia files used in the cells, which are program modules used in developing applications and having a specialized structure, could be obtained from other computers connected to the data network. As a result, the number of multimedia files that could be used in applications increases drastically.

Each cell in the digital cell technology is associated with one or more parameter files (called DNA files). These files contain parameters to define many characteristics of their associated cells. In some embodiment of cells, the DNA files also provide means for cells to communicate with each other. One aspect of the present invention involves distributing these DNA files to various computers connected to a data network.

These and other features and advantages can be understood from the following detailed description of the invention together with the accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a drawing of a computer network which can be used in the present invention.

FIG. 2 is a drawing showing multiple windows associated with program cells of the present invention.

FIG. 3 is a drawing showing the structure of a DNA files of the present invention.

FIG. 4 is a block diagram showing a cache design of the present invention.

FIG. 5 is a schematic diagram showing distributable DNA files of the present invention.

FIG. 6 is a diagram showing a prior art programming architecture.

FIGS. 7A and 7B show a comparison between prior art architecture and the architecture of the present invention.

FIG. 8 is a diagram showing the interaction of cells in accordance with the present invention.

FIG. 9 shows a block diagram of the structure of a DNA file in accordance with the present invention.

FIG. 10 shows a block diagram of the structure of a cell in accordance with the present invention.

FIG. 11 is a block diagram of a computer system running an applications in accordance with the present invention.

FIG. 12 shows various windows associated with visual cells during the execution of a multimedia development system in accordance with the present invention.

FIG. 13 shows a windows for a user to enter information to a DNA file of the present invention.

FIG. 14 shows various windows associated with a button cell and visual cells during the execution of a multimedia development system in accordance with the present invention.

FIG. 15 is a window showing the format for a user to specify a button in accordance with the present invention.

FIG. 16 is a window showing the format for a user to specie a visual cell associated with a button cell in accordance with the present invention.

FIG. 17 is a flow chart showing a cell notification procedure in accordance with the present invention.

DETAILED DESCRIPTION OF THE INVENTION

The present invention can be used in a computer network system 700 of FIG. 1. System 700 comprises a data communication network 702 (such as a local area network, wide-are network, or the Internet) a plurality of servers, such as servers 704-706, and a plurality of client computers, such as computers 710-712. Preferably, the servers contain a large database of multimedia content (such as images, audio files, video files, text documents, etc.). The servers may also contain pointers to other computers which contain such databases. Some of the client computers run an operating environment designed under the "digital cell technology" ("DCT"). A detailed description of this technology is provided in a section entitled "Detailed description of the DCT". This technology will be described briefly here to the extent necessary to understand the present invention. One aspect of the present invention is to extend DCT to a data network environment.

Multimedia Files Downloaded from Remote Servers

In DCT, applications are formed by managing a plurality of small program "cells." Each cell is associated with a parameter file (called "DNA" file in the terminology of DCT). The DNA file contains parameters to define some of the characteristics of its associated cell. The DNA file may also provides means for one cell to communicate instructions with other cells. In one implementation of DCT, some of the cells generate a display window upon execution. FIG. 2 is a drawing showing a display 750 of a computer monitor. It contains four display windows, 752, 764, 768 and 774, each associated with a cell. The details of these windows will be explained below.

FIG. 3 shows the structure of an exemplary DNA file 720 associated with a cell CA. Cell CA resides in a client computer, such as computer 710. The focus here is a statement 736 (i.e., "IMAGE=http://www.site/file.JPG") under a "own parameter" section 722. In the cells disclosed in the section entitled "Detailed Description of the DCT", the image file of its display is located in the hard disk of the client computer. In the present invention, the image file could be located in another computer connected to network 702.

More specifically, each file accessible by computers connected to the Web must have an address in a recognized format, called the Uniform Resource Locator ("URL"), that enables computers all over the world to access it. Statement 736 indicates that the image file has a URL of "www.site/file.JPG". In order to obtain the image file, cell CA causes client computer 710 to send a request (via network 702) for a file named "file.JPG" to the server containing the file (such as server 704). In the Microsoft ("MS") Windows environment, cell CA would call a WinSock module to initiate a TCP/IP communication with server 704. In response, server 704 delivers the file "file.JPG" in its database to client computer 710, which in turn delivers the file to cell CA using regular MS Windows notification protocol. If server 704 is running under a MS Windows environment, server 704 also uses a WinSock module to receive information from and send information to client computer 710. As a result, cell CA can generate a display window in accordance with the parameters in its associated DNA file.

It should be noted that the downloaded file is not limited to image files. Other types of files, such as audio and video files, can also be specified in the own parameter section of a DNA file as remotely located files. Further, the communication protocol does not have to be the hypertext transport protocol (HTTP). Any kind of protocol allowing transfer of files over network 702 could be used. Further, server 704 could operate under various operating environments, including UNIX, Macintosh, and DCT.

Once the image file is obtained from the server, cell CA behaves like a regular cell disclosed in the section entitled "Detailed Description of the DCT". For example, a user can manipulate the cell by linking other cells to it. Some of these linked cells may also obtain its image file from various servers in the Internet. When these cells are launched, they obtain their image (or other) files using the same method described above.

An example of this linking can be seen in FIG. 2. For illustrative purposes, assume that window 752 is a display generated by cell CA of FIG. 3. It has a title bar 754 containing a title (i.e., "site 1") of the display. In this illustrative example, the titles of all the windows in FIG. 2 show the origin (i.e., in the form of server "site 1", "site 2", etc.) of the display images. The actual title of a cell can, of course, contain any words or symbols. Thus, windows 752, 764, 768 and 774 contain images that are downloaded from sites 1, 2, 3 and 2, respectively. Window 752 also contains a tool bar 756 having a plurality of tools (such as tool 758) for manipulating window 752 (and the underlying cell). Examples of tools are edit tool for accessing an edit mode (for editing the window) and tools for invoking other pre-defined cells. In this embodiment of the present invention, all the windows in display 750 have title bars and tool bars

In this illustrative example, the image of window 752 includes a shape 761. Users can link a button cell (represented as button 760) and a visual cell (represented as symbol 762) to window 752. The method to link cells to an existing cell has been disclosed in the section entitled "Detailed Description of the DCT". Each of these two cells has a DNA file. The IMAGE parameters in these DNA files could specify a local or a remote image file. It should be noted that any number of (or none) cells can be linked to window 752.

When a user clicks on button 760, the underlying button cell is launched. Window 764 is generated. In this example, the image (having a shape 766) is generated based on one of the files (called "file 1" in this example) stored in site 2.

When a user click on symbol 760, the underlying visual cell is launched. Window 768 is generated. In this example, the image (having a shape 770) is generated based on a file in site 3. Users can attached another visual cell (represented by a symbol 772) to window 768.

When a user click on symbol 772, the underlying visual cell is launched. Window 774 is generated. In this example, the image (having a shape 776) is generated based on another file (called "file 2" in this example) stored in site 2.

Note that some of the cells in the illustrative example of FIG. 2 could have a locally stored image file. There is no need to have all the image files downloaded via network 702.

Windows 752, 756, 768 and 774 are each associated with a DNA file. The link parameter sections of these DNA files contain the file names (both local or remote) of the DNA files which are linked to the corresponding cells. For example, the link parameter section of the DNA file associated with window 752 contains the file names of the button and visual cells associated with windows 764 and 768, respectively. In this example, the file names are in URL format because these files are remotely located.

In the preferred embodiment of the present invention, a URL cache is included. This cache stores in a hard disk all the URLs processed by a client computer. FIG. 4 shows a block diagram showing an implementation of the URL cache. When an exemplary cell 802 wishes to access a remote file, it issues a command to a program module called the "internet resource loader" 804. Loader 804 first check a cache list 806, which contains a list of URLs that have previously been downloaded from the network and stored in the local hard disk. Thus, each URL in the list is associated with a file address in a local hard disk. When the URL of the desired file is in cache list 806, loader 804 fetches the file from the local hard disk instead of downloading it from the network. If the URL of the desired file is not in cache list 806, loader 804 called WinSock 808 to download the desired file. Upon receiving the remote file from the network, WinSock 808 delivers it to loader 804, which in turn causes the operating system to store it in an appropriate local file. The address of the local file together with the URL are added to cache list 806. From this time on, the client computer has access to this file without the need to obtain it from the network.

The implementation of loader 804 can be easily performed by a person skilled in the art based on the above description of its activities.

It is know that some servers update the content of its files frequently. For example, if a server contains files related to prices and specification of products, these files need to be updated whenever the price or specification information is changed. In the above embodiment, the URL cache would prevent users from accessing these updated files because loader 804 would fetch the files from its cache instead of from the server. There are at least three methods to handle this situation. The first method is to allow a user to clear all entries in the cache. As a result, a remotely located file must be fetched from the network. The second method is to allow a user to clear entries related to selected applications. Thus, remotely located files related to these applications will be fetched from the network. The third method is to allow a user to remotely reload all files appearing on a screen. These methods can be implemented using a number of ways. For example, the cache list could be in ASCII form, and the entries therein could be erased (in total or selectively), marked, or replaced in accordance with the desire of the user.

Distributable DNA Files

In the above illustrative examples, the DNA files are stored locally in the client computer even though the multimedia files referred to in the DNA files could be remotely located. In another embodiment of the present invention, the DNA files could be stored in a server. Client computers can download appropriate DNA files from the server so as to create and execute an application.

An embodiment of the present invention in a MS Windows environment is described. Under MS Windows, it is possible to associate a file having a predefined extension with a certain application. As an example, files having the extensions "SFM" and "SFR" can be made to invoke a visual and a run cell, respectively, operating under DCT. In one embodiment of the present invention, all the DNA files are ASCII files. These DNA files define an application through their own and link parameters. By downloading these DNA files and invoking associated cells to a client computer, the client computer can execute an application stored in a server by transferring ASCII files (as opposed to program codes).

FIG. 5 is a schematic diagram illustrating distributable DNA files of the present invention. The browser (not shown) of a client computer may display a Web home page 830 which contains icons 832 and 834 indicating downloadable DNA files. The HTML document (not shown) corresponding to home page 830 contains "tags" which allows a browser to generate icons 832 and 834. In the present invention, these tags contain the URL of the DNA files. When any one of these icons are clicked, the browser accesses its own cache 835 to determine if the corresponding DNA file (for convenience in this discussion, this DNA file is called the "home page DNA file") is in cache 835. If it is in the cache, the browser can invoke the cell associated with the DNA file (e.g., a visual cell) without the need for downloading the file. If it is not in the cache, the browser causes the DNA file to be downloaded from a server (e.g., server 840). The corresponding cell is then invoked by the operating system based on the extension of the downloaded DNA file.

As an example, icon 832 is linked to a DNA file called "DNA-1.SFR." Because this file is not in browser cache 835, it is downloaded from server 840. Once downloaded, the browser invokes a run cell 844. The characteristics of the window associated with cell 844 is defined by DNA-1.SFR.

Note that up to this point, no URL cache is involved. This is because a URL cache is invoked when a cell (instead of a web browser) attempts to download a file. In this embodiment, a URL cache 836 would be used if the DNA file of an associated cell makes reference to a second DNA file which is located remotely. At that time, the procedure discussed above in connection with FIG. 4 will be followed (i.e., the cell issues a command to the internet resource loader, which in turn causes WinSock to download a file, if there is a need to do so).

As an example, if cell 844 needs to access a remote DNA file (e.g., "DNA-2.SFR"), it asks URL cache 836 to obtain the file. If DNA-2.SFR is not cached, it will be downloaded from a server (which could be in the same server 840 or another server 842)

In a preferred embodiment of the present invention, all the home page DNA files contain a "SFR" extension. Consequently, a run cell is invoked when a user clicks on an icon associated with a downloadable DNA file. This cell performs only one function: to download another DNA file (if not present locally) and associate a corresponding cell (e.g., cell 846) to the DNA file. This newly downloaded DNA file (e.g., DNA-2.SFR) is the real DNA file of interest which contains the application designed by a programmer. In this preferred embodiment, the home page DNA file can be considered a phantom DNA file.

The reason for separating phantom DNA files from the real DNA files of interest is that this arrangement allows users of the DCT technology to review and edit all the DNA files under its control. As explained above, the home page DNA files are cached by browser cache 835. Each browser uses a proprietary cache design, and the files cached therein (e.g., DNA-1.SFR) are generally outside the control of users and DCT. DCT can only control files in URL cache 836. The above arrangement places all the real DNA files of interest (e.g., DNA-2.SFR) in URL cache 836, and thus can be controlled by DCT. As explained above, in one embodiment of the present invention, the cache list and DNA files are written in ASCII form, thereby allowing users to view and edit these files. Consequently, the users have full control over their applications. On the other hand, the files cached in the cache of the browser is generally not accessible by the user or DCT.

Uploading Distributive DNA Files

In one embodiment of the present invention, all the DNA files are ASCII files. Thus, it would be easy for a client computer to develop an application using DCT technology and then send the associated DNA files (and if needed, other files referred to in these DNA files) to a server. Other client computers can then download these DNA files for executing the application.

It should be noted that the servers are used in the present invention as a convenient place to hold files. The present invention does not require the use of a server. For example, a first client computer could send DNA files to a second client computer, and the second computer could execute the application. There is no need to have an intermediate computer (e.g., a server) involved.

The present invention could be used by a group of programmers to develop applications. As explained above in connection with FIG. 2, an application may involve many cells, each associated with a DNA file. The development of these DNA files could be assigned to several programmers working in different client computers. These programmers upload their DNA files to a server. A programmer in the server could integrate these DNA files into a complex application. Alternatively, a programmer in a client computer can download these files and integrate these files. The programmer then upload the integrated application to the server. Client computers in the network can download the DNA files of this complex application and execute it.

Detailed Description of the DCT

Conventional computer program architecture consists of a main program and a plurality of program modules. The main program typically controls and coordinates the operation of the program modules. FIG. 6 is a schematic diagram of a program 100 having such an architecture. In FIG. 6, a main program 102 contains a plurality of statements, such as 104 and 106. Some of the statements could be CALL statements, such as statements 108 and 110. These two CALL statements, when executed, will invoke program modules 120 and 130. Main program 102 may contain a LOOP statement which causes main program 102 to execute continuously in a loop. Main program 102 also contains a STOP statement for terminating the program. It should be appreciated that program 100 could be written in different programming languages, and the precise syntax of the statements and program structure could vary with the programming languages.

Program 100 contains a plurality of program modules, such as modules 120 and 130, called by main program 102. Module 120 contains a plurality of statements, such as statements 122 and 124. It could also contain a plurality of CALL statements, such as statement 126. This statement, when executed, will invoke another module 140. Finally, module 120 contains a RETURN statement.

When CALL statement 108 is executed, main program 102 jumps to module 120. Statements 122, 124 and the rest of the program are executed. Upon executing the RETURN statement in module 120, program 100 returns to statement 106, which is the statement following CALL statement 108. At this time, the control of program 100 is returned to main program 102. Main program 102 continues to execute.

The structure of all the modules is similar to that of module 120. Similarly, the jump-return mechanism, described above, is carried out by all the CALL statements in program 100. Consequently, they will not be further described in this specification.

In order to carry out this jump-return mechanism, the return addresses of the CALL statements need to be saved in RAM (typically in a memory structure called a stack). Other essential state information of the computer prior to jumping to the called module, such as values of registers, may also be saved if there is a need to do so (e.g., when jumping to an interrupt service routine). Thus, when main program 102 calls module 120, the contents of these registers may also be pushed (i.e., saved) in the stack. Similarly, when module 120 calls module 140, the return address of module 120 also needs to be saved. The contents of appropriate registers may need to be pushed in the stack. Thus, the size of the stack could be large when a large number of CALL statements are executed.

When a RETURN statement is executed, the return address is used to return to the calling program. The saved information is also retrieved.

Typically, a program in the above described conventional architecture contains many CALL statements and many modules. These modules could call other modules (e.g., module 120 can call module 140), thereby forming a chain of CALL statements. The precise history of this chain needs to be preserved so that the last called module can return to the main program. One of the problems of the conventional architecture is that the time to travel the chain could be very long. As pointed out above, each time a CALL statement is invoked, certain amount of state information needs to be saved, resulting in overhead in execution. Each time a RETURN statement is executed, the saved information needs to be restored, again requiring overhead in execution. As a result, the execution speed of programs written using conventional architecture is slow.

The following are some of the characteristics of the conventional architecture: (a) there is a controlling ("boss") program, e.g., main program 102, (b) all the linkage information (e.g., return address and registers) needs to be preserved when one part of the program (a calling program such as main program 102 or some of the modules) transfers execution to another (the called program), and (c) the linkage information is used to return control and information to the calling program. This architecture could be called a "boss" architecture. The calling module can be considered a master while the called module can be considered a slave executing commands issued by the master and then reporting results to the master.

Recently, other programming architectures have been developed. However, they are also based on the boss architecture. One example is object-oriented programming. This method allows codes to be reused and applications developed relatively rapidly. However, the applications still have a controlling body which adds tremendous overhead.

Advances in program architecture have also been made in operating environments. One example is an interprocess communication protocol called dynamic data exchange (DDE) used in Microsoft's MS Windows environment. DDE uses a shared memory to exchange data between processes and a protocol to synchronize the passing of data. The heart of DDE protocol is the DDE message. A process (client) can ask another process (server) to perform a service. Specifically, the client issues a WM.sub.-- DDE.sub.-- EXECUTE message to post a command to the server by storing a command string in a global memory block and passing to the server a handle to the global memory block. The server subsequently returns a WM.sub.-- DDE.sub.-- ACK message to the client. If the server successfully executes the command, the WM.sub.-- DDE.sub.-- ACK message would return a TRUE value to a DDEACK structure member labelled "fAck." If the command is not successfully executed, the server posts a WM.sub.-- DDE.sub.-- ACK message with "fAck" set to FALSE. When the client receives the WM.sub.-- DDE.sub.-- ACK message from the server, it deletes the command string from global memory and proceeds to take appropriate actions accordingly.

It is clear that interprocess communication via DDE has many characteristics of the conventional architecture shown in FIG. 6. Specifically, the preservation of linkage information and the return of control to the client are important aspects of DDE. While the architecture of FIG. 6 stores the content of a few registers and the return address in each interprocess communication, DDE uses elaborate commands and data structure. As a result, DDE is even less efficient than the architecture of FIG. 6.

Another example of new developments in operating environment is an architecture used in MS Windows called OLE (Object Linking and Embedding). This architecture allows one application (e.g., a word processor program) to be linked to one or more applications (e.g., a spreadsheet program). In the terminology of OLE, applications can be classified as client applications and server applications. MS Windows uses a "registration database" to maintain a collection of information about OLE applications and file extensions for MS Windows applications. All communication between applications is handled by OLE. Specifically, OLE applications communicate through the use of three dynamic-link libraries: OLECLI.DLL, OLESRV.DLL, and SHELL.DLL. The SHELL.DLL enables applications to communicate with the registration database. The OLECLI.DLL is the OLE client library and the OLESRV.DLL is the server library. The OLE server and client libraries communicate with each other through DDE messages. The typical path of communication for an OLE function includes the call of the function, DDE messages between OLE libraries, and disseminating information to the client and server applications.

In one example, when the OLESRV.DLL library receives notificat