Chapter 7 - JAX-WS & JAX-RPC

JAX-WS => (Java API for XML Web Service) 

Merupakan JSR (Java Spesification Requirement) yang berfungsi membuat sebuah file XML untuk mapping ke operasi-operasi dalam sebuah penanganan web service dan dibuat dari teknologi yang dapat mengkomunikasikan informasi (SOAP) antara WS Server dan WS Client.

Apakah API itu ?

API singkatan dari Application Programming Interface,yaitu sekumpulan perintah, fungsi dan protocol yang memungkinkan programmer untuk menggunakan fungsi standar dalam berinteraksi dengan system operasi atau Aplikasi lain.

Contoh kasus API 

  • Untuk membuka sebuah file, user menggunakan program yang telah dibuat menggunakan bantuan API, maka perintah dari user diterjemahkan oleh program menjadi open()
  • Perintah open() merupakan perintah dari API dan bukan perintah yang langsung dimengerti oleh system operasi
  • Agar keinginan user dapat dimengerti oleh system operasi, maka perintah open() diterjemahkan ke dalam bentuk system call oleh system call interface 

Komponen JAX-WS

  1. SOAP
  2. WSDL 
  3. XML Schema Definition 
  4. JAXB
  5.  UDDI
  1. Simple Object Access Protokol. Dalam JAX-WS, 
  2. SOAP berguna untuk mengangkut informasi dari satu tempat ke tempat lain (Server-Client & Client-Server) menggunakan transmisi HTTP.
  3. Isi dari SOAP adalah Envelope, Header dan Body
  1. Web Service Description Language.
  2. Bagian web service yang berfungsi mendiskripsikan dan mendefinisikan services berbasis XML.
  3. Isi dari WSDL adalah Definitions, Type, Message, portType, binding, dan service 
  • XML Schema Definition (XSD) : Merupakan tipe data dalam WSDL yang meliputi :
  1. Xs:string 
  2. Xs:decimal 
  3. Xs:integer
  4.  Xs:boelan 
  5. Xs:date
  6.  Xs:time
  • UDDI singkatan dari Universal Description Discovery and Integration yang merupakan bagian web service yang meregistry/mendaftar deskripsi service. UDDI akan bekerjasama dengan WSDL dalam melakukan pendeskripsian dan pengkoleksian services 

Mengenal JAX-RPC 

     Saat ini layanan Web telah berkembang, Pertama ada SOAP. tetapi SOAP penjelasan dari kumpulan pesan-pesan. Lalu ada WSDL. Tetapi WSDL tidak memberi tahu cara menulis layanan web di Java™. Lalu datanglah JAX-RPC 1.0. Setelah beberapa bulan digunakan, Java Community Process (JCP) orang-orang yang menulis spesifikasi yang menyadari bahwa itu membutuhkan beberapa tweak, jadi keluarlah JAX-RPC 1.1. 

     Setelah kira-kira setahun menggunakan spesifikasi itu, orangorang JCP menginginkannya membangun versi yang lebih baik: JAX-RPC 2.0. Tujuan utama adalah untuk menyelaraskan dengan arah industri, tetapi industri tidak hanya melakukan layanan web RPC, mereka juga melakukan web yang berorientasi pada pesan jasa. Jadi “RPC” dihapus dari nama dan diganti dengan “WS” (Web Service). Jadi penerus JAX-RPC 1.1 adalah JAX-WS 2.0 – Java API for XML-layanan web berbasis.

Apakah Persamaan JAX-WS dg JAX-RPC

Sebelum menjelaskan perbedaan antara JAX-RPC 1.1 dan JAX-WS 2.0, Mari kita lihat persamaanya 

  • JAX-WS masih mendukung SOAP 1.1 melalui HTTP 1.1, sehingga interoperabilitas tidak akan terpengaruh. Adanya pesan yang sama masih dapat terintergrasi dengan baik
  • JAX-WS masih mendukung WSDL 1.1, sehingga mempelajari spesifikasi hal tersebut masih sangat berguna. Untuk Spesifikasi WSDL 2.0 hampir selesai, tetapi masih dalam proses penerapan di JAX-WS 2.0 hingga selesai.
  • SOAP 1.2 JAX-RPC dan JAX-WS mendukung SOAP 1.1. JAX-WS juga mendukung SOAP 1.2.
  • XML / HTTP Spesifikasi WSDL 1.1 mendefinisikan HTTP binding, yang merupakan sarana yang bisa mengirim pesan XML melalui HTTP tanpa SOAP. JAX-RPC mengabaikan HTTP binding. Untuk itu JAXWS dapat meningkatkan dukungannya.
  • WS-I’s Basic Profiles JAX-RPC mendukung Profil Dasar WS-I (BP) versi 1.0. JAX-WS mendukung BP 1.1. (WS-I is the web services interoperability organization.)
  • Fitur Java baru

 ➢ Maps JAX-RPC ke Java 1.4. JAX-WS memetakan ke Java 5.0. JAX-WS bergantung pada banyak fitur baru di Java 5.0. 

➢ Java EE 5, penerus J2EE 1.4, menambahkan dukungan untuk JAX-WS, tetapi juga dipertahankan dukungan untuk JAX-RPC, tetapi dapat menyulitkan bagi pemula yang baru mengenal model tersebut.

➢ JAX-RPC memiliki model pemetaan datanya sendiri, yang mencakup sekitar 90 persen dari semua jenis skema. Yang tidak dibahas dipetakan ke javax.xml.soap. SOAP Element . 

➢ Model pemetaan data JAX-WS adalah JAXB. JAXB menjanjikan pemetaan untuk semua skema XML

Model pemetaan antarmuka dasar JAX-WS tidak jauh berbeda dari JAX-RPC; namun: ➢ Model JAX-WS memanfaatkan fitur-fitur baru Java 5.0. 

➢ Model JAX-WS memperkenalkan fungsi asynchronous.

  • Model pemrograman dinamis

➢ Model Client dinamis JAX-WS sangat berbeda dari JAX-RPC. Banyak perubahan mengakui kebutuhan industri: Model ini memperkenalkan fungsi yang berorientasi pada pesan dan model ini memperkenalkan fungsi asynchronous dinamis. 

➢ JAX-WS juga menambahkan model server dinamis, yang JAXRPC tidak miliki.

  • MTOM (Message Transmission Optimization Mechanism)

     JAX-WS, via JAXB, menambahkan dukungan untuk MTOM, sebagai spesifikasi lampiran baru. Microsoft tidak pernah membeli SOAP dengan spesifikasi Attachments; tetapi tampaknya semua orang mendukung MTOM, sehingga interoperabilitas attachment harus diwujudkan.

➢ Model handler telah berubah sedikit dari JAX-RPC ke JAX-WS. 

➢ JAX-RPC handlers menggunakan SAAJ 1.2. sedangkan JAX-WS menggunakan SAAJ 1.3 dengan spesifikasi yang baru

Implementasi JAX-RPC dan JAX-WS di Netbeans

  • Example (generate-source)

Implementasi JAX-RPC dan JAX-WS di Netbeans

Posisi JAX-WS di Arsitektur Web Service

JAX-WS Deployment 

  • Service dan WSDL dibuat dari file Java Class. Dimana hasil pendiskripsiannya berbentuk web.xml. JAX-WS merupakan aplikasi yang cukup untuk menangani hal tersebut dengan prinsip “configuration by exception” (proses terekseskusi dengan pengecualian-di program ditunjukkan dengan model try-catch)
  • Potongan service yang ada didalam server dibuat dari WSDL File. Kemudian akan digunakan oleh Client dalam membacaca service ke server WS.

Komentar