You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Dave Hoffer <DH...@xrite.com> on 2005/08/11 18:20:33 UTC

Axis2 questions

Hello Axis team,

 

I have some general questions about Axis and how it could be used to
help solve some of our application development problems.  I have limited
experience with Axis 1.x.  We used this to allow a Flash client UI to
access our C++ logic/code on OSX/Windows.  This worked well but was a
simple API/UI.

 

The basic problem we are trying to solve is how to best write
cross-platform desktop (client-server) applications.  We require
excellent Windows & OSX support.  Solaris is also used but to a much
lesser extent.  Our applications are used mainly in the commercial and
industrial markets; we have some users in the pro consumer space.
Traditionally we have developed native C++ binaries using native
Windowing toolkits on each platform, such as MFC on Windows.  As you
know this is a hard way to go.  We have achieved very little common code
across platforms.  Cross-platform C++ is a hard way to go.

 

We would like to go with 100% java as that solves the platform issues.
However some of our OSX developers insist that Java does not give an
acceptable UI for some OSX users.  I don't know if it's true but I am
assuming that it and I am trying to find a solution while still using
Java for all the non UI logic.  This is where Axis comes in to help.

 

What I would like to do is develop all the non UI logic in Java.
Therefore in the MVC pattern, both the model and the controller will be
written in Java.  I would then add a web service layer using Axis2 to
transport the view to and from the UI logic.  This then decouples the
programming environment of the view from the rest of the system.  I can
use C++, Java, Flash or whatever for the client.

 

Now, I know Axis can do this.  The question is, is this a practical
thing to do?  I am concerned about performance, stability, etc.  Our
applications range from applications with quite simple (but pretty) UI
with little data to quite complicated with lots of data being shown.  In
the latter case we will have graphs, charts, etc.  Our users are
accustomed to native applications and I am wondering how drastic this
change would be to perceived performance.

 

That being said, the client load would be very light.  Since we are
talking about replacing desktop applications (with db access), I would
have Axis running with some servlet container, such as Jetty/Tomcat,
running on every system with the client using localhost.  Is this a
practical use of Axis2?  In reality we would also host this as
client-server but our client load would be rather light as compared to
web sites.  Other questions are...

 

1.	I understand Axis2 supports TCP & SMTP transports also.  Could I
use the TCP transport instead of HTTP for systems that are not being
used across firewalls?  Would this be much quicker?  How does the client
language work with the TCP transport?
2.	Are there better server containers than Jetty/Tomcat for what I
need to do?
3.	I am doing RPC style programming with the web services.  I see
Axis2 has a de-emphasis of RPC oriented web services, why is this?  Does
this negatively effect what I am trying to do?  Can I use this change to
my advantage?  
4.	I think the biggest disadvantage to using Axis in the manor is
the latency between requests/responses.  What can I do to minimize this
latency?

 

Thank you,

 

-dh


Re: Axis2 questions

Posted by Anne Thomas Manes <at...@gmail.com>.
In answer to question #3:

> I am doing RPC style programming with the web services.  I see Axis2 has a 
> de-emphasis of RPC oriented web services, why is this?  Does this negatively 
> effect what I am trying to do?  Can I use this change to my advantage? 

Web services technology, in general, is de-emphasizing the use of SOAP
encoding because it's been the source of a lot of interoperability
issues. The WS_ Basic Profile prohibits use of SOAP encoding.
Therefore, there's been a de-emphasis of the use of RPC style
services. Axis supports RPC style with literal encoding, but many
systems (Microsoft, BEA, SAP, etc.) do not.

I strongly encourage you to adopt document/literal style services with
the wrapped programming convention. From the application programming
perspective "wrapped" and rpc style services are nearly identical, but
wrapped produced a document/literal service.

Anne

On 8/11/05, Dave Hoffer <DH...@xrite.com> wrote:
>  
>  
> 
> Hello Axis team, 
> 
>   
> 
> I have some general questions about Axis and how it could be used to help
> solve some of our application development problems.  I have limited
> experience with Axis 1.x.  We used this to allow a Flash client UI to access
> our C++ logic/code on OSX/Windows.  This worked well but was a simple
> API/UI. 
> 
>   
> 
> The basic problem we are trying to solve is how to best write cross-platform
> desktop (client-server) applications.  We require excellent Windows & OSX
> support.  Solaris is also used but to a much lesser extent.  Our
> applications are used mainly in the commercial and industrial markets; we
> have some users in the pro consumer space.   Traditionally we have developed
> native C++ binaries using native Windowing toolkits on each platform, such
> as MFC on Windows.  As you know this is a hard way to go.  We have achieved
> very little common code across platforms.  Cross-platform C++ is a hard way
> to go. 
> 
>   
> 
> We would like to go with 100% java as that solves the platform issues. 
> However some of our OSX developers insist that Java does not give an
> acceptable UI for some OSX users.  I don't know if it's true but I am
> assuming that it and I am trying to find a solution while still using Java
> for all the non UI logic.  This is where Axis comes in to help. 
> 
>   
> 
> What I would like to do is develop all the non UI logic in Java.  Therefore
> in the MVC pattern, both the model and the controller will be written in
> Java.  I would then add a web service layer using Axis2 to transport the
> view to and from the UI logic.  This then decouples the programming
> environment of the view from the rest of the system.  I can use C++, Java,
> Flash or whatever for the client. 
> 
>   
> 
> Now, I know Axis can do this.  The question is, is this a practical thing to
> do?  I am concerned about performance, stability, etc.  Our applications
> range from applications with quite simple (but pretty) UI with little data
> to quite complicated with lots of data being shown.  In the latter case we
> will have graphs, charts, etc.  Our users are accustomed to native
> applications and I am wondering how drastic this change would be to
> perceived performance. 
> 
>   
> 
> That being said, the client load would be very light.  Since we are talking
> about replacing desktop applications (with db access), I would have Axis
> running with some servlet container, such as Jetty/Tomcat, running on every
> system with the client using localhost.  Is this a practical use of Axis2? 
> In reality we would also host this as client-server but our client load
> would be rather light as compared to web sites.  Other questions are… 
> 
>   
>  
> I understand Axis2 supports TCP & SMTP transports also.  Could I use the TCP
> transport instead of HTTP for systems that are not being used across
> firewalls?  Would this be much quicker?  How does the client language work
> with the TCP transport? 
> Are there better server containers than Jetty/Tomcat for what I need to do? 
> I am doing RPC style programming with the web services.  I see Axis2 has a
> de-emphasis of RPC oriented web services, why is this?  Does this negatively
> effect what I am trying to do?  Can I use this change to my advantage?  
> I think the biggest disadvantage to using Axis in the manor is the latency
> between requests/responses.  What can I do to minimize this latency? 
> 
>   
> 
> Thank you, 
> 
>   
> 
> -dh

RE: Axis2 questions

Posted by Eran Chinthaka <ch...@opensource.lk>.
Long mail ☺

See my comments below with <Chinthaka> tags.


Hello Axis team,

I have some general questions about Axis and how it could be used to help solve some of our application development problems.  I have limited experience with Axis 1.x.  We used this to allow a Flash client UI to access our C++ logic/code on OSX/Windows.  This worked well but was a simple API/UI.

The basic problem we are trying to solve is how to best write cross-platform desktop (client-server) applications.  We require excellent Windows & OSX support.  Solaris is also used but to a much lesser extent.  Our applications are used mainly in the commercial and industrial markets; we have some users in the pro consumer space.   Traditionally we have developed native C++ binaries using native Windowing toolkits on each platform, such as MFC on Windows.  As you know this is a hard way to go.  We have achieved very little common code across platforms.  Cross-platform C++ is a hard way to go.

We would like to go with 100% java as that solves the platform issues.  However some of our OSX developers insist that Java does not give an acceptable UI for some OSX users.  I don’t know if it’s true but I am assuming that it and I am trying to find a solution while still using Java for all the non UI logic.  This is where Axis comes in to help.

<Chinthaka>

Well even though Java itself may not give you the UI what you really expect, you can simply use SWT provided by eclipse to solve it. SWT has the capability to get the native UI for the user. And I got to know that Mustang (JDK 1.6) will come with a far better UI. This is not a good topic in this mailing list ;).

</Chinthaka>

What I would like to do is develop all the non UI logic in Java.  Therefore in the MVC pattern, both the model and the controller will be written in Java.  I would then add a web service layer using Axis2 to transport the view to and from the UI logic.  This then decouples the programming environment of the view from the rest of the system.  I can use C++, Java, Flash or whatever for the client.

Now, I know Axis can do this.  The question is, is this a practical thing to do?  I am concerned about performance, stability, etc.  Our applications range from applications with quite simple (but pretty) UI with little data to quite complicated with lots of data being shown.  In the latter case we will have graphs, charts, etc.  Our users are accustomed to native applications and I am wondering how drastic this change would be to perceived performance.

That being said, the client load would be very light.  Since we are talking about replacing desktop applications (with db access), I would have Axis running with some servlet container, such as Jetty/Tomcat, running on every system with the client using localhost.  Is this a practical use of Axis2?  In reality we would also host this as client-server but our client load would be rather light as compared to web sites.  Other questions are…

1. I understand Axis2 supports TCP & SMTP transports also.  Could I use the TCP transport instead of HTTP for systems that are not being used across firewalls?  

<Chinthaka> Yes you can </Chinthaka>

Would this be much quicker?  How does the client language work with the TCP transport?

<Chinthaka> Yes you can use TCP to transmit data. I can't comment in the comparative speed with TCP</Chinthaka>

2. Are there better server containers than Jetty/Tomcat for what I need to do?

<Chinthaka>Rather what is wrong with Tomcat. For me its very solid product </Chinthaka>

3. I am doing RPC style programming with the web services.  I see Axis2 has a de-emphasis of RPC oriented web services, why is this?  Does this negatively effect what I am trying to do?  Can I use this change to my advantage?  

<Chinthaka>No still you can do RPC style messaging with Axis2. We have an RPC based dispatcher in Axis2.</Chinthaka>

4. I think the biggest disadvantage to using Axis in the manor is the latency between requests/responses.  What can I do to minimize this latency?

<Chinthaka> This is one of the goals of Axis2. Better try Axis2, before commenting.

Axis2 is still in its 0.9 version. But for your requirements I think Axis2 can cater. But remember we have some more to go to 1.0 :)
</Chinthaka>

Thank you,

-dh