摘要:
A system consistent with the present invention enables a program in a distributed system to determine whether downloaded code is trustworthy before using the downloaded code to communicate with other programs or services in the distributed system. A client that downloads proxy code from a service can verify that both the service and the downloaded code are trustworthy before using the code to communicate with the service. “Trustworthy” code is code the client knows will enforce the client's security constraints in communicating with the service, e.g., mutual authentication, confidentiality, and integrity.
摘要:
A distributed computer system uses a single interface at the client site to handle calls to call both active and passive remote objects. Accordingly, the calling process does not need to be aware of distinctions between active and passive objects. Further, remote objects are aggregated into common groups of objects, thereby providing greater security between objects of disparate groups and efficiency between related objects of the same group. Preferably, different groups are run on different Java virtual machines.
摘要:
Systems and methods for providing a development and deployment platform for Software as a Service (SaaS) providers are disclosed. The platform may provide an application programming interface (API) through which customers may configure virtualized grids of language-level virtual machines (VMs), networks, and storage resources. A grid may be horizontally scalable and programmatically configurable by a customer and/or customer code. The platform may allow dynamic scaling of resources (up and down) to match changing demands, by allowing customers and/or customer code to programmatically alter their own system level structure at runtime, through the API. The grid may be accessed by both on-grid and off-grid processes, through internal and external connectivity resources provided by the platform. The platform may provide common utilities for end-user services, deployment operations, and development tasks (e.g., debugging), and may include frameworks and macro-components (e.g. web servers). The platform may host long-running Internet-based services and/or one-shot computational services.
摘要:
A method and system is provided to uniquely identify a remote method to invoke on a server using a hash value computed from the method signature sent from the client to the server with the call request. When a client wishes to invoke a remote method located on a server, the client sends a hash value identifying the remote method to the server in the "remote method invocation" (RMI) call. In one implementation, this hash value is created by applying a hash function to the method string name and the parameter type list and possibly the return type. When the server receives the RMI call, the server identifies which method is being called using the received hash value. The server maintains a mapping of hash values to their associated remote methods located on the server and references the correct method using the hash value. Additionally, in one implementation, the server creates the mapping table dynamically when a remote object is created. The server identifies the methods implemented by the object and creates hash values for each method. These hash values are stored in a mapping table which is used to reference the remote methods.
摘要:
Systems and methods for providing a development and deployment platform for Software as a Service (SaaS) providers are disclosed. The platform may provide an application programming interface (API) through which customers may configure virtualized grids of language-level virtual machines (VMs), networks, and storage resources. A grid may be horizontally scalable and programmatically configurable by a customer and/or customer code. The platform may allow dynamic scaling of resources (up and down) to match changing demands, by allowing customers and/or customer code to programmatically alter their own system level structure at runtime, through the API. The grid may be accessed by both on-grid and off-grid processes, through internal and external connectivity resources provided by the platform. The platform may provide common utilities for end-user services, deployment operations, and development tasks (e.g., debugging), and may include frameworks and macro-components (e.g. web servers). The platform may host long-running Internet-based services and/or one-shot computational services.
摘要:
In an object-oriented data processing system, methods and systems in accordance with the present invention provide a proxy class dynamically generated at runtime that implements a list of interfaces specified at runtime such that a method invocation through an interface on an instance of the class is encoded and dispatched uniformly to an object that performs the invocation of the requested method. The generation of the proxy class at runtime and the specification at runtime of the list of interfaces implemented by the proxy class allow the interfaces to be used to be chosen at runtime before generation of the proxy class. Since the proxy class does not need to be created before compile time, the interface list implemented by the proxy class does not need to be known at the time the source code is written.
摘要:
A method and system is provided to uniquely identify a remote method to invoke on a server using a hash value computed from the method signature sent from the client to the server with the call request. When a client wishes to invoke a remote method located on a server, the client sends a hash value identifying the remote method to the server in the “remote method invocation” (RMI) call. In one implementation, this hash value is created by applying a hash function to the method string name and the parameter type list and possibly the return type. When the server receives the RMI call, the server identifies which method is being called using the received hash value. The server maintains a mapping of hash values to their associated remote methods located on the server and references the correct method using the hash value. Additionally, in one implementation, the server creates the mapping table dynamically when a remote object is created. The server identifies the methods implemented by the object and creates hash values for each method. These hash values are stored in a mapping table which is used to reference the remote methods.
摘要:
A method and system for transmitting objects in an object-oriented distributed system allows the reconstruction of objects and downloading of code associated with such object reconstruction to be deferred until it is needed by a program. The deferred reconstruction is accomplished by using a Java object called a “marshalled object,” which is a self-describing stream and which is a first-class entity in the system, meaning that it exists within a type system of a programming language and can be accessed and manipulated by instructions written in that language. Such an object can typically be produced by any object that can be passed from one address space to another, and it can be stored, passed to other objects, or used to reconstruct an object of the original type on demand. The reconstruction of an object is deferred until the code holding a marshalled object directly calls the creation of the object using the marshalled object. Any downloading of code is also deferred until the marshalled object is used to create a copy of the original object.
摘要:
A homogeneous execution environment operates within a heterogeneous client-server network. A client selects a server and transmits a procedure call with parameters. In response, the system dynamically and securely downloads code to a compute server; invokes a generic compute method; executes the code on the compute server; and returns the results to the calling client method, preserving the result on the compute server if requested. This technique is efficient in that it does not require multiple copies of code to be downloaded or compiled since server byte-codes can be executed on each of the different systems. The code can be compiled once and downloaded as needed to the various servers as byte-codes and then executed.
摘要:
Downloading code for communicating with a device that joins a network. When the device joins the network, it transmits a multicast packet including a reference to code for use in communicating with the device. Receivers in the network use the reference to download the code for constructing objects to communicate with the device, and the receivers respond with a reference to a lookup service in the network. Using the reference from the receivers, the device registers with the lookup service.