Let me pitch in and hopefully clarify things a bit.
Ok, so you have the idl. The idl2wsdl tool will first generate an xml mapping of the idl types in form of an xml schema. So you have an xml schema-based way of describing the idl types. You also get the wsdl:portType that maps the interface(s). The type mapping is not standard but is pretty straightforward. AFAIK there was an attempt in omg to standardize idl to java mappings, but I don't know it what stage it is. So again not standard but straightforward. Now you have the logical part of the wsdl (types, message, portType) that is totaly unrelated to corba.
There is also the physical part of the wsdl that gets generated for you. For this the wsdl uses wsdl extension elements specific to corba wsdl:binding and wsdl:service (such as an IOR based address). Again, the corba binding/service are not standardized the way the soap binding and http transport are, but the wsdl standard explicitly allows one to come up with her own extensions. I would guess the yoko corba binding is sort of a de facto standard in the absence of another one.
Coming back, we now have a legacy corba server, and we have an xml schema that defines the types used by the corba app and the wsdl that describes the interface and corba binding that deals with the marshaling and the service that holds the ior address of the corba server. One could write a pure web services app using types generated from the xml schema/wsdl and send the invocation down the ws stack. When it gets to the corba binding the in memory java objects are marshalled into corba streams which are sent over iiop to the server... and then response comes back the same way. So having a corba/iiop binding should be absolutely transparent to the user and as easy as doing soap/http or xml/jms.
Where does synapse come into the picture? Synapse really a bunch of services that are implemented to 'execute' a flow that is configured in an xml file. The environment is putting all together (the only implementation of environment today is based on axis2, but it is possible to support other kind of environments). When a message is receveived by a synapse service, the service unmarshals it according to the binding rules defined in the wsdl, puts it in a message context and sends it up to the mediator associated to the endpoint, regardless of the nature of the endpoint! When a send mediator is executed it will delegate again to the environment to send it to the appropriate endpoint, regardless of the nature of the endpoint again! One use case for synapse would be a web service facade to legacy applications implemented before the WS related buzzwords birth.
One implementation detail that complicates things today a bit is that synapse is by design too tightly coupled to SOAP. Therefore the corba message must be wrapped in a soap envelope to put it in a synapse message context. Ideally we would refactor the MessageContext to remove the SOAP related api (I can think of a couple ways of achieving that) and make it more generic. I am curious actually what others think about this. There are other issues related to uses of ws-addressing references etc. but all solvable.
I understand Balaji is putting together a bank demo that shows the interaction between soap and corba with no glue code required.
Regards
Hadrian
On 7/31/06,
Christian Galbavy <[EMAIL PROTECTED]> wrote:
Hi,
ok I am just writing my thoughts and would like to get some comments, if I am right.
So lets say I have a CORBA object with the approbriate idl.
I can get the approbriate WSDL from the Yoko tool idl2wsdl.
And then Yoko can invoke the Corba call with that. So what would I have the programm for that and where does the actual type mapping from the SOAP-types (xsd-types) to the Corba-types (typecodes)?
For the beginning I only want to see the performing of this calls, so the dynamic part with the Interface Repository calls would follow later. For this time I asume that I have got the WSDL file from the idl file from somewhere and the approbriate Corba method is available. Then I get my SOAP call, and build my Corba call manually.
Another question for me is, which role does Synapse play here. What can Synapse do with this wsdl file?
I still try to understand the mediator technology, so please do not wonder about silly questions :-)
Regards
Christian
-------- Original-Nachricht --------
Datum: Fri, 28 Jul 2006 16:24:41 +0100
Von: "Nolan, Edell" <[EMAIL PROTECTED]>
An: [email protected], [EMAIL PROTECTED]
Betreff: RE: Soap-corba bridge
> Hi,
>
> Balaji is right this is a perfect case to use Yoko. If you need more
> information on the binding - please let us know or we can discuss more on how it
> can fit together.
>
> Cheers, Edell.
>
> -----Original Message-----
> From: Mosur Ravi, Balaji
> Sent: 27 July 2006 13:14
> To: [email protected]; [EMAIL PROTECTED]
> Subject: RE: Soap-corba bridge
>
> Hi Christian,
>
> I think a better way to do this would be to first expose the idl interface
> as a wsdl & then the soap-corba calls (or viceversa) can be routed or
> mapped easily...
>
> This would be a standard approach to do the calls & is a perfect use case
> for the yoko corba wsdl binding.
>
> The yoko corba binding already does what you mentioned, i.e uses the
> information from the wsdl & the corba binding (generated from idl) to get the
> typecodes & call the appropriate corba methods...
>
> The router or some mapper can then take a soap message & use this corba
> wsdl binding to easily route the calls... Let me know if this makes sense...
>
> - Balaji
>
>
> -----Original Message-----
> From: Christian Galbavy [mailto: [EMAIL PROTECTED]]
> Sent: Thursday, July 27, 2006 5:20 AM
> To: [email protected]
> Subject: Re: Soap-corba bridge
>
> Hi,
>
> our goal is to use SOAP for dynamic invocations in CORBA.
> So a short description how we want to start:
> We want to take the SOAP-service-name and map this to a CORBA interface,
> so the SOAP method in the body has the same name as the CORBA interface's
> method. If we find an approbriate method in the CORBA interface using the
> CORBA interface repository, we want to call te CORBA method.
>
> At this time we are looking at different technologies to achive this goal.
> For Axis2 there might be a problem, cause we do not have any deployed
> services and the wsdl-files.
> We can do the following:
> When we have found the CORBA interface with the method, we can obtain the
> type information of the parameters and the return value using the interface
> repository. Here we get TypeCodes. Now we can use the Typecodes and the
> params from the SOAP call to invoke the CORBA method. One point here is how
> to parse the SOAP params using the TypeCodes.
>
> This is only one approach for us, we are looking at different ways.
> It have not had time yet to look at the yoko project, but will do this
> today.
> Please write me your thoughts about this topic.
>
> Regards
> Christian
>
>
>
> -------- Original-Nachricht --------
> Datum: Mon, 24 Jul 2006 20:45:54 -0400
> Von: "Balaji Ravi" <[EMAIL PROTECTED]>
> An: [EMAIL PROTECTED]
> Betreff: Soap-corba bridge for synapse
>
> > Hi,
> >
> > I saw your email discussing about the soap-corba bridge in the synapse
> > mailing list & i thought of a similar open source project - Apache
> > Yoko that i am involved with.
> >
> > In this project, we are building an open source orb & also a corba
> > wsdl binding, which we could use to expose the corba endpoints as a
> > web service.
> > We can use this to write a synapse mediator to do the conversion from
> > soap to corba & viceversa.
> >
> > Link: http://incubator.apache.org/projects/yoko.html
> >
> > Our wiki for some more details: http://wiki.apache.org/incubator-yoko/
> >
> > Let me if you think this would help. We can then discuss this in both
> > the yoko mailing list & the synapse mailing list. I would also be
> > interested in knowing more about your use case...
> >
> > Thanks
> >
> > Balaji
>
> --
>
>
> "Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
> Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
>
> --
>
>
> Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit!
> "Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl
>
>
--
Echte DSL-Flatrate dauerhaft für 0,- Euro*. Nur noch kurze Zeit!
"Feel free" mit GMX DSL: http://www.gmx.net/de/go/dsl
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
