CN1298502A - Method and apparatus for the suspension and continuation of remote processes - Google Patents

Method and apparatus for the suspension and continuation of remote processes Download PDF

Info

Publication number
CN1298502A
CN1298502A CN99805303A CN99805303A CN1298502A CN 1298502 A CN1298502 A CN 1298502A CN 99805303 A CN99805303 A CN 99805303A CN 99805303 A CN99805303 A CN 99805303A CN 1298502 A CN1298502 A CN 1298502A
Authority
CN
China
Prior art keywords
remote method
resource
remote
server system
client
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
CN99805303A
Other languages
Chinese (zh)
Inventor
K·C·R·C·阿诺德
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,917 external-priority patent/US6237024B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1298502A publication Critical patent/CN1298502A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/468Specific access rights for resources, e.g. using capability register
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • 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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A method and apparatus is provided for enabling blocked remote methods to relinquish threads and other resources to other methods on a server system. In a distributed computing environment, remote methods are allocated numerous network resources but are blocked while they wait for operations, such as a write operation from another process, to complete. When enough remote methods are blocked, threads and other network resources may run out. Client systems requesting server services may experience slower response times. This method and system provides a technique for remote methods to relinquish network resources, such as threads, for other methods to use while the methods are blocked. Once the conditions causing the remote methods to block is resolved, the remote methods continue execution. This technique enables high volume client-server transaction systems to utilize threads and other resources in a distributed computing environment more efficiently.

Description

The hang-up of remote process and the method and apparatus of continuation
Technical field
The present invention relates to distributed computing system, relate in particular to the method and apparatus of the hang-up and the continuation of remote process.
Related application
Rely on the U.S. Patent application of the following stated, introduce by reference in this application.
60/076, No. 048 interim U.S. Patent application of " distributed computing system " by name submitted on February 26th, 1998.
09/044, No. 923 U.S. Patent application of " method and system of leasing storage " by name submitted on the same day, its lawyer's number of putting on record is 06502.0011-01000.
09/044, No. 838 U.S. Patent application of " the renting method, equipment and the product of the certificate of authority in the distributed system " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0011-02000.
09/044, No. 834 U.S. Patent application of " the renting method, equipment and the product of the group member in the distributed system " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0011-03000.
09/044, No. 916 U.S. Patent application of " the renting fault detect " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0011-04000.
09/044, No. 933 U.S. Patent application of " in the method based on the transmission behavior in the system of incident " by name submitted on the same day, its lawyer's number of putting on record is 06502.0054-00000.
09/044, No. 919 U.S. Patent application of " the delay reconstruct of the object of the event notice in the distributed system and long-range installation " by name submitted on the same day, its lawyer's number of putting on record is 06502.00162-01000.
09/044, No. 938 U.S. Patent application of " method and apparatus of remote mothod invocation " by name submitted on the same day, its lawyer's number of putting on record is 06502.0102-00000.
09/045, No. 652 U.S. Patent application of " the determinacy ashing technique and the system of identify remote method " by name submitted on the same day, its lawyer's number of putting on record is 06502.0103-00000.
09/044, No. 790 U.S. Patent application of " determining the method and apparatus of the state of the remote object in the distributed system " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0104-00000.
09/044, No. 930 U.S. Patent application of " being used for carrying out the downloadable smart proxies of processing of the remote procedure call of relevant distributed system " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0105-00000.
09/044, No. 835 U.S. Patent application of " multiple entry in the database and the method and system of multi-template matching " by name submitted on the same day, its lawyer's number of putting on record is 06502.0107-00000.
09/044, No. 839 U.S. Patent application of " method and system that revise in the original place in the database " by name submitted on the same day, its lawyer's number of putting on record is 06502.0108.
09/044, No. 945 U.S. Patent application of " method and system of the type safety attributes match in the database " by name submitted on the same day, its lawyer's number of putting on record is 06502.0109-00000.
09/044, No. 931 U.S. Patent application of " service of dynamically searching in the distributed system " by name submitted on the same day, its lawyer's number of putting on record is 06502.0110-00000.
09/044, No. 939 U.S. Patent application of " but when being used for being provided at a device with distributed system and communicating the equipment and the method for employed download code " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0112-00000.
09/044, No. 826 U.S. Patent application of " be convenient to visit and search service method and system " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0113-00000.
09/044, No. 932 U.S. Patent application of " being used for dynamically checking the equipment and the method for the information of distributed system " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0114-00000.
09/044, No. 840 U.S. Patent application of " at the method and apparatus of the enterprising action attitude of network Distributed Calculation " by name submitted on the same day, its lawyer's number of putting on record is 06502.0115-00000.
09/044, No. 936 U.S. Patent application of " the mutual design tool of the storage space that persistence is shared " by name submitted on the same day, its lawyer's number of putting on record is 06502.0116-00000.
09/044, No. 934 U.S. Patent application of " based on the control of polymorphic token " by name submitted on the same day, its lawyer's number of putting on record is 06502.0117-00000.
09/044, No. 915 U.S. Patent application of " based on the access control of storehouse " by name submitted on the same day, its lawyer's number of putting on record is 06502.0118-00000.
09/044, No. 944 U.S. Patent application of " based on the demand for security of storehouse " by name submitted on the same day, its lawyer's number of putting on record is 06502.0119-00000.
09/044, No. 837 U.S. Patent application of " the specifying by method of demand for security " by name of submitting on the same day, its lawyer's number of putting on record is 06502.0120-00000.
Background technology
Typical distribution formula computing system makes the many different client on the network can obtain the service and the computing power of many servers.Usually, client computer use remote procedure call (RPC) system visits the processing power on the server machine.Request on the RPC system handles remote machine and a result who wants return the client of the request of sending.The network that is used for sending request and returns the result can be Local Area Network, wide area network (WAN), and it also can comprise the Internet.Senior Distributed Calculation on the Internet uses this client-server configuration that ecommerce (e-commercial affairs), telecommuting and interactive entertainment service worldwide are provided.
Along with the growth of using and popularizing of distributed computing fabric, on server system, can obtain to finish client and send requested resource and become more and more important.Each request from the client generally impels server processes allocated resource, these resources to comprise one or more threads (thread) of handling request usefulness.Thread (being called light-duty process sometimes) is the in-process instruction sequence of separating with independent control stream.Thread must be opened up from system and finish the required resource of specific request.If can obtain such as resources such as storer and data, a plurality of threads of complete a plurality of tasks abreast then.
The process that produces thread can be used thread scheduler, to coordinate the parallel execution of thread according to the correlativity between priority, executing state (that is sleep,, survival (alive), inactive, operation) and each thread of thread.The computing power of the distribution processor between many threads of the thread scheduler on the single processor system is with the illusion that provides these threads in fact running parallel.There are many different dispatching techniques to use, comprise that First Come First Served, line of shortest length journey are preferential, priority scheduling and such as the preemption scheduling technology such as (round-robin) of being bankers by turns.Can make up these technology on demand to form the mixed scheduling technology for specific enforcement.On multicomputer system, scheduler interrelates different threads and different processor, with execution thread abreast and utilize additional computing power.
Unfortunately, if can not obtain these resources immediately, thread can not continue to carry out and may be prevented from further processing.These threads that are prevented from carrying out take such as storer and server resource such as data relevant with thread itself and control structure.Finally, server may use up the thread of assigning the Incoming client requests.The Incoming client requests may be rejected, and in fact server will be removed from distributed computing environment.This congestion situations also may reduce the ability of server service in existing request because of the expense relevant with the service of refusing input is called.
Current distributed computing system is not designed to solve this thread dispatch problem.These systems do not discharge thread and relevant resource when the remote server process gets clogged and waits for a resource or particular event.As a result, the intensive distributed computing environment of issued transaction may suffer aforesaid congestion situations.For example, suppose that server processes receive a plurality of requests of a plurality of customer requirement file in download on the Internet.Server processes receive a plurality of threads from server OS, ask to handle these abreast, but the file of being asked are locked and can not obtain by other process.Further processing and pending file that conventional system will block each thread are disengaged locking.Even other process can utilize thread resources to handle other task, but the thread on the server will be kept the free time.When the number of threads on the server system exhausts, server processes will refuse in other client.Finally, server system will be difficult to handle general task.
On many distributed computing systems, can not assign thread and other resource and may bring negative effect total processing handling capacity.Even if can not assign thread and other resource effectively on server system, obtainable high speed bandwidth will become and can not be used on the distributed computing system.
Based on the above restriction of being found in the conventional system, want to improve the assignment of employed thread and other resource in the distributed computing environment.
Summary of the invention
With implement here and broadly described the present invention consistent, a kind of enabling hang up to be handled and the method and apparatus that discharges the remote method of resource comprises the request of reception from the remote method invocation (RMI) on the client server system.Assign from the system resource of server system for this remote method and enable this method.A kind of resource of system-level type is a thread.This method determines whether to obtain to handle at present the required any generic resource of this remote method.General resource can be the dependable any resource of storer, disk storage space, data or system resource.When the common resources of remote method dependence can not obtain, remote method is suspended further and handle, and free system resources is given server system.
Another kind of method according to the invention makes the remote method that before had been suspended continue the processing on server system, and client applications is born results.The method comprises the indication that receives the continuation incident relevant with the remote method that takes place to hang up.System resource and generic resource branch are tasked remote method, continue to handle this remote method with preparation.The assigned resources of this remote method utilization combination continues to carry out and bear results.Use such as remote mothod invocation remote procedure call (RPC) systems such as (RMI) sends to client applications on the client to these results from server system.
Summary of drawings
The accompanying drawing that is introduced into and constitutes this instructions part illustrates one embodiment of the present of invention, and it and following description one are used from explanation advantage of the present invention and principle.
In the drawings:
Fig. 1 illustrates the network that is applicable to method and system according to the invention;
Fig. 2 is the block scheme that is applicable to the computer system of method and system according to the invention;
Fig. 3 is the block scheme that is applicable to the client-server network environment of method and system according to the invention;
Fig. 4 be method and system according to the invention remote method invocation (RMI) hang-up and continue to handle the block scheme of employed subsystem;
Fig. 5 is for hanging up and continue the process flow diagram of the step that the remote method invocation (RMI) of method and system according to the invention carries out;
Fig. 6 is the process flow diagram of the step of carrying out for the remote method invocation (RMI) of hanging up method and system according to the invention; And
Fig. 7 is the process flow diagram of the step of carrying out for the remote method invocation (RMI) that continues method and system according to the invention.
Better embodiment of the present invention
Introduce
Now will be at length the realization of the present invention shown in reference to the accompanying drawings.May the time, in accompanying drawing and following description, use identical label, to indicate same or similar part.
Can preside over client or server capability according to the assumed calculation machine system of system that the present invention is designed.Suppose that the effect of each computing machine in client-server system is relevant with the particular invocation of being carried out between client and server.For example, client process asks to be positioned at the service that server processes produced on the remote machine usually.On the contrary, server processes are positioned at and receive and serve on the machine of client requests.Therefore, same computer system can play client's effect in when service request, and plays the effect of server when the request of finishing a client.
System according to the invention has solved the shortcoming of prior art and the method and apparatus that is used to hang up and continue remote process is provided.In the past, remote procedure call (RPC) system gets clogged and the incident of waiting for takes place or can not make remote process discharge resource when discharging a resource at remote process.This technology is remained valid being connected between client process and the server processes, but makes such as valuable source free time such as thread, storer and supplementary storages.On the contrary, allow the remote server process to stop according to designed system of the present invention and further handle, do not cancel being connected between client and the server system simultaneously to discharge thread and other resource.Even this new technology makes other process also can utilize server resource when a remote process gets clogged.Specifically, this has prevented the visit of remote server process refusal to the client.As a result, embodiments of the invention more effectively use thread and other resource, and this has increased effective throughput of distributed computing technology system.
In addition, system according to the invention is also advantageous in that, the client's compatibility on they and the existing customer-server system.This is even more important in such as heterogeneous network computing environment such as the Internets.Because server has been carried out change more effectively to assign and to discharge resource, and the present invention can not influence the design and the operation of client.Correspondingly, the client does not need change, and can carry out work with the system of current design.
The distributed system general introduction
Method and system according to the invention is operated in having the various parts distributed system of (comprising hardware and software) (" distributed system of example ").The distributed system of example (1) allows user share service and resource on the network of many devices of system; (2) provide instrument and the programming mode that allows the sane and safe distributed system of exploitation to the programmer; And the task of (3) streamlining management distributed system.In order to realize these targets, the distributed system of example is utilized Java TMProgrammed environment, thus allow with seamless mode transfer code and data between each device.Correspondingly, the distributed system of example is in the top layer of Java programmed environment, and develops the characteristic of this environment, comprises security that it provides and the powerful type definition that it provided.At Jaworski, among Java 1.1 Developer ' the s Guide.Sams.net (1997) the Java programmed environment has been described more clearly, introduce by reference here.
In the distributed system of example, different computing machines and device be combined into concerning the user, show as single system.By showing as individual system, the distributed system of example provides the available visit of individual system to simplify and has shared ability, and does not abandon the dirigibility and the individualized response of personal computer or workstation.The distributed system of example can comprise the operated thousands of devices by the user, and these users disperse geographically, but they have arranged key concepts such as trust, management and policy.
The various logic grouping of the service that one or more device provides is arranged in the distributed system of example, and known each such logic groups is Djinn." service " refer to can by user, program, device or other service be visited and can be with calculate, storage is relevant, with communicate by letter be correlated with or with resource, data or the function that another user's visit is correlated with is provided.Example as the service that a part provided of Djinn comprises such as devices such as printer, display and disks; Such as softwares such as application program or utility routines; Such as information such as database and files; And the user of system.
User and device all can add Djinn.When adding a Djinn, user or device are added to Djinn and addressable (experience security constraint) any service that it comprised to zero or a plurality of services.Thereby device and user are combined into a Djinn, to share the visit to its service.Show as the object of Java programmed environment on the servive programming of Djinn, software component or hardware unit that this Java programmed environment can comprise other object, write with different programming languages.Service has the interface that definition can be asked the operation of this service, and the type of this service has determined to constitute the interface of this service.
Fig. 1 illustrates the distributed system 100 of example, and it comprises computing machine 102, computing machine 104 and the device 106 that interconnects by network 108.Device 106 can be any in many devices, such as printer, facsimile recorder, memory storage, computing machine or other device.Network 108 can be LAN (Local Area Network), wide area network or the Internet.Only comprise two computing machines and a device though the distributed system 100 of example is shown, those skilled in the art should be understood that the distributed system 100 of example can comprise additional computing machine or device.
Fig. 2 illustrates in greater detail computing machine 102, with many software components of distributed system 100 that example is shown.Those skilled in the art will understand, and can constitute computing machine 104 similarly or install 106.Computing machine 102 comprises storer 202, auxilary unit 204, CPU (central processing unit) (CPU) 206, input media 208 and video display 210.Storer 202 comprises the service of searching 212, finds server 214 and Jaya TMWorking time, system 216.System 216 comprises Java between java runtime TM(RMI) 218 of remote mothod invocation system and Java TMVirtual machine 220.Auxilary unit 204 comprises Java TMSpace 222.
As mentioned above, the distributed system 100 of example is utilized system 216 between java runtime then based on the Java programmed environment.System 216 comprises Java between java runtime TMAPI, the permission program allows the top of time system to move at Java, thus the mode that can be independent of platform is visited this systemic-function, comprises the form ability and the networked ability of master operating system.Because Java API provides single public API for striding all operations system of having transplanted system 216 between java runtime, so the program of system top operation is moved in the mode that is independent of platform between java runtime, and no matter the operating system or the hardware configuration of main platform.System 216 is as the Java that can obtain from the Sun Microsystems of Californai Mountain View between java runtime TMThe part of SDK (Software Development Kit) and providing.
Java Virtual Machine 220 also helps platform independence.Java Virtual Machine 220 plays the effect that is similar to the abstract machine device, and its receives the instruction in the program of bytecode form, and explains them by these bytecodes dynamically being converted to the form that is used to carry out such as object sign indicating number etc., and carries out them.RMI 218 enables the method for the object on another computing machine or the device by permission at the object of carrying out on a computing machine or the device, thereby helps remote mothod invocation.RMI and the Java Virtual Machine part as the Java SDK (Software Development Kit) also is provided.
The service of searching 212 has defined the obtainable service of specific Djinn.That is, in the distributed system 100 of example, can exist a more than Djinn thereby more than one to search service.The service of searching 212 comprises an object of each service in this Djinn, and each object includes and helps the whole bag of tricks that corresponding system is conducted interviews.In 09/044, No. 826 unsettled U.S. Patent application of " helping method and system " by name, described service of searching 212 and service thereof in more detail, here introduced by reference to the visit of the service of searching.
Discovery service 214 detects in being called guiding and adding or discovery process and when a new device is added on the distributed system 100 of example, and when detecting this new device, find that server sends new device to of the service of searching 212 is quoted (reference), thereby this new equipment can be searched its service of service registration to this, and can become a member of Djinn for this reason.Behind record, new equipment becomes the member of Djinn, result, its addressable all service that are included in the service of searching 212.The process of having described guiding in more detail and having added in 09/044, No. 939 unsettled U.S. Patent application of by name equipment and the method for employed download code when communicating by letter with the device in the distributed system " but be provided at " is here by with reference to introducing.
Java space 222 is to be used for the object resources bank of storage object by the programs in the distributed system 100 of example.Program is used Java space 222 to come permanently storage object and is made that they can be by other device visit in the distributed system of example.08/971 of " utilizing the Database Systems of polymorphic inlet and inlet coupling " by name of submitting on November 17th, 1997, in No. 529 unsettled U.S. Patent applications Java space has been described in more detail, this application has transferred common assignee, here introduces by reference.Those skilled in the art should be understood that the distributed system 100 of example can comprise many services of searching, find service and Java space.
Though described the system and method for operating according to the invention in the distributed system of example and Java programmed environment, those skilled in the art should be understood that the present invention can implement in other system and other programmed environment.In addition, though aspect of the present invention is described as being stored in the storer, those skilled in the art should be understood that also and can be stored in these aspects on the computer-readable media of other type or therefrom read, such as auxilary unit, be similar to hard disk, floppy disk or CD-ROM; Carrier wave from the Internet; Or the RAM of other form or ROM.Sun, Sun Microsystems, SunLogo, Java and be that SunMicrosystems incorporated company is in the U.S. and other national trade mark or registered trademark based on the trade mark of Java.
The client-server system of example
Fig. 3 illustrates the client-server system of example according to the invention and the distributed system 100 of example.Correspondingly, client-server system 300 by client computer 302 (also being called client 302), server computer 312 (also being called server 312) and be coupling in client 302 and server 312 between network 310 constitute.Can use Java TMObject-oriented language and conduct realize this particular customer-server system to the reinforcement of RMI 218.Yet those skilled in the art should be understood that and can use common remote procedure call (RPC) system and other object-oriented and non-object-oriented language to realize similar system according to the invention.
Client 302 comprise have remote method invocation (RMI) 306, long-range program (stub) 308 and the client applications 304 of remote method working time 309 accepted.Client applications 304 software that normally user developed and comprise the remote method invocation (RMI) 306 that is used to the process on the server 312 of enabling.For example, client applications 304 can be with Java TMThe Java that programming language is write TMApplication program.Use realizes remote method invocation (RMI) such as RPC mechanisms such as RMI.
Data and parameter that remote method is accepted 308 pairs of remote method invocation (RMI) 306 of program to be provided are organized into groups (marshal).Go the predetermined format of marshalling (unmarshall) to come array data and parameter with the remote method framework (skeleton) 315 on can serviced device 312.On server 312 during the process of relevant remote method invocation (RMI) 306, follow the tracks of these states of a process remote method working times 309.Also determine that client applications 304 is normally or is not connected with communication link between the server 312 remote method working times 309.Remote method working time 309 can be to the state of server 312 inquiry links.If reasonably do not respond or server 312 indication faults in the time cycle, then remote method 309 notice client applications working time 304 remote method invocation (RMI) stop.
Network 310 provides communication link between client 302 and server 312.Network 310 can be the in-house network of the Internet or company or campus-wide.Network 310 can use TCP/IP or comprise that Novell Netware, AppliTalk, any other procotol X.25 maybe can support any other network such as RPC systems such as RMI.
Server 312 comprises respective remote method working time 314 and remote method framework 315.Opposite with client 302, server 312 also comprises universal resource management device 316, event handler 317, remote method explorer 322, remote events processor 323 and a large amount of remote method resource 324.Server 312 also comprises remote object A 318 and remote object B 320.Many method (not shown) that each remote object and client applications 304 can use remote method invocation (RMI) 306 to enable.Another structure of server 312 can comprise the remote object of the arbitrary number that is used to carry out the required remote method of particular system.
Be responsible for constantly notifying the client executing state of 302 remote methods remote method working time 314.Remote method provides the information of indication remote method in deal with data to client 302 working time 314.According to the present invention, even when remote method is hung up, treatment state does not block yet.Replace, remote method maintenance working times 314 is connected with client's 302, finishes the request task handling up to remote method.Remote method working time 314 also at remote method unusual or make mistakes and when stopping to client's 302 indications.
This method determine whether can to obtain at present the processing remote method required any generic resource.Generic resource can be the dependable any resource of storer, disk storage space, data or system resource.
Remote method framework 315 is responsible for data that send on the network 310 and parameter are gone marshalling.Parameter and data are used as the formal parameter of carrying out remote method on server 312.
317 management of universal resource management device 316 and event handler are in server 312 performed local process and the employed resource of method.The nation method of carrying out on server 312 is noted universal resource management device 316 and event handler 317, assigns with assignment and the releasing of coordinating generic resource.These generic resources can comprise such as primary memorys such as storeies or such as supplementary storages such as Disk and tape drivers.Different with system resource discussed below, generic resource is not used in the remote method request of finishing usually.Event handler 317 detects the incident relevant with local process, therefore, does not comprise the details of event handler 317 in this manual.In fact, universal resource management device 316 and event handler 317 be exclusively used in management with not by such as remotely enabled those processes resource relevant such as client 302 clients such as grade with method.
On the contrary, remote method explorer 322 and remote events processor 323 are responsible for assigning and are removed and assign the required remote method resource 324 of remote method.Can regard remote method resource 324 as a system resource, because they make method can utilize system layer resource such as network technology.Usually, these system resources are with relevant with aforesaid generic resource.
Remote method explorer 322 transmits remote method resource 324 between the remote method of relevant remote object 318, remote object 320 and other object (not shown).Remote events processor 323 detects when discharge the required resource of remote method processing particular task.Utilize a realization of the present invention as described below to help to transmit these remote method resources.
The hang-up of remote method and continuation
When will getting clogged, enables remote method the hang-up method.This just occurs in usually that remote method gets clogged and before waiting for available resource.The hang-up method is designated as hang-up to remote method, and the remote method explorer is returned server system to thread and other resource.When available resource, remote method explorer and continuation method are worked together, to give the remote method of hanging up these threads and other remote method assignment of resources.Finally, remote method is enabled the remote method of hang-up working time, thereby it continues to handle.The remote method of for example waiting for a write operation is to blocked state input-ready, and discharges thread and other resource by calling pending operation.Pending operation is designated as hang-up to this remote method, and the remote method explorer is returned these threads the thread pool of relevant server system.In case write operation takes place, then continue method the remote method of hanging up is designated as and can moves, the remote method explorer returns thread and other assignment of resources the remote process of hang-up.Remote method is enabled the remote method of previous hang-up working time, so that this remote method reading of data.
Fig. 4 illustrates the block scheme of hanging up and continuing to handle the employed basic software subsystem of a remote method.These software subsystems comprise remote method resource 324, remote method explorer 322 and have remote method 416 and the example remote object A 318 of executing state 418.
Remote method resource 324 among Fig. 4 comprises thread pool 402, and it has thread 404, obtainable thread 406 and RPC state 408 in the use.Thread 404 in the use comprises the quoting of the presently used thread of remote method, and obtainable thread 406 comprises the current spendable thread of remote method.When remote method is suspended, RPC state 408 is kept in the remote method resource 324, to store such as employed information of RPC system such as RMI.This information can comprise the information that the RPC system continues to handle the remote method of hanging up and the result returned the client.In another embodiment, remote method resource 324 also can comprise other resource except thread.These other Internet resources can comprise primary memory, secondary store and in conjunction with handling employed any other resource of remote method.
Remote method explorer 322 comprises hang-up method 410, continuation method 412 and status register 414.Hang-up method 410 obtains from the executing state 418 of remote method 416 and from the RPC state 408 of remote method resource 324.Before remote method 416 is suspended, this status information is stored in the status register 414.Usually, in remote method 416 indication it will get clogged and it when having thread and other resource, hang-up method 410 is designated as hang-up to remote method 416.Finally, remote method explorer 322 is returned server 312 to thread and other resource, and hangs up the further processing of remote method 416.For example, suppose remote method 416 trials reading of data from a temporary transient empty formation.When remote method 416 detects this formation for sky, remote method 416 will be enabled hang-up method 410, with the beginning suspend process.
Continuation method 412 accompanies with hang-up method 410.Continuation method 412 is enabled normally at available resource or when particular event having taken place.For example, data are write particular queue can trigger a continuation incident, this incident can be enabled continuation method 412.Continuation method 412 finds the position of the hang-up remote method of waiting for this resource and it is designated as and can moves.Finally, remote method explorer 322 is given the previous remote method of hanging up thread and other assignment of resources.Use is stored in executing state 418 and the RPC state 408 in the status register 414, to guarantee the processing at the suitable some place before remote method 416 continues to be suspended.
In operation, hang-up and continuation method are used together, with the thread on the management server system 312 and other resource.Fig. 5 illustrates the process flow diagram of hanging up and continue the performed step of a far call according to method and system of the present invention.
At first, server 312 receptions come processing remote method 416 from the request of the remote method invocation (RMI) on the client 302 306.Correspondingly, 315 pairs of data that send in request of remote method framework and parameter are gone marshalling (step 506).After these data and parameter are by 315 decodings of remote method framework, they are sent to remote method 416.
The remote method remote method working times 309 indication server 312 of working time on client 302 of server 312 received the request of enabling remote method 416 and handled this request (step 507).Even remote method 416 is suspended and thread and other resource when being released, client applications 304 continues the indication that reception servers 312 are being handled this request.
Remote method explorer 322 is given the remote method 416 (step 508) that will be activated these threads and other assignment of resources.Obtain the thread that branch is tasked remote method 416 in the obtained thread 406 from thread pool 402.Can use a plurality of threads to handle several remote methods or task abreast.Suppose to obtain these threads and other resource, then represent client applications 304 to enable remote method 416 (step 510) remote method working time 314.If the remote method explorer can not be given remote method 416 thread or other assignment of resources, then it is added to and wait in the execution formation that discharges from the thread of other process or other resource.
Remote method 416 comprises the instruction (step 512) that is used to determine whether to exist suspended state.These instructions also comprise the information that has the continuation state that determines when.When suspended state occurs in remote method 416 and relies on the resources that can not obtain or a certain incident does not also take place.On the contrary, continuation incident occurs in that this resource can obtain or this incident when having taken place.For the example of suspended state, suppose that remote method 416 sampling to data point and suspended long time at interval between each sampling.At this long interval, remote method 416 can get clogged and the waiting timer incident is indicated the end in next time interval.
When detecting suspended state, remote method 416 discharges resource and continues instruction to remote events processor 323 each bar of registration, to monitor some resource and incident (step 516).Then, hang up the further processing of remote method 416, and wait for that specific continuation incident is to continue to handle (step 518).
When the continuation incident takes place, restart to handle (step 520) for remote method and remote method assignment of resources.The continuation incident is in the incident that a remote method of hanging up handles further that the resource that is relied on can obtain or incident is produced when taking place.The continuation instruction that the remote method 416 that remote events processor 323 is handled hang-up is registered.Remote method is finished this task and the result is returned client applications 304 (step 514).Should be understood that before finishing a task and the result returned the client and can remote method be hung up and continue many times.
The hang-up of remote method
Accompanying drawing 6 is process flow diagrams of hanging up the performed step of a far call according to method and system of the present invention.At first, remote method 416 monitors and the hang-up incident takes place and select to discharge thread and other resource (step 602).By hang-up method 416 remote method is designated as hang-up.Before being suspended, remote method 416 provides executing state 418, RPC state 408 and discharges thread and other resource (step 604) for remote method explorer 322.Remote method explorer 322 is put back to these threads in the obtainable thread 406.Perhaps, remote method 416 can be selected to hang up processing and not discharge any thread or resource.
Status information when the relevant remote method 418 of executing state 418 record is suspended comprises any out of Memory of local variable, programmable counter and relevant remote method 416.As mentioned above, RPC state 408 be recorded in remote method 416 when being suspended with such as relevant status informations of RPC system such as RMI.RPC state 408 makes the RPC system when remote method 416 continues to carry out and client communication and return the result.
Then, remote method explorer 322 storage RPC state 408 and executing states 418 (step 608).Remote method explorer 322 these status informations of storage are to continue to handle the remote method of hanging up in the some time in the future.Remote method 416 also instructs to each continuation of remote events processor 323 registrations of some resource of monitoring and incident.Generally, continuing instruction is used for getting in touch to data continuation pre-service and with suitable suspend process.At last, hang up the further processing of remote method 416 and the generation (step 610) of wait continuation incident.
The continuation of remote method
Fig. 7 is according to the process flow diagram of method and system continuation of the present invention such as performed step such as the previous remote method of hanging up such as remote method 41 grades.Each step of this process takes place when satisfying specified conditions usually, asynchronously.
At first, remote events processor 323 receives the instruction that specific continuation incident has taken place.Remote events processor 323 is associated the continuation incident (step 702) with a particular remote method and enables corresponding continuation instruction.The continuation incident is the incident that the resource that further processing relied at the remote method of hanging up can obtain or incident is produced when taking place.When for example, continuation incident can occur in formation to be read such as remote method that information is write hang-up.
Continue instruction calls continuation method 412, this continuation method 412 is designated as the process of can moving to the remote method of hanging up 416.Finally, the state of remote method explorer 322 discovery hang-up methods 416 is indicated this remote method can move now and can be continued to handle (step 704).Step 704 is an asynchronous process normally, and it occurs in the remote method explorer when checking suspend process, and it becomes can move the time dispensable at the state of remote process.Remote method explorer 322 is giving remote method 416 (step 706) such as assignment of resources such as threads.
Remote method loading working times 314 is from the executing state 418 and the RPC state 408 of status register 414.Executing state 418 makes remote method 416 prepare to continue it to stop the processing (step 708) to locate before being suspended.In order to realize that with software remote method 416 can be several sections relevant codes, each section all begins when last code section stops before hang-up.Perhaps, can be embodied as the single code segment that the difference place in code segment begins to carry out to remote method 416.As mentioned above, RPC state 408 makes such as RMI 218 systems such as RPC such as grade and continues to handle and the result is returned suitable remote method invocation (RMI) 306.
Make remote method working time 314 remote method 416 continue to carry out.Then, remote method 416 uses the thread that distributed and other resource to continue processing (step 710) on server.Finally, remote method 416 bears results, and these results are offered remote method framework 315 to continue coding and grouping packing (packeting) (step 712).Via network 310 these encoded results are sent to remote method and accept program 308, here these results are decoded and offer remote method invocation (RMI) 306 (step 714).
Though to have described certain embodiments here in order illustrating, can to have carried out various modifications and do not deviate from the spirit and scope of the present invention.Correspondingly, the invention is not restricted to above-described embodiment, but limit by the gamut of the equivalent of additional claims.

Claims (39)

1. one kind has the method for carrying out on the server system of resource one, described server system operationally is coupled to a client via a network and a remote method is hung up to handle and discharge respective resources gives server system, it is characterized in that said method comprising the steps of:
By using a remote procedure call (RPC) remote method invocation (RMI) that system sent to receive request, also comprise following substep from a client:
Received the request of enabling a remote method to client indication server system;
Give this remote method assignment of resources;
Enable this remote method;
Determine whether this remote method depends on unavailable any resource or also nonevent incident;
Hang up the further processing of remote method, and this remote method depend on unavailable resource or also during nonevent incident from this remote method release resource, also comprise following substep:
Discharge and task the resource of this remote method system to be used previous the branch by other process and method on the server system;
Provide executing state relevant and relevant remote procedure call (RPC) state of remote method invocation (RMI) therewith, to continue to handle this remote method in the cycle sometime subsequently with this remote method; And
The further processing of blocking remote method can obtain this resource or the incident that remote method is hung up occur causing up to discharging unavailable resource and remote method.
2. one kind has the method for carrying out on the server system of a plurality of resources one, described server system operationally is coupled to a client via a network, so that the previous remote method of hanging up continues to handle on server system, it is characterized in that said method comprising the steps of:
Receiving the indication that the continuation incident relevant with the remote method of hanging up taken place, wherein should the continuation incident be generation can obtain the required resource of this remote method or caused before that incident that this remote method is hung up took place the time;
Give this remote method assignment of resources,, also comprise following substep to prepare continuing processing:
Indicate this remote method can continue to handle to the remote method explorer, and
Give this remote method the resources allocation of being controlled by the remote method explorer;
Utilize the resource of being assigned to continue the execution of remote method, comprise following substep:
With executing state and remote procedure call (RPC) system with RPC state this remote method is carried out initialization, wherein executing state comprises and this remote method relevant information before being suspended, and the RPC state comprises the information of relevant remote method invocation (RMI);
Bear results from this remote method; And
The result is sent to client applications on the client from server system.
3. method of on a server system, carrying out, so that a remote method is hung up processing and resource is discharged to server system, described server system operationally is coupled to a client via a network, it is characterized in that said method comprising the steps of:
Reception is from the request of the remote method invocation (RMI) on the client;
The system resource branch is tasked the remote method relevant with this server system;
Enable the remote method relevant with this server system;
Determine to handle the availability of the required generic resource of this remote method; And
When depending on unavailable generic resource, remote method hangs up the further processing of remote method.
4. method as claimed in claim 3 is characterized in that server system comprises processor, main storage means, auxilliary memory storage, display device and I/O mechanism.
5. method as claimed in claim 3 is characterized in that system resource comprises thread.
6. method as claimed in claim 3 is characterized in that generic resource comprises data.
7. method as claimed in claim 3 is characterized in that this request is to use remote mothod invocation (RMI) system to send.
8. method as claimed in claim 3 is characterized in that hanging up step and also comprises following substep,
System resource and generic resource are discharged to server system; And
The further processing of blocking remote method can obtain this resource up to discharging unavailable resource and remote method.
9. method as claimed in claim 8, it is characterized in that the hang-up method also comprises the executing state that provides relevant with remote method and with remote method invocation (RMI) relevant remote procedure call (RPC) state, to continue to handle this remote method in the later time cycle.
10. method of on a server system, carrying out, so that the previous remote method of hanging up continues processing and the client applications of client is born results on server system, described client operationally is coupled to server system via a network, it is characterized in that said method comprising the steps of:
Receive the indication that the continuation incident relevant with the remote method of hanging up taken place;
System resource and generic resource branch are tasked this remote method, to prepare to continue processing:
Utilize the resource of being assigned to continue the execution of remote method;
Bear results from this remote method; And
The result is sent to client applications on the client from server system.
11. method as claimed in claim 10 is characterized in that server system comprises processor, main storage means, auxilliary memory storage, display device and I/O mechanism.
12. method as claimed in claim 10 is characterized in that system resource comprises thread.
13. method as claimed in claim 10 is characterized in that generic resource comprises data.
14. method as claimed in claim 10, the step that it is characterized in that continuing the execution of remote method also comprises following substep:
With executing state and remote procedure call (RPC) system with RPC state this remote method is carried out initialization, wherein executing state comprises and this remote method relevant information before being suspended, and the RPC state comprises the information of relevant remote method invocation (RMI); And
Bear results from this remote method.
15. method as claimed in claim 10 is characterized in that forwarding step uses remote mothod invocation (RMI) system.
16. a computer-readable media, it comprises by following steps makes the remote method of carrying out on a computer server system hang up the instruction of handling and assignment of resources being given computer server system:
Reception is from the request of the remote method invocation (RMI) on the client;
The system resource branch is tasked the remote method relevant with this server system;
Enable the remote method relevant with this server system;
Determine to handle the availability of the required generic resource of this remote method; And
When depending on unavailable generic resource, remote method hangs up the further processing of remote method.
17. computer-readable media as claimed in claim 16 is characterized in that system resource comprises thread.
18. computer-readable media as claimed in claim 16 is characterized in that generic resource comprises data.
19. computer-readable media as claimed in claim 16 is characterized in that this request is to use remote mothod invocation (RMI) system to send.
20. computer-readable media as claimed in claim 16 is characterized in that hanging up step and also comprises with lower module,
Release module discharges system resource and generic resource to server system; And
Block module, the further processing that is used to block remote method can obtain this resource up to discharging unavailable resource and remote method.
21. a computer-readable media, it comprises by following steps makes the remote method before be suspended continue in processing on the server system and instruction that the client applications on the client is born results:
Receive the indication that the continuation incident relevant with the remote method of hanging up taken place;
System resource and generic resource branch are tasked this remote method, to prepare to continue processing:
Utilize the resource of being assigned to continue the execution of remote method;
Bear results from this remote method; And
The result is sent to client applications on the client from server system.
22. computer-readable media as claimed in claim 21 is characterized in that system resource comprises thread.
23. computer-readable media as claimed in claim 21 is characterized in that generic resource comprises data.
24. computer-readable media as claimed in claim 21 is characterized in that sending remote mothod invocation (RMI) system that uses.
25. one kind is used to make a remote method to hang up to handle and resource is discharged equipment to a server system, described server system operationally is coupled to a client via a network, it is characterized in that described equipment comprises:
Receiver module constitutes the request of reception from the remote method invocation (RMI) on the client;
Dispatch module constitutes the system resource branch is tasked the remote method relevant with this server system;
Enable module, constitute and enable the remote method relevant with this server system;
Determination module constitutes the availability of determining to handle the required generic resource of this remote method; And
Hang up module, constitute the further processing of when remote method depends on unavailable generic resource, hanging up remote method.
26. equipment as claimed in claim 25 is characterized in that server system comprises processor, main storage means, auxilliary memory storage, display device and I/O mechanism.
27. equipment as claimed in claim 25 is characterized in that system resource comprises thread.
28. equipment as claimed in claim 25 is characterized in that generic resource comprises data.
29. equipment as claimed in claim 25 is characterized in that this request is to use remote mothod invocation (RMI) system to send.
30. equipment as claimed in claim 25 is characterized in that hanging up module and also comprises,
Release module constitutes a system resource and generic resource and discharges to server system; And
Block module, constitute the further processing of blocking remote method and can obtain this resource up to discharging unavailable resource and remote method.
31. a remote method that is used to make previous hang-up continues at processing on the server system and equipment that the client applications on the client is born results, described client operationally is coupled to server system via a network, it is characterized in that described equipment comprises:
Receiver module constitutes the indication that the continuation incident relevant with the remote method of hanging up has taken place to receive;
Dispatch module constitutes a system resource and the generic resource branch is tasked this remote method, to prepare to continue processing:
Continue module, constitute the execution that resource that utilization assigns continues remote method;
Generation module constitutes from this remote method and bears results; And
Sending module constitutes the result is sent to client applications on the client from server system.
32. equipment as claimed in claim 31 is characterized in that server system comprises processor, main storage means, auxilliary memory storage, display device and I/O mechanism.
33. equipment as claimed in claim 31 is characterized in that system resource comprises thread.
34. equipment as claimed in claim 31 is characterized in that generic resource comprises data.
35. equipment as claimed in claim 31 is characterized in that sending module uses remote mothod invocation (RMI) system.
36. an equipment that is coupled to a server system is used to make a remote method hang up to handle and resource is discharged to this server system, described server system operationally is coupled to a client via a network, it is characterized in that described equipment comprises:
Be used to receive device from the request of the remote method invocation (RMI) on the client
Be used for the system resource branch is tasked the device of the remote method relevant with this server system;
Be used to enable the device of the remote method relevant with this server system;
Be used for definite device of handling the availability of the required generic resource of this remote method; And
Be used for when remote method depends on unavailable generic resource, hanging up the device of the further processing of remote method.
37. equipment as claimed in claim 36 is characterized in that also comprising the client that operationally is coupled to server system.
38. equipment that is coupled to a server system, be used to make the remote method of previous hang-up to continue at processing on the server system and equipment that the client applications on the client is born results, described client operationally is coupled to server system via a network, it is characterized in that described equipment comprises:
Be used to receive the device of the indication that the continuation incident relevant with the remote method of hanging up taken place;
Be used for system resource and generic resource branch are tasked this remote method, to prepare to continue the device of processing:
Be used to utilize the resource of being assigned to continue the device of the execution of remote method;
Be used for the device that bears results from this remote method; And
Be used for the result is sent to from server system the device of the client applications on the client.
39. equipment as claimed in claim 38 is characterized in that also comprising the client that operationally is coupled to server system.
CN99805303A 1998-02-26 1999-02-18 Method and apparatus for the suspension and continuation of remote processes Pending CN1298502A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US09/044,917 US6237024B1 (en) 1998-03-20 1998-03-20 Method and apparatus for the suspension and continuation of remote processes
US09/044,917 1998-03-20

Publications (1)

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

Family

ID=26722150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99805303A Pending CN1298502A (en) 1998-02-26 1999-02-18 Method and apparatus for the suspension and continuation of remote processes

Country Status (6)

Country Link
EP (1) EP1057108A1 (en)
JP (1) JP2002505471A (en)
KR (1) KR20010041297A (en)
CN (1) CN1298502A (en)
AU (1) AU3300499A (en)
WO (1) WO1999044131A1 (en)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1306403C (en) * 2003-12-30 2007-03-21 北京金山数字娱乐科技有限公司 Network servicer sustem used in recreation
CN100430897C (en) * 2004-02-06 2008-11-05 英特尔公司 Method for reducing energy consumption of buffered applications using simultaneous multi-threaded processor
CN100432926C (en) * 2001-12-24 2008-11-12 施蓝姆伯格技术管理有限公司 Method and apparatus for processing transactions in a data processing system
CN100461113C (en) * 2006-01-18 2009-02-11 国际商业机器公司 System and method of implementing automatic resource outage handling
CN102591708A (en) * 2010-12-13 2012-07-18 微软公司 Architecture for providing on-demand and background processing
CN101414340B (en) * 2007-10-15 2015-12-02 北京瑞星信息技术有限公司 A kind of method preventing remote thread from starting

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1128266A3 (en) * 2000-02-22 2004-02-25 Orsus Solutions Limited Cooperative software application architecture
US7076551B2 (en) 2000-04-03 2006-07-11 Texas Instruments Incorporated Using remote procedure calls to manage co-processor resources
US7493391B2 (en) * 2001-02-12 2009-02-17 International Business Machines Corporation System for automated session resource clean-up by determining whether server resources have been held by client longer than preset thresholds
EP1249758B1 (en) 2001-04-11 2012-03-07 Texas Instruments Incorporated Using remote procedure calls to manage co-processor resources
US20030182426A1 (en) * 2002-03-21 2003-09-25 Sun Microsystems, Inc. Apparatus and method of lazy connection transaction enlistment
US7496494B2 (en) 2002-09-17 2009-02-24 International Business Machines Corporation Method and system for multiprocessor emulation on a multiprocessor host system
US9043194B2 (en) 2002-09-17 2015-05-26 International Business Machines Corporation Method and system for efficient emulation of multiprocessor memory consistency
US7953588B2 (en) 2002-09-17 2011-05-31 International Business Machines Corporation Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
US8108843B2 (en) 2002-09-17 2012-01-31 International Business Machines Corporation Hybrid mechanism for more efficient emulation and method therefor
JP2007108804A (en) * 2004-01-27 2007-04-26 Matsushita Electric Ind Co Ltd Application start arbitration system
US20050179936A1 (en) * 2004-02-13 2005-08-18 Microsoft Corporation Scalable print spooler
JP4208783B2 (en) * 2004-07-28 2009-01-14 キヤノン株式会社 Image processing apparatus, set time adjustment method and program
JP4126702B2 (en) * 2004-12-01 2008-07-30 インターナショナル・ビジネス・マシーンズ・コーポレーション Control device, information processing system, control method, and program
WO2012008016A1 (en) * 2010-07-13 2012-01-19 富士通株式会社 Multithread processing device, multithread processing system, multithread processing program, and multithread processing method
KR101357975B1 (en) * 2011-10-17 2014-02-03 엔에이치엔엔터테인먼트 주식회사 Method and apparatus for providing remote procedure call service using coroutine
US20150341445A1 (en) * 2014-05-23 2015-11-26 Radoslav Nikolov Hybrid applications operating between on-premise and cloud platforms
CN107092532B (en) * 2017-03-22 2020-08-04 武汉斗鱼网络科技有限公司 Remote calling method and remote calling device

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE116456T1 (en) * 1990-10-19 1995-01-15 Cray Research Inc SCALABLE PARALLEL VECTOR COMPUTER SYSTEM.
US5553305A (en) * 1992-04-14 1996-09-03 International Business Machines Corporation System for synchronizing execution by a processing element of threads within a process using a state indicator
GB9414951D0 (en) * 1994-07-25 1994-09-14 British Telecomm Computer system having client-server architecture
JPH0962526A (en) * 1995-08-28 1997-03-07 Fujitsu Ltd Fault resistant rpc system and method therefor

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100432926C (en) * 2001-12-24 2008-11-12 施蓝姆伯格技术管理有限公司 Method and apparatus for processing transactions in a data processing system
CN1306403C (en) * 2003-12-30 2007-03-21 北京金山数字娱乐科技有限公司 Network servicer sustem used in recreation
CN100430897C (en) * 2004-02-06 2008-11-05 英特尔公司 Method for reducing energy consumption of buffered applications using simultaneous multi-threaded processor
CN100461113C (en) * 2006-01-18 2009-02-11 国际商业机器公司 System and method of implementing automatic resource outage handling
CN101414340B (en) * 2007-10-15 2015-12-02 北京瑞星信息技术有限公司 A kind of method preventing remote thread from starting
CN102591708A (en) * 2010-12-13 2012-07-18 微软公司 Architecture for providing on-demand and background processing
CN102591708B (en) * 2010-12-13 2015-05-06 微软公司 Architecture for providing on-demand and background processing

Also Published As

Publication number Publication date
AU3300499A (en) 1999-09-15
JP2002505471A (en) 2002-02-19
WO1999044131A1 (en) 1999-09-02
KR20010041297A (en) 2001-05-15
EP1057108A1 (en) 2000-12-06

Similar Documents

Publication Publication Date Title
CN1298502A (en) Method and apparatus for the suspension and continuation of remote processes
US7418702B2 (en) Concurrent web based multi-task support for control management system
KR100843548B1 (en) Concurrent access of shared resources
CN1713595A (en) Use method and system of independent external resources within requesting grid environments
US7392524B2 (en) Method, system, and storage medium for managing computer processing functions
KR100322724B1 (en) Apparatus and method for scheduling and dispatching queued client requests within a server in a client/server computer system
US8458712B2 (en) System and method for multi-level preemption scheduling in high performance processing
CN1280725C (en) Resouce balancing in partitioned processing environment
CN101533417B (en) A method and system for realizing ETL scheduling
US6237024B1 (en) Method and apparatus for the suspension and continuation of remote processes
US8387058B2 (en) Minimizing complex decisions to allocate additional resources to a job submitted to a grid environment
US6732139B1 (en) Method to distribute programs using remote java objects
US8205208B2 (en) Scheduling grid jobs using dynamic grid scheduling policy
KR101013073B1 (en) Apparatus for Task Distribution and Parallel Processing System and Method there of
CN1315076C (en) An apparatus, method and program product for transferring standby resource entitlement
CN1298513A (en) Methods and apparatus for remote mothod invocation
US20160232037A1 (en) Latency-hiding context management for concurrent distributed tasks
US7219345B2 (en) System and method for terminating processes in a distributed computing system
CN1595903A (en) A system and method for automatically establishing a resource grid
Mishra et al. A memory-aware dynamic job scheduling model in Grid computing
Jones NAS requirements checklist for job queuing/scheduling software
CN1298511A (en) Stack-based security requirements
Goscinski et al. Message passing and RPC-based interprocess communication mechanisms in the RHODOS microkernel
CN116055567A (en) Floating license scheduling system and method based on seismic data processing
Mateescu et al. IMAGE: An approach to building standards-based enterprise Grids

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