You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by Jean-Baptiste Onofré <jb...@nanthrax.net> on 2009/02/01 11:41:33 UTC

Re: WSDL support for all components ?

In fact, it's in two parts :
1/ using a WSDL endpoint property to expose a WSDL can be interesting to use a BC
directly with a SE supporting WSDL (for example, directly use a HTTP publishing a
smpp WSDL).
2/ currently, BC uses "internal" format. For example, for the SMPP component,
Lars has defined a XML format looking like this :
<message>
  <source>+336123456</source>
  <destination>+336654321</destination>
  <ton>INTERNATIONAL</ton>
  <npi>NATIONAL</npi>
  <text>The SMS content</text>
</message>
If I need to use the SMPP, another SU must "format" the target message (the
NormalizedMessage content) into the format expected by the SMPP one.
Maybe it can be interesting to define a XSD (BC global or by components group)
and linked util class to normalize the format of messages content. Or, in place
of a XSD, define a kind of standard WSDL for BCs.
I hope I'm clear :)

Maybe this kind of stuff already exists and, if it's the case, accept my apologize :)

Regards
JB
--
Jean-Baptiste Onofré
jb@nanthrax.net
BuildProcess/AutoDeploy Project Leader
http://buildprocess.sourceforge.net

On Tue 27/01/09 13:07, "Guillaume Nodet" gnodet@gmail.com wrote:
> Are you thinking about just exposing a WSDL service, or more like full
> soap support on file / ftp and other protocols ?
> 
> On Mon, Jan 26, 2009 at 13:17,  <jb@nanthrax.n
> et> wrote:
> Hi all,
> >
> > Implementing the SMPP component, I have think about
> the WSDL support.
>
> > Currently, some binding components don't support
> WSDL (the endpoint descriptor is empty). It's the case for file, ftp, xmpp
> and smpp components for
> example.
> >
> > Adding a WSDL property on these endpoints can be
> great and we will be able to store a SOAP envlope in a flat file (for
> example) and send directly to
> a WSDL compliant service engine (such as
> CXF-SE).
>
> > What do you think about this ?
> >
> > Regards
> > JB
> >
> >
> 
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
------------------------
> Open Source SOA
> http://fusesource.com
> 
> 



Re: WSDL support for all components ?

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Hi Guillaume,

I'm rethinking of these discuss related to WSDL support into components 
as I'm working on RMI and Exec components this morning.

As I have a little more experience, let me add some comment to get team 
feedback.

Guillaume Nodet wrote:
> On Sun, Feb 1, 2009 at 11:41, Jean-Baptiste Onofré <jb...@nanthrax.net> wrote:
>> In fact, it's in two parts :
>> 1/ using a WSDL endpoint property to expose a WSDL can be interesting to use a BC
>> directly with a SE supporting WSDL (for example, directly use a HTTP publishing a
>> smpp WSDL).
> 
> There are multiple things here.  The first one is to add a property so
> that the endpoint exposes a WSDL to the NMR.
> The second one is to expose those WSDLs to the outside world (i.e.
> through HTTP for example).  The third one, which I'm not clear if
> that's what you are suggesting, is to make all the BC support SOAP.
> 
> Let's discuss those points.
> 
> #1 for endpoints not supporting soap, it makes sense to be able to
> describe those using WSDL nonetheless when it makes sense.  It should
> just be about adding a property to those endpoints and let the user
> specify its own abstract WSDL to describe the endpoint (this is
> already done in a number of EIP patterns for example).
Yes, it's exactly the purpose. Basicly, I think that the WSDL can be 
marshaler related. The WSDL can describe the operation (with arguments) 
supported by the marshaler.
The purpose is to define a manner to get information about message 
content and operation applied on the command into the endpoint descriptor.

> 
> #2 I'm not sure about that one.  Services exposed in the NMR are not
> necessarily available for external clients (especially if no BC
> consumer endpoint has been defined to target a given service).
> Furthermore, if we really want to expose those WSDLs (or at least the
> one of the BCs consumers which can be targetted by clients), we need
> those WSDLs contain the needed informations for the clients to be able
> to use those.  This means that we have to define WSDL extensions for
> those protocols I suppose (we still have none for JMS, though a
> standard JMS extension is being worked on somewhere).
Agreed, but it means that a "non-SOAP" component (such as exec, file, 
etc) can't be facaded directly using a HTTP or CXF-BC component. In this 
case, the user needs to add a component between the HTTP component and 
the Exec one for example to transform the incoming SOAP envelope into a 
valid message for the Exec endpoint.
If we can add (at least a basic) SOAP support into all BC, the user can 
expose quickly basic services.
AFAIK, OpenESB works like this: you define a WSDL for the component 
attribute (like in the xbean.xml) and define the endpoint behavior.

> 
> #3 I don't have any problems with all BCs supporting SOAP.  I'm just
> not sure if there is any real use of SOAP over XMPP, SNMP or SMPP.
> 
> 
>> 2/ currently, BC uses "internal" format. For example, for the SMPP component,
>> Lars has defined a XML format looking like this :
>> <message>
>>  <source>+336123456</source>
>>  <destination>+336654321</destination>
>>  <ton>INTERNATIONAL</ton>
>>  <npi>NATIONAL</npi>
>>  <text>The SMS content</text>
>> </message>
>> If I need to use the SMPP, another SU must "format" the target message (the
>> NormalizedMessage content) into the format expected by the SMPP one.
>> Maybe it can be interesting to define a XSD (BC global or by components group)
>> and linked util class to normalize the format of messages content. Or, in place
>> of a XSD, define a kind of standard WSDL for BCs.
>> I hope I'm clear :)
> 
> I'm not sure how we can easily define a standard xml schema for all
> protocols.  Each protocol has its own informations that it needs to be
> able to send the request.  Wdyt ?
Yes, you have right. But maybe each component can define its own 
XSD/WSDL. The user can construct a valid incoming message to this BC 
(using wsdl2java for example).

All feedback are welcome.

Regards
JB

> 
> 
>> Maybe this kind of stuff already exists and, if it's the case, accept my apologize :)
>>
>> Regards
>> JB
>> --
>> Jean-Baptiste Onofré
>> jb@nanthrax.net
>> BuildProcess/AutoDeploy Project Leader
>> http://buildprocess.sourceforge.net
>>
>> On Tue 27/01/09 13:07, "Guillaume Nodet" gnodet@gmail.com wrote:
>>> Are you thinking about just exposing a WSDL service, or more like full
>>> soap support on file / ftp and other protocols ?
>>>
>>> On Mon, Jan 26, 2009 at 13:17,  <jb@nanthrax.n
>>> et> wrote:
>>> Hi all,
>>>> Implementing the SMPP component, I have think about
>>> the WSDL support.
>>>
>>>> Currently, some binding components don't support
>>> WSDL (the endpoint descriptor is empty). It's the case for file, ftp, xmpp
>>> and smpp components for
>>> example.
>>>> Adding a WSDL property on these endpoints can be
>>> great and we will be able to store a SOAP envlope in a flat file (for
>>> example) and send directly to
>>> a WSDL compliant service engine (such as
>>> CXF-SE).
>>>
>>>> What do you think about this ?
>>>>
>>>> Regards
>>>> JB
>>>>
>>>>
>>>
>>>
>>> --
>>> Cheers,
>>> Guillaume Nodet
>>> ------------------------
>>> Blog: http://gnodet.blogspot.com/
>> ------------------------
>>> Open Source SOA
>>> http://fusesource.com
>>>
>>>
>>
>>
> 
> 
> 

-- 
Jean-Baptiste Onofré
---------------------------------
  HomePage
http://www.nanthrax.net
---------------------------------
  Contacts
jbonofre@apache.org
jb@nanthrax.net
---------------------------------
  OpenSource
BuildProcess/AutoDeploy
http://buildprocess.sourceforge.net
Apache ServiceMix
http://servicemix.apache.org
-----------------------------------
PGP : 17D4F086