Confronto fra web services framework (open source)

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

3 comments

Comments 1 - 3 of 3 previous next Post a comment

Post a comment
Embed Video
Edit your comment Cancel

1 Group

Confronto fra web services framework (open source) - Presentation Transcript

  1. Confronto fra web services framewok (open source) Alberto Lagna [email_address]
  2. >apropos alberto.lagna
    • Laureato in informatica, master in telecomunicazioni.
    • Consulente indipendente, lavoro come architetto software.
    • Fornisco consulenza nel design e lo sviluppo di sistemi enterprise basati su java EE e XML.
    • Ho un esperienza di più di 10 anni nella realizzazione di soluzioni ad oggetti distribuiti.
    • membro del JUGTORINO
    • Promuovo l’uso di software libero e supporto il movimento open source.
  3. Due parole sul JUG
    • Nasce dall'idea di alcuni appassionati di programmazione e Java nel “lontano” febbraio 2002. Ora siamo più di 200 iscritti
    • Lo scopo è quello di favorire l'interscambio di conoscenze informatiche e creare un punto di riferimento nel panorama degli sviluppatori Java in Italia
    • La partecipazione alle attività e del tutto gratuita e libera
    • Il JUG gestisce, una serie di attivita’ tra cui meeting, scrittura di articoli e review di libri per note case editrici
  4. Agenda
    • Il problema
    • I requisiti per la soluzione
    • Confronto fra framework
    • Il mio parere
    • Riferimenti
    • D&R
    • “… come la notte in cui tutte le mucche sono nere”
    • Georg Wilhelm Friedrich Hegel prefazione alla Fenomenologia
    • dello Spirito
  5. Il problema
    • Scenario
  6. Il problema
    • Impedance mismatch
      • Dovuto alla remotizzazione
      • Tra domini
      • Tra tecnologie
  7. Il problema
    • Gli attori in gioco
  8. I requisiti per la soluzione
    • In un sistema enterprise (SOA?)
      • POJO / XML web services
      • Standard
        • WCF, WS-*, JAX-WS 2.0 e JAXB
      • Interoperabilità
        • doc/lit, a supporto di una risposta complessa
      • OpenSource, IDE plugin
      • MTOM/XOP
      • JSON, REST
  9. I requisiti per la soluzione
    • POJO ws
      • Sono server e voglio esporre esattamente il dominio
      • Problema
        • il dominio è un albero
        • L’XML è un grafo
      • => non tutti i fwk sono in grado di “alberizzare” un grafo
      • Importante wrapping off-the shelf di un’applicazione esistente
  10. I requisiti per la soluzione
    • XML ws
      • Sono client
        • devo colmare il gap con il dominio del server che consumo
        • Consumo un WSDL con schema non ad oggetti
          • Derivante da cattivo disegno
          • Derivante da binding legacy (PHP, dotNET :) )
      • Sono server e voglio semplificare il dominio che espongo
      • Importante ricchezza di data binding
  11. I requisiti per la soluzione
  12. I requisiti per la soluzione
    • WS Standard
      • WCF ne supporta molti
        • WS-Addressing
          • formato id messaggi, indirizzi target, azioni
        • WS-SecureConversation
          • encrypting simmetrico
        • WS-ReliableMessaging
          • delivery garantita dei messaggi
        • WS-Coordination
          • protocollo per coordinare applicazioni distribuite
        • WS-AtomicTransaction
          • 2 phase commit su SOAP
        • WS-Policy
          • estensioni al WSDL per supportare i svc di sopra
      • I framework java li devono supportare
        • Per essere interoperabili, per supporto enterprise
  13. I requisiti per la soluzione
    • Interoperabilità
      • WS-I
        • an open industry organization chartered to promote ws interoperability
        • Basic security profile , a guide for making sure Web services are secure and interoperable.
      • Supporto al doc/lit per permettere lo scambio di messaggi complessi
  14. I requisiti per la soluzione
    • Supporto doc/lit
      • per permettere lo scambio di messaggi complessi
      • rpc/enc approach
        • easily exposes simple method calls as web services
        • model method calls with parameters encoded in XML
        • creates problems for interoperability, especially with more complex data structures.
        • has been effectively deprecated by WS-I BP, and replaced by the doc/lit approach.
      • doc/lit approach
        • focuses on the actual XML data being
        • uses W3C XML Schema definitions to fix the XML data formats
        • up to the participants of interaction to process the XML messages as appropriate to their needs.
      • D. Sosnosky
  15. I requisiti per la soluzione
    • MTOM
      • Message Transmission Optimization Mechanism
      • Ottimizzazione dei messaggi SOAP
      • Implementata da XOP (XML-binary Optimized Packaging)
      • Importante per interoperabilità e ottimizzazione negli attachment
  16. I requisiti per la soluzione
    • JSON
      • JavaScript Object Notation
      • Alternativo alla rappresentazione di oggetti in XML
      • Basato su JavaScript, ma ne è indipendente
      • Molto utilizato da GUI AJAX per la semplicità:
        • Basta chiamare eval() sulla struttura
    • {
    • "type": "menu",
    • "value": "File",
    • "items": [
    • {"value": "New", "action": "CreateNewDoc"},
    • {"value": "Open", "action": "OpenDoc"},
    • {"value": "Close", "action": "CloseDoc"}
    • ]
    • }
  17. I requisiti per la soluzione
    • REST
      • Representational State Transfer
      • The web is populated of resources (sources of specific information) that can be referred to using a global identifier (a URI). In order to manipulate them, components of the network (clients and servers) communicate via a standardized interface (e.g. HTTP) and exchange representations of these resources.
      • Alternativo a SOAP
      • Grande numero di applicazioni Ajax, mashUp lo richiedono
      • Standard de facto (Google, Amazon, eBay, Flickr, …)
        • Piccola demo
        • http://www.flickr.com/services/api/
  18. I requisiti per la soluzione
    • DEMO
      • Se leggete questa riga vuol dire che siete ancora svegli
      • REST API di Flickr
        • http://www.flickr.com/services/api/
  19. I requisiti per la soluzione
    • Java standard
      • JAX-WS 2.0
        • Evoluzione di JAX-RPC
        • Supporto annotation
        • Migliorato supporto agli schemi utilizzando JAXB 2.0 binding
  20. La terza generazione dei framework
    • Migliorato supporto per doc/lit
      • diventato mandatorio
    • WS-* standard implementati
    • Ridisegno architetturale
      • migliorate performance
    • Abbandonato rpc/enc che produceva un xml non usabile
    • Supporto REST
  21. Confronto
    • Intro dei framework
    • Feature matching
    • Documentazione disponibile
    • Lavori disponibili
    • Traffico mailing list
    • Maturità/supporto
  22. Introduzione ai fwk
    • Axis 2
      • un application server in miniatura
      • pluggability di estensioni
      • hot deploy
      • flessibilità a runtime
      • disegnato attorno ad AXIOM (AXIs Object Model)
      • multilanguage (C e java)
  23. Introduzione ai fwk
    • Apache CXF
      • Nato dal merge dei progetti Xfire e IONA Celtix
      • Main focus
        • Facilità d’uso, API semplici per un rapido startup nello sviluppo
        • Supporto agli standard
        • Integrazione con Spring
      • Molti programming models
        • JAX-WS annotation e senza
        • Contract first e Java first
      • Integrazione con legacy
        • Non XML bindings come JSON e CORBA
        • Trasporti diversi (HTTP/S, JMS, local, IIOP)
  24. Introduzione ai fwk
    • JiBXSoap
      • Costruito attorno al JiBX data binding
        • MOLTO accurato
      • Sviluppato per supportare solo doc/lit
      • Molto performante
        • Da 3 a 5 volte più veloce di Axis2 doc/lit
        • Fino a 20 volte più veloce di Axis2 rpc/enc
      • Miglior supporto per approccio Bottom-up
  25. Introduzione ai fwk
    • Spring WS
      • “ make a best practice an easy practice”
      • Supporto al solo contract first (top down)
      • Moltissime
        • API XML (XML WS)
        • data binding (POJO WS)
      • Spring nativo
  26. Introduzione ai fwk
    • JBoss WS
      • Stack nativo + supporto a CXF
      • Pluggable WS stack su JBoss
  27. Feature: approccio sviluppo ok no Il migliore raffinato ok tooling ok no ok ok ok Bottom up ok maven Il migliore raffinato Non ben doc tooling ok ok ok ok ok Top down JBoss WS Spring WS JiBXSoap CXF Axis2
  28. Feature: supporto standard ok ok ok Nativo in AXIOM MTOM/XOP ok Policy ok ok Reliable Messaging ok ok ok Addressing ok Integraz acegi ok ok Security ok WSDL 2.0 Quelli che chiedono utenti Arch flessibile Tramite modulo Supporto a nuovi ok ok ok Generato da tool sperimentale JAXB annotation ok Più vicino a JAXM nativo nativo Su AXIOM JAX-WS JBoss WS Spring WS JiBXSoap CXF Axis2
  29. Feature migliori Streaming XML con perf simili a RMI StAX pull parser di AXIOM Performance SOM, JAXB, SAAJ DOM, jDOM, dom4j, XOM, SAX, StAX, XPATH, JAXB, Castor, XMLBeans, JiBX, Xstream TROPPI Solo JiBX, ma molto raffinato JAXB e Aegis supportano il 99,99% degli schemi ADB, XMLBeans, JiBX, JaxMe, Castor (sperim) Data binding (XML ws) Con annotation Con annotation Uno dei main focus Doc e anche in spring POJO ws Partecipato a molti eventi Garantita da contract first WS-I basic profile Partecipato a molti eventi interop HTTP HTTP HTTP HTTP/S, JMS, local, IIOP HTTP/S, JMS, TCP, SMTP/POP, XMPP trasporti JBoss WS Spring WS JiBXSoap CXF Axis2
  30. Feature buona buona ottima ottima buona Doc 3k forum 1,2k forum 3,5k 3,5k 12k Traffico ML 2007 0 3 2 22 50 Lavori USA (monster.com) Sponsor ok ok alpha Incubator di apache Usato in molti progetti OS anche ESB Usato in molti progetti OS Maturità In programma POX REST via annotation Xml over http http binding di WSDL 2.0 REST JBoss WS Spring WS JiBXSoap CXF Axis2
  31. Il mio parere
    • Ognuno dei framework ha delle peculiarità
    • Scelgo quello che soddisfa i miei requisiti (risolve i miei problemi)
  32. Il mio parere
    • Scelgo quello che soddisfa i miei requisiti
      • Axis 2
        • Flessibilità a runtime
      • Apace CXF
        • LA Soluzione standard
      • JiBX Soap
        • XML WS con schema complesso
      • Spring WS
        • Esporre applicazione spring
      • JBoss WS
        • Ho uno stack JBoss
  33. Riferimenti
    • Hegel
      • Prefazione alla Fenomenologia dello Spirito.
      • http://it.wikiquote.org/wiki/Georg_Wilhelm_Friedrich_Hegel
      • http://www.class.uidaho.edu/mickelsen/texts/Hegel%20Phen/hegel_phen_preface.htm
  34. Riferimenti
    • Framework
      • Axis 2 http://ws.apache.org/axis2/
      • Apache CXF http://incubator.apache.org/cxf/
      • JiBX Soap http://jibx.sourceforge.net/jibxsoap/
      • Spring WS http://static.springframework.org/spring-ws/site/
      • JBoss WS http://labs.jboss.com/jbossws/
  35. Riferimenti
    • Standard
      • WS-Addressing
        • http://www.w3.org/Submission/ws-addressing/
      • WS-Secure Conversation
        • http://docs.oasis-open.org/ws-sx/ws-secureconversation/200512/ws-secureconversation-1.3-os.html
      • WS-Coordination
        • http://docs.oasis-open.org/ws-tx/wstx-wscoor-1.1-spec-os/wstx-wscoor-1.1-spec-os.html
  36. Riferimenti
    • Standard
      • WS-AtomicTransaction
        • http://docs.oasis-open.org/wstx/wsat-1.1-spec-wd-01.doc
      • WS-Policy
        • http://www.w3.org/Submission/WS-Policy/
      • WS-I Basic Security Profile
        • http://www.ws-i.org/Profiles/BasicSecurityProfile-1.0.html
  37. Riferimenti
    • Standard
      • MTOM/XOP
        • http://www.w3.org/TR/soap12-mtom/
      • JSON
        • http://it.wikipedia.org/wiki/JSON
      • REST
        • http://en.wikipedia.org/wiki/Representational_State_Transfer
  38. Riferimenti
    • Articoli
      • The year ahead in Java Web services
      • Digging into Axis2: AXIOM
      • Axis2 Data Binding
      • Axis, Axis 2 and CXF Surveying the Ws landscape
      • Expose Your POJO-Based Domain Apps as Web Services
      • Web Services Stack Comparison
      • http://del.icio.us/alagna/webservice
  39. D&R
    • Alberto. [email_address] . it

+ alagnaalagna, 3 years ago

custom

5291 views, 0 favs, 0 embeds more stats

More info about this document

© All Rights Reserved

Go to text version

  • Total Views 5291
    • 5291 on SlideShare
    • 0 from embeds
  • Comments 3
  • Favorites 0
  • Downloads 117
Most viewed embeds

more

All embeds

less

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

Cancel
File a copyright complaint
Having problems? Go to our helpdesk?

Categories

Groups / Events