Differenza tra Apache CXF e Axis
Domanda
Quali sono i vantaggi di utilizzare Apache CXF sopra Apache Axis e viceversa?
Soluzione
Tenete a mente, io sono totalmente di parte (PMC Cattedra di CXF), ma i miei pensieri:
Da un rigorosamente "può progetto fare quello che ho bisogno di fare" prospettiva, entrambi sono abbastanza equivalenti. Ci alcune cose "limite in" che CXF può fare che asse 2 non può e viceversa. Ma per il 90% dei casi d'uso, sia funzionerà bene.
In questo modo, si tratta di un mucchio di altre cose diverse "caratteristiche casella di controllo".
-
API - CXF spinge "gli standard based" di API (JAX-WS compliant), mentre Axis2 generale va verso le cose di proprietà. Detto questo, anche CXF può richiedere usi della proprietà API per configurare / controllare le varie cose al di fuori delle specifiche JAX-WS. Per il riposo, CXF utilizza anche (JAX-RS compliant) API standard invece delle cose di proprietà. (Sì, sono a conoscenza del runtime JAX-WS in Axis2, ma le attrezzature e documenti e tutto ciò che non lo bersagliano)
-
aspetti e sostenibilità della Comunità - CXF è orgogliosa di rispondere ai problemi e rendere "fixpack" a disposizione degli utenti. CXF ha fatto 12 fixpack per 2.0.x (uscito due anni fa, quindi circa ogni 2 mesi), 6 fixpack a 2.1.x, e ora 3 per 2.2.x. Axis2 in realtà non "sostenere" le versioni precedenti. A meno che un problema "critico" è colpito, potrebbe essere necessario attendere fino alla prossima release grande (hanno una media di circa ogni 9-10 mesi o giù di lì) per ottenere correzioni. (Anche se, con uno, si può afferrare il codice sorgente e patch / risolvere da soli. Gotta love open source.)
-
L'integrazione - CXF ha molto migliore integrazione primavera se si utilizza Primavera. Tutta la configurazione e come viene fatto attraverso primavera. Inoltre, le persone tendono a considerare CXF come più "embeddable" (non ho mai guardato Axis2 da questo punto di vista) in altre applicazioni. Non sono sicuro se cose del genere che ti interessano.
-
Prestazioni - entrambi comportano molto bene. Penso proprietaria ADB associazione dati di Axis2 è un po 'più veloce di CXF, ma se si utilizza JAXB (basato su standard API di nuovo), CXF è un po' più veloce. Quando si utilizzano gli scenari più complessi come WS-Security, la sicurezza "motore" di fondo (WSS4J) è lo stesso per entrambi così le prestazioni sono del tutto confrontabili.
Non sono sicuro se questo risponde alla domanda a tutti. Spero che almeno fornisce alcune informazioni.
: -)
Dan
Altri suggerimenti
- Axis2 :. Maggiori onnipresente sul mercato, supporta più attacchi, sostiene altri linguaggi come C / C ++
- CXF :. Molto più facile da usare, più accogliente primavera, più veloce ottenuto il supporto per alcune WS- * estensioni
Una cosa è l'attività della comunità. Confrontare il traffico mailing list per l'asse e CXF (2013).
- Axis utente 50-100 mail al mese
- CXF utente 400-500 mail al mese
Quindi, se questo è un indicatore di utilizzo, allora l'asse è di gran lunga meno utilizzato di CXF.
confrontare le statistiche CXF e dell'Asse a Ohloh . CXF è molto elevata attività mentre Axis ha una bassa attività complessiva.
Questa è la tabella per il numero di commit nel tempo per CXF (rosso) e Axis1 (verde) Axis2 (blu).
I vantaggi di CXF:
- CXF supporti per WS-Addressing, WS-Policy, WS-RM, WS-Security e WS-I BasicProfile.
- CXF implementa JAX-WS API (secondo da JAX-WS 2.0 TCK).
- CXF ha una migliore integrazione con la Primavera e altri framework.
- CXF ha alta estensibilità in termini di strategia di intercettore.
- CXF ha caratteristica più configurabile tramite l'API, invece di file XML ingombranti.
- CXF ha Attacchi:. SOAP, REST / HTTP, e il suo sostegno di associazioni di dati JAXB 2.0, Aegis, per impostazione predefinita utilizzare JAXB 2.0 e più stretta specifica standard Java
- CXF ha abbondanti toolkit, per esempio Java per WSDL, WSDL a Java, XSD a WSDL, WSDL a XML, WSDL per SOAP, WSDL di servizio.
I vantaggi di Axis2:
- Axis2 supporta anche WS-RM, WS-Security e WS-I BasicProfile tranne che per WS-Policy, mi aspetto che sarà supportato in una prossima versione.
- Axis ha più opzioni per associazioni di dati per il vostro sceglie
- Axis2 supporta diverse lingue, tra cui la versione C / C ++ e Java versione.
- Axis2 supporta una gamma più ampia di associazioni di dati, tra cui XMLBeans, JiBX, JaxMe e JaxBRI così come i propri dati nativi vincolanti, ADB. la storia più di CXF.
In sintesi: Dall'alto articoli vantaggio, ci porta ad un buon pensiero per confrontare Axis2 e CXF per i loro meriti. tutti hanno diverse aree ben sviluppate in un certo campo, CXF è molto configurabile, integrabile ed è ricco kit di strumenti supportati e vicino alla comunità Java, Axis2 ha adottato un approccio che lo rende per molti versi simile a un server di applicazione in miniatura. è su più linguaggi di programmazione. perché la sua indipendenza, Axis2 si presta verso servizi web che si distinguono da sola, indipendente da altre applicazioni, e offre una vasta gamma di funzionalità.
Come sviluppatore, dobbiamo accordare la nostra prospettiva di scegliere quella giusta, a seconda di quale quadro di scegliere, avrete il beneficio di una comunità open source attiva e stabile. In termini di prestazioni, ho fatto un test basato le stesse funzionalità e ConfigEd nello stesso contenitore web, il risultato mostra che CXF eseguita po 'meglio di Axis2, il singolo caso potrebbe non riflettere esattamente le loro capacità e le prestazioni.
In alcuni articoli di ricerca, rivela che proprietaria ADB associazione dati di Axis2 è un po 'più veloce di CXF in quanto non hanno funzione aggiuntiva (WS-Security). Apache Axis2 è quadro relativamente più usato ma i punteggi di Apache CXF rispetto ad altri Web Services Framework che considerano relativamente facilità di sviluppo, tendenze attuali del settore, le prestazioni, scorecard complessiva e altre caratteristiche (a meno che non ci si sia esplicitamente necessario Web Services supporto Orchestration, che non è necessario qui )
Come per la mia esperienza CXF è buono in termini di configurazione in ambiente primavera. Anche le classi generate sono semplici da capire. E come è più attiva, si ottiene un miglior supporto in confronto a AXIS o axis2.
Un altro vantaggio di CXF: si connette al server Web utilizzando l'autenticazione NTLMv2 fuori dalla scatola. (Usato da Windows 2008 & up) Prima di utilizzare CXF, ho inciso Axis2 usare HTTPClient V4 + JCIFS per rendere questo possibile.