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
