Selecting the right Web Services frameworkAdd to Sep. 18, 2007 In the Web services segment, two new next-generation frameworks have been released in 2006, and they both fall under the umbrella of the Apache Software Foundation (ASF). These frameworks are Apache Axis2, which hit version 1.0 at the end of April of last year and is currently in the release candidate stage for version 1.3. Then is Apache CXF, which released version 2.0 (the first version released under that name) less than two months ago. Not surprisingly, both WS frameworks also evolved from existing projects. Axis2 came from the well-known Axis 1.x series. CXF is literally the offspring of the X-Fire and Celtix projects, as those two projects have pooled their codebases and development teams to give rise to CXF. The changes between the old projects and their new versions is significant in each case. Axis2 is a total rewrite of Axis from the ground up, using a new modular architecture that allows its functionality to be more easily extended. CXF has also been extensively retooled from its XFire and Celtix origins. This leads us to a couple of questions... Should existing applications using Axis 1.x, XFire or Celtix move to the new versions of those projects? And if a developer does decide to migrate his or her application to one of the new frameworks, which one should they use? Conversely, if one is writing a new Web service from the ground up and no migration is required, which one should they use anyway? Is one framework inherently better than the other? It seems there are more questions than answers. Let's take all these questions one by one... First, should existing applications migrate? The answer to that depends largely on the point in its lifecycle your application has reached. A project which is very static and mature, with few or no changes expected in the foreseeable future, probably doesn't need to migrate as the current framework is serving its needs well enough. If the application's performance or functionality is impacted by some development bugs, it might be worth migrating, particularly for users of Axis 1.x, as most of the developer community around Axis has refocused its resources around Axis2. However, an Axis 1.5 release is in the works, but it may not happen for many months... As to the question for which project to migrate to, it might be easiest to move to the next generation of your current framework. Both Axis2 and CXF provide migration guides that give developers tips on how to migrate from their previous versions, but as of this writing neither project has provided migration tools or guides for porting web services from one framework to another. But in such a migration, it's always worth looking at all the options available. Axis2 and CXF each take different approaches to Web service development, and these approaches will appeal more to some developers than others. This brings us to a good point to compare Axis2 and CXF on their own merits. They are of course in many ways comparable. Of necessity Web services frameworks must fill in all the same blanks, but since both projects are very young, each has certain areas that are more well-developed than others. The chief differences are as follows: 1) Overall, CXF offers support for WS-Addressing, WS-Policy, WS-RM, WS-Security, and WS-I BasicProfile. 2) Axis2 supports each of these except for WS-Policy, which will be supported in an upcoming version. 3) CXF was written with Spring in mind; Axis2 is not. 4) Axis2 supports a wider range of data bindings, including XMLBeans, JiBX, JaxMe and JaxBRI as well as its own native data binding, ADB. (Note that support for JaxME and JaxBRI are still considered experimental in Axis2 1.2.) 5) CXF currently supports only JAXB and Aegis; support for XMLBeans, JiBX and Castor will come in CXF 2.1. 6) Axis2 supports multiple languages--there is a C/C++ version available in addition to the Java version. In conclusion, and in comparing all of these Web services frameworks, it's just as important to look at their initial approach to developing services as it is to compare features. From a developer perspective, both frameworks behave very differently from one another. Axis2 has taken an approach that makes it in many ways resemble an application server in miniature. Axis2 comes packaged with a WAR that can be deployed on a servlet container such as Tomcat that is designed to make Web services easier to manage and deploy on the fly. The Axis2 Web Administration module allows Axis2 to be configured dynamically while applications are running. Overall, new services can be uploaded, activated or deactivated and their parameters may be changed. The administration GUI also allows modules to be enabled on one or more running services. The only downside to using the GUI for these purposes is the fact that configuration changes made through it are not persistent--they go away when the servlet container is restarted! Axis2 lends itself towards Web services that stand alone, independent of other applications, and offers a wide variety of functionality, and a good model for adding more functionality as time goes on through its modular architecture. Some WS developers may find that it's a little too cumbersome or heavy-duty for their needs. These developers might prefer to look at Apache CXF. CXF concentrates on developer ergonomics and embeddability. Most configuration is done via the API instead of cumbersome XML files, Spring integration is heavily emphasized, including support for Spring 2.0, and CXF's APIs and Spring configuration mirror one another fairly closely. CXF emphasizes code-first design, using simple APIs to make development of services from existing applications easier, and its embeddability helps too. Whichever Web services framework you choose, you'll have the benefit of an active and stable open source community. Each of these frameworks has corporate backing: Axis2 is backed by WS-O2, and CXF by Iona. Both also have lively developer communities. Axis2 has been around longer, but CXF is catching up very quickly. Some industry insiders recommend this: If multilanguage support is important, Axis2 is the clear choice. If you care about an implementation focused on Java, and with tight integration into projects like Spring, CXF is a better choice, particularly for embedding Web services inside of other programs. If the new features in these projects aren't important, and you're relatively happy with Axis1, you should consider staying on this and keep up with the latest maintenance releases until you have a business reason to migrate. Add to Source: The Server Side Have your website professionally optimized by the search engine positioning experts at Rank for $ales. If your site has dropped in rankings since November 16, 2003, contact the search engine positioning experts at Rank for Sales. Get your business or company listed in the Global Business Listing directory and increase your business. It takes less then 24 hours to get a premium listing in the most powerful business search engine there is. Click here to find out all about it. For the best technical information on hardware, software, Internet applications, e-Commerce, B2B, Web services or IT-related industry news, visit Tech Blog. Reciprocal Link Exchange Program: If your company is engaged in the business of Web Services, the development of related Internet application, ecommerce or B2B development, Internet security services, Web hosting services or is involved in professional Search Engine Optimization, My Web Services is seriously interested in a worthwhile Reciprocal Link Exchange Trading Program with your company. Click here to get all the details.
Sponsored by
Internet Trends
Sponsored by
LCWHG
Sponsored by
ISEN |