Patent ID: 7062542

Claim:
A component-based distributed software system, the system comprising one or more computer systems each comprising one or more processing units and one or more memory units, the system comprising: a first container comprising: at least one server component capable of having a client-server relationship with one or more client components; one or more server objects having associated data and capable of being supported by the at least one server object; and one or more client components which are local to the at least one server component; wherein the first container is capable of containing more than one server component, more then one server object, and more than one client component; and a second container comprising at least one proxy component, one or more proxy objects capable of being supported by the at least one server object, and one or more client components capable of having a client-server relationship with one or more server components, the one or more client components are remote and distributed from the at least one server component, wherein the second container is capable of containing more than one proxy component, more than one proxy object, and more than one client component, and operable to: access data associated with one or more of the server objects such that whether the server component is local to or remote from the client component is substantially transparent to the client component; if the server component is local to the client component, in order to access server object data, execute data access operations optimized for local communications; and if the server component is remote from the client component, in order to access server object data, access at least one proxy component that is: within the second container; supporting one or more proxy objects each providing a local version of a corresponding server object: and operable to: provide the client component with access to data associated with a proxy object in response to the client component requesting data associated with the corresponding server object; execute data access operations optimized for remote communications to access data associated with the corresponding server object; and substantially immediately reflect all changes to data associated with the proxy objects back to data associated with the corresponding server objects.