You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-user@axis.apache.org by Ja...@peoplesoft.com on 2004/12/07 00:31:55 UTC

Services Hosted by Non-Webservers

We are looking at migrating some of our backend code that uses Apache SOAP
1 and MS SOAP 2 to use Axis (Java and C++).  Here is a basic overview of
how it all works today:

We have two applications (one java, one C++).  Each application exposes a
single service and consumes the service of the other.  To do this, we use
the two SOAP libraries described earlier to generate and process the SOAP
envelopes for each call.  We handle all the network communication of these
envelopes ourselves (no http server, etc).  This allows us to embed the
applications, but it also allows us to easily expose multiple instances of
the same service on the same machine. This is important since there can be
multiple instances of one of these apps.  Each instance of app A must
expose an instance of service A as application B will consume all currently
running instances of service A.  To accomplish this, the port the service
is exposed on is defined at runtime and discovered with calls to a broker
we have created that manages all this information on the fly.

So, its a largely basic RPC style communication, where we drive the
networking.  I'd like to use the built in functionality of Axis as much as
possible.  Is there a standard transport layer that can be used to embedd
and expose a service in an application using Axis that both the Java and
C++ versions can use.  If so, can I define the port it opens on the fly
(both for exposing purposes and consuming)?  If not, is there an easy way
to write the transport layer ourselves so that we can embed them this way?

Jared McIntyre
Development Tools
PeopleSoft
Jared_McIntyre@peoplesoft.com
303-334-5695



Re: Services Hosted by Non-Webservers

Posted by Samisa Abeysinghe <sa...@yahoo.com>.
Hi Jared,
    Axis C++ has a "transport abstraction layer" which is used by both the client side as well as
the server side. 
    Reading through your requirement, as I understood, you could use the transport abstraction
layer API to write your own server side transport to get your job done. Please have a look at the
simple_axis_server (in src/server/simple_axis_server/) for a sample standalone implementation of
the transport API. Sometimes, you would be able to use this simple axis server as it is for your
purpose and it can be run on whichever port you want.
    If you want to get an idea on how to implement your own server side transport, please have a
look at the SimpleAxisTransport class (in src/server/simple_axis_server/). This implements the
transport abstraction API defined in src/transport/SOAPTransport.h.

HTH.

Thanks,
Samisa...

--- Jared_McIntyre@peoplesoft.com wrote:

> We are looking at migrating some of our backend code that uses Apache SOAP
> 1 and MS SOAP 2 to use Axis (Java and C++).  Here is a basic overview of
> how it all works today:
> 
> We have two applications (one java, one C++).  Each application exposes a
> single service and consumes the service of the other.  To do this, we use
> the two SOAP libraries described earlier to generate and process the SOAP
> envelopes for each call.  We handle all the network communication of these
> envelopes ourselves (no http server, etc).  This allows us to embed the
> applications, but it also allows us to easily expose multiple instances of
> the same service on the same machine. This is important since there can be
> multiple instances of one of these apps.  Each instance of app A must
> expose an instance of service A as application B will consume all currently
> running instances of service A.  To accomplish this, the port the service
> is exposed on is defined at runtime and discovered with calls to a broker
> we have created that manages all this information on the fly.
> 
> So, its a largely basic RPC style communication, where we drive the
> networking.  I'd like to use the built in functionality of Axis as much as
> possible.  Is there a standard transport layer that can be used to embedd
> and expose a service in an application using Axis that both the Java and
> C++ versions can use.  If so, can I define the port it opens on the fly
> (both for exposing purposes and consuming)?  If not, is there an easy way
> to write the transport layer ourselves so that we can embed them this way?
> 
> Jared McIntyre
> Development Tools
> PeopleSoft
> Jared_McIntyre@peoplesoft.com
> 303-334-5695
> 
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Take Yahoo! Mail with you! Get it on your mobile phone. 
http://mobile.yahoo.com/maildemo