CN1298508A - Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system - Google Patents

Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system Download PDF

Info

Publication number
CN1298508A
CN1298508A CN99805383A CN99805383A CN1298508A CN 1298508 A CN1298508 A CN 1298508A CN 99805383 A CN99805383 A CN 99805383A CN 99805383 A CN99805383 A CN 99805383A CN 1298508 A CN1298508 A CN 1298508A
Authority
CN
China
Prior art keywords
request
statement
code
machine
response
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN99805383A
Other languages
Chinese (zh)
Inventor
K·C·R·C·阿诺德
J·H·瓦尔多
R·谢夫勒
A·M·沃尔蕾斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/044,930 external-priority patent/US6393497B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1298508A publication Critical patent/CN1298508A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

Use of a smart proxy as a wrapper around a stub in a distributed system. Instead of receiving a stub as a result of a remote procedure call, a caller receives a smart proxy including the stub as an embedded object. The smart proxy performs predefined processing associated with a remote procedure call, the processing possibly occurring before, during, or after a response to the call.

Description

Carry out the downloadable smart proxies of the processing relevant with remote procedure call in the distributed system
Related application
Following U.S. Patent application is the application's basis, and is for reference in this citation.
U.S. Patent application 60/076,048, title are " Distributed Computer Systems ", and the applying date is on February 26th, 1998.
U.S. Patent application 09/044,923, its title are " method and systems of lease storage ", and its attorney docket is 06502.0011-01000, and its applying date is identical with the application.
U.S. Patent application 09/044,838, its title are " method, device and the products of certificate of authority lease in the distributed system ", and its attorney docket is 06502.0011-02000, and its applying date is identical with the application.
U.S. Patent application 09/044,834, its title are " method, device and the products of the lease of grouping membership qualification in the distributed system ", and its attorney docket is 06502.0011-03000, and its applying date is identical with the application.
U.S. Patent application 09/044,916, its title are " leases of fault detect ", and its attorney docket is 06502.0011-04000, and its applying date is identical with the application.
U.S. Patent application 09/044,933, its title are " based on the methods that transmits behavior in the system of incident ", and its attorney docket is 06502.0054-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,919, its title are " being used for the long-range loading of distributed system event notice and the delay reorganization of object ", and its attorney docket is 06502.0062-01000, and its applying date is identical with the application.
U.S. Patent application 09/044,938, its title are " method and apparatus of remote method invocation (RMI) ", and its attorney docket is 06502.0102-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,652, its title are " method and apparatus of the determinacy hash of identify remote method ", and its attorney docket is 06502.0103-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,790, its title are " method and apparatus of determining the state of distributed system medium-long range object ", and its attorney docket is 06502.0104-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,917, its title are " interruption of remote method and continuation ", and its attorney docket is 06502.0106-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,835, its title are " method and systems of multiple entry and multi-template matching in the database ", and its attorney docket is 06502.0107-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,839, its title are " method and systems that is used for the original place modification of database ", and its attorney docket is 06502.0108, and its applying date is identical with the application.
U.S. Patent application 09/044,945, its title are " print the safety genus in the database and levy the method and system of coupling ", and its attorney docket is 06502.0109-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,931, its title are " the dynamic queries services in the distributed system ", and its attorney docket is 06502.0110-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,939, its title are " providing downloadable code to be used for the apparatus and method that distributed system and equipment communicate ", and its attorney docket is 06502.0112-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,826, its title are " method and systems of being convenient to enter inquiry service ", and its attorney docket is 06502.0113-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,923, its title are " apparatus and method of dynamically verifying information in the distributed system ", and its attorney docket is 06502.0114-02000, and its applying date is identical with the application.
U.S. Patent application 09/044,840, its title are " carrying out dynamic distributed Calculation Method and device on the net ", and its attorney docket is 06502.0115-00000, and its applying date is on February 26th, 1998.
U.S. Patent application 09/044,936, its title are " interactive design tools of sharing storage space lastingly ", and its attorney docket is 06502.0116-02000, and its applying date is identical with the application.
U.S. Patent application 09/044,934, its title are " based on the control of the token of variform ", and its attorney docket is 06502.0117-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,915, its title are " based on the access control of storehouse ", and its attorney docket is 06502.0118-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,944, its title are " confidentiality based on storehouse require ", and its attorney docket is 06502.0119-00000, and its applying date is identical with the application.
U.S. Patent application 09/044,837, its title are " confidentiality require by method sign ", and its attorney docket is 06502.0120-00000, and its applying date is identical with the application.
Invention field
The present invention relates to a kind of in distributed system between machine the system and method for transmission object, relate in particular to the transmission of remote object statement, comprise being used for the local code of handling.
Background of invention
The concentrated distributed program that carries out Point-to-Point Data Transmission often can adopt the specialized protocol that is used for remote access and file transmission to handle effectively.These agreements are to be used in particular for a kind of program, and are that the basis of setting up various distributed programs (for example, distributed operating system, e-mail system, computer conferencing system etc.) is not provided.
Although traditional transmission service can be as the basis of setting up distributed program, but these services have many structural problems, as, in different machines, adopt different data types, lack the synchronization facility, and do not possess simple programming rules (paradigm).
Distributed system contains usually concentrates dissimilar machines, is interconnected at together by communication network.Each machine has its oneself internal data type, its oneself address alignment order, with and oneself operating system.This non-identity makes and some problems occur when setting up distributed system.As a result, the program development personnel must comprise a kind of processing power in the program for the exploitation of the distributed system of this xenogenesis machine, make it possible to guarantee in different machines information processing and and the consistance explained.
Yet, a kind of simplification can be arranged, this is because notice, most program adopts a request and replys between process reciprocation, starter (being that program is initiated communication) is subjected to blocking and returns up to replying, and therefore idle in this time.Invocation of procedure mechanism by between the process can make its modelling.A kind of such mechanism is called remote procedure call (RPC).
RPC is a kind of mechanism that synchronization communication is provided between two processes moving on same machines or the different machines (that is, program, applet program etc.).Under a kind of simple scenario, a process as a user program, sends a piece of news to another process, as server program.At this moment, no matter be when sending message or when receiving message, process is needn't be synchronized.User program can send this message, and begins new activity subsequently, and perhaps for the server program environment, the message of buffering input is till server program is prepared to handle new message.
Yet RPC is restricted to synchronization, because it is closely according to the Local Procedure Call model, this requirement passes a parameter, blocked calling process before the invoked procedure of server program is finished along a direction, and returns a response subsequently.Therefore, RPC comprises the transmission of two message, and the synchronization of two processes during calling.
RPC mechanism realizes in two processing sections with the Local Procedure Call garbage signal that normally a part is at client-side, and another part is at server side.These two parts will be described with reference to Fig. 1 below.
Fig. 1 is the figure that adopts the recalls information stream of RPC mechanism.As shown in Figure 1, CLIENT PROGRAM 100 is sent one and is called (step 102).RPC mechanism 101 packs subsequently, and this calls, and as the formal parameter (step 103) that calls bag, RPC sends it to server program 109 (step 104) subsequently.This calls bag and also contains the information that identification at first sends this user program that calls 100.After having sent this and calling bag (step 104), RPC mechanism 101 enters waiting status, during this period, waits for the response from server program 109.
The RPC mechanism 108 that is used for server program 109 is (when server program 109 is when being on the identical platform with client program 100, it can be the RPC mechanism identical with RPC mechanism 101) receive this call bag (step 110), unpack from call bag call shape ginseng (step 111), with recalls information identification to calling the server program 109 that carries out addressing, and these called the shape ginseng be provided to server program 109.
Server program receives this and calls (step 112), handles (step 115) by calling suitable process to calling, and returns a response (replying) (step 116) to RPC mechanism 108.RPC mechanism 108 then is bundled to this response in the respond packet (step 114), and sends it to CLIENT PROGRAM 100 (step 113).
Receive respond packet (step 107) and started RPC mechanism 101, make it to withdraw from waiting status, and unpack response (step 106) from respond packet.Call (105) in response to this, RPC then is provided to CLIENT PROGRAM 100 with this response.This is the processing procedure stream according to the typical RPC mechanism of Local Procedure Call rules model.Because what RPC mechanism adopted is the Local Procedure Call rules, CLIENT PROGRAM 100 is blocked when calling, until receive till the response (replying).So CLIENT PROGRAM 100 is the processing that no longer continues himself having sent after calling; On the contrary, it waits for the response from server program 109.
Java TMProgram language is a kind of OO program language, and it normally is compiled into and platform form independently with the byte code instruction collection, and the byte code instruction collection is to carry out on the platform of any support Java Virtual Machine (JVM).This language can be referring to James Gosling, Bill Joy and Guy Steel, Addison-Wesley, and 1996 " Java language technical manual (The Java LanguageSpecification) " is for reference in this citation.The description of JVM see Tim Lindholm and Frank Yellin's " Java Virtual Machine technical manual (The Java Virtual Machine Specification) ", AddisonWeslsy, 1996, for reference in this citation.Java and be by the trade mark of Sun Microsystems company in the U.S. and other countries' registration based on the trade mark of Java.
Because JVM can implement on any platform, adopt JVM to carry out distributed program and significantly reduced to be the relevant difficulty of xenogenesis machine distributed system development sequence.In addition, JVM adopts Java remote method invocation (RMI) system (RMI), and it makes it possible to communicate between the program of system.File is stated in the explanation of RMI as follows, this document is for reference in this citation: " remote method invocation (RMI) technical manual ", Sun Mricrosystems, Inc (1997), this can be by uniform resource locator (URL): http://www.javasoft.com/products/jdk/1.1/docs/guide/rmi/spec/rm iTOC.doc.html obtains.
Fig. 2 is the figure of the object data stream of OO distributed system 200, and this OO distributed system 200 comprises and is used to adopt the transmission of JVM and the machine 201 and 202 that method of reseptance calls.In system 200, machine 201 adopts RMI 205, responds for calling of object 203 by object being converted to byte stream 207, comprises the sign of the type that sends object and form the data of this object in byte stream 207.When calling of 201 pairs of objects 203 of machine responded, the process of moving on identical or another machine in system 200 can be carried out continuously, and needn't wait for its request is responded.
Machine 202 receives byte stream 207.Machine 202 adopts RMI 206 to convert thereof into corresponding object 204 automatically, and object 204 is duplicating of object 203, and it makes this object to be used by the program of carrying out on machine 202.Machine 202 can also send to another machine with object by at first converting object to byte stream and also send it to the 3rd machine subsequently, and the 3rd machine converts this byte stream to corresponding object automatically.
Communication between the machine comprise sometimes as identical information repeat call.These call and form a kind of local agent (local proxy), work as the agency (surrogate) of remote object in the customer address space.This agency calls by serving this to server object proposition network requests.A large amount of Networks be can produce by the repetitive requests of acting on behalf of same server object, and the time and the expense of acquired information increased.Therefore, need a kind of technology that reduces Internet traffic in this case.
Summary of the invention
According to the request of method transmission of the present invention to special object.Reception is to this request responding, and this response comprises the statement code that is used for constituting requested object, and this constitutes with this statement generation object (object), is used for calling of this object handled, and this object is local to request object.
Receive request at a machine place according to another method of the present invention to special object.Transmission is to this request responding, this response comprises the first code that is used for constituting the object statement, and comprise the indication of the second code of handling, making this formation produce one with this statement is local this object to be called the object of processing for request object.
According to the request of device transmission of the present invention to special object.This device receives request responding, and this response comprises the code that is used for constituting the statement that is requested object, and this constitutes with this statement generation object (object), is used for calling of this object handled, and this object is local to request object.
Install in the request of machine place reception according to of the present invention another special object.This device sends request responding, this response comprises the first code that is used for constituting the object statement, and comprise the indication of the second code of handling, making this formation produce one with this statement is local this object to be called the object of processing for request object.
The accompanying drawing summary
Accompanying drawing as this instructions part has illustrated advantage of the present invention and principle with this instructions.Among the figure,
Fig. 1 is the figure that adopts the recalls information stream of RPC mechanism;
Fig. 2 is the figure that object transmits in the OO distributed system;
Fig. 3 is the figure of operable exemplary distribution formula disposal system during according to the invention process;
Fig. 4 is the figure of typical distribution formula system architecture;
Fig. 5 is the figure of computing machine in the distributed system architecture shown in Fig. 4;
The block scheme of the distributed network that Fig. 6 uses when being the download intelligent agent;
Fig. 7 is the process flow diagram flow chart when downloading intelligent agent in the distributed network shown in Fig. 6; And
Fig. 8 changes the performed process flowchart of intelligent agent.
Describe in detail
General introduction
Machine in the distributed system does not only receive being that an object that substitutes symbol (surrogate) proposes the agency (proxy) of network requests, but receives an intelligent agent.Such agency can be to being that calling of object that substitutes symbol responds, and do not carry out any network call, improving the efficient of program, or handles before carrying out network call or after finishing network call, to increase the function of program.Term " agency " typically refers to code or other mechanism, as the alternative symbol of machine address space medium-long range object.
System forwards counterfoil (stub) and relevant intelligent agent can adopt various RPC or RMI, the shape ginseng is sent to another processing procedure and some values are turned back to another processing procedure from a processing procedure from a processing procedure, and these processing procedures may be on different machines.Term " machine " is used to refer to a kind of concrete machine or virtual machine in this article.In the same concrete machine a plurality of virtual machines can be arranged.The example of RPC system comprises distributed computing environment (DCE) RPC and the distributed shared object model of Microsoft (DCOM) RPC.Memory stores counterfoil and relevant intelligent agent, and this storer can comprise second resource as disk, or receive object from the internet.
Distributed processing system(DPS)
What Fig. 3 drew is typical distribution formula disposal system 300, can be used for implementing the present invention.Among Fig. 3, distributed processing system(DPS) 300 comprises three independently and be xenogenesis machine platform 301,302 and 303, and these platforms are connected in the network structure of representing with network cloud 319.The composition and the agreement of the network structure of network cloud 319 representatives are unimportant, as long as it can carry out the message exchange between platform 301,302 and 303.In addition, only using three platforms only for for the purpose of being described, is not the restriction to structure platform quantity of the present invention.Have, embodiments of the invention do not have strict restriction to the concrete structure of network again.For example, also can adopt another kind according to network structure of the present invention, in this structure, only adopt a platform as network controller, every other platform all can link to each other with this controller.
In distributed processing system(DPS) 300, platform 301,302 and 303 all comprises a processor 316,317 and 318 and storer 304,305 and 306 respectively.Comprise respectively in the storer 304,305 and 306 and use 307,308 and 309, operating system 310,311 and 312 and RMI element 313,314 and 315.
Using 307,308 and 309 can be to use or program, they are before for using the services that provides according to the embodiment of the invention to write and revise, or writes especially to utilize its advantage.Use 307,308 and 309 and call the operation that to carry out according to embodiments of the invention.
Operating system 310,311 and 312 is typical standard operation systems, and links together with corresponding processor 316,317 and 318 respectively.Platform 301,302 and 303 can be an xenogenesis.For example, platform 301 has one by Sun Microsystems, and the UltraSparc_ microprocessor that Inc makes as processor 316, and adopts Solaris_ operating system 310.Platform 302 has a MIPS microprocessor of being made by Silicon Graphics Corp company, as processor 317, and adopts Unix operating system 311.At last, platform 303 has a Pentium microprocessor of being made by Intel Corp company, and adopts Microsoft's Window 95 operating systems 312.Be not limited only to this according to embodiments of the invention, can be suitable for various platforms.
Sun, Sun Microsystems, Solaris, Java and Sun Logo are Sun Microsystems, Inc is at the trade mark of the U.S. and other countries' registration.UltraSpare and all SPARC trade marks are to use obtaining under the situation of licence, and are SPARC International, and Inc is at the trade mark of the U.S. and other countries' registration.The product that has the SPARC trade mark is based on Sun Microsystems, the structure of Inc exploitation.
Storer 304,305 and 306 has several functions, as is used for the common store of related platform.Another function is that storage uses 307,308 and 309, RMI element 313,314 and 315 and the operating system 310,311 and 312 by each processor 316,317 and 318 term of execution.In addition, partial memory 304,305 and 306 can constitute the shared storage of all platforms 301,302 in the network 319 and 303.Notice that RMI element 313,314 and 315 is operated with JVM, not shown is for figure is simplified.
Distributed system architecture
Can also work in specific distributed system 400 according to system and method for the present invention, this describes with reference to Fig. 4 and Fig. 5.This distributed system 400 is made up of various elements, comprises hardware and software, (1) make system user can be on the network of forming by many devices share service and resource; (2) provide the instrument and the programming mode of the exploitation that can carry out stronger distributed system of maintaining secrecy to the programmer; And (3) have simplified the task of managing distributing type system.In order to realize this goal, distributed system 400 adopts the Java programmed environment, makes code and data to move to another device in seamless mode from a device.Therefore, distributed system 400 is in the top layer of Java programmed environment, and has made full use of the feature of this environment, comprises that its confidentiality that provides and thwack that it is provided prints.
In Fig. 4 and distributed system 400 shown in Figure 5, different computing machines and device are unified into single system to user Lai Shuoshi.Owing to look it is a single system, the simplification of visit and the effect of sharing that can be provided by individual system are provided distributed system 400, and need not to abandon the dirigibility and the personalized response of personal computer or website.Distributed system 400 can contain several thousand devices by user operation, and these users disperse geographically, but all accept commission, the agreement of management and policy.
In typical distribution formula system, the various service logic groupings that provided by one or more devices are arranged, it is a Djinn that each logic groups all is called." service " refers to a kind of resource, data or function, and they can be visited by user, program, device or another kind of service, and can be carried out relevant storage, relevant communication by computing, or relates to another user visit is provided.The examples of services that provides as the part of Djinn comprises device, as: printer, display and disk; Software is as the program utility routine; Information is as database and file; And the user of system.
The user can add relevant Djinn with device.When adding Djinn, user or device add zero or a plurality of services in Djinn, and can limit according to confidentiality, visit a kind of service in the service that it contains.So device is unified into relevant Djinn with the user, to share visit to its service.The service of Djinn it seems from the program aspect, just as if the object of Java programmed environment, and the software component that it can comprise other object, write with the distinct program language, or hardware unit.A kind of service has an interface, and it has defined and can carry out requested operation to this service, and the type decided of service form the interface of this service.
Distributed system 400 is by computing machine 402, computing machine 404 and install 406 and form, and is interconnected by network 408.Device 406 can be any amount of device, as printer, facsimile recorder, memory storage, computing machine or other device.Network 408 can be LAN (Local Area Network), wide area network or internet.Have only two computing machines and a device to comprise distributed system 400 although only draw among the figure, those of skill in the art can understand, and distributed system can comprise other computing machine or device.
What Fig. 5 described is more detailed computing machine 402, shows several software components of distributed system 400.Those of skill in the art can understand, and computing machine 404 can be similar with the configuration of device 406 here.Computing machine 402 comprises storer 502, auxilary unit 504, CPU (central processing unit) (CPU) 506, input media 508, and a display 510.Storer 502 comprises inquiry service 512, finds server 514 and a java runtime system 516.Java runtime system 516 comprises JavaRMI system 518 and JVM520.Auxilary unit 504 comprises Java space 522.
As mentioned above, distributed system 400 is based on the java applet environment, and what therefore use is java runtime system 516.Java runtime system 516 comprises Java API storehouse, makes that the program run at java runtime system top can comprise the window-functions and the network capabilities of master operating system to visit various systemic-functions with the mode of platform independence.Because in all operations system that runtime system is transplanted, Java API storehouse provides a single public API, program in the top operation of java runtime system is moved in the independent platform mode, and no matter be the hardware configuration of which type of operating system or main platform.The java runtime system 516 that provides is as the part of Java SDK (Software Development Kit), and this SDK (Software Development Kit) can be from Sun Microsystems, and (Mountain View CA) obtains Inc.
It is independent that JVM520 is convenient to platform.JVM520 as if an abstract machine device receive instruction from program with the form of bytecode, and by bytecode is dynamically converted to the form that is used to carry out such as object sign indicating number and carry out explain these bytecodes.RMI518 can be convenient to carry out remote method invocation (RMI) carrying out to call the method for the object on another computing machine or the device on a computing machine or the device by making object.RMI that provides and JVM are also as the part of Java SDK (Software Development Kit).
Inquiry service 512 has defined the service that is used for specific Djinn.That is, more than one Djinn can be arranged, therefore, in the distributed system 400 more than one inquiry service can be arranged.Inquiry service 512 contains each service that an object is used for Djinn, and each object contains the various methods that corresponding service is conducted interviews be convenient to.U.S. Patent application is seen in the description of inquiry service 512: " be convenient to method and system that inquiry service is conducted interviews ", this patented claim is for reference in this citation.
Find that server 514 detects during being called startup and connecting (or discovery), when new device is joined in the distributed system 400, and when so new device is detected, find that server is sent to new equipment with quote (reference) of inquiry service 512, thereby new equipment can be registered its service to inquiry service, and becomes the member of Djinn.After the registration, new equipment becomes the member of Djinn, and therefore can access queries visit all services that contained in 512.The process that starts and connect is seen U.S. Patent application: " providing downloadable code to be used for the apparatus and method that the device with distributed system communicates ", this patented claim is for reference in this citation.
Java space 522 is object resources banks that used by the program in the distributed system 400.Program adopts Java space 522 continuously object to be stored, and makes them can visit in the distributed system 400 other device.Java sees in the space U.S. Patent application 08/971,529: " adopting the Database Systems of polymorphic inlet and inlet coupling ", this application has transferred common assignee, and its applying date is on November 17th, 1997, and is for reference in this citation.Those of skill in the art will be understood that typical distribution formula system 400 can comprise many inquiry services, find server and Java space.
Data stream in the distributed processing system(DPS)
Fig. 6 connects machine 601 and 606 as the computing machine carried out or virtual machine or with reference to the block scheme of the OO network 600 of Fig. 3,4 and 5 machines of describing on one or more computing machines.Network 600 sends the agency, and some agency can be an intelligent agent.Intelligent agent comprises to be carried out and a certain code that calls relevant processing.For example, the cache operations quoted after can carrying out read-only data being used for of intelligent agent.When calling these data, intelligent agent can obtain this data in this locality, and provides it to the user, and need not to do other data call, and this can be transparent for the user.The such read-only data of one example is the specific set-up time.For example, when calling for the first time in the set-up time, intelligent agent carries out speed buffering in this locality to this value, and when calling later on during the set-up time, intelligent agent is retrieved this value in this locality.
Another routine intelligent agent is handled to comprise and is adopted the serialization object, data is sent to the database of canned data.In this example, call intelligent agent, it receives an object, the object serialization on the client machine is become a byte arrays, and this byte arrays is sent to a server.Server is only stored serialized object, and avoiding asking download code, and it provides a key that is used for this object to client computer.When client computer was waited for retrieve data, intelligent agent sent to server with this key, receive according to the serialization object, and this object of reconstruct, and it is offered the user.
Adopting another example of intelligent agent is that record is handled, called in debugging, and the performance of surveillance.Another example comprises the employing intelligent agent and carries out the local data checking, sees to transfer commonly-assigned us and identical U.S. Patent application of the applying date: " information in the distributed system being carried out the apparatus and method of dynamic authentication ", and for reference in this citation.Carry out and call relevant processing other uses to intelligent agent can also be arranged.
Network 600 comprises the client computer 601 that contains RMI602 and correlative code 603.Server 606 comprises RMI607 and remote object 608.During operation, RMI602 sends one to RMI607 and calls or ask 609, asks specific object stub.RMI607 returns a response 610, comprises the request counterfoil 605 that embeds in the intelligent agent 604.Response can be used as data stream and is transmitted.The data stream of using in the java applet language comprises the input and output data stream, be that people know in the art, its explanation is for reference in this citation, title is " Java instructs: the Object oriented programming of internet ", (pp 325-53, the author is Mary Campione and KathyWalrath, Addison-Wesley, 1956).
Response can comprise information, thereby client computer 601 can re-construct the object stub in the intelligent agent 604.When a group objects type is defined, and on client computer 601 and 606 be identical in, the state that receiver requires object usually with and the description of type, this is because the code of object has appeared on all net machines.In addition, machine 606 adopts RMI607, so that greater flexibility to be provided, makes code can move with the state and the type of information or object where necessary.In addition, transmitter can comprise the sign of the type of an object that is sent in object, constitute this object state data and with the position of the entered network of the URL form of the code relevant with object.URL is that people know in the art, and its explanation is for reference in this citation, sees " Java instructs: the OO program that is used for the internet " (Addison-Weslsy, 1996, the 494-507 pages or leaves) of Mary Campione and Kathy Walrath.
When client computer 601 receptions respond 610, the type of the object that its identification transmits.Machine 601 contains its oneself RMI602 and code 603 and is used for processing to object, and it can use the code of object type, status information and object to produce object stub 605.If the code that is used for this object is not on machine 601 or can not provide on machine and object stub does not comprise this code, then RMI602 can adopt the URL from object, determines code, and the replication form of this code is sent to client computer 601.Because code is bytecode and is transplantable therefore that client computer 601 can be with this code loading in RMI602, the reconstruct object.Therefore, the object that client computer 601 can the reconstruct adequate types was not even this object appeared on the machine in the past.
When producing object stub 605, RMI602 needn't know that this counterfoil oneself is an intelligent agent 604.Intelligent agent 604 can be in response 610 front and back, and 601 places handle in client computer, and all processing can be provided, and call 609 without recourse to the object of acting on behalf of representative.So intelligent agent 604 can call or asks 611 to carry out all processing when calling intelligent agent 604 in this locality in client computer 601.These agencies can download with identical method, see U.S. Patent application 08/950,756, and its applying date is on October 15th, 1997, and title is " the delay reconstruct and the remote loading of object in the distributed system ", and is for reference in this citation.
The transmission of intelligent agent
Fig. 7 is the process flow diagram of process 700, is used for downloading and using in distributed network shown in Figure 6 intelligent agent.Client computer sends one and calls and to the request (step 701) of special object, and server receives and calls (step 702).Therefore, server returns the intelligent agent (step 703) of the counterfoil with embedding, and should act on behalf of the statement as requested object.After receiving intelligent agent, client computer is called a kind of method (step 704) to it.According to the code in the intelligent agent, the client computer that contains intelligent agent judges whether to handle (step 705).If desired, then client computer is handled (step 706) with intelligent agent in this locality.
Subsequently, client computer judges whether the method that intelligent agent is called can be in this locality serviced (step 707).If then client computer is carried out this locality processing (step 711) to calling.If not, client calls remote object (step 708).Carry out teleprocessing (step 709), and the result of teleprocessing is turned back to client computer (step 710).
Client computer judges whether according to the code in the intelligent agent need be as the aftertreatment (step 712) of calling the result.If then carry out aftertreatment (step 713) with the code in the intelligent agent.Subsequently, intelligent agent according in the step 704 to the calling of intelligent agent, return method calls result's (step 714).
Fig. 8 is the process flow diagram that changes the treatment progress 800 of the performed processing of intelligent agent.When calling processing (step 801), client computer judges whether to need to upgrade processing (step 802).These information can be included in the intelligent agent self, make the transaction code when can judge or to need to be updated under what specific situation.Upgrade processing if desired, then download the code that is used for this processing, and upgrade intelligent agent, handle (step 803) in client processes.Subsequently, at the client computer place, intelligent agent is handled (step 804) according to upgrading sign indicating number.
The machine of execution step shown in Fig. 7 and 8 can comprise the computer processor of execution function shown in Fig. 3,4,5 and 6.They can comprise module or program, and these modules and program make processor carry out above-mentioned functions.The computer program that they also comprise in the storer being stored.Computer program can comprise computer-readable medium or have the medium that are embedded in computer readable code wherein, makes machine can carry out above-mentioned functions.Computer-readable medium can comprise the computer data signal that is embedded in the carrier wave and represents instruction sequence, instruction sequence makes processor carry out addressing to the peripherals that is in the specific address place closely by carrying out the method for describing in this instructions when being carried out by computing machine.This medium can also comprise a kind of data structure, is used for carrying out the method for describing in this instructions.
The computer system of the java applet language of JVM technical manual has been described according to system embodiment of the present invention although above consult and carry out, and the present invention goes for handling other computer systems of the code that is obtained by the distinct program language equally.Specifically, the present invention can implement with OO and not OO programming system.In addition, although describedly work in the java applet environment according to embodiments of the invention, those of skill in the art will be understood that the present invention also can be suitable for other program environment.
Although description of the invention, be apparent, however, to one skilled in the art that the application also can have various change forms at exemplary embodiments.For example, under the situation that does not depart from scope of the present invention, can adopt different marks or definition to be used for intelligent agent.Scope of the present invention is only limited by claims.

Claims (18)

1. the method for the object in the distributed system be made up of a plurality of machines of a reception is characterized in that it comprises:
Transmission is to the request of special object; And
Reception is to the response of described request, and described response comprises the code of the statement that is used for constructing the described request object, and described structure produces an object with described statement, and being used for handling for request object is calling of local described special object.
2. the method for claim 1 is characterized in that, it also comprises:
Adopt described code to construct described statement.
3. method as claimed in claim 2 is characterized in that, described employing comprises:
Download code is to upgrade described processing.
4. the method for the object in the distributed system be made up of a plurality of machines of a transmission is characterized in that it comprises:
In the request of machine place reception to special object; And
Transmission is to the response of described request, described response comprises the first code of the statement that is used for constructing described object, and comprise the indication (indication) of the second code that is used to handle, thereby described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
5. the device of the object in the distributed system be made up of a plurality of machines of a reception is characterized in that it comprises:
Configuration is in order to send the module to the request of special object; And
Configuration is in order to receiving the module to the response of described request, and described response comprises the code of the statement of the object that is used for constructing described request, and described structure is with object of described statement generation, is used for handling to this locality calling in the described special object of request object.
6. device as claimed in claim 5 is characterized in that it also comprises:
Configuration is constructed the module of described statement in order to adopt described code.
7. device as claimed in claim 6 is characterized in that, adopts module to comprise:
The module of described processing is upgraded in configuration in order to download code.
8. the device of the object in the distributed system be made up of a plurality of machines of a transmission is characterized in that it comprises:
In the module of machine place reception to the request of special object; And
Configuration is in order to send the module to the response of described request, described response comprises the first code in order to the statement of constructing described object, and comprise the indication of the second code that is used to handle, thereby described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
9. the system of the object in the distributed system be made up of a plurality of machines of a transmission is characterized in that it comprises:
First machine;
Second machine;
The network that described first machine is linked to each other with described second machine; And
Receive the device of object, described device comprises:
Configuration is in order to send the module to the request of special object; And
Configuration receives the module to the response of described request, and described response comprises the code of the statement of the object that is used for constructing described request, and described structure is with object of described statement generation, handles this locality calling in the described special object of request object.
10. system as claimed in claim 9 is characterized in that it also comprises:
Configuration is constructed the module of described statement in order to adopt described code.
11. system as claimed in claim 10 is characterized in that, described use module comprises:
Configuration in order to download code to upgrade the module of described processing.
12. the system of the object in the distributed system that a transmission is made up of a plurality of machines is characterized in that it comprises:
First machine;
Second machine;
The network that described first machine is linked to each other with described second machine; And
Send the device of object, described device comprises:
Configuration is in order to receive the module to the request of special object; And
Configuration sends the module to the response of described request, described response comprises the first code of the statement that is used for constructing described object, and comprise the indication of a second code that is used to handle, thereby described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
13. a computer program, it comprises:
Computer-readable medium, it contains the instruction that the control computer system carries out a kind of method, and described method comprises:
Transmission is to the request of a special object; And
Reception is to the response of described request, and described response comprises the code of the statement of the object that is used for constructing described request, and described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
14. computer program as claimed in claim 13 is characterized in that, it also comprises:
Use described code to construct described statement.
15. computer program as claimed in claim 14 is characterized in that, described use comprises
Download code is to upgrade described processing.
16. a computer program is characterized in that it comprises:
Computer-readable medium, it contains the instruction that the control computer system carries out a kind of method, and described method comprises:
In the request of machine place reception to a special object; And
Transmission is to the response of described request, described response comprises the first code of the statement that is used for constructing described object, and comprise the indication of the second code that is used to handle, thereby described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
17. one kind manufactures a product, the statement of storing in its designated computer readable storage medium storing program for executing, and can between the machine of distributed system, carry out electric transmission, it is characterized in that described manufacturing a product comprises:
According to a request, be sent to the object of second machine from first machine, described object comprises the indication of code of the statement of the object that is used for constructing described request, and described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
18. the device of the object in the distributed system that a reception is made up of a plurality of machines is characterized in that it comprises:
Transmission is to the device of the request of special object; And
Reception is to the device of the response of described request, and described request comprises the code of the statement of the object that is used for constructing described request, and described structure produces an object with described statement, is used for handling to this locality calling in the described special object of request object.
CN99805383A 1998-02-26 1999-02-16 Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system Pending CN1298508A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US09/044,930 US6393497B1 (en) 1998-03-20 1998-03-20 Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
US60/076,048 1998-03-20
US09/044,930 1998-03-20

Publications (1)

Publication Number Publication Date
CN1298508A true CN1298508A (en) 2001-06-06

Family

ID=26722169

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99805383A Pending CN1298508A (en) 1998-02-26 1999-02-16 Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system

Country Status (6)

Country Link
EP (1) EP1058880A1 (en)
JP (1) JP2002505463A (en)
KR (1) KR20010041226A (en)
CN (1) CN1298508A (en)
AU (1) AU2680299A (en)
WO (1) WO1999044123A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100356329C (en) * 2003-12-30 2007-12-19 国际商业机器公司 Method and system for scheduling invocation of web service in data processing basic structure
CN100426808C (en) * 2002-08-21 2008-10-15 中兴通讯股份有限公司 Method for implementing interplate object communication

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2810755B1 (en) * 2000-06-27 2003-01-17 Cit Alcatel JAVA INFORMATION MANAGEMENT PROCESS
DE60033164T2 (en) 2000-12-22 2007-10-25 Sun Microsystems, Inc., Palo Alto Server-side execution of application modules in a client / server system
US6901595B2 (en) 2001-09-29 2005-05-31 Siebel Systems, Inc. Method, apparatus, and system for implementing a framework to support a web-based application
SE525654C2 (en) 2002-12-19 2005-03-29 Abb Ab Procedures and systems for providing access to distributed objects
WO2006040991A1 (en) * 2004-10-08 2006-04-20 Sharp Kabushiki Kaisha Terminal device, server device, and web service providing system
EP2625655A4 (en) 2010-10-06 2014-04-16 Planet Data Solutions System and method for indexing electronic discovery data

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100426808C (en) * 2002-08-21 2008-10-15 中兴通讯股份有限公司 Method for implementing interplate object communication
CN100356329C (en) * 2003-12-30 2007-12-19 国际商业机器公司 Method and system for scheduling invocation of web service in data processing basic structure

Also Published As

Publication number Publication date
JP2002505463A (en) 2002-02-19
KR20010041226A (en) 2001-05-15
WO1999044123A1 (en) 1999-09-02
AU2680299A (en) 1999-09-15
EP1058880A1 (en) 2000-12-13

Similar Documents

Publication Publication Date Title
CN1298513A (en) Methods and apparatus for remote mothod invocation
CN1298505A (en) Apparatus and method for providing downloadable code for use in communicating with a device in a distributed system
US6393497B1 (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
CN1292117A (en) Method and apparatus for transporting behavior in event-based distributed system
CN1142491C (en) Frame system and method for testing server performance
JP4729172B2 (en) Method and apparatus for performing transactions in a stateless web environment that supports a declarative paradigm
JP3853592B2 (en) Distributed web application server
CN1145896C (en) Apparatus and method for processing servlets
US6708171B1 (en) Network proxy
US20030023613A1 (en) Apparatus and method for dynamically verifying information in a distributed system
CN101065729A (en) A method for ensuring the quality of a service in a distributed computing environment
CN1292116A (en) Per-method designation of security requirements
CN1514653A (en) Information route method and system based on secret strategy
CN1298514A (en) Method and system for deterministic hashes to identify remote method
CN1298503A (en) Dynamic lookup service in a distributed system
CN1494017A (en) Holder selector used in global network service structure and its selection method
CN100352198C (en) Method and system for processing a request for a plurality of web services
CN1298508A (en) Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system
CN101035093A (en) Method and system for processing message
CN1975726A (en) Data center server, data service system and data query method
CN1292115A (en) Apparatus and method for dynamically verifying information in distributed system
CN1298506A (en) Method and system for facilitating access to a lookup service
CN1151635C (en) General dispatching system based on content adaptive for colony network service
EP1057113B1 (en) Deferred reconstruction of objects and remote loading for event notification in a distributed system
CN1298507A (en) Method and apparatus for determining status of remote objects in a distributed system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication