Rabu, 01 Januari 2020

Web Service

Apa itu Web Service?

  Web service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan. 
    Web service digunakan sebagai suatu fasilitas yang disediakan oleh suatu web site untuk menyediakan layanan (dalam bentuk informasi) kepada sistem lain, sehingga sistem lain dapat berinteraksi dengan sistem tersebut melalui layanan-layanan (service) yang disediakan oleh suatu sistem yang menyediakan web service.             Web service menyimpan data informasi dalam format XML, sehingga data ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi, maupun bahasa compiler.

Jadi Web Service merupakan cara berkomunikasi antar komputer melalui World Wide Web yang tersusun dari kumpulan fungsi-fungsi aplikasi pada alamat jaringan web atau cloud, dan setiap service(layanan) yang di-share bersifat "always on”yang bersifat  self-contained dan self-describing dan dapat ditemukan dengan menggunakan UDDI (Universal Description, Discovery and Integration).

  TheW3C defines a "Web service" as: merupakan sebuah sistem perangkat lunak untuk mendukung interoperabilitas antar mesin melalui jaringan komputer. Yang mana aplikasi ini memiliki antarmuka dengan format yang dapat diproses oleh mesin(secara spesifik yaitu WSDL). Sistem yang lain dapat berinteraksi dengan Web service dengan menggunakan SOAP Message, secara khusus disusun dengan menggunakan HTTP dan XML serialization sebagai standarnya.

   Tujuan Web Services ?
Web service bertujuan untuk meningkatkan kolaborasi antar pemrogram dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang terdapat di dalamnya

Kelebihan Web Service

  1. Tidak Terikat Setiap layanan memiliki independensi masing-masing Sehingga modifikasi layanan tertentu, tidak akan mempengaruhi layanan yang lainnya.
  2. Kemudahan Integrasi Data satu dengan yang lainnya akan terisolasi dan tidak berhubungan. Dengan layanan web services, dapat menciptakan hubungan antar keduanya.
  3. Penggunaan Ulang Layanan Layanan web service dapat didaur ulang atau dipergunakan ulang oleh aplikasi lain yang mungkin berbeda vendor
Perbedaan Web Service dengan Web Server

Web Server : sebuah perangkat yang berfungsi sebagai penerima permintaan yang dikirim melalui browser kemudian memberikan permintaan dalam bentuk halaman web.

Web Service : sekumpulan data (database), perangkat lunak (software) atau bagian dari perangkat lunak yang dapat diakses secara remote oleh berbagai piranti dengan sebuah perantara tertentu.


Komponen Web Service
Web Service tersusun dari gabungan XML dan HTTP. XML ini dimanfaatkan sebagai jembatan penghubung antar platform dan bahasa pemrograman yang berbeda, dan mampu untuk mengekspresikan pesan dan fungsi yang kompleks 
Komponen Web services: 
  1. SOAP (Simple Object Access Protocol)
  2. UDDI (Universal Description, Discovery and Integration)
  3. WSDL (Web Services Description Language)
Arsitektur Web Service
  • Service Provider: Berfungsi untuk menyediakan layanan/ service dan mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia.
  • Service Registry: Berfungsi sebagai lokasi central yang mendeskripsikan semua layanan/service yang telah diregister.
  • Service Requestor: Peminta layanan yang mencari dan menemukan layanan yang dibutuhkan serta menggunakan layanan tersebut.


Interoperabilitas Web service
   Interoperabilitas merupakan kemampuan web service agar dapat diakses secara multi-platform dan multi-programming.Dengan WS, aplikasi dapat di-publish berdasarkan fungsi dan pesan, sehingga dapat diakses via jaringan internet.WS menggunakan xml untuk mengkodekan(encode)/mengekstrak(decode) pesan yang akan disampaikan, sedangkan SOAP sebagai pembungkus pesan yang akan dikirimkan,sehingga WS telah dikembangkan dengan paltform Windows dapat berbicara dengan platform Linux/MacOS.

Jenis WS berdasarkan Manfaat
  1. Reusable application-components jenis web service yang dimanfaatkan secara periodik atau berulang-ulang, contoh layanan: konversi mata uang, info cuaca, penterjemahan bahasa dll
  2.  Connect existing software ws dapat dimanfaatkan untuk mengintegrasikan antar berbagai aplikasi yang berbeda. Contoh: aplikasi traveling diintegrasikan dengan aplikasi pemesanan hotel, wisata, rental kendaraan dll meskipun dengan platform, lokasi dan pemrograman yang berbeda. 
Apa itu WSDL
   merupakan singkatan dariWeb Services Description Language yang berbentuk bahasa XML-based yang mendeskripsikan sebuah web service, dan berupa alamat maupun fungsional web service. WSDL merupakan standarW3C.

Apa itu SOAP
   SOAP singkatan dariSimple Object Access Protocol merupakan protokol berbasis XML yang memungkinkan antar aplikasi dapat bertukar informasi melalui protokol HTTP atau dengan kata lain : SOAP adalah protokol untuk mengakses sebuah Web Service. SOAP bersifat platform dan menggunakan bahasa independent yang bersifat sederhana dan dapat dikembangkan selain itu juga ramah terhadap firewalls jaringan komputer.

Apa itu UDDI
   Merupakan singkatan dari Universal Description, Discovery and Integration yang berupa directory service yang keperluan registrasi dan pencarian web service dan merupakan directory untuk menyimpan informasi web service seperti yang dideskripsikan dalam WSDL yang dapat diakses dengan menggunakan SOAP message.
Implementasi Web Service 
  • Java: JWSDP, Axis2, Apache CXF, dll
  • PHP: SOAP extensions, NuSOAP (3rd party) 
  • C++: Axis2 
  • Microsoft: dot Net Web Service 

XML

XML

XML adalah bahasa markup yang menggunakan tag label, mengkategorikan dan mengatur informasi dalam spesifikasi cara.Markup itui sendiri menjelaskan dokumen atau data struktur dan organisasi. Konten, seperti teks, Gambar, dan data, adalah beberapa bagian dari kode yang berisi markup Tag. XML disarankan oleh W3C untuk membuat dokumen markup untuk keperluan pertukaran data antar sistem yang beraneka ragam , selain itu XML didesain mempu menyimpan data secara ringkas dan mudah diatur yang jika diolah bisa memberikan informasi.




Kenapa Harus Menggunakan XML ? 
   XML ada bukan untuk menggantikan HTML. Masing-masing dikembangkan untuk tujuan yang berbeda. Kalau HTML digunakan untuk menampilkan informasi dan berfokus pada informasi yang terlihat, sedangkan XML mendeskripsikan susunan informasi dan berfokus pada informasi itu sendiri.Selain itu ada beberapa hal kenapa harus menggunakan XML, sebagai berikut :
  • Memisahkan data dari HTML
  • Menyederhanakan berbagi data
  • Menyederhanakan pengangkutan data
  • Menyederhanakan platform perubahan
  • Membuat data lebih tersedia
  • Internet langsung ditulis di XML (Really Simple Syndication) 
Contoh XML

<?xml version="1.0" encoding="iso-8859-1"?><root>
<a:identitas xmlns:a="x1">
<a:laki>
<a:nama>Latifa Ardhianto</a:nama>
<a:nim>17.3.00009</a:nim>
<a:kelas>Teknik Informatika D3</a:kelas>
</a:laki>
</a:identitas>
</root>
Hasilnya :
Apakah XSLT Itu ?
   XSLT singkatan dari eXtensible StyleSheet Language:Transformation merupakan Stylesheet yang khusus dikembangkan sebagai komplemen XML yang digunakan untuk merubah informasi pada XML ke dalam bentuk lain agar bisa ditampilkan di layar, dicetak di kertas atau didengarkan telinga.Hasil Keluaran XSLT ini bisa berupa HTML, Text file atau XML dengan format yang baru. Sebenarnya untuk menampilkan dokumen XML agar lebih menarik bisa dilihat di browser dan dilakukan oleh Cascade StyleSheet. (CSS) yang biasanya digunakan untuk memformat HTML dan juga dipakai untuk XML,akan tetapi CSS tidak mampu melakukan tugas yang rumit dan untuk melakukan tugas yang rumit itu kita memerlukan XSLT.

XSLT Processor
   XSLT Processor atau biasa disebut Parser adalah software bantu yang bertugas menerapkan perintah-perintah dalam XSLT pada dokumen sumber XML, dan menghasilkan dokumen keluaran baik berupa HTML,Text file ataupun XML.

Bagian-Bagian dari Dokumen XML
Sebuah dokumen XML terdiri dari bagian bagian yang disebut dengan node. Node-node itu adalah: 
  • Root node yaitu node yang melingkupi keseluruhan dokumen. Dalam satu dokumen XML hanya ada satu root node. Node-node yang lainnya berada di dalam root node. 
  • Element node yaitu bagian dari dokumen XML yang ditandai dengan tag pembuka dan tag penutup, atau bisa juga sebuah tag tunggal eleman kosong seperti <anggota nama="budi"/> Root node biasa juga disebut root element.
  • Attribute note termasuk nama dan nilai atribut ditulis pada tag awal sebuah elemen atau pada tag tunggal.
  • Text node adalah text yang menupakan isi dari sebuah elemen, ditulis diantara tag pembuka dan tag penutup.
  • Comment node adalah baris yang tidak dieksekusi oleh parser.
  • Processing Instruction node adalah perintah pengolahan dalam dokumen XML. Node ini ditandai awali dengan karakter <? Dan diakhiri dengan ?>. Tapi perlu diingat bahwa header standard XML <?xml version="1.0" encoding="iso-8859-1">bukanlah processing instruction node. Header standard bukanlah bagian dari hirarki pohon dokumen XML.
  • NameSpace Node, node ini mewakili deklarasi namespace

Struktur Dasar XML
  1. Elements Bagian XML dimulai dengan tag pembuka dan tag penutup.
  2. Attributes Bagian XML yang memiliki nama dan nilai dan berada didalam tag Elemen
  3.  Processing Instructions Perintah pengolahan dalam XML yang diawali (bukan header)
  4.  Comments Pesan bantuan untuk memudahkan pembacaan script 
  5. Character Data /Value / Nilai Data informasi berupa karakter atau karakter kosong (spasi)
   Dalam struktur ini semua merupakan struktur yang harus ada dalam XML kecuali Comments karena comments tersebut tidak akan tampil dalam browser atau ketika dijalankan karena comment hanya digunakan di script saja dan untuk menjelaskan beberapa script yang kurang bisa dipahami.
  • Aturan Elements
  1. Nama elemen adalah case sensitive
  2. Nama elemen harus diawali huruf atau garis bawah
  3. Nama elemen tidak boleh diawali dengan kata“xml” / “XML” / “Xml” • Nama elemen tidak boleh mengandung spasi

  • Aturan Attributes

  1. Attributes pasti memiliki nilai walau nilai kosong 
  2. Attributes tidak dapat berisi banyak/beberapa nilai 
  3. Attributes tidak mudah diperlua
  • Aturan Elements
  1. Nama elemen adalah case sensitive (tidak boleh salah tulis)
  2. Nama elemen harus diawali huruf atau garis bawah
  3. Nama elemen tidak boleh diawali dengan kata“xml” / “XML” / “Xml” 
  4. Nama elemen tidak boleh mengandung spasi


Syntax
   Dibandingkan dengan HTML, XML lebih sensitif. Jika kita menulis sebuah dokumen HTML, beberapa kesalahan penulisan masih ditolerir. Misalnya kita menempatkan tag bersilangan, HTML masih bisa bekerja dan menampilkan hasil seperti yang kita inginkan. Tidak demikian dengan XML.

XML Namespaces
   Didalam XML, nama elements didefinisikan oleh masing-masing pengembang, sehingga dapat menyebabkan konflik ketika mencoba untuk mengkombinasikan dokumen XML dari aplikasi XML yang berbeda. Namespace merupakan nama unik yang diberikan pada root elemen untuk menghindari konflik root elemen selain itu namespace digunakan sebagai identifier suatu elemen data.
script diatas contoh yang salah karena namespace masih salah mengapa salah, pada namespace diatas antara namespace ke satu dan kedua masih sama dan jika dijalankan akan terjadi error. Maka untuk mengantisipasi terjadinya error dilakukan penambahan namespace atau ciri yang berbeda, dapat dilihat pada gambar dibawah ini :
 Gambar diatas pada setiap namespace terdapat ciri yang unik yang membedakan setiap namespace agar ketika dijalankan tidak terjadi error.
XML Transformation adalah bahasa pemrograman berdasar XML yang digunakan untuk transformasi dokumen XML menjadi dokumen XML atau format lainnya. Transformasi tidak mengubah dokumen asli, melainkan menghasilkan dokumen baru berdasarkan isi dokumen asli. Seperti gambar diatas dapat dijelaskan bahwa XML Transformation dapat merubah XML yang sebelumnya hanya script menjadi sebuah tabel yang lebih rapi dari sebelumnya.

WSDL (Web Services Description Language)

Apa itu WSDL ? 



WSDL merupakan kependekan dari Web Services Description Language. WSDL adalahmenggunakan XML untuk mendeskripsikan Web services dan bagaimana untuk mengaksesnya. WSDL membantu pengguna web service dalam memakai/menggunakan layanan web service. Web service akan terkunci dan tidak berguna jika tanpa WSDL ini. WSDL menspesifikasikan lokasi service dan operasi (methods) yang disediakan oleh web service.

     Sebagai protokol komunikasi dan format pesan yang distandarkan pada komunitas web, WSDL menjadi lebih tepat dan penting untuk mendeskripsikan model komunikasi di beberapa langkah yang terstruktur (dalam memprogram web service)  WSDL menyediakan kebutuhan ini dengan mendefinisikan bentuk XML untuk mendeskripsikan layanan jaringan sebagai kumpulan-kumpulan titik akhir (endpoints) komunikasi yang mampu melakukan pertukaran pesan. Hal tersebut sangat membantu komunikasi antara dua teknologi pada platform-platform secara umum. Definisi layanan WSDL menyediakan dokumentasi untuk sistem terdistribusi dan berfungsi sebagai panduan untuk mengotomatisasi rincian yang terlibat dalam komunikasi antaraplikasi.

Sejarah WSDL

  WSDL 1.0 (September 2000) telah dikembangkan oleh IBM, Microsoft, dan Ariba untuk mendeskripsikan Web Service pada SOAP. Dikembangkan dengan mengkombinasikan NASSL (Network Application Service Spesification Language) dari IBM dan SDL (Service Description Language) dari Microsoft. WSDL 1.1 dirilis pada 2001, merupakan formalisasi dari WSDL 1.0. Tidak ada perubahan besar yang diperkenalkan antara versi 1.0 dan 1.1. WSDL 1.2 (Juni 2003) merupakan draf kerja W3C, tetapi menjadi WSDL 2.0. Menurut W3C, WSDL 1.2 lebih mudah dan lebih fleksibel untuk para developer daripada versi sebelumnya. WSDL 1.2 berupaya untuk menghapus fitur non-interoperable dan juga mendefinisikan binding HTTP 1.1 secara lebih baik. WSDL tidak didukung oleh kebanyakan server/vendor SOAP.
     WSDL 2.0 menjadi rekomendasi pada bulan Juni 2007. WSDL 1.2 diganti menjadi WSDL 2.0 karena mempunyai perubahan secara substansi dari WSDL 1.1. Perubahan-perubahan tersebut meliputi:
  • Menambahkan semantik pada bahasa deskripsi (description language)
  • Tidak mendukung operator overloading
  • Menghilangkan message construct
  • Ports diganti menjadi endpoints

Struktur WSDL Dokumen


.WSDL dapat dianalogikan sebagai IDL (interface definition language) dalam CORBA dan COM. Service dideskripsikan sebagai koleksidari entry-point atau port komunikasi. WSDL mendeskripsikan service dengan menggunakan elemen sebagai berikut :


  1. Type, yaitu tipe data yang digunakan sebagai argumen dan return type
  2. Message, digunakan untuk merepresentasikan definisi data yang ditransmisikan.
  3. Port type, merupakan Sekumpulan operasi yang didukung oleh satu atau lebih endpoint.
  4. Binding, digunakan untuk mendefinisikan protokol dan format pertukaran data untuk operasi yang didefinisikan oleh Port type.
  5. Port, digunakan untuk menspesifikasikan end-point yang digunakan untuk binding.
  6. Service, merupakan koleksi endpoint yang berkaitan yang disediakan oleh Web Service.
  7. Operation, digunakan untuk mendefinisikan kemampuan yang didukung oleh servis tertentu. 

Elemen utama pada WSDL

Message – sesuatu yang abstrak, definisi tipe data yang akan dikomunikasikan
Port Type – mendeskripsikan sebuah web service, operasi-operasi yang dapat dijalankan, dan pesan-pesan yang dilibatkan padaWeb Service.
Port -Titik akhir tunggal (single endpoint) yang didefinisikan sebagai sebuah ‘binding’ dan alamat jaringan (network address)
Service – Sekumpulan endpoint yang saling berhubungan, akan menunjukkan file/path mana yang akan ditempatkan pada file WSDL ini
Operation – deskripsi abstrak dari suatu aksi yang didukung oleh service. Pada dasarnya menunjukkan nama operasi web service dan pesan input output
Binding – protokol komunikasi yang digunakan oleh web service 

Contoh Lain WSDL

  Dalam contoh ini <portType>  elemen mendefinisikan "glossaryTerms" sebagai nama sebuah port , dan "getTerm" sebagai nama sebuah operasi
  The "getTerm" operasi memiliki pesan masukan disebut "getTermRequest" dan sebuah pesan keluarandisebut  "getTermResponse".
   <message> elemen menentukan bagian-bagian dari setiap pesan dan jenis data yang terkait.
  Dibandingkan dengan pemrograman tradisional, glossaryTerms adalah fungsi perpustakaan, "getTerm" adalah fungsi dengan "getTermRequest" sebagai parameter masukan, dan getTermResponse sebagai parameter kembali.

Web Service Tools 


Program yang digunakan untuk membuat Web Services diantaranya seperti :
1. Netbeans 
2. Notepad++ 
3. DreamWeaver 
4. Sublime Text 
5. TextPad

Web Serive berbasis SOAP (Simple Object Access Protocol)

Apa itu SOAP ? 


  SOAP (Simple Object Access Protocol) adalah standar untuk bertukar pesan-pesan berbasis XML melalui jaringan komputer atau sebuah jalan untuk program yang berjalan pada suatu sistem operasi (OS) untuk berkomunikasi dengan program pada OS yang sama maupun berbeda dengan menggunakan HTTP dan XML sebagai mekanisme untuk pertukaran data,

     SOAP bisa disebut juga sebagai aplikasi pesan dari sebuah XML yang sangat bergantung pada skema XML dan XML namespaces untuk mendefinisikannya.Dalam hal ini SOAP sangat bergantung pada protokol layer lainnya, seperti pada JMS, HTTP, dan RPC untuk transmisi pesan. SOAP hampir sama dengan dengan protokol XMLRP hanya saja pada SOAP lebih cocok digunakan untuk data kompleks yang dikirim antar client server. Secara konseptual SOAP dapat dianggap sebagai DCOM versi XML.

Kelebihan SOAP
  1. Format yang sederhana dan dapat dikembangkan,
  2. Bisa dijalankan dimana saja tidak terbatas pada platform tertentu,
  3. Bisa menggunakan bahasa pemrograman apa saja,,
  4. Multi-protocol seperti HTTP, JMS, RPC, SMTP, dll.
  5. Dapat melewati firewalls sehingga mendukung model HTTP get / reponse, dan
  6. Tipe yang kuat dan melekat pada sebuah kontrak.

Kekurangan SOAP
  1. Walaupun sederhana, pesannya dapat panjang karena kebutuhannya untuk mengemasnya dalam bentuk SOAP envelope,
  2. Karena SOAP berbasis XML, dibutuhkan waktu untuk parsing XML tersebut karena harus di kedua pihak melakukannya (pengirim dan penerima pesan),
  3. Walaupun SOAP standart yang terbuka, tidak semua bahasa mendukung dengan baik. Yang terbaik untuk mendukung SOAP adalah JAVA, .Net, dan Flex, dan
  4. Sulit untuk dikembangkan, mebutuhkan tools .
Struktur SOAP
     Struktur Dokumen SOAP Sebuah pesan SOAP adalah sebuah dokumen XML yang berisi elemen-elemen berikut:
  1. Envelope element yang mengidentifikasi dokumen XML sebagai sebuah pesan SOAP.
  2. Header element yang berisi informasi header. 
  3. Body element yang berisi panggilan dan merespon informasi. 
  4. Fault element yang berisi pesan kesalahan yang terjadi pada waktu proses.





SOAP Message 
   Bagian header menyimpan informasi yang berhubungan dengan cara memproses message ini. Di dalamnya termasuk informasi mengenai pengaturan pengiriman, autentikasi dan autorisasi, dan konteks transaksinya. Sedangkan bagian body menyimpan message yang akan di prosesnya. Sintaks XML apapun dapat dimasukan ke dalam bagian body.

Contoh SOAP Message
SOAP Transport
    SOAP merupakan protokol pemaketan data yang berada di atas layer network dan transport. Sebagai suatu protokol pemaketan data, SOAP menjadi fleksibel dalam penggunaan. Contohnya, sebuah web service SOAP berbasis Perl yaitu SOAP::Lite, mendukung pertukaran SOAP Message di beberapa protokol diantaranya HTTP, FTP, raw TCP, SMTP, POP3, MQSeries, dan Jabber.

SOAP melalui HTTP
       Protokol HTTP merupakan protokol yang paling digunakan dalam mengirimkan SOAP Message. SOAP mendeskripsikan model pertukaran message khusus untuk di HTTP. Dengan begitu cara ini cocok dengan model SOAP RPC (Request-Response) dikarenakan HTTP merupakan protokol bertipe request-response. Pesan SOAP Request di post ke server dengan HTTP Request, kemudian server menjawab dengan HTTP Response yang berisi pesan SOAP Response. 
Arsitektur SOAP
Pemrosesan SOAP
     Pesan SOAP berbentuk seperti sebuah envelope yang berisi header (optional) dan body (required). Header berisi blok informasi yang berhubungan dengan bagaimana pesan tersebut diproses. Hal ini meliputi pe-routingan dan delivery setting, authentication atau authorization assertions, and transaction contexts. Body berisi pesan sebenarnya yang dikirim dan diproses. Semua yang dapat ditampilkan dengan sintaks XML dapat dimasukkan dalam pesan body.
     Setiap elemen Envelope harus berisi tepat satu elemen Body. Elemen Body dapat berisi sebanyak mungkin child nodes yang diperlukan. Isi dari elemen Body adalah pesan. Elemen Body ditentukan dalam suatu cara dimana dapat berisi valid dan wellformed XML yang telah dibatasi oleh suatu namespace (qualified).
     Jika sebuah Envelope berisi elemen Header, harus berisi tidak lebih dari satu, dan harus tampak pada first child dari Envelope, sebelum elemen Body. Header dapat berisi valid, well-formed, dan dibatasi dengan namespace XML dimana hendak dimasukkan oleh pencipta pesan SOAP. Setiap elemen yang berada dalam Header disebut blok header. Tujuan dari blok header adalah untuk memberitahukan infomasi yang berhubungan dengan pemrosesan pesan SOAP.

Konsep Web Service Registry (UDDI)

Apakah UDDI itu ?

  • UDDI, singkatan dari Universal Description, Discovery and Integration (UDDI) Protocol, adalah standar berbasis XML untuk menggambarkan, mempublikasikan dan menemukan Web service. UDDI mengkombinasikan SOAP dan WSDL untuk pembentukan sebuah registry API bagi pendaftaran dan pengenalan service. 
  • UDDI adalah teknologi yang didukung oleh OASIS (Organization for the Advancement of Structured Information Standards), berbasis XML dan platform independent. yang merupakan insisiatif industri terbuka, oleh Microsoft, IBM dan sebagainya, yang memungkinkan pelaku bisnis saling menemukan satu dengan yang lain dan mendefinisikan bagaimana mereka berinteraksi melalui internet. 
  • UDDI bebas platform, merupakan kerangka kerja terbuka, dapat berkomunikasi melalui SOAP, CORBA, dan protocol RMI Java. UDDI menggunakan WSDL untuk menggambarkan interface ke web service. Bersama SOAP dan WSDL merupakan tiga fondasi standar web service. Karena UDDI berkomunikasi via SOAP.
  • UDDI adalah layanan direktori dimana perusahaan dapat mendaftar dan mencari layananWeb. Direktori web service interface digambarkan olehWSDL. 
  • UDDITerdiri dari dua bagian:
  • Direktori seluruh metadata web service termasuk pointer keWSDL-nya, 
  • Direktori yang digunakan aplikasi client untuk menemukanWeb service 

Komponen Web Service Atas Peran UDDI 
Web service secara keseluruhan memiliki 4 layer komponen sebagai berikut :
 Layer 1 : Protokol internet standar seperti HTTP dan TCP/IP. 
Layer 2 : Simple Object Access Protocol (SOAP), adalah sebuah XML-based mark-up language untuk pergantian pesan diantara aplikasi-aplikasi. SOAP berguna seperti sebuah amplop yang digunakan untuk pertukaran data object didalam network. SOAP mendefinisikan empat aspek didalam komunikasi: Message envelope, Encoding, RPC call convention, dan bagaimana menyatukansebuah messagedidalam protokol transport. 

Layer 3: Web Service Definition Language (WSDL), adalah sebuah XML-based language untuk mendeskripsikan XML. Ia menyediakan service yang mendeskripsikan service request dengan menggunakan protokolprotokol yang berbeda dan juga encoding. Ia akan memfasilitasi komunikasi antar aplikasi. WSDL akan mendeskripsikan apa yang akan dilakukan oleh web service, bagaimana menemukannya dan bagaimana untuk mengoperasikannya.
Layer 4 : Universal Description Discovery and Integration (UDDI), adalah sebuah service registry bagi pengalokasian web service. UDDI mengkombinasikan SOAP dan WSDL untuk pembentukan sebuah registry API bagi pendaftaran dan pengenalan service. Ia menyediakan sebuah area umum dimana sebuah organisasi dapat mengiklankan keberadaan mereka dan service yang mereka berikan (web service). UDDI adalah sebuah framework yang mendefinisikan sebuah XML-based registry dimana sebuah organisasi dapat meng-upload informasi mengenai service yang mereka berikan. XML-based registry berisi nama-nama dari organisasi tsb, beserta service dandeskripsidari serviceyang mereka berikan.
Tipe Informasi UDDI
  • Perusahaan dapat mendaftarkan dirinya ke dalam tiga tipe informasi dalam UDDI registry. Informasi ini dimasukkan dalam tiga elemen UDDI. 
  • Tiga elemen itu adalah : 1. White page | 2. Yellow page | 3. Green page
  • Kategori “white page” berisi : informasi dasar tentang perusahaan dan bisnisnya, informasi kontak bisnis : nama bisnis, alamat, nomor telpon, NPWP, dsb. Informasi ini penting bagi pihak lain yang ingin tahu bisnis perusahaan tersebut. 
  •  Kategori “yellow page” berisi : rincian lebih lanjut tentang perusahaan, termasuk kemampuan e-commerce. Di sini digunakan skema kategorisasi industri, kode industri, kode produk, kode identifikasi bisnis. Informasi ini memudahkan customer mencari produk yang mereka ingingkan.
  •  Kategori “green pages” berisi informasi teknik tentang web service: lokasi URL, informasi “discovery” dan data terkait untuk menemukan dan menjalankan Web Service juga beberapa informasi tidak terkait secara langsung dengan web service , antara lain alamat email, ftp, telepon, dll.
  • Jadi, UDDI tidak hanya dibatasi untuk menggambarkan web service berdasarkan SOAP. Lebih daripada itu UDDI dapat digunakan untuk menggambarkan beragam service, dari sebuah halaman web atau alamat email, hingga SOAP, CORBA, dan servis Java RMI.
 Manfaat UDDI
     Setiap industry atau bisnis dari semua ukuran bisa mendapatkan keuntungan dari UDDI. Sebelum UDDI, tidak ada standar Internet bagi perusahaan untuk menjangkau pelanggan dan mitra mereka dengan informasi tentang produk dan layanan mereka. Juga tidak ada metode bagaimana mengintegrasikan ke dalam sistem dan proses masing-masing. Masalah spesifikasi UDDI dapat membantu untuk memecahkan:
  1. Memungkinkan untuk menemukan bisnis yang tepat dari jutaan sedang online
  2. Mendefinisikan cara mengaktifkan perdagangan setelah bisnis disukai ditemukan
  3. Menjangkau pelanggan baru dan meningkatkan akses kepelanggan saat ini
  4. Memperluas penawaran dan memperluas jangkauan pasar
  5. Menggambarkan layanan dan proses bisnis pemrograman dalam satu, terbuka, dan aman lingkungan   
     UDDI merupakan file XML Schema yang mendefinisikan struktur data mengenai karakteristik bisnis dan service. Deskripsi service didefinisikan menggunakan dokumen Type Model ( tModel ). Secara umum UDDI berisi informasi mengenai siapa yang menyediakan service (business Entity), Service apa yang disediakan (business Service), dimana lokasi service tersedia (binding Template), referensi mengenai informasi bagaimana service tersebut diperoleh (tModel). 
Pada Gambar diatas ,web service provider bertanggung jawab dalam mempublikasi informasi mengenai web services ke dalam registry. Disisi lain, Service Consumer dapat melakukan permintaan kepada registry untuk mencari service yang sesuai dengan kebutuhannya. Kemudian, setelah service tersebut sudah terletak di dalam registry, service requestor dapat terhubung dengan service dan sudah dapat digunakan.

ArsitekturTeknik UDDI terdiri dari tiga bagian :
  1. UDDI data model : skema XML untuk menggambarkan bisnis dan web service.
  2. UDDI API specification : spesifikasi API untuk mencari dan mempuplikasikan data UDDI
  3. UDDI cloud services : ini adalah situs operator yang menyediakan implementasi spesifikasi UDDI dan mensinkronkan secara periodik. 
Arsitektur Teknik 
UDDI Business Registry (UBR), adalah sistem konseptual tunggal dari beberapa node yang memiliki data tersinkronisasi melalui replikasi. UDDI berisi skema XML yang menggambarkan 5 struktur data: business Entity, business Service, bindingTemplate, tModel, publisher Assertion.

Entitas Bisnis 
      Entitas bisnis menyatakan penyedia web services dalam UDDI registry. Informasinya meliputi : nama perusahaan, deskripsi bisnis, informasi kontak, informasi lain. Gambar 3. menunjukkan contoh kasus 
Business Service 
     Disini disimpan semua web service yang disediakan entitas bisnis. Berisi informasi : bagaimana menemukan web service, apa tipe web servicenya, termasuk kategori taxonomi yang mana. Gambar 4 menunjukkan contoh kasus ini.
Perhatikan penggunaan Universally Unique Identifiers (UUIDs) dalam atribut businessKey dan serviceKey. Setiap entitas bisnis dan business service diidentifikasi unik dalam seluruh registry UDDI melalui UUID yang diberikan registry ketika informasi pertama kali dimasukkan.

 Binding Template 
     Pada bagian ini disimpan informasi teknis bagaimana service dapat diakses. Terkait Web Service ada alamat Web Service dan parameter. Tidak terkait Web Service ada E-mail, FTP, CORBA, Telephone. Suatu service mungkin memiliki beberapa binding, kaitan (misalnya web service binding, telephone binding). Gambar dibawah ini diharapkan memperjelas konsep ini.
Business service boleh memiliki beberapa binding templates. Service boleh menyatakan implementasi berbeda dari service yang sama, masing-masing dikaitkan dengan sekumpulan protokol atau alamat jaringan yang berbeda.

tModel
Tidak ada hubungan eksplisit antara UDDI dan WSDL. Binding template berisi access point tetapi belum ada informasi bagaimana cara memakainya (misalnya tipe data yang diharapkan). tModel (Technical Model) menghubungkan deskripsi interface dengan suatu binding. Beberapa binding boleh merujuk interface yang sama. Mirip dengan industri penerbangan mendefinisikan interface standar pemesanan tiket, maskapai penerbangan menerapkan interface ini.
 Publisher Assertion 
     Bagian ini menjelaskan hubungan antara dua atau lebih entitas bisnis : bagian, atau departemen. Struktur publisher Assertion terdiri dari tiga elemen: from Key (business Key pertama), toKey (business Key kedua) dan keyedReference. Tag keyed Reference berisi hubungannya. Berikut adalah contohnya :

UDDI Query
     Interface inquiry mendefinisikan 10 Operasi untuk pencarian registry UDDI dan mengambil rincian registrasi khusus:
  1. find_binding: mencari web service yang cocok dengan informasi binding.
  2. find_business : mencari entitas bisnis.
  3. find_ltservice : mencari daftar web service.
  4. find_tModel : mencari tModel.
  5. get_bindingDetail : mendapatkan informasi rinci web service yang sesuai dengan binding.
  6. get_business Detail : mendapatkan rincian entitas bisnis dan web servicenya.
  7. get_business Detail Ext : mendapatkan informasi registrasi entitas bisnis selengkapnya. 
  8. get_serviceDetail: mendapatkan rincian bisnis service.
  9. get_tModelDetail: mendapatkan rincian informasi registrasi sesuai tModel.
  10. find_relatedBusinesses: menemukan bisnis terkait melalui uddiorg:relationships model.

Spesifikasi UDDI
  • UDDI Replication: Dokumen ini menjelaskan proses replikasi data dan interface yang operator registry harus sesuai untuk mencapai replikasi data antara situs. Spesifikasi ini bukan programmer API; mendefinisikan mekanis mereplikasi yang digunakan antara node UBR.
  • UDDI Operator: Dokumen ini menguraikan perilaku dan parameter operasional yang dibutuhkan oleh UDDI operator simpul. Spesifikasi ini mendefinisikan persyaratan pengelolaan data yang operator harus patuhi.
  • UDDI Programmer API: Spesifikasi ini mendefinisikan satu set fungsi yang mendukung semua pendaftar UDDI untuk bertanya tentang layanan host di registry dan untuk mempublikasikan informasi tentang bisnis atau layanan ke registry. Spesifikasi ini mendefinisikan serangkaian pesan SOAP yang berisi dokumen XML bahwa registry UDDI menerima, mem-parsing, dan merespon. Spesifikasi ini, bersama dengan UDDI skema XMLAPI dan Struktur spesifikasi UDDI Data, membuat sebuah antarmuka pemrograman lengkap untuk registry UDDI. 
Spesifikasi UDDI
  • UDDI Struktur Data: Spesifikasi ini mencakup spesifik dari struktur XML yang terkandung dalam pesan SOAP didefinisikan oleh UDDI Programmer API. Spesifikasi ini mendefinisikan lima struktur data inti dan hubungan mereka satu sama lain. The UDDI XML API skema tidak terkandung dalam spesifikasi; melainkan disimpan sebagai dokumen XML Schemayang mendefinisikan struktur dan tipe data dari struktur data UDDI.

 Implementasi UDDI
     Sejumlah implementasi UDDI yang tersedia saat ini. Implementasi ini memudahkan untuk mencari atau mempublikasikan data UDDI, tanpa terperosok dalam kompleksitas UDDI API. Berikut adalah sinopsis singkat dari implementasi UDDI :
  • Java Implementasi :Ada dua implementasi UDDI untuk Java.
  1. UDDI4J ( UDDI untuk Java): UDDI4J awalnya diciptakan oleh IBM. Pada Januari 2001, IBM diserahkan kode ke situs open source sendiri. UDDI4J adalah kelas perpustakaan Java yang menyediakanAPI untuk berinteraksi dengan UDDIa.
  2. jUDDI: jUDDI merupakan open source implementasi Java dari registry UDDI dan toolkit untuk mengakses layanan UDDI. 
  • Implementasi Perl :
           -UDDI : Lite : menyediakan klien UDDI dasar untuk penyelidikan dan penerbitan.
  • Implementasi Ruby:
           -UDDI4r : menyediakan klien UDDI dasar untuk penyelidikan dan penerbitan.
  • Implementasi Python:  
       -UDDI4Py :paket Python yang memungkinkan pengiriman permintaan dan pengolahan tanggapan dari UDDIVersi2API. 

Contoh Penggunaan UDDI
     Pertimbangkan sebuah perusahaan XYZ ingin mendaftarkan informasinya kontak, deskripsi layanan, dan akses informasi layanan online dengan UDDI. Langkah-langkah berikut diperlukan:
  1. Pilih operator yang dapat digunakan untuk bekerja. Setiap operator memiliki syarat dan kondisi untuk otorisasi akses ke replikanya registry yang berbeda. 
  2. Membangun atau mendapatkan klien UDDI, seperti yang disediakan oleh operator.
  3. Mendapatkan token otentikasi dari operator.
  4. Daftar informasi tentang bisnis. Sertakan informasi sebanyak mungkin bisa membantu untuk mereka yang mencari pertandingan.
  5. Lepaskan token otentikasi.
  6. Gunakan API penyelidikan untuk menguji pengambilan informasi, termasuk informasi template yang mengikat, untuk memastikan bahwa seseorang yang memperoleh dapat digunakan dengan sukses untuk berinteraksi dengan layanan Anda.
  7. Isi informasi TModel dalam kasus seseorang ingin mencari layanan yang diberikan dan bisnis Anda sebagai salah satu penyedia layanan menemukan.
  8. Memperbarui informasi yang diperlukan untuk mencerminkan perubahan informasi kontak bisnis dan rincian layanan baru, memperoleh dan melepaskan token otentikasi baru dari operator setiap kali. Setiap kali Anda perlu memperbarui atau mengubah data yang sudah terdaftar,Anda harus kembali ke operator dengan yang Anda masukkan data.
Membuat Registry
     Setelah memperoleh token otentikasi dari salah satu operator-Microsoft, misalnyapara pengembang XYZ.com memutuskan informasi apa yang harus mempublikasikan ke registri dan menggunakan salah satu alat yang UDDI disediakan oleh Microsoft. Jika perlu, para pengembang juga dapat menulis Java, C#, atau VB.NET program untuk menghasilkan pesan SOAP yang tepat. Berikut adalah contoh. 
Contoh ini menggambarkan pesan SOAP meminta untuk mendaftarkan badan usaha UDDI untuk SXYZ Company. Elemen kunci kosong karena operator secara otomatis menghasilkan kunci UUID untuk struktur data. Sebagian besar bidang dihilangkan demi menunjukkan contoh sederhana. Perusahaan XYZ selalu dapat mengeksekusi operasi save_business lain untuk menambah informasi dasar yang dibutuhkan untuk membuat sebuah entitas bisnis. 




Pengambilan Informasi 
   Setelah XYZ Perusahaan telah memperbarui entri UDDI dengan informasi yang relevan, perusahaan yang ingin menjadi distributor XYZ dapat melihat informasi kontak dalam UDDI registry dan memperoleh deskripsil ayanan dan jalur akses untuk dua layanan Web yang XYZ.com menerbitkan secara online memesan entry: pesanan-pesanan missal dan dalam musim perintah restocking. Contoh ini menggambarkan permintaan SOAP sampel untuk mendapatkan informasi detail tentang bisnis XYZ Company. Setelah Anda mengetahui UUID, atau kunci,untuk bisnis yang spesifik yang telah terdaftar, Anda dapat menggunakannya di get_businessDetail API untuk kembali informasi spesifik tentang bisnis itu. 
Dokumentasi UDDI


Web Service berbasis RESTful

Mengenal RESTful Web Services

REST (REpresentational State Transfer) merupakan standar arsitektur komunikasi berbasis web yang sering diterapkan dalam pengembangan layanan berbasis web. Umumnya menggunakan HTTP (Hypertext Transfer Protocol) sebagai protocol untuk komunikasi data. REST pertama kali diperkenalkan oleh Roy Fielding pada tahun 2000.
  Pada arsitektur REST, REST server menyediakan resources (sumber daya/data) dan REST client mengakses dan menampilkan resource tersebut untuk penggunaan selanjutnya. Setiap resource diidentifikasi oleh URIs (Universal Resource Identifiers) atau global ID. Resource tersebut direpresentasikan dalam bentuk format teks, JSON atau XML. Pada umumnya formatnya menggunakan JSON dan XML. 

Keuntungan RESTful Web Services

  1. Bahasa dan platform agnostic
  2. Lebih sederhana/simpel untuk dikembangkan ketimbang SOAP
  3. Mudah dipelajari, tidak bergantung pada tools
  4. Ringkas, tidak membutuhkan layer pertukaran pesan (messaging) tambahan 
  5. Secara desain dan filosofi lebih dekat dengan web 

Kelemahan RESTful Web Services

  1. Mengasumsi model point-to-point komunikasi - tidak dapat digunakan untuk lingkungan komputasi terdistribusi di mana pesan akan melalui satu atau lebih perantara
  2. Kurangnya dukungan standar untuk keamanan, kebijakan, keandalan pesan, dll, sehingga layanan yang mempunyai persyaratan lebih canggih lebih sulit untuk dikembangkan ("dipecahkan sendiri")
  3. Berkaitan dengan model transport HTTP

Web Service – RESTful

      Web service adalah standar yang digunakan untuk melakukan pertukaran data antar aplikasi atau sistem, karena aplikasi yang melakukan pertukaran data bisa ditulis dengan bahasa pemrograman yang berbeda atau berjalan pada platform yang berbeda. 

      Contoh implementasi dari web service antara lain adalah SOAP dan REST

     Web service yang berbasis arsitektur REST kemudian dikenal sebagai RESTful web services. Layanan web ini menggunakan metode HTTP untuk menerapkan konsep arsitektur REST.


RESTful Webservice

  • Representational State Transfer (REST)
  • Resource based webservice
  1. Resource = data yang dipertukarkan
  2. Resource dikenali dengan URI/URL
  3. Resource diakses dengan method standard HTTP
  4. Resource dapat diakses dalam bentuk XML, JSON
  • REST hanya sebuah architectural style, BUKAN tool 
  1. REST hanya mendefinisikan aturan akses mengakses resource
Web service yang berbasis arsitektur REST kemudian dikenal sebagai RESTful web services. Layanan web ini menggunakan metode HTTP untuk menerapkan konsep arsitektur REST.






HTTP Metode

Berikut HTTP metode yang umum digunakan dalam arsitektur berbasis REST.
  • GET, menyediakan hanya akses baca pada resource
  • PUT, digunakan untuk menciptakan resource baru
  • DELETE, digunakan untuk menghapus resource
  • POST, digunakan untuk memperbarui resource yang ada atau membuat resource baru
  • OPTIONS, digunakan untuk mendapatkan operasi yang disupport pada resource


Contoh : Mengambil Resource Pegawai

Contoh : Modifikasi Resource Pegawai

Cara Kerja RESTful web services

  • Sebuah Client mengirimkan sebuah data atau request melalui HTTP Request dan kemudian server merespon melalui HTTP Response. Komponen dari http request : Verb, HTTP method yang digunakan misalnya GET, POST, DELETE, PUT dll.
  • Uniform Resource Identifier (URI) untuk mengidentifikasikan lokasi resource pada server. 
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Request Header, berisi metadata untuk HTTP Request. Contoh, type client/browser, format yang didukung oleh client, format dari body pesan, seting cache dll.
  • Request Body, konten dari data. 
  • Sedangkan komponen dari http response : Status/Response Code, mengindikasikan status server terhadap resource yang direquest. misal : 404, artinya resource tidak ditemukan dan 200 response OK.
  • HTTP Version, menunjukkan versi dari HTTP yang digunakan, contoh HTTP v1.1.
  • Response Header, berisi metadata untuk HTTP Response. Contoh, type server, panjang content, tipe content, waktu response, dll
  • Response Body, konten dari data yang diberikan.

Implementasi RESTful Webservice 


Contoh Kasus












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

  • SOAP
  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
  • WSDL
  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 
Keterangan JAX-WS
Keterangan Yang Sering Digunakan Dalam JAX-WS Keterangan atau penanda ini digunakan dalam penulisan Java Class di Java Web Service 
@WebService 
@WebMethode 
@WebParam
 @WebResult
 @SOAPBinding 
@OneWay 
@HandlerChain 


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.
  • Model pemetaan data
➢ 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
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
➢ 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
  • Example (server-source)

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.





Web Service

Apa itu Web Service?   Web service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interoperabilitas dan interaksi an...