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


Reply via email to