2010-05-11 28 views
16

Bu, Java Web Services kopyası gibi görünse de, nereden başlayacağınızı ve devam edeceğinizi bilmek isterdim. Geçmişte, nereden başlayacağımı bulmak için çok zaman harcadım. Yapamadım. Web servisleri ile ilgili sayfaları okurken çok fazla jargon ve kaos var (en azından benim için!). Web Hizmeti olarak JAX-RPC, JAX-WS, Axis, Rest, Servlet as WebService, EJB's ve bilmediğim diğer terimler gibi pek çok terim var. Bu Kullanıcı grubu, anlaşılması ve takibi kolay bir Java Web Servisleri hakkında kapsamlı bir genel bakış sunabilir ve verebilir mi? Nezaketini takdir ediyorum ve yardımın için teşekkürler.Java'da etkin web hizmetleri nasıl yazılır

cevap

33

Gerçekten de web servislerini anlamak için bir orman. wikipedia sayfası iyi ama yine de bazı unsurlardan yoksundur.

Bu yanıtı topluluk wiki olarak işaretledim, bu nedenle güncelleştirmeyi ücretsiz olarak düzeltin veya düzeltin. Bu sadece bir temel.

Bir şişirilmiş terim:

Birincisi, terim web hizmeti birçok şey ifade etmek için kullanılır. Birçok kişi SOAP tabanlı web servisine başvurmak için kullanıyor olsa da, terim bir web arayüzü aracılığıyla sağlanan herhangi bir hizmeti belirtmek için kullanılabilir; Bu bir karışıklık kaynağıdır.

Uygulama ve tasarım stili:

  • SABUN tabanlı - SABUN hala web hizmetleri için fiili bir standarttır. SOAP, mesajın ve istisnanın değişimini tanımlayan HTTP'nin üstünde protokoldür. SOAP, daha sonra eklenmiş olan tüm WS-* standards ile çok karmaşık bir şeye basit bir şeyden büyüdü. En önemlileri şunlardır: WS-Politikası, WS-Güvenlik, WS-Adresleme, WS-Transaction. Diğer önemli bir özellik ise büyük mesaj için MTOM'dur.
  • RESTful - RESTful ifadesi, hizmetin vatansız olduğunu ve ilgili tüm bilgilerin parametre olarak iletilmesiyle ilgilidir. Ayrıca, SOAP gibi bir protokol kullanmak yerine, düz HTTP fiilleri, örn. Get, Put, Delete, Update.
  • Durumsuz Durum - WS genellikle durumsuzdur. İşlenen iş bazen, istekleri ve yanıtları bir araya getirmek için kullanılan sözde korelasyon tanımlayıcılarına (WS-Addressing ile) güvenir; HTTP vatansız olduğu için bir çerezde oturum tanımlayıcısının saklanması gibi aynı fikirdir.
  • Durum bilgisi - Durum bilgisi olan WS'ye sahip olmak için bazı öneriler var, ancak bu konuda fazla bir şey bilmiyorum.

Uygulama ve teknoloji yığınlarının:

  • Servlet - Bir WS uygulamak için en düşük düzey yolu: temelde isteği ayrıştırmak ve kendiniz tüm HTTP yanıtı tükürür. EJB3'ten beri EJB, web servisi olarak çok kolay bir şekilde gösterilebilir. Elbette bir EJB konteynerine ihtiyaç var.
  • Apache Axis - Şu an popüler bir teknoloji yığını olarak kullanılıyor.
  • Apache CXF - Başka bir popüler seçim.
  • JBossWS - Yine başka bir popluar seçimi.
  • JAX-WS - Sun'ın resmi web hizmeti yığını çok iyi. Şimdiye kadar biliyorum ki, bu sadece JAX-WS olarak adlandırılan bu replaces JAX-RPC.

İlgili kavramlar ve jargon:

  • WSDL - SOAP tabanlı WS durumunda, web hizmetinin sözleşme/arayüzünü tanımlar.
  • Sözleşme ilk olarak - Bir teknolojinin önceden sağlanan WSDL'yi destekleyebildiği gerçeğini ifade eder. WSDL'yi web hizmetinin uygulanmasına dayalı olarak üretecek olan bir uygulama teknolojisinin tersine, bu durumda WSDL her zaman gerektiği gibi özelleştirilemez.
  • Profil - Bu karışıklığı basitleştirmek için Birlikte çalışabilirlik için desteklenmesi gereken ilgili özellikler/yetenek grupları olan profiller. Ana olan WS-I Temel Profil.
  • UDDI ve keşif - Bazı insanlar web servisinin potansiyel tüketici tarafından keşfedilebilecek şekilde bir kamu sicilinde yayınlanacağını düşünüyor gibi görünüyor. Bu vizyonun çok hız kazanmadığını düşünüyorum.
+0

+1 Ayrıntı için genel bakış. – CoolBeans

+0

+1 Çok hoş bir yazı - umutsuzca bugün ihtiyaç duyduğum bir şey, yeterince uygun. – aperkins

+0

Birisi bana daha fazla kafa karıştırdı eclipse, axis2, tomcat –

İlgili konular