CA2210755C - Creating proxies for distribution of beans and event objects - Google Patents

Creating proxies for distribution of beans and event objects Download PDF

Info

Publication number
CA2210755C
CA2210755C CA002210755A CA2210755A CA2210755C CA 2210755 C CA2210755 C CA 2210755C CA 002210755 A CA002210755 A CA 002210755A CA 2210755 A CA2210755 A CA 2210755A CA 2210755 C CA2210755 C CA 2210755C
Authority
CA
Canada
Prior art keywords
proxy
server
event
state information
server object
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.)
Expired - Fee Related
Application number
CA002210755A
Other languages
French (fr)
Other versions
CA2210755A1 (en
Inventor
Paul Kwong-Hung Yu
Victor S. Chan
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.)
IBM Canada Ltd
Original Assignee
IBM Canada Ltd
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
Application filed by IBM Canada Ltd filed Critical IBM Canada Ltd
Priority to CA002210755A priority Critical patent/CA2210755C/en
Priority to US09/116,836 priority patent/US6230160B1/en
Publication of CA2210755A1 publication Critical patent/CA2210755A1/en
Application granted granted Critical
Publication of CA2210755C publication Critical patent/CA2210755C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99943Generating database or data structure, e.g. via user interface
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • Y10S707/99946Object-oriented database structure network

Abstract

The invention provides a mechanism for distributing objects from a object oriented framework that permits method invocation and state information notification, such as event notification in a JavaBeans software component model. A code generation tool generates code from an existing server object that contains only application domain specific logic, to support deployment of the server object on a remote machine in a distributed application. The generated code includes a proxy class to reside locally with a client program that might invoke methods on the server object or receive notification of state information (events) from the server object, and a proxy class to be remotely deployed with the server object. The proxies created provide all the middleware specific logics. More importantly, the proxy on the client side contains all of the public methods, properties and event interfaces of the server object, so that a client program using this proxy can invoke the server object's methods and register to receive notification of state information on the proxy as if it were interacting locally with the server object. A proxy on the server side communicates the client program's method invocations and registrations to receive event notifications to the server object as if this proxy were a local client.
When an event notification is issued by the server object, it is received by the proxy on the client side which transmits the notification through the middleware of the distributed application to the proxy on the client side. The proxy on the client side overrides the identification of the source of the notification, substituting itself, to receive any requests for data on the state information from the client program, but then delegates such requests to the object containing the state information to be fulfilled.

Description

CA 022107~ 1997-07-17 CREATING PROXIES FOR DISTRIBUTED BEANS AND EVENT OBJECTS

Field Of The Invention This invention relates generally to the development of distributed applications, and in particular, provides a tool for ge~ .ng distributed middleware for use in a platform independent pro~ " " "ing environment, such as JavaTM.

Background Of The Invention Object oriented (OO) technology is based on the notions of"object" and "class inheritance". An object is a reusable software package that is an instance of a class. The class provides the definition for a set of operations that can be performed on the object and other objects that are instances of the 10 same class. Classes can be related to one another by inheritance, and the properties, behaviours, data and operations of a parent or "base" class (a class without member objects), may be inherited with or without modification in the derived class under the control of a programmer.

Java is one of the newest OO l~n~ges. Partially pre-compiled Java code, in the form of bytecode, 15 can be run in the Java virtual machine. Bytecode has been found to be particularly suitable for network trancmi~.cion. Thus, Java is seen as a primary environment for developing Internet applications, that is, applications referenced on web pages and intended to be down loaded and run at a remote computer.

20 Sun Microsystems, Inc., the originator of the Java progl;~ il-g l~n~ge, has developed a Java operating system and development environment (the Java Developer Kit). Emph~ci7ing the code reusability aspects of OO pro~"",l;l~g7 Sun has also developed a software component model, which it refers to as JavaBeansTM. According to the Sun JavaBean tutorial "Using the Beans Development Kit 1.0" (February 1997), a "bean" is a Java class which adheres to certain property and event 25 interface conventions. Properties are the public attributes of a class. Conceptually, events are a CA 022107~ 1997-07-17 me~h~niem for propagating state change notifications between a source object and one or more target objects that have registered with the source object as "listeners" of occurrences of the event. For example, the event scheme of JavaBeans could be used to notify several client beans when the state of certain data is rh~nged in a d~t~haee This notification could be used to trigger method invocations 5 by some of the listening clients.

The design of bean interfaces, properties, access methods to properties and events are set out in Sun's JavaBean 1.0 API Specification. The JavaBean software model includes a service called "introspection" that allows beans to be inspected at a low level to determine the class content and, 10 at a high level, to define the properties, methods and events in the class. Introspection operates using the naming conventions required in the specification for progli1."l~ g beans. Thus, classes programmed following the JavaBeans design pattern will provide enough information in a JavaBeans framework to describe what the bean contains and how to use it.

15 The JavaBeans software component model allows beans to interact with one another in the manner described in greater detail below. Beans may be manipulated in a visual builder tool and composed together into applications.

As tliecl~ssed in U.S. Patent No. 5,457,797 titled "Flexible Multi-Platform Partitioning For Computer 20 Applications" of Forte Software Inc., the dual trends in computer development of placing increasingly powerful processors in workstations in personal computers (PCS) coupled with rapidly improving connectivity has permitted the development of distributed applications. Distributed applications refers to the paradigm in which software elements that must cooperate to fulfil the purpose of an application or have completed a transaction spread over multiple parallel processors. One advantage of this is 25 that applications requiring substantial support from other applications can be run over a network of linked workstations or PCS, each with modest memory and processing capacity, rather than requiring a very large computer to run the application and all of its dependencies. The advantages of distributing applications is also riie~lesed in Canadian Patent Application Serial No. 2,165,893, titled CA 022107~ 1997-07-17 "Visual Application Partitioning for Creating Distributed Object Oriented Applications", which is commonly assigned (IBM Docket No. CA9-95-014).

Distribution, then, is the process of creating a remote access mechanism for a program object where 5 some or all ofthe functions and characteristics of the original object are made available remotely on another machine in a separate program. Both the Forte patent and the earlier IBM application discuss schemes for effecting application partitioning. In the IBM application, a visual partitioning tool permits the user to design the distribution schema and select the middleware properties for each distributed connection. The tool then generates the client and server stubs for all of the distributed 10 connections represented in the distribution schema.

Another way to lepl~sell~ remote objects locally is through the use of "proxies". An early approach to the use of proxies is found M. Shapiro, "Structure and Encapsulation of Distributed System: The Proxy Principle", procee(lin3~s of Six International Conference of Distributed Computer Systems, May 1986, Pages 198-204, where proxies are described as being ofthe nature of"stubs" introduced as interfaces between clients and services.

In object oriented technology, proxies are often used to enable access to remote objects transparently, so that the interface of the proxy accessible to the client is indistinglli.c~h~ble from a similar interface 20 of the actual implementation. This "local-remote transparency" allows the use of a consistent proC~""";l~g style in the client, and permits common code to deal with both local and remote objects.
IBM's DSOM and IONA Orbix which COI~llll to the Object Management Group's Common Object Request Broker Architecture, CORBA, are examples ofthis use of proxies. These environments also offer symmetry in that a mixture of implementation in proxies can exist on both side of a remote 25 connection. The use of proxies enables the support of complex interfaces involving complicated data types, exceptions, and inheritance.

Just as it may be desirable to distribute large non-Java applications over several servers, the same is CA 022107~ 1997-07-17 becoming increasingly important in platform independent progl;."~l"ing environments like Java, as users think of these environments more and more as productive working environments.

However, the current JavaBeans component model does not address component distribution. Rather, 5 it is a user's choice to distribute bean functions using the existing object distribution protocols. The object distribution protocol developed by Sun for use in the Java environment is a communications support utility with a remote call paradigm called remote method invocation (RMI). RMI is a service provided as part of the Java Development Kit version 1.1.1. It allows methods in Java objects be invoked from another Java program running in a machine process across a network. It is a similar 10 paradigm to remote procedure calls (RPCs) used in the distributed computing environment (DCE) of the Open Software Foundation. A full description of RPC technology can be found in "Introduction to OSFlM DCE", 1992, of Open Software Foundation.

The difficulty with RMI is that the user must define the interfaces for the client and server stubs. It 15 can be quite difflcult to se~llcAA'y integrate distribution-specific code, often called middleware, with the non-distributed, application-specific code typically contained in a bean. Application writers are usually familiar with specific application domains, and they specifically do not want to mix the distribution logics and application domains specific logics together.

20 Summary Of The Invention It is therefore an object of the present invention to provide a mechanism for distributing applications comprised of JavaBean components, or software components of other platform independent progli1""";"csJ environments, which still leaves access to the methods, properties and events in a given bean.
It is also an object of the invention to provide a code generation tool that takes a bean, a software component co~l~ailiil~g only application domains specific logic, and generate approp.iate middleware proxies for use of the bean in a distributed application.

CA 022107~ 1997-07-17 Therefore, the present invention is directed to a mechanism for use in a distributed object oriented prog~ ",ing environment, to provide access to a server object in a first domain co~ ing domain-specific logic for remote method invocations and state information notifications. The mechanism consists of a first proxy located in the first domain having middleware-specific logic to 5 transmit and receive method invocations and state information notifications over the distributed environment, and an interface to interact with the server object as a local client program, a second proxy located in a remote domain with a client program, the second proxy having middleware-specific logic to transmit method invocations and receive state information notifications over the distributed environment, and having an interface to interact with the client program as a local server object, 10 means to instantiate a proxy object in the second proxy for an instance of state information notification received from the server object through the first proxy and the middleware, said proxy object identifying the second proxy as source of the instance of state information notification, and means to transmit the proxy object to the client program.

15 Preferably, the second proxy has interfaces identical to interfaces in the server object, so that the client program will interact with the second proxy as a local copy of the server object.

The invention also provides a code generation tool for generating proxy classes from a domains-specific server object for remote method invocation on the server object and communication 20 of state inru-llla~ion from the server object over a distributed object oriented application. The code generation tool is adapted to generate an event proxy for each item of state information communicable by the server object, a first proxy for deployment with the server object and adapted to provide a comm-lniç~tion interface for method invocations from remote clients on the server object and for state information communications from the server object to communications middleware in 25 the distributed object oriented application, and a second proxy for deployment with a client program remotely from the server object. The second proxy is adapted to:
(a) provide a communications interface for method invocations on remote servers from the client program to the communications middleware, CA 022107~ 1997-07-17 (b) in.~t~nti~te an event proxy object from the event proxy for each item of state information communicated from the server object through the first proxy, and (c) communicating the event proxy object to the client program.

5 Pl er~, ~ly, the code generation tool is adapted to generate the event proxy as further including means to create a delegation service from the event proxy object in~t~nti~ted by the second proxy to the item of state information, so that data on the state information item requested by the client program can be retrieved.

1 0 Drawings Embodiments of the invention will now be described in detail in association with the following drawing, in which:
Figure lA schlorn~tic~lly illustrates method invocation and event notification between "beans"
(Java classes) in a non-distributed application;
Figure lB is a flow diagram setting out the steps for event notification between non-distributed beans, as illustrated in Figure lA;
Figure 2A is a view similar to Figure 1 A, that schematically illustrates method invocation and event notification between beans in a distributed application, according to the invention;
Figure 2B is a flow diagram setting out the steps for event notification between the distributed beans shown in Figure 2A, according to the invention;
Figure 3 schematically illustrates the prere" ed embodiment of the invention implemented in association with the Java RMI communication services;
Figure 4A is a screen view in a visual builder listing the methods, properties and events in a server "bean" that is the source of events; and Figure 4B is a view in a visual builder listing the methods, properties and events in a client-side-server-proxy for the bean of Figure 4A generated by a code generation tool, according to the pl ~rel I ~d embodiment of the invention.

CA 022 107,, 1997 - 07 - 17 Detailed Description Of The Preferred Embodiments As ~i~c~ ed above, beans are Java classes that follow the design pattern set out in the JavaBean 1.0 API Specification for naming objects and interfaces in the class. Figures lA and lB are based on the convention for pro~.-",-;"g events and listener registration provided in the JavaBeans specification.

Figure lA shows a non-distributed application 2, that is, an application in which all ofthe software components reside on a single process. The client and server beans 4 and 6 are instances of object oriented classes (in Java). The client bean 4 can invoke a method on a server bean 6 in the usual way.
In addition, the server bean 6 can in~t~nti~te event objects 10 in response to event triggers 8 represent 10 some change in state ;~ ion. The in.ct~nti~ted event object 10 contains the state information that a user may want to pass from the server bean 6 to one or more target client beans 4. Figure 1 B sets out the steps of the event notification scheme in this local environment.

The client bean in(iic~tes to the server bean that it is interested in an event by registration (block 12), 15 that is by implementing a "listener" interface. In a JavaBeans framework, this is done by calling the "add<EventClassName> Listener" method. Client's registration as a listener of an event is done some time before the event is triggered for the listener to receive event notification.

After an event trigger is received at the server bean (block 14) and the server bean determines that 20 an event object should be "fired", the server bean in~t~nti~tes the event object (block 16). The event object is defined by the "EventClassName" referred to above. The event includes an identification of the server bean that in~t~nti~ted and fired it, "Event[SRC]", so that the client bean that receives the event object can identify the source of the event.

25 The server bean "fires events" by invoking listener methods in the registered client bean (block 18).
The event is now passed to the client bean (block 20) since the client bean implements the methods defined in the event's listener interface.

CA 022107~ 1997-07-17 Figure 2A illustrates, abstractly, the manner in which the client and server beans can be distributed, according to the invention. In creating a distributed application, the user typically wants to access methods and events of a server bean 38 as if the server bean were local, from a Java client bean 30 running on a di~e~ machine. In its preferred embodiment, the invention provides an environment 5 in which the processing of JavaBeans events follow the design pattern described in the JavaBeans specification over a cross-machine environment where listeners of events are located in another process space across a network. According to the invention, this is accomplished by recreating the interfaces and events generated by the remote server process, inside the client process. Such a model frees the programmer from having to know how to work with the middleware specific code.
In the pl~relled embodiment, a code generation tool implemented for a Java progli."""illg environment is provided to generate all necessary "interfaces" to permit a distributed application to be created. The input to the code generator is the server bean which has been written by the user for the purpose of solving some user specific problem. The output is a number of proxy classes which 15 permit the local li~tPning and event firing activities, as well as method invocation, between the client and server beans to be emulated over a distributed environment.

Under the JavaBean progli"""~ g model, the server bean has a method interface through which services can be made by invoking those methods. However, the use of any bean in its original form 20 is limited to the single system where the bean is il,~ led and executed. The code generator makes use of the Java Introspection APIs to query interface information of the server bean. Knowing what public methods and events the server bean provides, the code generator generates:
1. a client-side-server-proxy;
2. a server-side-server-proxy; and 25 3. an event proxy for each event in the server bean.

Other interfaces and classes generated to support these three key classes will be obvious to the person skilled in the art from reviewing the remainder of this disclosure and accompanying drawings. The CA 022107~ 1997-07-17 plt;re~led embodiment discussed herein relates to supporting interfaces and classes in the Java pro~ i1. "" ,il-g em~il unlllelll with RMI middleware. The di~l t;lll requirements for other progl ain~ g environments with method invocation and state information notification mech~ni.cm~ will be obvious to those skilled in the art.

The client-side-server-proxy is a representation of the server bean that will continue to exist on the client side once the server bean is remotely distributed, and will be used in method access and event generation activities. These activities will appear to be carried out locally, but will actually be carried out remotely on the server system. In essence, the client-side-server-proxy and its supporting code 10 (~ .ced below) acts as a bridge between a client Java bean and the server bean without requiring the user to know how to use the communication services running between the di~elelll computer systems.

In order to create the client-side-server-proxy, the following interface information is analysed from 15 the server bean and used in producing the client-side-server-proxy and its supporting classes:

(i) All public methods provided by the server bean. For each public method found in the server bean, an identical method will be found in the client-side-server-proxy so that client bean can access the client-side-server-proxy as if it is the server bean itself; and (ii) Events ge"~ ed by the server bean. All event listeners that the server bean may interact with are identified through the analysis of the server bean interface and all event objects that can be produced by the server bean are noted by the code generator. This information is also used in generating the event proxy class for each identified event.
The client-side-server-proxy also contains the distribution classes required to distribute the server bean over the given middleware or communication mechanism. In the case of the prerelled embodiment, this communication mechanism is the Java RMI services.

CA 022 107.,., 1997 - 07 - 17 The event proxy is a sub-class of the corresponding event, and it will have all the public event methods found on the original event for access by clients. It is used in the client-side-server-proxy for i~ g an event proxy object when an event associated with the event object must be passed to the client bean.

The server-side-server-proxy is generated independently of the client-side-server-proxy, when the analysis of the server bean is complete. It is a companion class to the client-side-server-proxy that will act as a generic listener on the server side for all events fired by the server bean once the server bean has been deployed remotely. The server-side-server-proxy is to be in.ct~nti~tecl in place of the 10 server bean when server system communication services have been started, but before the client-side-server-proxy is put to use in client applications.

Once the client-side-server-proxy has been generated and used to create the Java client program or bean, the application specific server bean can be deployed as a server bean on a remote server, where 15 it will be instantiated by way of inst~nti~tin~ the server-side-server-proxy, and create event objects in the normal manner, as required, to fulfill methods invoked on it.

Figure 2A illustrates the deployed software components in a distributed application 24 which includes a client process 26 and a separate (distributed) server process 28. The client bean 30 invokes 20 methods and registers as a listener of events with a client-side-server-proxy 32 which is generated to include the interfaces of the remote server bean 38, such as the add and remove event listener interfaces, while executing in the client's process space 26. The server bean 38 is unchanged in its logic, and is located on the server side along with a server-side-server-proxy 36 which is generated to act as the event listener (in place of the client bean 30) for the events 40 generated by the server 25 bean 38. On an event occurrence for which the client bean 30 is registered, the two proxies, the client-side-server-proxy 32 and the server-side-server proxy 34, cooperate to create the event in the client side and to transparently handle the communications interfaces. This is illustrated following the steps set out in the flow diagram of Figure 2B.

CA 022 107.,., 1997 - 07 - 17 In order for a client bean to register its interest in an event of a remote server bean event, the client bean registers itself as a listener of the event with the client-side-server-proxy (block 50). The client-side-server-proxy delegates this interest to the server bean via the server-side-server-proxy (block 52). This causes the server-side-server-proxy to become a registered listener for the event 5 in the server bean event (block 54), so that when events are fired by the server bean, the server-side-server-proxy will be notified and, in turn, the client-side-server-proxy will be passed the event object.

Thus, when an event is triggered (block 56) and the server bean in~t~nti~tes the event object (block 58), the server bean invokes the server-side-server-proxy (block 60) and passes to it the event object 10 (block 62). The event object is "streamed", that is copied, from the server-side-server-proxy to the client-side-server-proxy (block 64).

The listener registration and event firing schemes described above exploit RMI Callback protocols so that the asynchronous nature of the JavaBeans events are preserved.
When the client-side-server-proxy receives the event object invocation, it inst~nti~tes an event proxy object through the event proxy class for that event (block 66). The event proxy object has its event source in the client-side-server-proxy, and the sole purpose of the event proxy object is to introduce this override in the event source information so that the client bean identifies the proxy on the client 20 side ofthe distributed application as the source ofthe event for future calls. The event proxy object contains no data and uses a delegation scheme to interact with the event object in order to permit the serverbean's event state information to be retrieved through the event object's accessors methods.
This delegation is schematically illustrated in Figure 2A.

25 The client-side-server-proxy invokes the client bean (block 68 of Figure 2B) and passes to it the event proxy object (block 70).

Upon completion of event processing on the client side of the application, control is returned to the CA 022107~ 1997-07-17 server bean (block 72).

Figure 3 shows a specific impl~ ion ofthe remote access scheme of Figures 2A and 2B in a Java environment distributed over the Internet and supported by the RMI communications services.

In Figure 3, the client-side machine and the objects residing on it are generally design~ted by 100, while the server-side machine and objects residing on it are generally desi~n~ted by 200.

The form ofthe client machine 100 is a browser environment 102 that permits Internet access. For example, the location ofthe server m~c.hine 200 can be easily ascertained through a hypertext (HTTP) link to web server 202.

Within the client-side browser environment 102 is the local program or applet 104 and the Java Support 106 providing communications support services. The communication support services in the Java Support 106 include the RMI service support library 122, which is provides the RMI
runtime support, and the TCP/IP transport support mechanism 124.

The applet 104 contains a client object 108 which includes a graphical user interface (GUI) component, a client-side-server-proxy 110 and the interfaces required to support remote event creation in this environment.

This is mirrored in the server machine 200 by the Remote Object Instance Manager 204 cont~ining a server bean 210, server-side-server-proxy 216 and other interfaces supporting the distributed environment, and the Java Support 206. Like its counterpart on the client side 106, the Java Support 206 on the server side contains a the RMI service support library 226 and the TCP/IP transport meçh~ni~m 228.

Using a code generator of the type described above, the client-side-server-proxy 110 on the client CA 022107=7=7 1997-07-17 machine 100 side has been generated for execution in any Java execution environment that provides the RMI services. The name of this proxy is supplied by the tool user. It includes the server bean method interface 114, which is a copy ofthe server object method interface 214 in the server bean 210, and from which the behaviour and services ofthe server bean 210 can be accessed and modelled 5 remotely over a network.

Figure 4A is a window view from a visual building tool listing the methods, properties and events programmed for a server bean of the type di~cllssed herein. Figure 4B is the same type of view of the list of methods, properties and events of a client-side-server-proxy generated from the server bean 10 by the code generator of the pr~rel l ed embodiment. As can be seen by comparing the content the lefthand column titled "Method" in each Figure, the proxy class encapsulates all of the methods of its original bean class, and adds additional methods, such as "Get RMI Registry port setting" to specifically support remote access for a client to the original bean.

15 The client-side-server-proxy contains all the public methods defined by the server bean, as shown by comparing the middle column titled "Property" in Figures 4A and 4B. These lists are identical.

Additionally, if the original server bean produces Java events, the client-side-server-proxy will produce events in much the same way, as shown in the right hand columns titled "Events" in Figures 20 4A and 4B. These lists are again are identical.

The server-side-server-proxy 216 has the same name as the client-side-server-proxy 110 except that a suffix "S" is appended. This is a Java class that supports the function needed by the client-side-server-proxy 110 in the server machine. Specifically, the server-side-server-proxy 216 25 wraps a layer of communication protocol over top the server bean 210 such that the client-side-server-proxy 110 can access the server bean 210 through the server-side-server-proxy 216 using the Java RMI services for method invocation, to register the client bean 108 as a listener of events in the server bean 210 and to receive event notifications.

CA 022107~ 1997-07-17 To optimize code size and promote code reuse, the client-side-server-proxy makes use of the RMI
Access Builder Run Time class library 118.

The interface ofthe server-side-server-proxy (not shown) takes the Java bean proxy 110 name as the root name followed by a suffix "If". This interface is generated such that the proxies generated can use the Java RMI services to carry out the remote communication over a network. The interface defines what server bean public methods are made acces~;l,lc through the client-side-server-proxy 110 and by way of the server-side-server-proxy.

The RMI Access Builder Run Tim 222 class library is used by the server-side-server-proxy to reduce the amount of generated code by promoting code re use.

Client-side-server-proxy RMI interfaces (not shown) are only generated when the server bean 210 is a producer of Java events. The name of this interface is produced by concatenating the name of the client-side-server-proxy 110 and the suffix "RmiIf ' .

The Remote Object Instance Manager 208 is a generic object instance manager for server-side-server proxies generated by the subject code generation tool. At execution time, server beans may need to provide long running services. Consequently, in the prerelled embodiment, the Server-side-server-proxy 216 is in~t~nti~ted in a long running process, such as the Remote Object Instance Manager 208.
The server bean 210 is then inst~nti~ted by the server-side-server-proxy 216 which creates a long-running instance of the server bean 210.

Since events flow from the server bean 210 back to the using client bean 108 through the client-side-server-proxy 110, the client-side-server-proxy 110 will need to identify itself as an event source.

When the server bean is an event producer, the generated client-side-server-proxy 110 will also be CA 022107~ 1997-07-17 an event producer. For each event type produced by the server bean 210, a corresponding event proxy type (not shown) is generated by the code generator for use by the client-side-server-proxy 110. For every event object sent by the server bean, a corresponding event proxy object will be gen~ ed and sent by the client-side-server-proxy back to the listeners for the event on that system, 5 in~ 1ing the client bean 108. State information saved in the event generated by the server bean can be retrieved through the event proxy object via method invocations in the same way as if the event proxy object is the event object itself.

The Java RMI service and the RMI Registry 224 that are provided as part of the Java execution 10 environment provides the foundation for all remote network communication required by the client-side-server-proxy 110 and its supporting classes. Java RMI service tools will need to be used on the generated code to further generate the so called "Stub" 116 and "Skeleton" 218 classes to facilitate communication. These are described in detail in JavaBeans Remote Method Invocation Specification.
The following limitation should be observed in the environment of the pr~relled embodiment, that is, the Java RMI. In general, server objects may reside as instances on di~relenl server machines.
However, because of security constraints imposed by the RMI protocol, an applet can only access server object instances running on the host from which the applet code is downloaded. In addition, failure of the RMI Callback due to security constraints will affect proper functioning of the event proxy distribution position.

Modifications to the invention which would be obvious to the person skilled in the art are intended to be covered in the scope of the appended claims.

Claims (6)

1. In a distributed object oriented programming environment, a mechanism to provide access to a server object in a first domain containing domain-specific logic for remote method invocations and state information notifications, comprising:
a first proxy located in the first domain having middleware-specific logic to transmit and receive method invocations and state information notifications over the distributed environment, and an interface to interact with the server object as a local client program;
a second proxy located in a remote domain with a client program, the second proxy having middleware-specific logic to transmit method invocations and receive state information notifications over the distributed environment, and having an interface to interact with the client program as a local server object, means to instantiate a proxy object in the second proxy for an instance of state information notification received from the server object through the first proxy and the middleware, said proxy object identifying the second proxy as source of the instance of state information notification; and means to transmit the proxy object to the client program.
2. The mechanism, according to claim 1, wherein the second proxy has interfaces identical to interfaces in the server object, whereby the client program interacts with the second proxy as a local copy of the server object.
3. The mechanism, according to claim 1, wherein the means to instantiate the proxy object further include means to generate a delegate in the proxy object to the instance of state information, whereby the proxy object provides an interface for requests from the client program for data on the instance and responses from the instance to said requests.
4. A code generation tool for generating proxy classes from a domains-specific server object for remote method invocation on the server object and communication of state information from the server object over a distributed object oriented application, the code generation tool being adapted to generate:
an event proxy for each item of state information communicable by the server object;
a first proxy for deployment with the server object and adapted to provide a communication interface for method invocations from remote clients on the server object and for state information communications from the server object to communications middleware in the distributed object oriented application; and a second proxy for deployment with a client program remotely from the server object, and adapted to:
(a) provide a communications interface for method invocations on remote servers from the client program to the communications middleware, (b) instantiate an event proxy object from the event proxy for each item of state information communicated from the server object through the first proxy, and (c) communicating the event proxy object to the client program.
5. The code generation tool, according to claim 4, adapted to generate the event proxy as further including means to create a delegation service from the event proxy object instantiated by the second proxy to the item of state information, whereby data on the state information item requested by the client program can be retrieved.
6. The code generation tool, according to claim 4, adapted to generate the second proxy with interfaces identical to the server object.
CA002210755A 1997-07-17 1997-07-17 Creating proxies for distribution of beans and event objects Expired - Fee Related CA2210755C (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CA002210755A CA2210755C (en) 1997-07-17 1997-07-17 Creating proxies for distribution of beans and event objects
US09/116,836 US6230160B1 (en) 1997-07-17 1998-07-16 Creating proxies for distributed beans and event objects

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CA002210755A CA2210755C (en) 1997-07-17 1997-07-17 Creating proxies for distribution of beans and event objects

Publications (2)

Publication Number Publication Date
CA2210755A1 CA2210755A1 (en) 1999-01-17
CA2210755C true CA2210755C (en) 2003-12-23

Family

ID=4161079

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002210755A Expired - Fee Related CA2210755C (en) 1997-07-17 1997-07-17 Creating proxies for distribution of beans and event objects

Country Status (2)

Country Link
US (1) US6230160B1 (en)
CA (1) CA2210755C (en)

Families Citing this family (142)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438614B2 (en) * 1998-02-26 2002-08-20 Sun Microsystems, Inc. Polymorphic token based control
EP0915419A3 (en) * 1997-10-06 2003-11-12 Sun Microsystems, Inc. Remote object access
US6971109B1 (en) * 1998-07-24 2005-11-29 Micron Technology, Inc. Integrated application management system
US6385661B1 (en) 1998-10-19 2002-05-07 Recursion Software, Inc. System and method for dynamic generation of remote proxies
US6993774B1 (en) * 1998-10-19 2006-01-31 Recursion Software, Inc. System and method for remote enabling classes without interfaces
CA2255035C (en) * 1998-11-30 2002-01-29 Victor Shih-Chuan Chan Archiving tool
US6687831B1 (en) * 1999-04-29 2004-02-03 International Business Machines Corporation Method and apparatus for multiple security service enablement in a data processing system
US6804818B1 (en) * 1999-04-29 2004-10-12 International Business Machines Corporation Integration mechanism for object-oriented software and message-oriented software
US7030863B2 (en) 2000-05-26 2006-04-18 America Online, Incorporated Virtual keyboard system with automatic correction
US7286115B2 (en) 2000-05-26 2007-10-23 Tegic Communications, Inc. Directional input system with automatic correction
US6857015B1 (en) * 1999-06-14 2005-02-15 Wind River International, Ltd. Method and system for remotely observing and controlling objects
US6523027B1 (en) * 1999-07-30 2003-02-18 Accenture Llp Interfacing servers in a Java based e-commerce architecture
US7100195B1 (en) 1999-07-30 2006-08-29 Accenture Llp Managing user information on an e-commerce system
US6704873B1 (en) 1999-07-30 2004-03-09 Accenture Llp Secure gateway interconnection in an e-commerce based environment
US6718535B1 (en) 1999-07-30 2004-04-06 Accenture Llp System, method and article of manufacture for an activity framework design in an e-commerce based environment
US7150000B1 (en) * 1999-08-17 2006-12-12 Nash Controlware, Inc. Component development with autonomous and compiled components to implement and consume services with components operate in edit and run mode
US6502104B2 (en) * 1999-11-08 2002-12-31 International Business Machines Corporation System message objects for communicating between an application and a database management system
US6539383B2 (en) * 1999-11-08 2003-03-25 International Business Machines Corporation Communication and interaction objects for connecting an application to a database management system
US6947965B2 (en) 1999-11-30 2005-09-20 Recursion Software, Inc. System and method for communications in a distributed computing environment
US6678743B1 (en) 1999-11-30 2004-01-13 Recursion Software, Inc. Method for moving objects in a distributed computing environment
US6622175B1 (en) * 1999-11-30 2003-09-16 Recursion Software, Inc. System and method for communications in a distributed processing environment
US6714978B1 (en) 1999-12-04 2004-03-30 Worldcom, Inc. Method and system for processing records in a communications network
US6687355B1 (en) 1999-12-04 2004-02-03 Worldcom, Inc. Method and system for processing records in a communications network
US6697814B1 (en) * 1999-12-04 2004-02-24 Worldcom, Inc. System for processing records in a communications network
US20020010781A1 (en) * 1999-12-30 2002-01-24 Tuatini Jeffrey Taihana Shared service messaging models
US7181745B1 (en) 2000-03-03 2007-02-20 The Mathworks, Inc. Method and system for accessing objects defined within an external object-oriented environment
US7051338B1 (en) 2000-03-03 2006-05-23 The Mathworks, Inc. Method and system for accessing externally-defined objects from an array-based mathematical computing environment
US6901588B1 (en) * 2000-04-17 2005-05-31 Codemesh, Inc. Sharing components between programming languages by use of polymorphic proxy
US6985946B1 (en) * 2000-05-12 2006-01-10 Microsoft Corporation Authentication and authorization pipeline architecture for use in a web server
US6990653B1 (en) * 2000-05-18 2006-01-24 Microsoft Corporation Server-side code generation from a dynamic web page content file
US6757900B1 (en) 2000-05-18 2004-06-29 Microsoft Corporation State management of server-side control objects
US6792607B1 (en) 2000-05-18 2004-09-14 Microsoft Corporation Databinding using server-side control objects
US6961750B1 (en) 2000-05-18 2005-11-01 Microsoft Corp. Server-side control objects for processing client-side user interface elements
US7013340B1 (en) 2000-05-18 2006-03-14 Microsoft Corporation Postback input handling by server-side control objects
US7127492B1 (en) * 2000-10-31 2006-10-24 International Business Machines Corporation Method and apparatus for distributed application acceleration
US7191453B2 (en) * 2000-11-30 2007-03-13 Intel Corporation Discovery and integration of Jini services in non-Java clients
US7103652B1 (en) * 2000-12-23 2006-09-05 Emc Corporation Ambiguity-purging and template-conflict-resolution in computer network events-notification
US20020170046A1 (en) * 2001-02-23 2002-11-14 Goward Philip J. Encapsulating an interfact to a distributed programming component as a local component
JP2002271307A (en) * 2001-03-09 2002-09-20 Sega Corp Terminal synchronizing method, communication system, and terminal
US7380250B2 (en) * 2001-03-16 2008-05-27 Microsoft Corporation Method and system for interacting with devices having different capabilities
US7587669B2 (en) 2001-04-09 2009-09-08 Aol Llc Server-based browser system
US7853922B1 (en) 2001-05-15 2010-12-14 The Mathworks, Inc. Data objects for model-based design
US20020174169A1 (en) * 2001-05-21 2002-11-21 Schmid Hans Albrecht Process for operating a distributed computer network comprising several distributed computers
US20020188764A1 (en) * 2001-05-25 2002-12-12 Sun Microsystems, Inc. Method and apparatus for asynchronous component invocation
US6859887B2 (en) * 2001-05-31 2005-02-22 Hewlett-Packard Development Company, L.P. Method to invoke wide-area objects in distributed computer systems
US6944797B1 (en) 2001-06-07 2005-09-13 Microsoft Corporation Method and system for tracing
US6915454B1 (en) 2001-06-12 2005-07-05 Microsoft Corporation Web controls validation
US7647597B2 (en) * 2001-06-28 2010-01-12 Microsoft Corporation Transparent and sub-classable proxies
US6898604B1 (en) 2001-06-29 2005-05-24 Microsoft Corporation XML serialization and deserialization
US7162723B2 (en) 2001-06-29 2007-01-09 Microsoft Corporation ASP.NET HTTP runtime
US6754884B1 (en) 2001-07-02 2004-06-22 Bea Systems, Inc. Programming language extensions for processing XML objects and related applications
US6918107B2 (en) * 2001-07-02 2005-07-12 Bea Systems, Inc. Programming language extensions for processing data representation language objects and related applications
US7356803B2 (en) * 2001-07-02 2008-04-08 Bea Systems, Inc. Annotation based development platform for asynchronous web services
US7437710B2 (en) * 2001-07-02 2008-10-14 Bea Systems, Inc. Annotation based development platform for stateful web services
US7594001B1 (en) 2001-07-06 2009-09-22 Microsoft Corporation Partial page output caching
US7120897B2 (en) * 2001-07-10 2006-10-10 Microsoft Corporation User control objects for providing server-side code generation from a user-defined dynamic web page content file
US7237237B2 (en) * 2001-07-24 2007-06-26 The Mathworks, Inc. Designating an object for destruction
GB2378270B (en) * 2001-07-30 2005-04-20 Ibm Method and apparatus for data transfer across a network
US7216294B2 (en) 2001-09-04 2007-05-08 Microsoft Corporation Method and system for predicting optimal HTML structure without look-ahead
US7146617B2 (en) * 2001-09-29 2006-12-05 Siebel Systems, Inc. Method, apparatus, and system for implementing view caching in a framework to support web-based applications
US8359335B2 (en) 2001-09-29 2013-01-22 Siebel Systems, Inc. Computing system and method to implicitly commit unsaved data for a world wide web application
US6907451B1 (en) * 2001-09-29 2005-06-14 Siebel Systems, Inc. Method, apparatus, and system for immediate posting of changes in a client server environment
US7461119B2 (en) * 2001-09-29 2008-12-02 Siebel Systems, Inc. Method, apparatus, and system for managing status of requests in a client server environment
US7203948B2 (en) * 2001-09-29 2007-04-10 Siebel Systems, Inc. Method, apparatus, and system for implementing caching of view custom options in a framework to support web-based applications
US7885996B2 (en) * 2001-09-29 2011-02-08 Siebel Systems, Inc. Method, apparatus, and system for implementing notifications in a framework to support web-based applications
US7870492B2 (en) 2001-10-02 2011-01-11 Siebel Systems, Inc. Method, apparatus, and system for managing commands in a client server environment
US7000238B2 (en) * 2001-10-10 2006-02-14 Borland Software Corporation Development system providing extensible remoting architecture
US20050091376A1 (en) * 2001-10-12 2005-04-28 Helfman Nadav B. Apparatus and method for optimized and secured reflection of network services to remote locations
US7428725B2 (en) 2001-11-20 2008-09-23 Microsoft Corporation Inserting devices specific content
US20030105882A1 (en) * 2001-11-30 2003-06-05 Ali Syed M. Transparent injection of intelligent proxies into existing distributed applications
US7165101B2 (en) * 2001-12-03 2007-01-16 Sun Microsystems, Inc. Transparent optimization of network traffic in distributed systems
US6859810B2 (en) * 2001-12-10 2005-02-22 Bea Systems, Inc. Declarative specification and engine for non-isomorphic data mapping
ATE551649T1 (en) * 2001-12-10 2012-04-15 Sap Portals Israel Ltd APPARATUS AND METHOD FOR OPTIMIZED AND SECURE REFLECTION OF NETWORK SERVICES TO REMOTE LOCATIONS
US7051341B2 (en) 2001-12-14 2006-05-23 International Business Machines Corporation Method, system, and program for implementing a remote method call
US7296262B2 (en) * 2002-01-07 2007-11-13 International Business Machines Corporation Data processing system, method, and computer program product for generating a generic compilation interface from object-oriented code
US7516447B2 (en) * 2002-02-22 2009-04-07 Bea Systems, Inc. Methods and apparatus for building, customizing and using software abstractions of external entities
US20030195875A1 (en) * 2002-03-25 2003-10-16 Valk Jeffrey W. Information management structure
US7171672B2 (en) * 2002-04-24 2007-01-30 Telefonaktie Bolaget Lm Ericsson (Publ) Distributed application proxy generator
US7526519B2 (en) * 2002-05-01 2009-04-28 Bea Systems, Inc. High availability application view deployment
US20040078440A1 (en) * 2002-05-01 2004-04-22 Tim Potter High availability event topic
US7222148B2 (en) * 2002-05-02 2007-05-22 Bea Systems, Inc. System and method for providing highly available processing of asynchronous service requests
US20030233477A1 (en) * 2002-06-17 2003-12-18 Microsoft Corporation Extensible infrastructure for manipulating messages communicated over a distributed network
US20040015537A1 (en) * 2002-07-15 2004-01-22 Richard Doerksen Handheld client framework system
US7412497B2 (en) * 2002-07-25 2008-08-12 Sun Microsystems, Inc. Generation of Administration framework for server systems
US20040019669A1 (en) * 2002-07-25 2004-01-29 Sridatta Viswanath Event notification in an administration framework for server systems
US7206827B2 (en) * 2002-07-25 2007-04-17 Sun Microsystems, Inc. Dynamic administration framework for server systems
US8073935B2 (en) * 2002-07-25 2011-12-06 Oracle America, Inc. Pluggable semantic verification and validation of configuration data
US7433915B2 (en) * 2002-08-01 2008-10-07 Xerox Corporation System and method for controlling communication
US7171469B2 (en) * 2002-09-16 2007-01-30 Network Appliance, Inc. Apparatus and method for storing data in a proxy cache in a network
US7284030B2 (en) * 2002-09-16 2007-10-16 Network Appliance, Inc. Apparatus and method for processing data in a network
US7552223B1 (en) 2002-09-16 2009-06-23 Netapp, Inc. Apparatus and method for data consistency in a proxy cache
US7574653B2 (en) * 2002-10-11 2009-08-11 Microsoft Corporation Adaptive image formatting control
US7577965B2 (en) * 2003-01-15 2009-08-18 Alcatel Push-based object request broker
US7480921B1 (en) 2003-03-12 2009-01-20 Microsoft Corporation Method, system, and apparatus for customizing web parts
US7281252B1 (en) * 2003-03-12 2007-10-09 Microsoft Corporation Method, system, and apparatus for implementing object interfaces at runtime
EP1620951A4 (en) * 2003-05-08 2006-06-21 Sap Portals Israel Ltd A pattern driven message oriented compression apparatus and method
US7424722B2 (en) * 2003-08-29 2008-09-09 International Business Machines Corporation Method and system for creating a dynamic OGSI service proxy framework using runtime introspection of an OGSI service
US7596782B2 (en) * 2003-10-24 2009-09-29 Microsoft Corporation Software build extensibility
US7500223B2 (en) * 2004-01-02 2009-03-03 International Business Machines Corporation Automatically creating JavaScript objects to invoke methods on server-side Java beans
US7437735B2 (en) * 2004-02-27 2008-10-14 International Business Machines Corporation Hierarchical event filtering for storage server
US7890604B2 (en) 2004-05-07 2011-02-15 Microsoft Corproation Client-side callbacks to server events
US9026578B2 (en) 2004-05-14 2015-05-05 Microsoft Corporation Systems and methods for persisting data between web pages
US8065600B2 (en) 2004-05-14 2011-11-22 Microsoft Corporation Systems and methods for defining web content navigation
US7464386B2 (en) * 2004-05-17 2008-12-09 Microsoft Corporation Data controls architecture
US20060020883A1 (en) * 2004-05-28 2006-01-26 Microsoft Corporation Web page personalization
US8156448B2 (en) * 2004-05-28 2012-04-10 Microsoft Corporation Site navigation and site navigation data source
US7530058B2 (en) * 2004-05-28 2009-05-05 Microsoft Corporation Non-compile pages
US7954110B1 (en) * 2004-06-22 2011-05-31 Apple Inc. Observing properties associated with an object in an object-oriented programming platform
US7617501B2 (en) 2004-07-09 2009-11-10 Quest Software, Inc. Apparatus, system, and method for managing policies on a computer having a foreign operating system
US7831698B2 (en) * 2004-09-13 2010-11-09 The Boeing Company Systems and methods enabling interoperability between Network Centric Operation (NCO) environments
EP1797512B1 (en) * 2004-10-05 2010-09-08 Mentor Graphics Corporation Accelerated hardware emulation environment for processor-based systems
FR2877116B1 (en) * 2004-10-27 2012-04-27 Thales Sa LOCAL SERVICE CALLING SYSTEM OF AT LEAST ONE LOCAL APPLICATION WITH CLASSIC MESSAGING ARCHITECTURE FROM AT LEAST ONE REMOTE APPLICATION WITH CLASSIC MESSAGING ARCHITECTURE
FR2877139B1 (en) * 2004-10-27 2007-01-26 Thales Sa HIGH-POWER HYPERFREQUENCY TUBE WITH BEAM STACK IN THE COLLECTOR
US7523195B2 (en) * 2004-10-29 2009-04-21 International Business Machines Corporation Method and system for monitoring server events in a node configuration by using direct communication between servers
US20060218174A1 (en) * 2005-03-23 2006-09-28 Cook John L Iii Method for coordinating schema and data access objects
US7849165B2 (en) 2005-04-21 2010-12-07 Fiducci Thomas E Data backup, storage, transfer, and retrieval system, method and computer program product
US8126990B2 (en) 2005-04-21 2012-02-28 Fiducci Thomas E Data backup and transfer system, method and computer program product
CA2510647A1 (en) * 2005-06-23 2006-12-23 Cognos Incorporated Signing of web request
US7904949B2 (en) 2005-12-19 2011-03-08 Quest Software, Inc. Apparatus, systems and methods to provide authentication services to a legacy application
US20070185929A1 (en) * 2006-02-01 2007-08-09 Sap Portals Isreal Ltd. Method and apparatus for processing monitoring
US8087075B2 (en) 2006-02-13 2011-12-27 Quest Software, Inc. Disconnected credential validation using pre-fetched service tickets
SE529620C2 (en) * 2006-02-24 2007-10-09 Abb Ab Control of real objects in interconnected computerized control systems
US7774323B2 (en) * 2006-03-27 2010-08-10 Sap Portals Israel Ltd. Method and apparatus for delivering managed applications to remote locations
US8429712B2 (en) 2006-06-08 2013-04-23 Quest Software, Inc. Centralized user authentication system apparatus and method
EP1890227A1 (en) * 2006-08-18 2008-02-20 Research In Motion Limited Method, system and machine-readable medium for building distributed software
US7779429B2 (en) 2006-08-18 2010-08-17 Research In Motion Limited Method and machine-readable medium for building distributed software
US8086710B2 (en) 2006-10-30 2011-12-27 Quest Software, Inc. Identity migration apparatus and method
US7895332B2 (en) 2006-10-30 2011-02-22 Quest Software, Inc. Identity migration system apparatus and method
US8396214B2 (en) * 2006-11-02 2013-03-12 SAP Portals Israel Limited Method and apparatus for centrally managed encrypted partition
US8020177B2 (en) * 2007-07-27 2011-09-13 Composite Ideas, Llc Contained command invocation middleware framework
US8849897B2 (en) * 2007-11-15 2014-09-30 Microsoft Corporation Delegating application invocation back to client
US20090138620A1 (en) * 2007-11-27 2009-05-28 Boeing Company Apparatus and method facilitating web service communications between networks
EP2066096B1 (en) * 2007-11-27 2013-07-03 The Boeing Company Apparatus and method facilitating web service communications between networks
US8656349B2 (en) * 2008-03-07 2014-02-18 Sap Ag Systems and methods for template reverse engineering
US8448132B2 (en) * 2009-05-07 2013-05-21 Sap Ag Systems and methods for modifying code generation templates
US8255984B1 (en) 2009-07-01 2012-08-28 Quest Software, Inc. Single sign-on system for shared resource environments
US8464281B2 (en) * 2010-08-18 2013-06-11 Sas Institute, Inc. Techniques to remotely access object events
US8694625B2 (en) 2010-09-10 2014-04-08 International Business Machines Corporation Selective registration for remote event notifications in processing node clusters
CN103036911B (en) * 2013-01-09 2016-05-18 深圳中兴网信科技有限公司 Business data processing system and business data processing method
US9800672B2 (en) 2015-04-09 2017-10-24 Eugene Edwin Nelson Computer work distribution system and method
CN112035276A (en) * 2020-08-06 2020-12-04 上海视云网络科技有限公司 Java-based cross-platform extensible Remote Procedure Call (RPC) framework design method
CN113595872B (en) * 2021-06-30 2023-06-16 百果园技术(新加坡)有限公司 Message component configuration method, device, system, equipment and storage medium

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0746816B1 (en) 1993-08-03 2001-10-24 Sun Microsystems, Inc. Flexible multi-platform partitioning for computer applications
AU5355098A (en) * 1996-11-14 1998-06-03 Alcatel Usa Sourcing, L.P. Generic software state machine and method of constructing dynamic objects for an application program
CA2201278C (en) * 1997-03-27 2001-02-20 Ibm Canada Limited-Ibm Canada Limitee Hierarchical metadata store for an integrated development environment
GB2332288A (en) * 1997-12-10 1999-06-16 Northern Telecom Ltd agent enabling technology
US6009432A (en) * 1998-07-08 1999-12-28 Required Technologies, Inc. Value-instance-connectivity computer-implemented database

Also Published As

Publication number Publication date
US6230160B1 (en) 2001-05-08
CA2210755A1 (en) 1999-01-17

Similar Documents

Publication Publication Date Title
CA2210755C (en) Creating proxies for distribution of beans and event objects
US5949998A (en) Filtering an object interface definition to determine services needed and provided
US6260078B1 (en) Using a distributed object system to find and download java-based applications
US6038590A (en) Object-oriented system, method and article of manufacture for a client-server state machine in an interprise computing framework system
US6052711A (en) Object-oriented system, method and article of manufacture for a client-server session web access in an interprise computing framework system.
US6434598B1 (en) Object-oriented system, method and article of manufacture for a client-server graphical user interface (#9) framework in an interprise computing framework system
US6424991B1 (en) Object-oriented system, method and article of manufacture for a client-server communication framework
AU2002319843B2 (en) General and reusable components for defining net-centric application program architectures
US6272556B1 (en) Object-oriented system, method and article of manufacture for migrating a client-server application (#5)
US6304893B1 (en) Object-oriented system, method and article of manufacture for a client-server event driven message framework in an interprise computing framework system
US6542885B1 (en) Methods, systems and computer program products for controlling variables associates with transactions in a multiple transaction environment
US6253282B1 (en) Object-oriented system, method and article of manufacture for a client-server with a client program cache
US6266709B1 (en) Object-oriented system, method and article of manufacture for a client-server failure reporting process
US6272555B1 (en) Object-oriented system, method and article of manufacture for a client-server-centric interprise computing framework system
EP0827075A2 (en) Object-oriented system, method and article of manufacture for a client-server state machine framework
EP0822488A2 (en) Object-oriented system, method and article of manufacture for a client-server application enabler system
AU2002319843A1 (en) General and reusable components for defining net-centric application program architectures
US20070073851A1 (en) Method and system for container-managed configuration and administration
US20070073849A1 (en) Method and system for unifying configuration descriptors
Dewan Multiuser architectures
Baentsch et al. WebMake: Integrating distributed software development in a structure-enhanced Web
US20060161618A1 (en) Abstract mechanism for constructing commands for the command pattern
Java et al. Remote Method Invocation
Jorelid J2EE frontend technologies: A programmer's guide to Servlets, JavaServer Pages, and enterprise JavaBeans
CA2551025C (en) Application framework for use with net-centric program architectures

Legal Events

Date Code Title Description
EEER Examination request
MKLA Lapsed