JAX-WS Introduction

Merhaba arkadaslar,

Blog’umda web servis yazılarına JAX-RS ile başlamıştım. Şimdi ise JAX-WS’i anlatmaya çalışacağım. Umarım JAX-RS yazıları faydalı olmuştur

Java API for XML Web Services (JAX-WS)

JAX-RS REST servisleri için Java’nın sunmuş olduğu bir api’dir. Yine JAX-WS de Java API for XML Web Services olarak geçer ve xml tabanlıdır.

Web servisin amacı farklı platform, sistem ve uygulamaların birbiri ile haberleşmesini sağlamaktır.

JAX-RS ve JAX-WS her iki web servis türünün de temelinde RPC(Remote Procedure Call) yaklaşımı bulunmaktadır. Literatürde MOM olarak geçen ve Message Oriented Middleware anlamına gelen mesajlaşma katmanıdır aslında. Siz ister Restful ister Xml tabanlı Jax-ws ile web servis yazın RPC gibi çalışıyorsunuzdur ve mesaj alma ve mesaj gönderme göreviniz vardır. Her iki yaklaşım da uzaktaki bir methodu çağırmak üzerine kuruludur.

Yine Jax-RS ve Jax-WS HTTP prokolü üzerinde servis sunar. Jax-WS xml tabanlı SOAP(Simple Object Access Protocol) protokolü ile iletişim kurar. JAX-WS , JAX-RS’e göre daha standartlara uyumlu ve spesifikasyonu netleşmir bir sistemdir.

jaxws-simpleClientAndService

Client ve Server tarafında SOAP mesajları gidip gelir. JAX-WS runtime gelen ve giden SOAP mesajlarını üretme/parse etme gibi işlemleri geliştiriceden soyutlar ve geliştiriciyi servisin asıl yapması gereken işe odaklanmasını sağlar.

Özel bir dosya türü olan ve xml tipinde olan WSDL dosyalar, servisin nasıl çalıştığını, endpoint bilgilerini, encode kurallarını, conversationları vs gibi bilgileri üzerinde barındırır. JAX-WS apisi bu complex yapıyı soyutlayarak bize daha rahat XML tabanlı servislerle çalışmamızı sağlar. JAX-WS platform bağımsızdır ve Java harici başka dillerle xml tabanlı olacak şekilde iletişim kurulabilir. Tüm bu yapının temelinde ise HTTP, SOAP ve WSDL vardır.

JAX-WS, JAX-RS’e göre daha fazla mesaj boyutuna sahiptir. JSON gibi hafif text yerine xml gibi complex mesajlar alınıp, gönderilir. Bu nedenle JAX-WS daha çok homojen olmayan sistemlerin haberleşmesinde ve büyük sistemlerin birbiri ile konuşmasında kullanılır. Kullanılmasının bir nedeni de spesifikasyonlara dayalı olması ve WSDL(Web Service Definition Language) olan dosya üzerinde tüm sistemin açık olmasıdır. Açık olması, geliştiricilerin işini kolaylaştırır ve sistemi geliştirme aşamasında kolaylık sağlar. Örnek olarak bir methodun parametre olarak String aldıgı wsdl üzerinde bellidir ve return type’da bellidir. Bu durumda geliştiriciler sadece wsdl dosyası üzerinden bile sistemin nasıl çalıştığını ve tasarlandığını anlayabilir. JAX-RS ise daha çok web uygulamalarında, real time verilerin işlenmesinde ve taşınmasında kullanılır.

 

Giris yazısını burada bitiriyorum arkadaslar.

~ Alican Akkus

 

 

907 Total Views 1 Views Today