Comparison Between Axis, cxf, and xfire

Source: Internet
Author: User

Xfire vs axis

Xfire is a new-generation WebService platform tied with axis2. This is also called the next generation because it:

1. supports a series of new Web service standards, such as jsr181, wsdl2.0, jaxb2, and WS-Security;

2. Use Stax to explain XML, which improves the performance. Xfire uses woodstox for Stax implementation;

3. Easy to use and quick service release from pojo;

4. Spring combination;

5. Flexible binding mechanism, including the default aegis, xmlbeans, jaxb2, And Castor.

 

Performance Comparison Between xfire and axis1

1. xfire is 2-6 times faster than axis1.3

2. The xfire response time is 1/2 to 1/5 of axis1.3.

 

Comparison between xfire and axis2

Although xfire and axis2 are both new-generation WebService platforms, axis2 developers are too eager to launch Version 1.0, So Version 1.0 is not a stable version. Its developers claim that version 1.1 is coming soon, we hope that version 1.1 will be a stable version. After xfire donated Apache, someone thought axis2 would kill. In fact, in the eyes of many people, axis2 is not in the form of pojo. Dan diephouse proves that xfire is more available than axis. I also found that many people started to switch from axis to xfire, I also persuaded people around me to turn to xfire for WebService development. Typically, I can teach my team to use xfire to publish a web service within a few minutes. Xfire is indeed much simpler than axis2

 

Axis vs cxf

In the SOA field, we believe that Web Service is the building block of the SOA system ). For service developers, neither axis nor cxf is unfamiliar. Both products are open-source Web service development tools under the Apache incubator. The latest version of axis2 is 1.3.cxf and has now reached version 2.0.

Both frameworks are developed from existing open-source projects. Axis2 is developed from the axis1.x series. Cxf is a combination of xfire and celtix projects. Axis2 is re-implemented from the underlying layer, using a new scalable and better module architecture. Cxf has also deepened the xfire and celtix development tools.

The exit of the new product caused several problems. Is it possible to migrate existing applications using axis 1.x, xfire, and celix to a new version. If a developer is sure to migrate its application to the new framework, which one should he choose? On the contrary, if a developer decides to develop a new Web service from scratch, which one should he use? Which of the two frameworks is better?

For system migration, it may not be difficult to migrate to the new framework. Both axis and cxf provide migration guidance. Provides developers with some migration skills and experience. However, for such migration, neither of the two open-source projects provides a migration tool. For such migration, it is worth looking for all feasible solutions. Both axis2 and cxf have different WebService development methods. Each method has a considerable number of advocates.

Comparing axis2 and cxf with a comparison matrix makes sense. Both projects are not mature enough, but the main differences are as follows:

1. cxf supports WS-Addressing, WS-Policy, WS-RM, WS-Security, and WS-I basic profile. Axis2 does not support WS-policy, but promises to support it in the following versions.

2. cxf supports spring well. Axis2 cannot

3. axis2 supports a wider range of data, such as xmlbeans, jibx, jaxme, and jaxbri, and bind them to ADB. Note that both jaxme and jaxbri are experimental. Cxf only supports jaxb and aegis. In cxf2.1

4. axis2 supports multiple languages-in addition to Java, it also supports C/C ++.

 

Comparing the Web service development methods of these two frameworks is equally important as comparing their features.

From the developer's point of view, the features of the two frameworks are quite different. The development method of axis2 is similar to that of a small Application Server. The axis2 development kit should be deployed to servlet containers in the form of war, such as Tomcat, these containers can be used to monitor and manage the Web service at work. The Web administrion module of axis2 allows us to dynamically configure axis2. a new service can be uploaded, activated, invalidated, and Web Service parameters can be modified. The management UI can also manage one or more running services. One drawback of this interface-based management method is that all the parameters modified during the runtime cannot be saved, because after the restart, all the modifications you have made will become invalid. Axis2 allows itself to publish Web services as independent applications, and provides a large number of features and a good model. This model can be implemented through its own architecture (modular architecture) add new features constantly.

Some developers think this method is too cumbersome for their needs. These developers prefer cxf. Cxf focuses more on the developer's efficiency (ergonomics) and embedded capabilities (embeddability ). Most configurations can be completed through APIS, replacing the complicated xml configuration file. Spring integration is often mentioned, cxf supports spring, cxf's API, and spring configuration files. Cxf emphasizes the code-first design (Code-first design) and uses simple APIs to make it easier to develop services from existing applications. However, if you choose axis2 or cxf, you can get a lot of help from the open-source community. Both frameworks are provided by commercial companies, wso2 provides axis2 support, and Iona provides cxf support. Both companies have active developer communities. Axis2 appeared earlier, and cxf was catching up quickly.

 

Suggestion:

If you need multi-language support, you should select axis2.

If you need to focus your implementation on Java and want to integrate with spring, cxf is a better choice, especially to embed your web service into other programs.

If you think that the new features of these two frameworks are not very useful to you, you will think axis1 is also a good choice, you should continue to use it and know that you have a good reason to replace it.

 

How to choose:

1. If the application requires multi-language support, axis2 should be the first choice;

2. If the application follows the spring philosophy, Apache cxf is a better choice, especially for Embedded WebServices;

3. If no new features are required for the application, it will still be implemented using the frameworks used in the original project, such as axis1, xfire, celtrix, and Bea, don't hurt people.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.