WO2000014620A2 - Executing remote procedures in a remote processor from a client process executed in a local processor - Google Patents
Executing remote procedures in a remote processor from a client process executed in a local processor Download PDFInfo
- Publication number
- WO2000014620A2 WO2000014620A2 PCT/US1999/020460 US9920460W WO0014620A2 WO 2000014620 A2 WO2000014620 A2 WO 2000014620A2 US 9920460 W US9920460 W US 9920460W WO 0014620 A2 WO0014620 A2 WO 0014620A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- remote procedure
- remote
- processor
- call
- procedure
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
Definitions
- the present invention relates to systems and methods for executing remote procedures, and in particular to a system and method for a method and apparatus for executing remote procedures in a remote processor from a client process executed in a local processor.
- the present invention discloses a method, apparatus, and article of manufacture for executing remote procedures in a remote processor from a client process executed in a local processor.
- the method comprises the steps of accepting a remote procedure call having information identifying the remote procedure including a global remote procedure locator; translating the remote procedure call into a CGI-compatible information transfer protocol; transmitting the translated remote procedure call to the remote processor interpreting the translated remote procedure call into a remote procedure-compatible format; and invoking the remote procedure in the remote processor.
- the article of manufacture comprises a data storage device tangibly embodying instructions to perform the method steps described above.
- the apparatus comprises a client application program interface communicatively coupled to the server application program interface.
- the client application program interface translates a remote procedure call information identifying the remote procedure including a global remote procedure locator into a CGI-compatible information transfer protocol, transmits the translated remote procedure call to the remote processor, and interprets a remote procedure response into a client process-compatible format.
- the server application program interface interprets a remote procedure call translated by the client application program interface into a remote procedure-compatible format, invokes the remote procedure in the remote processor to produce a remote procedure output, and translates a remote procedure response into the CGI-compatible information transfer protocol.
- One object of the present invention is to provide a vehicle for calling remote procedures without special server installations or special developer training.
- Another object of the present invention is to provide a robust remote procedure service that is automatically restored following temporary server host downtimes.
- Another object of the present invention is to provide a remote procedure gateway that allows for full functionality across firewalls.
- Another object of the present invention is to provide a vehicle for calling remote procedures that is independent of the platform or programming language used at the client or the remote computer.
- Another object of the present invention is to provide a remote procedure capability while protecting communications against port "hijacking" in multi-user systems.
- the present invention provides a layer of communication and interfacing for program execution on multiple networked computers to support developing distributed procedures.
- This communication layer :
- a program using the present invention can run partly on a user's computer, and elsewhere on machines accessed over a network.
- some code would run on one or more remote web server hosts.
- the present invention is applicable to a wide variety of distributed computing architectures, including those used for remote database access and Internet-enabled software such as educational and gaming software.
- FIG. 1 is a block diagram showing an exemplary hardware environment for practicing the present invention
- FIG. 2 is a diagram illustrating an exemplary procedure gateway interface and related elements
- FIGs. 3A and 3B are flow charts presenting illustrative process steps used to practice one embodiment of the present invention.
- FIGs. 4A and 4B are diagrams illustrating distinctions between the operation of the common gateway interface and the procedure gateway interface of the present invention.
- FIG. 5 is a diagram illustrating an example of the use of a definition language to generate a client process to operate with a remote procedure
- FIG. 6 is a diagram illustrating additional detail regarding the operation of the procedure gateway interface elements generated with a compiler.
- FIG. 1 illustrates an exemplary computer system 100 that could be used to implement the present invention.
- the computer 102 comprises a processor 104 and a memory, such as random access memory (RAM) 106.
- the computer 102 is operatively coupled to a display 122, which presents images such as icons, windows, and interaction opportunities to the user on a graphical user interface 118B.
- the computer 102 may be coupled to other devices, such as a keyboard 114, a mouse device 116, a printer 128, etc.
- keyboard 114 a keyboard 114
- a mouse device 116 a printer 128, etc.
- the computer 102 operates under control of an operating system 108 stored in the memory 106, and interfaces with the user to accept inputs and commands and to present results using a graphical user interface (GUI) module 1 18 A.
- GUI graphical user interface
- the GUI module 118A is depicted as a separate module, the instructions performing the GUI functions can be resident or distributed in the operating system 108, the computer program 110, or implemented with special purpose memory and processors.
- the computer 102 also implements a compiler 112 which allows an application program 110 written in a programming language such as COBOL, C++, FORTRAN, JAVA, Perl, or other language to be translated into processor 104 readable code.
- the application 110 accesses and manipulates data stored in the memory 106 of the computer 102 using the relationships and logic that was generated using the compiler 112.
- the computer 102 also optionally comprises an external communication device such as a modem, satellite link, Ethernet card, infrared (IR) link, radio frequency (RF) transmitter, or other device for communicating with other computers or base stations, including cellular telephones, personal data assistants (PDAs), and other wireless networking devices.
- an external communication device such as a modem, satellite link, Ethernet card, infrared (IR) link, radio frequency (RF) transmitter, or other device for communicating with other computers or base stations, including cellular telephones, personal data assistants (PDAs), and other wireless networking devices.
- IR infrared
- RF radio frequency
- instructions implementing the operating system 108, the computer program 110, and the compiler 112 are tangibly embodied in a computer- readable medium, e.g., data storage device 120, which could include one or more fixed or removable data storage devices, such as a zip drive, floppy disc drive 124, hard drive, CD-ROM drive, tape drive, etc.
- the operating system 108 and the computer program 110 are comprised of instructions which, when read and executed by the computer 102, causes the computer 102 to perform the steps necessary to implement and/or use the present invention.
- Computer program 110 and/or operating instructions may also be tangibly embodied in memory 106 and/or data communications devices 130, thereby making a computer program product or article of manufacture according to the invention.
- the terms "article of manufacture” and "computer program product” as used herein are intended to encompass a computer program accessible from any computer readable device or medium.
- the Procedure Gateway Interface (PGI) provided by the present invention is a system for executing remote procedures using a Common Gateway Interface (CGI)- compatible protocol (such as HTTP 1.0) as the underlying network protocol for remote procedure requests and transfers resulting data.
- CGI Common Gateway Interface
- the Common Gateway Interface (CGI) is a standard for interfacing external applications with information servers, such as HTTP or web servers.
- web refers to a system of geographically distributed or dispersed computers connected by communication links, such as the world wide web).
- a plain HTML document that a web daemon retrieves is static, which means it exists in a constant state: a text file that doesn't change.
- a CGI program is executed in real-time, so that it can output dynamic information.
- PGI programming language-independent and computer platform-independent. In contrast to other remote procedure protocols, PGI is intended to be very simple and require practically no server administration overhead. Remote PGI procedures require only a web server with a protocol such as HTTP 1.0 and CGI support. Therefore, nearly every Internet web server already fully supports PGI.
- FIG. 2 is a diagram illustrating an exemplary PGI and related elements.
- PGI includes a client application program interface 206 and a remote procedure application program interface 212.
- the client application program interface (API) 206 translates remote procedure calls from a client process 204 running on a local or client computer 218 into a CGI-compatible information transfer protocol, such as HTTP 1.0.
- the remote procedure may include a remote procedure input value, input attributes, and information identifying the remote procedure. In one embodiment, this information includes a global remote procedure locator such as a universal resource locator (URL).
- the client API 206 also transmits translated remote procedure calls to a remote processor 220 via a server such as the web server 208 and server API 212.
- a server such as the web server 208 and server API 212.
- the server API 212 interprets the remote procedure call that was translated by the client API 206 into a remote procedure compatible format, invokes the remote procedure in the remote processor 220.
- the remote procedure executes, and using the remote procedure input value (if provided), and returns remote procedure response that may include a remote procedure output value that was retrieved, for example, from a database file 216.
- the server API 212 then translates the remote procedure response into a CGI compatible information transfer protocol such as HTTP, and transmits the translated remote procedure response to the client API 206 in the client processor 218 via the server 208.
- the client API interprets the remote procedure response into a client process- compatible format, and returns the parameters to the client process 204.
- FIGs. 3A and 3B are flow charts presenting illustrative process steps used to practice one embodiment of the present invention.
- a remote procedure call is accepted 302 by the client API.
- the remote procedure call is translated 304 into a CGI-compatible information transfer protocol, such as HTTP.
- the translated remote procedure call is then transmitted 306 to a server API 212 in remote processor 220.
- the server API 212 interprets 308 the translated remote procedure call into a remote procedure-compatible format, and invokes 310 the remote procedure in the remote processor to produce a remote procedure response, which may include a remote procedure output value.
- the server API 212 translates 312 the remote procedure response into a CGI-compatible information transfer protocol, and transmits 314 the translated remote procedure response to the client API 206 in the local processor 218.
- the client API 206 interprets 316 the remote procedure response into a client process- compatible format, and provides 318 the translated remote procedure response to the client process 204.
- PGI uses APIs 206, 212 that handle the details of network communication with remote procedures 214 (e.g., passing of parameters back and forth).
- the method uses HTTP and CGI protocols communicating with, and executing code on, remote web server 208 hosts.
- a remote procedure 214 invoked via PGI behaves like a conventional local remote procedure except that it invokes its API twice.
- the first API invocation initializes the activity by forwarding required input parameters.
- the second API invocation returns any output parameters. Then the remote procedure 214 exits.
- PGI is capable of extending support to any computer programming language, as long as there is a way for programs written in the language to communicate via HTTP.
- the PGI software includes an Application Programming Interface (API) for each supported programming language.
- API handles the work of marshalling procedure parameters and using the PGI protocol to send them over an HTTP connection.
- the API has two distinct parts: An interface for programs that call remote procedures, and an interface for procedures that are called remotely.
- the former is referred to as the client API 206, while the latter is referred to as the agent API 212 (we refrain from using the word "server” in order to avoid confusing it with HTTP servers).
- Procedures are not restricted to exclusively be either clients or agents. A single procedure may act as both by being invoked by some client and making calls to other agents.
- the API for each supported computer language is implemented according to the conventions of the language.
- the JAVA interface provides methods in a class library.
- a "C” interface provides header files and linkable object files or libraries, while a "Perl” interface provide a Perl package, and so on.
- When support for a new programming language is added to the API it must obey the conventions of that language, but should otherwise be similar to an existing PGI language interface where possible. For example, functions, procedures, methods, subroutines, etc. which have the same functionality should have the same name.
- Each PGI remote procedure 214 is stored in a separate executable file.
- the executable is treated like a CGI program in that it is installed so it can be executed by requesting an appropriate URL through a web server 208.
- PGI remote procedures may be regarded as normal CGI programs. PGI, however, differs from ordinary CGI programs.
- FIGs. 4A and 4B are diagrams illustrating distinctions between ordinary CGI and PGI.
- FIG. 4 A shows that CGI itself can be used to let users start a program on a remote computer. It can also display the output of the program to the user. However, with CGI, the entire program must reside on the remote computer. Any computing resources such as printers or disk storage on the user's computer are inaccessible to the program.
- FIG. 4B illustrates a PGI program, which can execute code on both the user's local machine and the remote server host as needed.
- PGI client processes 204 and remote procedures 214 communicate by sending streams of ASCII characters. Since virtually any data can be sent as a stream of ASCII characters, this does not limit the kind of text or any other data that can be exchanged between clients processes 218 and remote procedures 214. This is simply the medium chosen to represent that data while it is being communicated across the network. In the following description, strings of characters are used to represent communications where the left-to-right order is the same as the first-to- last order, in time, of transmission.
- the characters themselves are 8-bit bytes with unsigned integer values that map to ASCII digits, letters, and other symbols. Ordinarily, low-level details such as the ordering of bits within a byte is handled by network protocols at lower levels than PGI.
- the client computer 218 (1) specifies the URL corresponding to the remote procedure; (2) specifies the name of the remote procedure and the argument signature; (3) establishes an HTTP connection to the agent's host (4) uses an HTTP POST request to activate the agent, and passes any input parameters to the agent.
- the agent is software executing on the computer being called to execute a remote procedure.
- the agent's host is that computer that is executing the remote procedure (i.e. remote processor 220 in FIG. 2).
- inputs are provided using CGI name/value pairs as follows:
- PGI DEFINITION LANGUAGE (PDL) Using PGI, a developer writes one main program (the client process 204) and program files containing procedures to be executed on remote server hosts. The main program uses PGI to invoke a remote procedure.
- the software developer writes such programs with the use of a
- PDL compiler 210 which accepts information to specify remote procedures in a PGI Definition Language (PDL).
- PDL PGI Definition Language
- the PDL compiler 210 reads PDL specifications created by a program developer and generates source files that handle network communication and other aspects of remote procedure calling.
- the PDL compiler 210 supports generating these source files for a variety of programming languages, including "C”, JAVA or Perl.
- a comment is a line of text that begins with a '#' character and may contain any arbitrary text.
- the formal syntax for the other kinds of statements is shown below.
- SERVER URL server url " URL " ;
- PROCEDURE procedure WORD ( PARMLIST ) ;
- URL indicates a string of text forming a valid URL (RFC 1736) except that the resource contains one '*' character.
- WORD indicates a string of letters, numbers, and underscores. Literal keywords are shown in lower case, although PDL is not case-sensitive.
- a PDL file may contain any number of SERVER_URL statements and PROCEDURE statements.
- Each PROCEDURE statement gives the name of a remote procedure along with its argument signature. For example, the procedure statement "procedure Lookup ⁇ n string Name, out string Address);" declares a procedure named "Lookup” which takes a single input string called Name, and returns a single output string called "Address”.
- Each SERVER URL statement specifies a default URL for the following procedures. When a default URL is used by a client, the '*' character is replaced by the name of the remote procedure being called. For example: "Server_URL "http://myhost.com/cgi-bin/*. cgi" indicates a URL for remote procedures on a machine called "myhost.com”.
- Each SERVER URL statement supersedes any previous ones.
- the PDL compiler 210 is capable of generating output for a variety of target languages. The exact output produced by the compiler is therefore dependent on the selected output language. However, regardless of the selected language, a general scheme is followed.
- the compiler 210 For each remote procedure, the compiler 210 produces a "shell" source file.
- the shell file includes all the code needed to communicate with PGI clients, invoke the procedure with appropriate input parameters as received over the network, and send the procedure's outputs back to the client over the network.
- the shell file is used together with the developer's own program code to produce an executable file which can be treated as a CGI program.
- the compiler creates a "stubs" file or package.
- the stubs file includes all the code needed to invoke PGI remote procedures, send appropriate input parameters over the network, and retrieve the procedure's outputs.
- the shells and stubs generated by the PDL compiler appear to handle the details of remote procedure calls transparently.
- the developer may write programs as though all procedure calls were simply local ones, knowing that the stubs and shells will introduce remote calling functionality.
- PGI does not maintain any state or global environment. Hence, remote procedures may not reference global variables.
- a remote procedure must receive all of the data that it needs through its input parameters.
- remote procedures must use input and output parameters that have data types compatible with PGI. For example, in C, a developer can not pass a value of type time_t without first converting it to an integer or string that PGI supports.
- the developer must create a short PDL file to declare any remote procedures. There is one optional consideration as well.
- a client may specify a server URL for a remote procedure at run time, overriding any default that may have been given in the PDL specification. This is accomplished by calling the "Server_URL" function for a particular remote procedure. The semantics for calling this function vary slightly depending on the target language, but the output from the PDL compiler will give an exact specification.
- FIG. 5 is a diagram illustrating an example of the use of PDL in enabling a main program to operate with one remote procedure, both of which are written in the "C" programming language.
- the main program 502, and procedure 504 are created by the user.
- the user also creates a declaration of the procedure in PDL 506.
- the PDL compiler 210 uses the declaration to generate code in the desired programming language ("C" in the illustrated example).
- the PDL compiler 210 produces client stubs 508, a procedure shell 510, and procedure prototypes 512 all for the target language, "C".
- the procedure shell 510, prototypes 512, and user's procedure code 504 are compiled by compilers 514 and 516 and the resulting object code 520 and 524 is linked using linkers 524 and 526 with the "C" PGI API 518 to produce the remote procedure 214.
- the client stubs 508, prototypes 512, and user's main program code 502 are compiled to produce the client program 218.
- FIG. 6 is a diagram illustrating additional detail regarding the operation of the PGI elements such as those generated with the PDL compiler 210.
- Program code written by the software developer initiates a call to the remote procedure 214. Because the procedure is remote, the PDL stub 508 passes each of the inputs to the client application through API 206, and encodes the inputs 604 to prepare them for transmission across the network. After the inputs are encoded, the PDL stub 508 passes them to the client application PGI 206 again, from where they are sent 606 to the remote procedure 214.
- the client application API 206 connects to a waiting web server 208 to execute a CGI program, and sends the encoded inputs across the (e.g. Internet) connection.
- the server API 212 gets 610 the inputs, decodes them 612, and provides them to the remote procedure via the shell 510.
- the shell 614 also invokes the remote procedure 214, and passes the inputs to it.
- the remote procedure then executes, and returns any outputs to the shell 510.
- the outputs are then encoded 616, and the PDL 510 shell passes the encoded outputs to the server API 212 so they can be sent across the network back to the client process 204.
- the server API 212 sends the outputs to the web server 208, which handles them as an output from a CGI program, and sends the encoded outputs across the network connection.
- the client API 206 receives the encoded outputs and returns execution control to the stub 508.
- the stub 508 then collects the outputs from the client API 206 and uses the client API to decode the outputs. Finally, the outputs from the remote procedure are returned to the client process 204.
- PGI can be implemented in the JAVA programming language.
- a JAVA implemented API provides methods to the client and agent for giving and reading parameters, specifying a proxy server, and invoking remote procedures. When parameters are passed between a client and agent, they must be read in the same order that they are given.
- the following example presents a JAVA version of the PGI API and demonstrates its use.
- the JAVA client API provides the following methods for use by client programs:
- the "url str" parameter specifies the remote procedure to be called.
- public void arg(String a): specifies a string value as an input argument to a remote procedure.
- public void arg(double a) specifies a floating point value as an input argument to a remote procedure.
- public void callQ throws PGIException: invokes a remote procedure. Any errors will result in a PGIException being thrown.
- public int getlntQ retrieves an integer output parameter from a remote procedure that was called.
- public String getStringQ retrieves a string output parameter from a remote procedure that was called.
- public double getDoubleQ retrieves a floating point number output parameter from a remote procedure that was called.
- a JAVA PGI client must: (1) import the PGI API; (2) instantiate an object for each remote procedure to be called; (3) specify input arguments to remote procedures; (4) call remote procedures; (5) retrieve any output arguments from remote procedures that are needed.
- JAVA Agent API provides the following methods for use by agent procedures:
- public static int getlntQ gets an integer value input argument
- public static String getStringQ gets a string value input argument
- public static double getDoubleQ gets a floating point value input argument.
- public static void output(int a) specifies the value of an integer output parameter.
- public static void output(String a) specifies the value of a string output parameter.
- public static void output(double a) specifies the value of a floating point output parameter.
- public static void pgiRetumQ returns from a remote procedure that was called by a client.
- the JAVA agent remote procedure must: (1) import the PGI API; (2) read any needed input parameters; (3) specify values for its output parameters; (4) call pgiReturn immediately before it exits.
- MyAgent takes one integer input parameter and returns one integer.
- MyClient uses the PGI API to make a call. import pgi.*; public class MyClient
- the following example program shows the agent procedure, MyAgent, which is called by the client MyClient from the previous example. It takes an integer parameter, multiplies it by two, and returns the result. // MyAgent is executed via PGI. import pgi.*; public class MyAgent extends PGIProcedure
- # the following remote procedures. It may be overridden # at run time by using:
- TestProc_Server_URL (char *new_url); Server_URL "http://www.clamso.net/cgi-bin/*"; Procedure TestProc( in int a, in string b, in double c, out int x, out string y, out double z);
- the present invention provides numerous advantages over prior art systems for interfacing remote procedures (CORBA, RMI. RPC, etc.) and custom-design approaches. Namely, the present invention provides a high degree of simplicity for writing programs to access remote resources, (2) does not require a "registry" database of procedures or methods, thus allowing for reduced administrative overhead, (3) The present invention does not require a specialized remote procedure or method server, (4) provides automatic functionality restoration following temporary server host downtimes (as may be experienced during electrical power outages), (5) provides more secure data exchange on servers with multi-user operating systems (such as UNIX) (this is accomplished by reserving some TCP/IP port, such as port 80, for data interchange), and (6) provides full functionality across firewalls, requiring only the existence of an HTTP proxy server. Further, these benefits and advantages can be realized without requiring action on the part of a system administrator with special access privileges (e.g. for modifying server start up configurations, installing
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU59099/99A AU5909999A (en) | 1998-09-03 | 1999-09-03 | Method and apparatus for executing remote procedures in a remote processor from a client process executed in a local processor |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US9902598P | 1998-09-03 | 1998-09-03 | |
US60/099,025 | 1998-09-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2000014620A2 true WO2000014620A2 (en) | 2000-03-16 |
WO2000014620A3 WO2000014620A3 (en) | 2000-06-02 |
Family
ID=22272136
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US1999/020460 WO2000014620A2 (en) | 1998-09-03 | 1999-09-03 | Executing remote procedures in a remote processor from a client process executed in a local processor |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU5909999A (en) |
WO (1) | WO2000014620A2 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003067361A2 (en) * | 2002-02-05 | 2003-08-14 | Eutech Cybernetics Pte Ltd. | Remote application publication and communication system |
US7715326B2 (en) | 2003-08-22 | 2010-05-11 | Eutech Cybernetics Pte. Ltd. | Webserver alternative for increased security |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5828833A (en) * | 1996-08-15 | 1998-10-27 | Electronic Data Systems Corporation | Method and system for allowing remote procedure calls through a network firewall |
US5857191A (en) * | 1996-07-08 | 1999-01-05 | Gradient Technologies, Inc. | Web application server with secure common gateway interface |
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
US5956509A (en) * | 1995-08-18 | 1999-09-21 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
-
1999
- 1999-09-03 AU AU59099/99A patent/AU5909999A/en not_active Abandoned
- 1999-09-03 WO PCT/US1999/020460 patent/WO2000014620A2/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5956509A (en) * | 1995-08-18 | 1999-09-21 | Microsoft Corporation | System and method for performing remote requests with an on-line service network |
US5857191A (en) * | 1996-07-08 | 1999-01-05 | Gradient Technologies, Inc. | Web application server with secure common gateway interface |
US5828833A (en) * | 1996-08-15 | 1998-10-27 | Electronic Data Systems Corporation | Method and system for allowing remote procedure calls through a network firewall |
US5892900A (en) * | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003067361A2 (en) * | 2002-02-05 | 2003-08-14 | Eutech Cybernetics Pte Ltd. | Remote application publication and communication system |
WO2003067361A3 (en) * | 2002-02-05 | 2004-03-18 | Eutech Cybernetics Pte Ltd | Remote application publication and communication system |
US7587459B2 (en) | 2002-02-05 | 2009-09-08 | Eutech Cybernetics | Remote application publication and communication system |
US7715326B2 (en) | 2003-08-22 | 2010-05-11 | Eutech Cybernetics Pte. Ltd. | Webserver alternative for increased security |
Also Published As
Publication number | Publication date |
---|---|
WO2000014620A3 (en) | 2000-06-02 |
AU5909999A (en) | 2000-03-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6757899B2 (en) | Dynamic CORBA gateway for CORBA and non-CORBA clients and services | |
US6542908B1 (en) | Technique for automatically and transparently transforming software components into software components capable of execution in a client/server computing environment | |
US7607128B2 (en) | Method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented programming method calls | |
US6286003B1 (en) | Remote controlling method a network server remote controlled by a terminal and a memory storage medium for HTML files | |
US6904600B1 (en) | Application programming interface to the simple object access protocol | |
US6529936B1 (en) | Object-oriented web server architecture suitable for various types of devices | |
US6874020B1 (en) | System uses application manager and master agent to communicate with mini-agents for remotely managing application resources distributed across multiple Java virtual machines | |
US9183066B2 (en) | Downloadable smart proxies for performing processing associated with a remote procedure call in a distributed system | |
USRE43375E1 (en) | System and method for communications in a distributed computing environment | |
US6832380B1 (en) | Client-server application partitioning with metering technique for distributed computing | |
US8849892B2 (en) | Method and system for brokering messages in a distributed system | |
US6931455B1 (en) | System and method for communications between a CORBA object request broker and a non-CORBA object request broker | |
US6874021B1 (en) | Techniques for configuring network devices with consistent forms for getting and setting device properties | |
US7213236B2 (en) | Method of bridging between .Net and Java | |
US20030070006A1 (en) | Development system providing extensible remoting architecture | |
JP2003533766A (en) | Mechanisms and apparatus for accessing and addressing services in a distributed computing environment | |
JPH11328074A (en) | Communication method for data change of web resource | |
JP2005339536A (en) | System and method for managing connection between server and client node | |
KR20030060884A (en) | Web os and web desktop | |
US20020046304A1 (en) | Dynamic class loading | |
WO2000014620A2 (en) | Executing remote procedures in a remote processor from a client process executed in a local processor | |
JP2002505463A (en) | Downloadable smart proxy for processing related to remote processing calls in distributed systems | |
US20020169879A1 (en) | Method and apparatus for firewall-evading stealth protocol | |
US7870275B1 (en) | Communication scheme-independent infrastructure | |
Jacob | Service discovery: Access to local resources in a nomadic environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CR CU CZ DE DK DM EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
WWE | Wipo information: entry into national phase |
Ref document number: 09786286 Country of ref document: US |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase |