web-services cxf axis2 axis

web services - Diferencia entre el servicio web Axis2 y el servicio web CXF



web-services (1)

Agradecería que alguien me ayudara a entender la diferencia entre el servicio web axis2 y el servicio web CXF.


Las principales diferencias entre el servicio web axis2 y el servicio web CXF son las siguientes:

  1. CXF tiene soporte para WS-Addressing, WS-Policy, WS-RM, WS-Security y WS-I BasicProfile. Axis2 es compatible con cada uno de estos, excepto WS-Policy, que se admitirá en una próxima versión.

  2. CXF fue escrito con Spring en mente; Axis2 no lo es.

  3. Axis2 admite una gama más amplia de enlaces de datos, incluidos XMLBeans, JiBX, JaxMe y JaxBRI, así como su propio enlace de datos nativo, ADB. Tenga en cuenta que el soporte para JaxME y JaxBRI todavía se considera experimental en Axis2 1.2. Actualmente, CXF solo es compatible con JAXB y Aegis; el soporte para XMLBeans, JiBX y Castor vendrá en CXF 2.1.

  4. Axis2 admite múltiples idiomas: hay una versión C / C ++ disponible además de la versión Java.

Sin embargo, al comparar estos marcos, es tan importante considerar su enfoque para desarrollar servicios web como comparar las características. Desde la perspectiva del desarrollador, ambos marcos se comportan de forma muy diferente el uno del otro. Axis2 ha adoptado un enfoque que lo hace parecerse en muchos aspectos a un servidor de aplicaciones en miniatura. Axis2 viene con un WAR que se puede implementar en un contenedor de servlets como Tomcat, que está diseñado para hacer que los servicios web sean más fáciles de administrar e implementar sobre la marcha. El módulo de administración web de Axis2 permite que Axis2 se configure dinámicamente mientras se ejecutan las aplicaciones: se pueden cargar, activar o desactivar nuevos servicios y se pueden cambiar sus parámetros. La IU de administración también permite que los módulos se habiliten en uno o más servicios en ejecución. El único inconveniente del uso de la IU para estos fines es el hecho de que los cambios de configuración realizados a través de él no son persistentes: desaparecen cuando se reinicia el contenedor de servlets.

Axis2 se presta a servicios web independientes, independientes de otras aplicaciones, y ofrece una amplia variedad de funcionalidades, y un buen modelo para agregar más funcionalidad a medida que pasa el tiempo a través de su arquitectura modular. Algunos desarrolladores pueden encontrar que un poco demasiado engorroso o pesado para sus necesidades. Estos desarrolladores pueden preferir mirar Apache CXF.

CXF se concentra en la ergonomía e integración del desarrollador. La mayoría de la configuración se realiza a través de la API en lugar de engorrosos archivos XML, la integración de Spring está muy enfatizada, incluida la compatibilidad con Spring 2.0, y las API de CXF y la configuración de Spring se reflejan bastante estrechamente. CXF enfatiza el diseño basado en código, utilizando API simples para facilitar el desarrollo de servicios de aplicaciones existentes (y su integración también ayuda).

Cualquiera sea el marco que elija, tendrá el beneficio de una comunidad de código abierto activa y estable. Cada uno de estos marcos tiene respaldo corporativo: Axis2 está respaldado por WSO2 y CXF por Iona. Ambos tienen animadas comunidades de desarrolladores. Axis2 ha existido por más tiempo, pero CXF se está recuperando rápidamente. Mi recomendación es esta: si el soporte multilenguaje es importante, Axis2 es la opción más clara. Si le importa una implementación centrada en Java con una estrecha integración en proyectos como Spring, CXF es una mejor opción, especialmente para incorporar servicios web dentro de otros programas. Si las nuevas características en estos proyectos no son importantes, y usted está relativamente satisfecho con Axis1, debe considerar quedarse con esto y mantenerse al día con las últimas versiones de mantenimiento hasta que tenga un motivo comercial para migrar.