incubator-yoko-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Incubator-yoko Wiki] Update of "CorbaBindingRuntime" by DarrenMiddleman
Date Mon, 17 Jul 2006 14:02:22 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Incubator-yoko Wiki" for change notification.

The following page has been changed by DarrenMiddleman:
http://wiki.apache.org/incubator-yoko/CorbaBindingRuntime

------------------------------------------------------------------------------
  = The CORBA Runtime Binding =
  
+ The CORBA runtime binding allows client and/or server applications using Yoko to communicate
with corresponding CORBA clients and servers which implement some common interface.  The binding
uses the WSDL files (and the CORBA binding information contained within it) produced by the
Yoko tools to convert the web service request into a format that can be invoked on a CORBA
target.
- The CORBA runtime binding allows client and/or server applications using Yoko to communicate
with corresponding CORBA clients and servers which
- implement some common interface.  The binding uses the WSDL files (and the CORBA binding
information contained within it) produced by the
- Yoko tools to convert the web service request into a format that can be invoked on a CORBA
target.
  
+ == Summary of Proposed Solution ==
- On the client side, the runtime binding implements the Celtix API interface ClientBinding
which provides the mechanisms necessary for invoking requests
- on a target.  Into these invoke operations, Celtix ObjectMessageContexts are provided which
contain parameter information which is to be included with
- the operation invocation.  The binding converts these ObjectMessageContext objects into
a Stax XMLEvent sequence which is then used by the binding to
- create the corresponding CORBA object.  These objects are then packaged into a CORBA DII
request that is invoked on the CORBA target.
  
+ On the client side, the runtime binding implements the Celtix API interface ClientBinding
which provides the mechanisms necessary for invoking requests on a target.  Into these invoke
operations, Celtix ObjectMessageContexts are provided which contain parameter information
which is to be included with the operation invocation.  The binding converts these ObjectMessageContext
objects into a Stax XMLEvent sequence which is then used by the binding to create the corresponding
CORBA object.  These objects are then packaged into a CORBA DII request that is invoked on
the CORBA target.  Return values or exceptions are then retrived from the DII request and
returned to the Yoko client which made the initial operation invocation.
- Similarly, on the server side, the binding uses a combination of a CORBA DSI Servant and
an server binding which implements the Celtix Binding API
- interface ServerBinding.  Incoming requests are handled by the DSI Servant which is responsible
for converting the CORBA request into a Stax XMLEvent
- sequence which can be then marshalled into an Object that Celtix can handle. The servant
then creates and invokes the correct Celtix operation based on
- information from both the incoming CORBA request and CORBA binding information contained
in the WSDL file.
  
- Currently, the binding supports the following CORBA types:
+ Similarly, on the server side, the binding uses a combination of a CORBA DSI Servant and
an server binding which implements the Celtix Binding API interface ServerBinding.  Incoming
requests are handled by the DSI Servant which is responsible for converting the CORBA request
into a Stax XMLEvent sequence which can be then marshalled into an Object that Celtix can
handle. The servant then creates and invokes the correct Yoko operation based on information
from both the incoming CORBA request and CORBA binding information contained in the WSDL file.
 Return values or exception generated from the Yoko operation invocation are then added to
the initial CORBA request and returned to the CORBA application which made the request.  

+ 
+ As mentioned above, marshalling and unmarshalling of CORBA types to Yoko types will be done
through the use of the Stax API.  Yoko types will perform the conversion to and from Stax
events using DataReaders and DataWriters from Celtix which will use XMLEventReaders and XMLEventWriters.
 CORBA type will use a Yoko intermediate object which stores the objects data and type information
from the WSDL file for performing the conversion from CORBA object to/from Stax events.  This
use of Stax as a common form for describing an object and its value should allow for the appropriate
conversions between Yoko and CORBA types. 
+ 
+ == CORBA Types Currently Supported By The Binding ==
  
   * Primitive types (e.g. short, long, string, etc)
   * Arrays
@@ -24, +20 @@

   * Structs
   * Exceptions (reading and writing)
  
+ == Features To Be Added ==
  The binding will also support the following CORBA types shortly:
  
   * Enums
   * Fixeds - https://issues.apache.org/jira/browse/YOKO-85
   * Unions - https://issues.apache.org/jira/browse/YOKO-82
   * Anonymous types - https://issues.apache.org/jira/browse/YOKO-84
+  * Nested and Recursive types
  
  Additionally, the following features will also be implemented in the
  binding:

Mime
View raw message