axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Aleksander Slominski <as...@cs.indiana.edu>
Subject Re: Remote references - future architectural idea
Date Tue, 11 Dec 2001 20:26:20 GMT
hi,

here is how remote reference to service described in [1] could look in XSOAP:

<Port id='id1' xsi:type='ns1:port'
        xmlns:ns='http://www.extreme.indiana.edu/soap/rmi/port/v10/'>
          <name xsi:type='xsd:string'>InteropTestPort</name>
          <portType id='id4' xsi:type='ns:port-type'>
             <uri xsi:type='xsd:string'>http://soapinterop.org/interop.wsdl</uri>
             <name xsi:type='xsd:string'>InteropTestPortType</name>
           </portType>
          <endpoint id='id2' xsi:type='ns:endpoint'>
            <location
xsi:type='xsd:string'>http://nagoya.apache.org:5089/soap/servlet/rpcrouter</location>

            <binding id='id3' xsi:type='ns:binding'>
              <name xsi:type='xsd:string'>http://soapinterop.org/</name>
            </binding>
          </endpoint>
</Port>

Name - is pretty much like valueof WSDL service name attribute.

PortType -of course there must be registered A mapping for java interface to
port type (http://soapinterop.org/interop.wsdl, InteropTestPortType) in XSOAP
but we do not put as part of remote resefrence.

Endpoint - conatins actual location of service - how is it done in WASP?
in your examplke there is only SOAP action so if i need to use
service instance that was dynamically created and available and some URL
how i would do it? would i need to regenerate WSDL file that us pointed
by  <wsdl> element?

Binding - in XSOAP we use binding element to keep SOAP action and in priniciple
binding can be subclassed to any new kind of binding however we
have never explored it as it was becoming more obvious for us that what
we really want as remote refernece is more more looking like WSDL,
for example this remote refernce could be very easily expressed
using valid and _small_ WSDL document:


<?xml version="1.0"?>
<definitions name="SOAP Interop Testing Service Instance"
targetNamespace="http://myhost/GLOBALLY_UNIQUE-ID_OF SERVICE_INSTANCE"
xmlns:tns="http://myhost/GLOBALLY_UNIQUE-ID_OF SERVICE_INSTANCE"
xmlns:interop="http://soapinterop.org/interop.wsdl"
xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>
 <service name="SOAPInterop">
  <documentation>Interop Services</documentation>
  <port name="InteropTestPort" binding="interop:InteropTestSoapBinding">
   <soap:address location="http://nagoya.apache.org:5089/soap/servlet/rpcrouter"/>
  </port>
 </service>
</defintions>

this should be enough to describe instance of remote service and effectively
represent remote reference without need to use anything but WSDL.

and we could even add Java-PortType extension element to WSDL
to express what is WASP doing in portTypeMappings.

let me know what you think about it.

thanks,

alek

[1] http://www.xmethods.net/sd/interop/ApacheInterop11.wsdl

Jacek Kopecky wrote:

>  Aleks,
>  I agree with your conclusion about showing the few different
> approaches on a concrete example and going on from there. 8-)
>  Lemme start:
>  Let's take the Apache SOAP Interop WSDL at [1].
>  Our remote reference would look like the following. I've
> excluded the namespace declarations as I think they are not
> really needed in this exercise and they should be obvious. The
> only non-obvious (IMHO) namespace prefix is declared.
>
>  <x xsi:type="idoox:serviceReference"
>      xmlns:apache="http://soapinterop.org/interop.wsdl">
>    <service xsi:type="xsd:qname">
>      apache:SOAPInterop
>    </service>
>    <wsdl xsi:type="xsd:anyURI">
>      http://www.xmethods.net/sd/interop/ApacheInterop11.wsdl
>    </wsdl>
>    <portTypeMappings xsi:type="idoox:ArrayOfInterfaceMappings"
>      soap-enc:arrayType="idoox:interfaceMapping[1]">
>      <item>
>        <portType xsi:type="xsd:qname">
>          apache:InteropTestPortType
>        </portType>
>        <className>
>          demo.interop.InteropServiceInterface
>        </className>
>      </item>
>    </portTypeMappings>
>  </x>
>
>  The portTypeMappings element need not be there, as I said, it's
> just for zero-config best-case scenario.
>  An interesting activity again... 8-)
>
>                    Jacek Kopecky
>
>                    Senior Architect, Systinet (formerly Idoox)
>                http://www.systinet.com/
>
> [1] http://www.xmethods.net/sd/interop/ApacheInterop11.wsdl


Mime
View raw message