Modul 12rev1

278 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
278
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
4
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Modul 12rev1

  1. 1. Modul 12Model Web ServicesSetelah menyelesaikan modul ini, anda dapat:Menjelaskan peran web servicesMengetahi daftar spesifikasi yang digunakan untuk membuat web serviceplatform independenMenjelaskan API Java yang digunakan untuk pengolahan XML dan web services
  2. 2. Modul 12 Model Web Service Page 2 of 11Peran Web ServicesWorld Wide Web Consortium (W3C) mendefinisikan web service sebagai " sistemperangkat lunak yang dirancang untuk mendukung interoperabiliti interaksi mesinyang satu dengan mesin yang lain melalui jaringan." Sebuah web servicemengekspose service remote atau prosedur yang dapat dieksekusi ke klien aplikasi.Web service dirancang untuk platform independen, namun independensi platformini tidak tanpa kekurangan. Kekurangan untuk independensi dari platform webservice adalah ada pengeluaran tambahan, baik pemakaian jaringan ataupunpenggunaan CPU.Beberapa fitur utama web service adalah:Platform Independen – Web Service tidak bergantung pada CPU, sistem operasi,atau bahasa pemrograman.Dirancang untuk memanfaatkan teknologi yang telah ada - Web servicemenggunakan secara ekstensif teknologi XML dan HTTP.Interoperabel dengan bahasa pemrograman yang berlainan – Web servicemenggunakan model klien-server. Adalah memungkinkan untuk memiliki sebuahklien yang ditulis dalam satu bahasa pemrograman untuk berkomunikasi denganserver yang ditulis dalam bahasa pemrograman yang berbeda.Aplikasi klien-server dengan klien dan server yang keduanya dibuat denganmenggunakan bahasa pemrograman Java yang tidak dapat digunakan untuk klienatau server yang ditulis dalam bahasa pemrograman lain, memerlukan sedikit usahatambahan agar menjadi web service. Web service telah didukung oleh platform Javaenterprise sejak J2EE 1.4. Meskipun web service bukan lagi sebuah teknologi baru,sejumlah industri memberikan gairah untuk terus mengembangkannya. Andamungkin diminta untuk membuat fungsi aplikasi yang sudah anda buat untuk diubahmenjadi web service tanpa banyak menimbulkan masalah teknis. Beruntungplatform Java EE 5 memungkinkan penciptaan atau penambahan web service dengancara yang mudah untuk aplikasi anda.Web Service Sebagai Komponen RemoteWeb service menyediakan sebuah mekanisme untuk menjalankan operasi bisnismirip dengan session EJB remote. Web service menyediakan eksekusi sebuahpekerjaan secara remote yang mirip dengan:Common Object Request Broker Architecture (CORBA) – Spesifikasinya dikelolaoleh Object Management Group (OMG). Menyediakan binding untuk bahasapemrograman C dan C + +, kemudian diikuti Jawa. Dilihat oleh banyak orangsebagai arsitektur yang kompleks. Digunakan terutama pada tahun 1990-an.Mulai tahun 2000, web service mulai menggantikan CORBA untuk beberapaaplikasi.
  3. 3. Membangun Aplikasi dengan Platform Java EE Page 3 of 11Remote Method Invocation (RMI) – Sebuah teknologi Java untuk pemanggilanmethod dari remote klien. Teknologi ini digunakan sebagai fondasi bagikomponen distributed di Java, misalnya EJB. Dimasukkan sebagai bagian dariplatform Java SE.Remote Procedure Call (RPC) – Mengeksekusi prosedur secara remotemenggunakan satu protokol tertentu dipopulerkan oleh Sun Microsystems.Biasanya tidak digunakan dalam perangkat lunak berorientasi objek. Network FileSystem (NFS) adalah contoh dari program RPC.Distributed Component Object Model (DCOM) – Teknologi yang dibuat olehMicrosoft yang posisinya setara dengan RMI, yang hanya bekerja pada platformMicrosoft. DCOM saat ini diganti dengan. Net Remoting dan web service.Web service berbeda dengan teknologi-teknilogi di atas, dengan menggunakanteknologi Hyper Teks Transfer Protocol (HTTP) dan XML (Extensible MarkupLanguage), keduanya juga didukung oleh librari yang ada di hampir semua bahasapemrograman, seperti standar transport dan payload. Librari Java yang mendukungweb service yang saat ini disertakan dalam versi platform Java enterprise dan jikaanda menggunakan platform Java SE versi 1.6 librari web service sudah dimasukkanke dalamnya.Web Service Dibandingkan Dengan Remote EJBArsitektur EJB secara keseluruhan tidak jauh berbeda dari yang web service, denganpengecualian teknologi spesifik yang digunakan untuk membuat web serviceplatform independen:Sebuah registry untuk mengumumkan dan mencari web service yang dikenalsebagai Universal Description, Discovery and Integration (UDDI). Jika klien sudahmengetahui lokasi yang diinginkan, anda dapat membypass registry.Sebuah protokol yang digunakan sebagai jalur transportasi untuk memanggilservice, mengirimkan parameter, dan menerima nilai balikan. Dalam remote EJB,protocol ini adalah Internet Inter-Orb Protocol (IIOP). Di web service yangdigunakan adalah HTTP.Sebuah urutan data yang ditransfer antara klien dan server. Session Bean remotemenggunakan object yang serialized sedangkan web service menggunakan XML.
  4. 4. Modul 12 Model Web Service Page 4 of 11Spesifikasi Web ServicePada bagian ini akan dijelaskan spesifikasi web service.Persyaratan InteroperabilitasWeb service dirancang untuk platform dan bahasa yang netral. Untuk membuat webservice secara efektif, yang harus diperhatikan adalah:Dukungan klien tanpa memandang platform atau bahasa yang digunakan –Sebuah web service tidak tergantung pada bahasa pemrograman tertentu ataudijalankan pada sistem operasi tertentu.Dapat dilaksanakan dalam bahasa apapun tanpa memperhatikan platform yangdigunakan – Sebuah API web service meekspose semua informasi dalam bentukfile teks yang dikenal sebagai file Web Service Description Language (WSDL).Dengan file WSDL, anda dapat mengembangkan klien baru dalam bahasapemrograman apapun tanpa mengakses informasi lainnya ke server. Sebagianbesar tool di Java juga mendukung pembuatan web service yang kompatibelcukup dengan menggunakan informasi dari file WSDL.Dua dari beberapa spesifikasi yang digunakan untuk membuat web serviceinteroperable adalah HTTP dan XML. HTTP adalah protokol transportasi, biasanyadigunakan di atas Transmission Control Protocol/Internet Protocol (TCP/IP), yangdapat digunakan untuk mentransfer informasi di dalam arsitektur berorientasipermintaan-respon. XML adalah suatu spesifikasi yang digunakan untuk mengaturdata dalam sebuah file teks yang bisa di parsing oleh mesin. Web servicemenggunakan HTTP untuk mengirim data dalam format XML untuk permintaan danrespon. Namun, dengan menggunakan HTTP sebagai protokol transport dan XMLsebagai format data yang tidak menyediakan interoperabilitas tingkat tinggi. Agarinteroperable:Method dan header yang digunakan dalam transport protokol HTTP harusstandar.Format pesan XML harus diketahui. XML tidak hanya memerlukan dokumen yang‘well-formed’ tetapi juga memerlukan struktur atau formatnya. Simple ObjectAccess Protocol (SOAP) adalah spesifikasi yang mengatur standar struktur pesanXML untuk digunakan dalam web service.Catatan - The World Wide Web Consortium (W3C) yang menerbitkan HTTP,XML dan SOAP spesifikasi di http://www.w3c.org
  5. 5. Membangun Aplikasi dengan Platform Java EE Page 5 of 11Standar InteroperabilitasBukan hanya spesifikasi XML, HTTP, dan SOAP yang digunakan untuk mencapaiinteroperabilitas antara web servis dan kliennya. Karena banyak spesifikasi yangdigunakan dalam web service, spesifikasi telah dibuat untuk mandat spesifikasi danversi yang akan digunakan. Ini serupa dengan Java EE 5 mandat penggunaanspesifikasi, seperti EJB 3 dan Servlet 2.5.XML – Standar W3C yang dirancang untuk menyimpan data dalam format yangbaik untuk dibaca manusia dan mudah diparsing oleh mesin.HTTP – Standar W3C untuk komunikasi data.UDDI – Standar untuk publikasi dan pencarian service, disponsori oleh OASIS.SOAP – Standar W3C yang memaksa format pesan XML lebih didefinisikan padastruktur untuk digunakan dalam web service.Kode 12-1 Contoh Permintaan SOAP<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:ns1="http://sample/"><soapenv:Body><ns1:getGreeting><arg0>Duke</arg0></ns1:getGreeting></soapenv:Body></soapenv:Envelope>Kode 12-2 Contoh Respon SOAP<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelopexmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:ns1="http://sample/"><soapenv:Body><ns1:getGreetingResponse><return>Hello Duke</return></ns1:getGreetingResponse></soapenv:Body></soapenv:Envelope>
  6. 6. Modul 12 Model Web Service Page 6 of 11WSDL – Diusulkan oleh W3C untuk menjadi standar yang mendefinisikan fungsiweb service. Serupa fungsinya dengan interface bisnis dari komponen SessionEJB, namun dalam format XML.Kode 12-3 Contoh File WSDL<?xml version="1.0" encoding="UTF-8"?><definitions xmlns="http://schemas.xmlsoap.org/wsdl/"xmlns:tns="http://sample/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"targetNamespace="http://sample/" name="SayHelloService"><types><xsd:schema><xsd:import namespace="http://sample/"schemaLocation="http://10.1.1.1:8080/WebService/SayHelloService/__container$publishing$subctx/WEB-INF/wsdl/SayHelloService_schema1.xsd"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/></xsd:schema></types><message name="getGreeting"><part name="parameters" element="tns:getGreeting"/></message><message name="getGreetingResponse"><part name="parameters" element="tns:getGreetingResponse"/></message><portType name="SayHello"><operation name="getGreeting"><input message="tns:getGreeting"/><output message="tns:getGreetingResponse"/></operation></portType><binding name="SayHelloPortBinding" type="tns:SayHello"><soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/><operation name="getGreeting"><soap:operation soapAction=""/><input><soap:body use="literal"/></input><output><soap:body use="literal"/></output></operation></binding><service name="SayHelloService"><port name="SayHelloPort" binding="tns:SayHelloPortBinding">
  7. 7. Membangun Aplikasi dengan Platform Java EE Page 7 of 11<soap:address location="http://10.1.1.1:8080/WebService/SayHelloService"xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"/></port></service></definitions>Web Service Interoperability – Organzation (WS-I Organization) – WS-IOrganization adalah organisasi yang mengeluarkan mandat berupa profil yangberisi penggunaan spesifikasi tertentu, seperti SOAP dan WSDL, danmenempatkan mereka pada tambahan batasan yang diperlukan, untukmenyediakan web service interoperable. Profil ini dikenal dengan istilah BasicProfil.
  8. 8. Modul 12 Model Web Service Page 8 of 11API Java Terkait Dengan XML dan Web ServicesSebagian besar dari spesifikasi dalam daftar berikut ini digunakan ketika membuatatau menggunakan web service dalam bahasa pemrograman Java. Namun, Andatidak perlu menggunakan atau bahkan mengetahui rincian spesifikasi ini untukmenggunakan web service dengan teknologi Java.Java Document Object Model (JDOM atau Java DOM) menyediakan model Javaberorientasi objek dari XML dokumen.Java API untuk XML Processing (JAXP) adalah teknologi Java yang merupakanabstraksi dari pemrosesan XML.Java Architecture untuk XML Binding (JAXB) mengatur bagaimana mengkonversiobjek Java ke skema XML.Java API for XML-based Remote Process Communications (JAX-RPC) adalahspesifikasi untuk membangun web service dengan teknologi Java. Di spesifikasiJava EE 5, peran JAX-RPC digantikan oleh Java API for XML Web Services (JAX-WS).Java API for XML Registries (JAXR) adalah spesifikasi standar Java untukmenggunakan UDDI registries.SOAP With Attachment API for Java (SAAJ) adalah spesifikasi standar Java untukmembuat, mengirim, menerima, dan memparsing pesan SOAP. Digunakan olehJAX-WS.Java API for XML Web Service (JAX-WS) adalah spesifikasi Java untuk web service.Implementasi JAX-WS menggunakan implementasi dari SAAJ, yang padagilirannya menggunakan JAXP dan spesifikasi Java untuk XML yang lainnya.API SAAJAPI SAAJ memungkinkan klien untuk menggunakan web service tanpa harusmempedulikan parser XML atau protokol transport yang digunakan. API-nyadianggap lebih tinggi dari JAXP, untuk menggunakan API SAAJ masih memerlukanpengetahuan XML dan WSDL.Kode 12-4 Contoh Pemakaian API SAAJMessageFactory msgFactory = MessageFactory.newInstance();SOAPMessage message = msgFactory.createMessage();SOAPHeader header = message.getSOAPHeader();header.detachNode();
  9. 9. Membangun Aplikasi dengan Platform Java EE Page 9 of 11SOAPBody body = message.getSOAPBody();javax.xml.namespace.QName bodyName = new QName("http://sample/","getGreeting", "ns1");SOAPBodyElement requestBodyElement = body.addBodyElement(bodyName);QName name = new QName("arg0");SOAPElement symbol = requestBodyElement.addChildElement(name);symbol.addTextNode("Duke");SOAPConnectionFactory connFactory = SOAPConnectionFactory.newInstance();SOAPConnection connection = connFactory.createConnection();String endpoint = "http://localhost:8080/WebService/SayHelloService";SOAPMessage response = connection.call(message, endpoint);connection.close();SOAPBody soapBody = response.getSOAPBody();SOAPBodyElement getGreetingResponseElement =(SOAPBodyElement)soapBody.getChildElements().next();SOAPBodyElement returnElement =(SOAPBodyElement)getGreetingResponseElement.getChildElements().next();System.out.print("The response was: " + returnElement.getValue());API JAX-WSAPI JAX-WS adalah Java API level tertinggi (saat ini) untuk web service. API JAX-WS:Menggantikan JAX-RPCMemerlukan sedikit pengetahuan XML atau WSDL tingkat dasar untuk webservice yang sederhanaMenggunakan JAXB untuk menentukan bagaimana melakukan pemetaan tipedata antara teknologi Java dan XMLMenggunakan SAAJ untuk mengirim, menerima, dan mem-parsing pesan SOAPMenggunakan JAX-WS pada sisi klien atau server tidak memerlukan penggunaannyapada sisi lainnya. Jika anda sedang mengembangkan web service klien dan serverdengan menggunakan teknologi Java, maka anda harus menggunakan API JAX-WS.Walaupun ada sedikit yang menggunakan untuk membuat web service yang memilikibaik pada sisi klien dan service yang menggunakan platform Java, masih adabeberapa alasan untuk mempertimbangkan menggunakan web service:Mendukung fleksibilitas platform klien tidak dikenal di masa mendatang
  10. 10. Modul 12 Model Web Service Page 10 of 11Tidak terikat pada platform server tertentu. Misalnya, jika server platform tidakmemiliki skalabilitas yang baik, maka dapat diganti tanpa mempengaruhi aplikasiclientPenggunaan HTTP sebagai teknologi untuk berkomunikasi, dalam banyak kasus,memungkinkan penggunaan aturan-aturan firewall yang sudah ada.Gambar 12-1 menggambarkan bagaimana teknologi JAX-WS mengelola komunikasiantara web service dan klien.Gambar 12-1 Komunikasi antara yang JAX-WS Web Service dan Klien
  11. 11. Membangun Aplikasi dengan Platform Java EE Page 11 of 11RangkumanPeran web service di aplikasi enterprise adalah menyediakan metode yang tidakbergantung pada platform untuk pemanggilan method secara remote. Supayaplatform-netral, beberapa spesifikasi digunakan, seperti SOAP dan HTTP. TeknologiJava menyediakan API untuk pengolahan XML dan web service . Dasar API, sepertiJAXP merupakan bagian dari platform Java SE, sedangkan API tingkat tinggi, sepertiJAX-WS merupakan bagian dari platform Java EE.

×