WO2001027757A1 - Method for transferring a software module from a sender to a receiver in a computer system or network - Google Patents
Method for transferring a software module from a sender to a receiver in a computer system or network Download PDFInfo
- Publication number
- WO2001027757A1 WO2001027757A1 PCT/NL2000/000720 NL0000720W WO0127757A1 WO 2001027757 A1 WO2001027757 A1 WO 2001027757A1 NL 0000720 W NL0000720 W NL 0000720W WO 0127757 A1 WO0127757 A1 WO 0127757A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- class
- classes
- receiver
- sender
- group
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4875—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with migration policy, e.g. auction, contract negotiation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
Definitions
- the invention relates to a method for transferring a software module from a sender to a receiver in a computer system or network, wherein the software module comprises at least one object and at least one class, the object being an instance of the class (es) .
- object-oriented software technology it is known to build a software module as a combination of so-called objects and classes, wherein the or each object that belongs to a class, is called an instance of the class.
- the objects gener- ally contain only particular values for the variables specific to a predetermined software module, wherein the variables and methods to be carried out by the software module are defined in the class or classes.
- a first object of the present invention is to provide a method of the above-mentioned type, wherein the data traffic within a computer system or computer network during transferring a software module is reduced. It is a further object of the invention to provide a method of this type, wherein a software module can be transferred in a secure manner.
- each class or group of classes is provided with a class identifier
- both the sender and receiver comprises a database of classes and groups of classes with corresponding class identifiers
- the sender transmits the class identifier of a software module to be transferred to the receiver and the receiver checks its database for presence of the received class identifier, wherein the receiver transmits a message "present” or “absent” to the sender and wherein the sender transfers only the object of the software module or both the object and the class or group of classes depending on the presence or absence of the class or group of classes at the receiver.
- the sender provides a class identifier by combining a given name of each class or group of classes of a software module and the result of a cryptographic hash function, wherein said result is obtained by executing a cryptographic hash function on the data file of the class or group of classes.
- a secure identifier is obtained, wherein errors due to ldenti- cal identifiers for different classes or groups of classes are excluded.
- the receiver checks a class or group of classes received from a sender by comparing the result of the hash function of the received class identifier with the result obtained by carrying out the same cryptographic hash function on the data file of the class or group of classes received.
- Fig. 1 shows m a schematic way a computer network m which a method of the invention is implemented.
- Figs. 2 and 3 show flow diagrams of the operation of a sender and a receiver in the method of the invention.
- FIG. 1 shows in a very schematic way the Internet comprising a number of interconnected computers or servers 1 and computers 2 of users .
- a user computer 2 can be connected to the Internet through a server 1 of an Internet service provider. If a user wishes to obtain information on a specific subject from the Internet, he can send a software agent with his request on the Internet to obtain this information.
- Finding adequate information on the Internet is a problem m view of the huge amount of information available on the Internet.
- Existing technology such as search engines store the most relevant mforma- tion from the complete Internet to find this information in a quick manner if a user requests such information.
- Existing search engines show the disadvantage that searching the complete Internet from one location is time consuming so that such a search will not be carried out frequently and thereby the m- formation stored by the search engine is dated fast.
- existing search engines use their own criteria which do not necessarily correspond with the criteria which a user would use.
- a software agent searching the Internet with a request of its user may however use its own criteria for finding relevant information and the information can be obtained by communicating with other software agents also searching for information.
- the software agents are transferred from one computer 1 to another computer 1 which causes a load of the network due to the data traffic involved m such transfers.
- sender is used to indicate a computer 1 or 2 from which a software agent is to be transferred to another computer 1 or 2 which receiving computer is called receiver. It is noted however that the present method can also be used to transfer an agent being present m a directly executable format m a process executed m one computer to another process executed in the same computer. In this case the terms sender and receiver refer to such processes between which a software agent is transferred. It is further noted that m an application of the method in a computer network, such as the Internet, it is not necessary that all computers of the network are adapted or programmed to operate as sender and/or receiver.
- Each software agent is made as a software module of an ob ect-oriented type.
- the software module comprises one or more objects and one or more classes, wherein the objects are instances of the class or classes.
- An object comprises data, such as variable values.
- a class comprises definitions of the data structure, i.e. name and type of data fields, and definitions of functions or rou- tines which are carried out on the objects of the class. Objects or more particular the variable values of the objects often change due to the execution of the routines which are defined in the class. If a software module comprises two or more classes these classes will be indicated as a group of classes m this specification.
- a software module is transferred from a first computer 1, the sender, to a second computer 1, the receiver, m the computer network, by transferring the class or classes of the software module only if the class or classes are not present at the receiver side.
- a database is provided for storing classes or groups of classes, wherein a unique class identifier is added to each class or group of classes.
- the sender transmits a start message to the receiver indicating "hereinafter follow all data of a software module". All objects which are part of the software module to be transferred are combined m a data file and this data file is transmitted to the receiver. Further, the sender transmits the unique class identifier to the receiver. Thereafter, the receiver checks its database for the presence of the unique class identifier received. The receiver transmits a return message "present” or “absent” to the sender and the sender transmits a data file with the class or group of classes only if a message "absent" was received. If Java is used as software language for the software module, the data files of the classes of one software module can be bundled into one data file by means of a Java tool JAR. The thus obtained data file is a so-called jar-file. Generally m the present method a class will contain a software routine or the like. Other embodiments could involve using classes containing refer- ence to routines or the like and not the routine itself.
- the receiver obtains the software module by combining the objects received from the sender with the class or group of classes either retrieved from its database or received from the sender. If the receiver succeeds m combining the objects and class or group of classes, the receiver transmits a message
- a receiver receiving new classes can store the class or group of classes together with the corresponding unique class identifier m its database for future use. In this manner the database will gradually be further completed reducing future data traffic.
- the unique class identifier is preferably obtained m the following manner. First the user may give a predetermined name to a class or group of classes. This given name is a first part of the class identifier.
- all classes of a software module are bundled into one data file which is the data file to be transferred if the group of classes is absent at the receiver side.
- a program is executed determining a cryptographic hash function of the data file of the group of classes and the result of this hash function is stored.
- This hash function re- suit is the second part of the unique class identifier.
- any cryptographic hash function can be used which provides a result which is significantly shorter than the original data file, wherein a small change in the original data file provides a large change m the hash function result and wherein it is very difficult to determine an input data file leading to a predetermined hash function result.
- the use of a cryptographic hash function provides security to the transfer method.
- the receiver will always check the unique class identifier with the data file of classes received. To this end the receiver will execute the same cryptographic hash function on the data file of the classes and will compare the result of its own hash function with the hash function result in the class identifier. If a match is not found, the receiver will transmit a message "transfer not succeeded" to the sender and will terminate the transfer protocol.
- the method described can be used advantageously in an Internet application of software agents, wherein the software agent travels on the Internet to search information and the like. However, it will be understood that the method results in the same advantages of reducing data traffic between processes running in one computer system or the transfer of software modules between computers in any type of network.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
- Stored Programmes (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00973256A EP1221092A1 (en) | 1999-10-08 | 2000-10-06 | Method for transferring a software module from a sender to a receiver in a computer system or network |
KR1020027004459A KR20020075857A (en) | 1999-10-08 | 2000-10-06 | Method for transferring a software module from a sender to a receiver in a computer system or network |
AU11785/01A AU1178501A (en) | 1999-10-08 | 2000-10-06 | Method for transferring a software module from a sender to receiver in a computer system or network |
JP2001530702A JP2003511792A (en) | 1999-10-08 | 2000-10-06 | Method of transferring software modules from sender to receiver in a computer system or network |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
NL1013249 | 1999-10-08 | ||
NL1013249A NL1013249C2 (en) | 1999-10-08 | 1999-10-08 | Method for transferring a software module from a transmitter to a receiver in a computer system or computer network. |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2001027757A1 true WO2001027757A1 (en) | 2001-04-19 |
Family
ID=19770019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/NL2000/000720 WO2001027757A1 (en) | 1999-10-08 | 2000-10-06 | Method for transferring a software module from a sender to a receiver in a computer system or network |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1221092A1 (en) |
JP (1) | JP2003511792A (en) |
KR (1) | KR20020075857A (en) |
AU (1) | AU1178501A (en) |
NL (1) | NL1013249C2 (en) |
WO (1) | WO2001027757A1 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0778522A2 (en) * | 1995-12-08 | 1997-06-11 | Sun Microsystems, Inc. | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
EP0841615A2 (en) * | 1996-11-08 | 1998-05-13 | International Computers Limited | Updating mechanism for software |
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
-
1999
- 1999-10-08 NL NL1013249A patent/NL1013249C2/en not_active IP Right Cessation
-
2000
- 2000-10-06 EP EP00973256A patent/EP1221092A1/en not_active Withdrawn
- 2000-10-06 KR KR1020027004459A patent/KR20020075857A/en not_active Application Discontinuation
- 2000-10-06 WO PCT/NL2000/000720 patent/WO2001027757A1/en not_active Application Discontinuation
- 2000-10-06 JP JP2001530702A patent/JP2003511792A/en not_active Withdrawn
- 2000-10-06 AU AU11785/01A patent/AU1178501A/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5845077A (en) * | 1995-11-27 | 1998-12-01 | Microsoft Corporation | Method and system for identifying and obtaining computer software from a remote computer |
EP0778522A2 (en) * | 1995-12-08 | 1997-06-11 | Sun Microsystems, Inc. | System and method for generating trusted, architecture specific, compiled versions of architecture neutral programs |
EP0841615A2 (en) * | 1996-11-08 | 1998-05-13 | International Computers Limited | Updating mechanism for software |
Non-Patent Citations (3)
Title |
---|
"OBJECT LOCATION ALGORITHM", IBM TECHNICAL DISCLOSURE BULLETIN,US,IBM CORP. NEW YORK, vol. 36, no. 9B, 1 September 1993 (1993-09-01), pages 257 - 258, XP002045269, ISSN: 0018-8689 * |
IBM, CRYSTALIZ, GENERAL MAGIC, GMD FOCUS: "Mobile Agent Facility Specification", OMG TC DOCUMENT, 2 June 1997 (1997-06-02), XP002143104 * |
OSHIMA, KARJOTH & ONO: "Aglets Specification 1.1 Draft", INTERNET, 8 September 1998 (1998-09-08), www.trl.ibm.co.jp/aglets/spec11.html, XP002143103 * |
Also Published As
Publication number | Publication date |
---|---|
NL1013249C2 (en) | 2001-04-10 |
AU1178501A (en) | 2001-04-23 |
KR20020075857A (en) | 2002-10-07 |
EP1221092A1 (en) | 2002-07-10 |
JP2003511792A (en) | 2003-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5919247A (en) | Method for the distribution of code and data updates | |
US9888089B2 (en) | Client side cache management | |
US6931435B2 (en) | Congestion control and avoidance method in a data processing system | |
EP0817043B1 (en) | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer | |
US7606832B2 (en) | System and method for orchestrating composite web services in constrained data flow environments | |
US20030126196A1 (en) | System for optimizing the invocation of computer-based services deployed in a distributed computing environment | |
JP2007012077A (en) | Access to content addressable data via network | |
KR930701792A (en) | Decoupling feeder with data exchange detail for high performance communication between software processes and its method | |
CN102065136B (en) | P2P (Peer-to-Peer) network safety data transmission method and system | |
Keidl et al. | Reliable web service execution and deployment in dynamic environments | |
US8223785B2 (en) | Message processing and content based searching for message locations in an asynchronous network | |
US20090094263A1 (en) | Enhanced utilization of network bandwidth for transmission of structured data | |
WO2007006859A1 (en) | Method and device arrangement for managing a client/server environment | |
Verma et al. | Reliability-based optimal task-allocation in distributed-database management systems | |
US20080141263A1 (en) | Embedded agent framework and method of providing ubiquitous services using the same | |
KR20210082481A (en) | Database management service providing system | |
WO2001027757A1 (en) | Method for transferring a software module from a sender to a receiver in a computer system or network | |
CN113596105B (en) | Content acquisition method, edge node and computer readable storage medium | |
JP2001265603A (en) | Automatic division software distribution system and method therefor | |
US7908333B2 (en) | Self configuring peer to peer inter process messaging system | |
KR101146742B1 (en) | METHOD OF DISTRIBUTED SESSION MANAGEMENT IN SaaS AND SESSION MANAGEMENT SYSTEM THEROF | |
CN110704451A (en) | Ownership registration and evidence-providing method and device based on block chain | |
Aziz et al. | Adaptability in corba: The mobile proxy approach | |
Jaeger et al. | Preserving integrity in remote file location and retrieval | |
CN114844961B (en) | Distributed system protocol intercommunication method, device, equipment and storage medium |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
ENP | Entry into the national phase |
Ref document number: 2001 530702 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: IN/PCT/2002/499/CHE Country of ref document: IN |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020027004459 Country of ref document: KR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000973256 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2000973256 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 1020027004459 Country of ref document: KR |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000973256 Country of ref document: EP |