2010-05-11 17 views
16

Anche se questo potrebbe apparire come un duplicato di Java Web Services, mi piacerebbe sapere dove iniziare e continuare. In passato, ho investito molto tempo per trovare da dove iniziare ma Non ero in grado di Ci sono così tanti gerghi e caos (almeno per me!) Mentre leggo le pagine sui servizi web. Ci sono così tanti termini - come JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB's come servizio Web e altri termini che non conosco. Questo gruppo di utenti può essere consolidato e fornire una panoramica dei servizi Web Java di elevata qualità che è facile da comprendere e seguire? Apprezzo la tua gentilezza e grazie per il tuo aiuto.Come scrivere servizi web efficaci in java

risposta

33

Questo è davvero un po 'una giungla per capire i servizi web. La pagina wikipedia è decente, ma manca ancora alcuni elementi.

Ho contrassegnato questa risposta come wiki della comunità, quindi sentitevi liberi di aggiornarlo o correggerlo. È solo una base.

Un termine gonfio:

In primo luogo, il termine servizio web viene utilizzato per riferirsi a molte cose. Mentre molte persone lo usano per riferirsi al servizio web basato su SOAP, il termine può essere usato per indicare qualsiasi servizio fornito attraverso un'interfaccia web; questa è una fonte di confusione.

Attuazione e design di stile:

  • basati su SOAP - SOAP è ancora lo standard de-facto per i servizi web. SOAP è un protocollo su HTTP che descrive lo scambio di messaggi ed eccezioni. SOAP è cresciuto da qualcosa di semplice a qualcosa di molto complicato con tutti gli WS-* standards che sono stati aggiunti in seguito. I più importanti sono: WS-Policy, WS-Security, WS-Addressing, WS-Transaction. Un'altra importante caratteristica è MTOM per i messaggi di grandi dimensioni.
  • RESTful - Il termine RESTful si riferisce al fatto che il servizio è stateless e tutte le informazioni rilevanti vengono passate come parametro. Inoltre, anziché utilizzare un protocollo come SOAP, vengono utilizzati i semplici verbi HTTP , ad es. Get, Put, Delete, Update.
  • Stateless - I WS sono in genere senza stato. I business elaborati a volte si affidano ai cosiddetti identificatori di correlazione (con WS-Addressing) che vengono utilizzati per abbinare le richieste e le risposte insieme; questa è la stessa idea di come memorizzare un identificativo di sessione in un cookie perché HTTP è senza stato.
  • Stateful - Ci sono alcune proposte per avere WS WS, ma non ne so molto.

attuazione e tecnologia stack:

  • Servlet - Il modo di livello più basso per implementare un WS: è fondamentalmente analizzare la richiesta e sputare la risposta HTTP tutto da solo.
  • EJB - Dal momento che EJB3, EJB può essere esposto come servizio Web molto facilmente. Ha bisogno di un contenitore EJB, ovviamente.
  • Apache Axis - Utilizzato per essere uno stack tecnologico popolare in declino.
  • Apache CXF - Un'altra scelta popolare.
  • JBossWS - Ancora un'altra scelta del popluar.
  • JAX-WS - Lo stack del servizio Web ufficiale da Sun, molto buono. Finora lo so, questo JAX-RPC replaces che è stato semplicemente rinominato JAX-WS.

Concetti correlati e gergo:

  • WSDL - Definisce il contratto/interfaccia del servizio web, in caso di WS basato su SOAP.
  • Contratto prima - Si riferisce al fatto che una tecnologia è in grado di supportare qualsiasi WSDL fornito in anticipo. Al contrario di una tecnologia di implementazione che genererà il WSDL basato sull'implementazione del servizio Web, nel qual caso il WSDL non può sempre essere personalizzato come necessario
  • Profilo - Per semplificare questo pasticcio, hanno introdotto profili che sono gruppi di specifiche/capacità correlate che devono essere supportati per l'interoperabilità. Il principale è il profilo di base WS-I.
  • UDDI e discovery - Sembra che alcune persone abbiano pensato che il servizio Web sarebbe stato pubblicato in un registro pubblico in modo da essere individuabile dal potenziale consumatore. Non penso che questa visione abbia acquisito molto slancio.
+0

+1 Dettagliato ancora al punto panoramica. – CoolBeans

+0

+1 Post molto bello - qualcosa di cui avevo disperatamente bisogno oggi, abbastanza convenientemente. – aperkins

+0

Qualcuno può condividere le procedure di installazione, con eclissi, asse2, tomcat –