SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
Modul 12
Model Web Services
Setelah menyelesaikan modul ini, anda dapat:
Menjelaskan peran web services
Mengetahi daftar spesifikasi yang digunakan untuk membuat web service
platform independen
Menjelaskan API Java yang digunakan untuk pengolahan XML dan web services
Modul 12 Model Web Service Page 2 of 11
Peran Web Services
World Wide Web Consortium (W3C) mendefinisikan web service sebagai " sistem
perangkat lunak yang dirancang untuk mendukung interoperabiliti interaksi mesin
yang satu dengan mesin yang lain melalui jaringan." Sebuah web service
mengekspose service remote atau prosedur yang dapat dieksekusi ke klien aplikasi.
Web service dirancang untuk platform independen, namun independensi platform
ini tidak tanpa kekurangan. Kekurangan untuk independensi dari platform web
service adalah ada pengeluaran tambahan, baik pemakaian jaringan ataupun
penggunaan 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 service
menggunakan secara ekstensif teknologi XML dan HTTP.
Interoperabel dengan bahasa pemrograman yang berlainan – Web service
menggunakan model klien-server. Adalah memungkinkan untuk memiliki sebuah
klien yang ditulis dalam satu bahasa pemrograman untuk berkomunikasi dengan
server yang ditulis dalam bahasa pemrograman yang berbeda.
Aplikasi klien-server dengan klien dan server yang keduanya dibuat dengan
menggunakan bahasa pemrograman Java yang tidak dapat digunakan untuk klien
atau server yang ditulis dalam bahasa pemrograman lain, memerlukan sedikit usaha
tambahan agar menjadi web service. Web service telah didukung oleh platform Java
enterprise sejak J2EE 1.4. Meskipun web service bukan lagi sebuah teknologi baru,
sejumlah industri memberikan gairah untuk terus mengembangkannya. Anda
mungkin diminta untuk membuat fungsi aplikasi yang sudah anda buat untuk diubah
menjadi web service tanpa banyak menimbulkan masalah teknis. Beruntung
platform Java EE 5 memungkinkan penciptaan atau penambahan web service dengan
cara yang mudah untuk aplikasi anda.
Web Service Sebagai Komponen Remote
Web service menyediakan sebuah mekanisme untuk menjalankan operasi bisnis
mirip dengan session EJB remote. Web service menyediakan eksekusi sebuah
pekerjaan secara remote yang mirip dengan:
Common Object Request Broker Architecture (CORBA) – Spesifikasinya dikelola
oleh Object Management Group (OMG). Menyediakan binding untuk bahasa
pemrograman C dan C + +, kemudian diikuti Jawa. Dilihat oleh banyak orang
sebagai arsitektur yang kompleks. Digunakan terutama pada tahun 1990-an.
Mulai tahun 2000, web service mulai menggantikan CORBA untuk beberapa
aplikasi.
Membangun Aplikasi dengan Platform Java EE Page 3 of 11
Remote Method Invocation (RMI) – Sebuah teknologi Java untuk pemanggilan
method dari remote klien. Teknologi ini digunakan sebagai fondasi bagi
komponen distributed di Java, misalnya EJB. Dimasukkan sebagai bagian dari
platform Java SE.
Remote Procedure Call (RPC) – Mengeksekusi prosedur secara remote
menggunakan satu protokol tertentu dipopulerkan oleh Sun Microsystems.
Biasanya tidak digunakan dalam perangkat lunak berorientasi objek. Network File
System (NFS) adalah contoh dari program RPC.
Distributed Component Object Model (DCOM) – Teknologi yang dibuat oleh
Microsoft yang posisinya setara dengan RMI, yang hanya bekerja pada platform
Microsoft. DCOM saat ini diganti dengan. Net Remoting dan web service.
Web service berbeda dengan teknologi-teknilogi di atas, dengan menggunakan
teknologi Hyper Teks Transfer Protocol (HTTP) dan XML (Extensible Markup
Language), keduanya juga didukung oleh librari yang ada di hampir semua bahasa
pemrograman, seperti standar transport dan payload. Librari Java yang mendukung
web service yang saat ini disertakan dalam versi platform Java enterprise dan jika
anda menggunakan platform Java SE versi 1.6 librari web service sudah dimasukkan
ke dalamnya.
Web Service Dibandingkan Dengan Remote EJB
Arsitektur EJB secara keseluruhan tidak jauh berbeda dari yang web service, dengan
pengecualian teknologi spesifik yang digunakan untuk membuat web service
platform independen:
Sebuah registry untuk mengumumkan dan mencari web service yang dikenal
sebagai Universal Description, Discovery and Integration (UDDI). Jika klien sudah
mengetahui lokasi yang diinginkan, anda dapat membypass registry.
Sebuah protokol yang digunakan sebagai jalur transportasi untuk memanggil
service, mengirimkan parameter, dan menerima nilai balikan. Dalam remote EJB,
protocol ini adalah Internet Inter-Orb Protocol (IIOP). Di web service yang
digunakan adalah HTTP.
Sebuah urutan data yang ditransfer antara klien dan server. Session Bean remote
menggunakan object yang serialized sedangkan web service menggunakan XML.
Modul 12 Model Web Service Page 4 of 11
Spesifikasi Web Service
Pada bagian ini akan dijelaskan spesifikasi web service.
Persyaratan Interoperabilitas
Web service dirancang untuk platform dan bahasa yang netral. Untuk membuat web
service secara efektif, yang harus diperhatikan adalah:
Dukungan klien tanpa memandang platform atau bahasa yang digunakan –
Sebuah web service tidak tergantung pada bahasa pemrograman tertentu atau
dijalankan pada sistem operasi tertentu.
Dapat dilaksanakan dalam bahasa apapun tanpa memperhatikan platform yang
digunakan – Sebuah API web service meekspose semua informasi dalam bentuk
file teks yang dikenal sebagai file Web Service Description Language (WSDL).
Dengan file WSDL, anda dapat mengembangkan klien baru dalam bahasa
pemrograman apapun tanpa mengakses informasi lainnya ke server. Sebagian
besar tool di Java juga mendukung pembuatan web service yang kompatibel
cukup dengan menggunakan informasi dari file WSDL.
Dua dari beberapa spesifikasi yang digunakan untuk membuat web service
interoperable adalah HTTP dan XML. HTTP adalah protokol transportasi, biasanya
digunakan di atas Transmission Control Protocol/Internet Protocol (TCP/IP), yang
dapat digunakan untuk mentransfer informasi di dalam arsitektur berorientasi
permintaan-respon. XML adalah suatu spesifikasi yang digunakan untuk mengatur
data dalam sebuah file teks yang bisa di parsing oleh mesin. Web service
menggunakan HTTP untuk mengirim data dalam format XML untuk permintaan dan
respon. Namun, dengan menggunakan HTTP sebagai protokol transport dan XML
sebagai format data yang tidak menyediakan interoperabilitas tingkat tinggi. Agar
interoperable:
Method dan header yang digunakan dalam transport protokol HTTP harus
standar.
Format pesan XML harus diketahui. XML tidak hanya memerlukan dokumen yang
‘well-formed’ tetapi juga memerlukan struktur atau formatnya. Simple Object
Access Protocol (SOAP) adalah spesifikasi yang mengatur standar struktur pesan
XML untuk digunakan dalam web service.
Catatan - The World Wide Web Consortium (W3C) yang menerbitkan HTTP,
XML dan SOAP spesifikasi di http://www.w3c.org
Membangun Aplikasi dengan Platform Java EE Page 5 of 11
Standar Interoperabilitas
Bukan hanya spesifikasi XML, HTTP, dan SOAP yang digunakan untuk mencapai
interoperabilitas antara web servis dan kliennya. Karena banyak spesifikasi yang
digunakan dalam web service, spesifikasi telah dibuat untuk mandat spesifikasi dan
versi yang akan digunakan. Ini serupa dengan Java EE 5 mandat penggunaan
spesifikasi, seperti EJB 3 dan Servlet 2.5.
XML – Standar W3C yang dirancang untuk menyimpan data dalam format yang
baik 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 pada
struktur untuk digunakan dalam web service.
Kode 12-1 Contoh Permintaan SOAP
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope
xmlns: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:Envelope
xmlns: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>
Modul 12 Model Web Service Page 6 of 11
WSDL – Diusulkan oleh W3C untuk menjadi standar yang mendefinisikan fungsi
web service. Serupa fungsinya dengan interface bisnis dari komponen Session
EJB, 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/__contain
er$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">
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-I
Organization adalah organisasi yang mengeluarkan mandat berupa profil yang
berisi penggunaan spesifikasi tertentu, seperti SOAP dan WSDL, dan
menempatkan mereka pada tambahan batasan yang diperlukan, untuk
menyediakan web service interoperable. Profil ini dikenal dengan istilah Basic
Profil.
Modul 12 Model Web Service Page 8 of 11
API Java Terkait Dengan XML dan Web Services
Sebagian besar dari spesifikasi dalam daftar berikut ini digunakan ketika membuat
atau menggunakan web service dalam bahasa pemrograman Java. Namun, Anda
tidak perlu menggunakan atau bahkan mengetahui rincian spesifikasi ini untuk
menggunakan web service dengan teknologi Java.
Java Document Object Model (JDOM atau Java DOM) menyediakan model Java
berorientasi objek dari XML dokumen.
Java API untuk XML Processing (JAXP) adalah teknologi Java yang merupakan
abstraksi dari pemrosesan XML.
Java Architecture untuk XML Binding (JAXB) mengatur bagaimana mengkonversi
objek Java ke skema XML.
Java API for XML-based Remote Process Communications (JAX-RPC) adalah
spesifikasi untuk membangun web service dengan teknologi Java. Di spesifikasi
Java 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 untuk
menggunakan UDDI registries.
SOAP With Attachment API for Java (SAAJ) adalah spesifikasi standar Java untuk
membuat, mengirim, menerima, dan memparsing pesan SOAP. Digunakan oleh
JAX-WS.
Java API for XML Web Service (JAX-WS) adalah spesifikasi Java untuk web service.
Implementasi JAX-WS menggunakan implementasi dari SAAJ, yang pada
gilirannya menggunakan JAXP dan spesifikasi Java untuk XML yang lainnya.
API SAAJ
API SAAJ memungkinkan klien untuk menggunakan web service tanpa harus
mempedulikan parser XML atau protokol transport yang digunakan. API-nya
dianggap lebih tinggi dari JAXP, untuk menggunakan API SAAJ masih memerlukan
pengetahuan XML dan WSDL.
Kode 12-4 Contoh Pemakaian API SAAJ
MessageFactory msgFactory = MessageFactory.newInstance();
SOAPMessage message = msgFactory.createMessage();
SOAPHeader header = message.getSOAPHeader();
header.detachNode();
Membangun Aplikasi dengan Platform Java EE Page 9 of 11
SOAPBody 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-WS
API JAX-WS adalah Java API level tertinggi (saat ini) untuk web service. API JAX-WS:
Menggantikan JAX-RPC
Memerlukan sedikit pengetahuan XML atau WSDL tingkat dasar untuk web
service yang sederhana
Menggunakan JAXB untuk menentukan bagaimana melakukan pemetaan tipe
data antara teknologi Java dan XML
Menggunakan SAAJ untuk mengirim, menerima, dan mem-parsing pesan SOAP
Menggunakan JAX-WS pada sisi klien atau server tidak memerlukan penggunaannya
pada sisi lainnya. Jika anda sedang mengembangkan web service klien dan server
dengan menggunakan teknologi Java, maka anda harus menggunakan API JAX-WS.
Walaupun ada sedikit yang menggunakan untuk membuat web service yang memiliki
baik pada sisi klien dan service yang menggunakan platform Java, masih ada
beberapa alasan untuk mempertimbangkan menggunakan web service:
Mendukung fleksibilitas platform klien tidak dikenal di masa mendatang
Modul 12 Model Web Service Page 10 of 11
Tidak terikat pada platform server tertentu. Misalnya, jika server platform tidak
memiliki skalabilitas yang baik, maka dapat diganti tanpa mempengaruhi aplikasi
client
Penggunaan 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 komunikasi
antara web service dan klien.
Gambar 12-1 Komunikasi antara yang JAX-WS Web Service dan Klien
Membangun Aplikasi dengan Platform Java EE Page 11 of 11
Rangkuman
Peran web service di aplikasi enterprise adalah menyediakan metode yang tidak
bergantung pada platform untuk pemanggilan method secara remote. Supaya
platform-netral, beberapa spesifikasi digunakan, seperti SOAP dan HTTP. Teknologi
Java menyediakan API untuk pengolahan XML dan web service . Dasar API, seperti
JAXP merupakan bagian dari platform Java SE, sedangkan API tingkat tinggi, seperti
JAX-WS merupakan bagian dari platform Java EE.

Contenu connexe

Tendances

01konseppemrogramaninternet
01konseppemrogramaninternet01konseppemrogramaninternet
01konseppemrogramaninternetjuicemangga
 
Tugas rekweb 0316 arifmunandar 1312510124
Tugas rekweb 0316 arifmunandar 1312510124Tugas rekweb 0316 arifmunandar 1312510124
Tugas rekweb 0316 arifmunandar 1312510124arief munandar
 
Tugas 4 rekayasa web
Tugas 4 rekayasa webTugas 4 rekayasa web
Tugas 4 rekayasa webrimaafauziaah
 
XML - Chapter 8 WEB SERVICES
XML - Chapter 8 WEB SERVICESXML - Chapter 8 WEB SERVICES
XML - Chapter 8 WEB SERVICESRiza Nurman
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3Fenty Hidayati
 
Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316art david
 
Tugas atpi ade maretha & arista bayu
Tugas atpi ade maretha & arista bayuTugas atpi ade maretha & arista bayu
Tugas atpi ade maretha & arista bayuFebriy Y
 
Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317esti setiasih
 
Tugas so II, Perkembangan web server di linux
Tugas so II, Perkembangan web server di linuxTugas so II, Perkembangan web server di linux
Tugas so II, Perkembangan web server di linuxirfansyahril
 
Tugas-4 REKAYASA WEB
Tugas-4 REKAYASA WEBTugas-4 REKAYASA WEB
Tugas-4 REKAYASA WEBElisanendes
 
Odbc dan ole db provider siiesde
Odbc dan ole db provider siiesdeOdbc dan ole db provider siiesde
Odbc dan ole db provider siiesdeSii Esde
 

Tendances (18)

01konseppemrogramaninternet
01konseppemrogramaninternet01konseppemrogramaninternet
01konseppemrogramaninternet
 
Tugas rekweb 0316 arifmunandar 1312510124
Tugas rekweb 0316 arifmunandar 1312510124Tugas rekweb 0316 arifmunandar 1312510124
Tugas rekweb 0316 arifmunandar 1312510124
 
Rpc, soap,rest
Rpc, soap,restRpc, soap,rest
Rpc, soap,rest
 
Tugas 4 rekayasa web
Tugas 4 rekayasa webTugas 4 rekayasa web
Tugas 4 rekayasa web
 
XML - Chapter 8 WEB SERVICES
XML - Chapter 8 WEB SERVICESXML - Chapter 8 WEB SERVICES
XML - Chapter 8 WEB SERVICES
 
Laporan pemrograman visual3
Laporan pemrograman visual3Laporan pemrograman visual3
Laporan pemrograman visual3
 
Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316Tugas 4 rekayasa web 0316
Tugas 4 rekayasa web 0316
 
API by Sandi Hermawan
API by Sandi HermawanAPI by Sandi Hermawan
API by Sandi Hermawan
 
Tugas atpi ade maretha & arista bayu
Tugas atpi ade maretha & arista bayuTugas atpi ade maretha & arista bayu
Tugas atpi ade maretha & arista bayu
 
Kelompok 7
Kelompok 7Kelompok 7
Kelompok 7
 
Tugas Pw [21]
Tugas Pw [21]Tugas Pw [21]
Tugas Pw [21]
 
Pbw week 01 basics
Pbw week 01   basicsPbw week 01   basics
Pbw week 01 basics
 
Dasar web-dan-html
Dasar web-dan-htmlDasar web-dan-html
Dasar web-dan-html
 
Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317Tugas 3 matkul rekayasa web 0317
Tugas 3 matkul rekayasa web 0317
 
Tugas so II, Perkembangan web server di linux
Tugas so II, Perkembangan web server di linuxTugas so II, Perkembangan web server di linux
Tugas so II, Perkembangan web server di linux
 
Tugas-4 REKAYASA WEB
Tugas-4 REKAYASA WEBTugas-4 REKAYASA WEB
Tugas-4 REKAYASA WEB
 
application layer
application layerapplication layer
application layer
 
Odbc dan ole db provider siiesde
Odbc dan ole db provider siiesdeOdbc dan ole db provider siiesde
Odbc dan ole db provider siiesde
 

En vedette

Microsoft word recuritment procedure in sccl
Microsoft word   recuritment procedure in scclMicrosoft word   recuritment procedure in sccl
Microsoft word recuritment procedure in scclAbhishek Verma
 
Brand Valuation Methodology
Brand Valuation MethodologyBrand Valuation Methodology
Brand Valuation MethodologyJulia Orsa
 
Pet Industry, Business Startup Pitch Sample
Pet Industry, Business Startup Pitch SamplePet Industry, Business Startup Pitch Sample
Pet Industry, Business Startup Pitch SampleJulia Orsa
 
Retail planning and merchandizing analytics
Retail planning and merchandizing analyticsRetail planning and merchandizing analytics
Retail planning and merchandizing analyticsJulia Orsa
 
PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)
PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)
PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)Khim Olalia
 

En vedette (8)

We need to talk 2
We need to talk 2We need to talk 2
We need to talk 2
 
Our school
Our schoolOur school
Our school
 
Microsoft word recuritment procedure in sccl
Microsoft word   recuritment procedure in scclMicrosoft word   recuritment procedure in sccl
Microsoft word recuritment procedure in sccl
 
Brand Valuation Methodology
Brand Valuation MethodologyBrand Valuation Methodology
Brand Valuation Methodology
 
Pet Industry, Business Startup Pitch Sample
Pet Industry, Business Startup Pitch SamplePet Industry, Business Startup Pitch Sample
Pet Industry, Business Startup Pitch Sample
 
Piagam class meeting
Piagam class meetingPiagam class meeting
Piagam class meeting
 
Retail planning and merchandizing analytics
Retail planning and merchandizing analyticsRetail planning and merchandizing analytics
Retail planning and merchandizing analytics
 
PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)
PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)
PROJECT IN AP (KIMOLALIAMARYREYESGIAMANLAPAZ)
 

Similaire à Modul 12rev1

Web Service dan service oriented architecture
Web Service dan service oriented architectureWeb Service dan service oriented architecture
Web Service dan service oriented architectureseptiara5
 
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptPemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptAbdurRozak19
 
Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832fahreza yozi
 
Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587nurul azmi
 
Tugas atpi aplikasi teknologi dan pengelolaan informasi
Tugas atpi aplikasi teknologi dan pengelolaan informasiTugas atpi aplikasi teknologi dan pengelolaan informasi
Tugas atpi aplikasi teknologi dan pengelolaan informasiFebriy Y
 
Tugas 3 rekayasa web
Tugas 3 rekayasa webTugas 3 rekayasa web
Tugas 3 rekayasa webFani Heryati
 
Tugas atpi hania amani & puteri shafira nasution
Tugas atpi hania amani & puteri shafira nasutionTugas atpi hania amani & puteri shafira nasution
Tugas atpi hania amani & puteri shafira nasutionFebriy Y
 
Tugas webserver SO II - 09 154
Tugas webserver SO II - 09 154Tugas webserver SO II - 09 154
Tugas webserver SO II - 09 154ridhyld
 
Tugas atpi 1 dea alifa d & kamilah kinanti
Tugas atpi 1 dea alifa d & kamilah kinantiTugas atpi 1 dea alifa d & kamilah kinanti
Tugas atpi 1 dea alifa d & kamilah kinantiFebriy Y
 
Tugas atpi mohamad irfan s (1206247133) erwin r (1206247423)
Tugas atpi  mohamad irfan s (1206247133)  erwin r (1206247423)Tugas atpi  mohamad irfan s (1206247133)  erwin r (1206247423)
Tugas atpi mohamad irfan s (1206247133) erwin r (1206247423)Febriy Y
 
Perkembangan web server di Linux
Perkembangan web server di LinuxPerkembangan web server di Linux
Perkembangan web server di LinuxApriyanto Gafur
 
Application Layer
Application LayerApplication Layer
Application Layerrosmida
 
Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213mukhlis abdilah
 
Tugas webserver
Tugas webserverTugas webserver
Tugas webservernifran12
 
Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347krisna mukti andika
 
Zentyal adalah server_linux_untuk_small
Zentyal adalah server_linux_untuk_smallZentyal adalah server_linux_untuk_small
Zentyal adalah server_linux_untuk_smallarimayawulantara
 
Jeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webJeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webSejahtera Affif
 

Similaire à Modul 12rev1 (20)

RCP, SOAP, REST
RCP, SOAP, RESTRCP, SOAP, REST
RCP, SOAP, REST
 
Materi 3
Materi 3Materi 3
Materi 3
 
Web Service dan service oriented architecture
Web Service dan service oriented architectureWeb Service dan service oriented architecture
Web Service dan service oriented architecture
 
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.pptPemrograman-Berbasis-Web-Pertemuan-1.ppt
Pemrograman-Berbasis-Web-Pertemuan-1.ppt
 
Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832Tugas 2 0317-fahreza yozi-1612510832
Tugas 2 0317-fahreza yozi-1612510832
 
Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587Tugas 2 0317-nurul azmi-1412510587
Tugas 2 0317-nurul azmi-1412510587
 
Tugas atpi aplikasi teknologi dan pengelolaan informasi
Tugas atpi aplikasi teknologi dan pengelolaan informasiTugas atpi aplikasi teknologi dan pengelolaan informasi
Tugas atpi aplikasi teknologi dan pengelolaan informasi
 
Tugas 3 rekayasa web
Tugas 3 rekayasa webTugas 3 rekayasa web
Tugas 3 rekayasa web
 
Tugas atpi hania amani & puteri shafira nasution
Tugas atpi hania amani & puteri shafira nasutionTugas atpi hania amani & puteri shafira nasution
Tugas atpi hania amani & puteri shafira nasution
 
Tugas webserver SO II - 09 154
Tugas webserver SO II - 09 154Tugas webserver SO II - 09 154
Tugas webserver SO II - 09 154
 
Tugas atpi 1 dea alifa d & kamilah kinanti
Tugas atpi 1 dea alifa d & kamilah kinantiTugas atpi 1 dea alifa d & kamilah kinanti
Tugas atpi 1 dea alifa d & kamilah kinanti
 
Tugas atpi mohamad irfan s (1206247133) erwin r (1206247423)
Tugas atpi  mohamad irfan s (1206247133)  erwin r (1206247423)Tugas atpi  mohamad irfan s (1206247133)  erwin r (1206247423)
Tugas atpi mohamad irfan s (1206247133) erwin r (1206247423)
 
Perkembangan web server di Linux
Perkembangan web server di LinuxPerkembangan web server di Linux
Perkembangan web server di Linux
 
Application Layer
Application LayerApplication Layer
Application Layer
 
Sejarah web server
Sejarah web serverSejarah web server
Sejarah web server
 
Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213Tugas 2 - 0317-mukhlis abdilah-1411511213
Tugas 2 - 0317-mukhlis abdilah-1411511213
 
Tugas webserver
Tugas webserverTugas webserver
Tugas webserver
 
Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347Tugas2 krisna muktiandika-1511510347
Tugas2 krisna muktiandika-1511510347
 
Zentyal adalah server_linux_untuk_small
Zentyal adalah server_linux_untuk_smallZentyal adalah server_linux_untuk_small
Zentyal adalah server_linux_untuk_small
 
Jeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman webJeni web programming-bab 1-pengenalan pemrograman web
Jeni web programming-bab 1-pengenalan pemrograman web
 

Modul 12rev1

  • 1. Modul 12 Model Web Services Setelah menyelesaikan modul ini, anda dapat: Menjelaskan peran web services Mengetahi daftar spesifikasi yang digunakan untuk membuat web service platform independen Menjelaskan API Java yang digunakan untuk pengolahan XML dan web services
  • 2. Modul 12 Model Web Service Page 2 of 11 Peran Web Services World Wide Web Consortium (W3C) mendefinisikan web service sebagai " sistem perangkat lunak yang dirancang untuk mendukung interoperabiliti interaksi mesin yang satu dengan mesin yang lain melalui jaringan." Sebuah web service mengekspose service remote atau prosedur yang dapat dieksekusi ke klien aplikasi. Web service dirancang untuk platform independen, namun independensi platform ini tidak tanpa kekurangan. Kekurangan untuk independensi dari platform web service adalah ada pengeluaran tambahan, baik pemakaian jaringan ataupun penggunaan 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 service menggunakan secara ekstensif teknologi XML dan HTTP. Interoperabel dengan bahasa pemrograman yang berlainan – Web service menggunakan model klien-server. Adalah memungkinkan untuk memiliki sebuah klien yang ditulis dalam satu bahasa pemrograman untuk berkomunikasi dengan server yang ditulis dalam bahasa pemrograman yang berbeda. Aplikasi klien-server dengan klien dan server yang keduanya dibuat dengan menggunakan bahasa pemrograman Java yang tidak dapat digunakan untuk klien atau server yang ditulis dalam bahasa pemrograman lain, memerlukan sedikit usaha tambahan agar menjadi web service. Web service telah didukung oleh platform Java enterprise sejak J2EE 1.4. Meskipun web service bukan lagi sebuah teknologi baru, sejumlah industri memberikan gairah untuk terus mengembangkannya. Anda mungkin diminta untuk membuat fungsi aplikasi yang sudah anda buat untuk diubah menjadi web service tanpa banyak menimbulkan masalah teknis. Beruntung platform Java EE 5 memungkinkan penciptaan atau penambahan web service dengan cara yang mudah untuk aplikasi anda. Web Service Sebagai Komponen Remote Web service menyediakan sebuah mekanisme untuk menjalankan operasi bisnis mirip dengan session EJB remote. Web service menyediakan eksekusi sebuah pekerjaan secara remote yang mirip dengan: Common Object Request Broker Architecture (CORBA) – Spesifikasinya dikelola oleh Object Management Group (OMG). Menyediakan binding untuk bahasa pemrograman C dan C + +, kemudian diikuti Jawa. Dilihat oleh banyak orang sebagai arsitektur yang kompleks. Digunakan terutama pada tahun 1990-an. Mulai tahun 2000, web service mulai menggantikan CORBA untuk beberapa aplikasi.
  • 3. Membangun Aplikasi dengan Platform Java EE Page 3 of 11 Remote Method Invocation (RMI) – Sebuah teknologi Java untuk pemanggilan method dari remote klien. Teknologi ini digunakan sebagai fondasi bagi komponen distributed di Java, misalnya EJB. Dimasukkan sebagai bagian dari platform Java SE. Remote Procedure Call (RPC) – Mengeksekusi prosedur secara remote menggunakan satu protokol tertentu dipopulerkan oleh Sun Microsystems. Biasanya tidak digunakan dalam perangkat lunak berorientasi objek. Network File System (NFS) adalah contoh dari program RPC. Distributed Component Object Model (DCOM) – Teknologi yang dibuat oleh Microsoft yang posisinya setara dengan RMI, yang hanya bekerja pada platform Microsoft. DCOM saat ini diganti dengan. Net Remoting dan web service. Web service berbeda dengan teknologi-teknilogi di atas, dengan menggunakan teknologi Hyper Teks Transfer Protocol (HTTP) dan XML (Extensible Markup Language), keduanya juga didukung oleh librari yang ada di hampir semua bahasa pemrograman, seperti standar transport dan payload. Librari Java yang mendukung web service yang saat ini disertakan dalam versi platform Java enterprise dan jika anda menggunakan platform Java SE versi 1.6 librari web service sudah dimasukkan ke dalamnya. Web Service Dibandingkan Dengan Remote EJB Arsitektur EJB secara keseluruhan tidak jauh berbeda dari yang web service, dengan pengecualian teknologi spesifik yang digunakan untuk membuat web service platform independen: Sebuah registry untuk mengumumkan dan mencari web service yang dikenal sebagai Universal Description, Discovery and Integration (UDDI). Jika klien sudah mengetahui lokasi yang diinginkan, anda dapat membypass registry. Sebuah protokol yang digunakan sebagai jalur transportasi untuk memanggil service, mengirimkan parameter, dan menerima nilai balikan. Dalam remote EJB, protocol ini adalah Internet Inter-Orb Protocol (IIOP). Di web service yang digunakan adalah HTTP. Sebuah urutan data yang ditransfer antara klien dan server. Session Bean remote menggunakan object yang serialized sedangkan web service menggunakan XML.
  • 4. Modul 12 Model Web Service Page 4 of 11 Spesifikasi Web Service Pada bagian ini akan dijelaskan spesifikasi web service. Persyaratan Interoperabilitas Web service dirancang untuk platform dan bahasa yang netral. Untuk membuat web service secara efektif, yang harus diperhatikan adalah: Dukungan klien tanpa memandang platform atau bahasa yang digunakan – Sebuah web service tidak tergantung pada bahasa pemrograman tertentu atau dijalankan pada sistem operasi tertentu. Dapat dilaksanakan dalam bahasa apapun tanpa memperhatikan platform yang digunakan – Sebuah API web service meekspose semua informasi dalam bentuk file teks yang dikenal sebagai file Web Service Description Language (WSDL). Dengan file WSDL, anda dapat mengembangkan klien baru dalam bahasa pemrograman apapun tanpa mengakses informasi lainnya ke server. Sebagian besar tool di Java juga mendukung pembuatan web service yang kompatibel cukup dengan menggunakan informasi dari file WSDL. Dua dari beberapa spesifikasi yang digunakan untuk membuat web service interoperable adalah HTTP dan XML. HTTP adalah protokol transportasi, biasanya digunakan di atas Transmission Control Protocol/Internet Protocol (TCP/IP), yang dapat digunakan untuk mentransfer informasi di dalam arsitektur berorientasi permintaan-respon. XML adalah suatu spesifikasi yang digunakan untuk mengatur data dalam sebuah file teks yang bisa di parsing oleh mesin. Web service menggunakan HTTP untuk mengirim data dalam format XML untuk permintaan dan respon. Namun, dengan menggunakan HTTP sebagai protokol transport dan XML sebagai format data yang tidak menyediakan interoperabilitas tingkat tinggi. Agar interoperable: Method dan header yang digunakan dalam transport protokol HTTP harus standar. Format pesan XML harus diketahui. XML tidak hanya memerlukan dokumen yang ‘well-formed’ tetapi juga memerlukan struktur atau formatnya. Simple Object Access Protocol (SOAP) adalah spesifikasi yang mengatur standar struktur pesan XML 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. Membangun Aplikasi dengan Platform Java EE Page 5 of 11 Standar Interoperabilitas Bukan hanya spesifikasi XML, HTTP, dan SOAP yang digunakan untuk mencapai interoperabilitas antara web servis dan kliennya. Karena banyak spesifikasi yang digunakan dalam web service, spesifikasi telah dibuat untuk mandat spesifikasi dan versi yang akan digunakan. Ini serupa dengan Java EE 5 mandat penggunaan spesifikasi, seperti EJB 3 dan Servlet 2.5. XML – Standar W3C yang dirancang untuk menyimpan data dalam format yang baik 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 pada struktur untuk digunakan dalam web service. Kode 12-1 Contoh Permintaan SOAP <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns: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:Envelope xmlns: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. Modul 12 Model Web Service Page 6 of 11 WSDL – Diusulkan oleh W3C untuk menjadi standar yang mendefinisikan fungsi web service. Serupa fungsinya dengan interface bisnis dari komponen Session EJB, 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/__contain er$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. 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-I Organization adalah organisasi yang mengeluarkan mandat berupa profil yang berisi penggunaan spesifikasi tertentu, seperti SOAP dan WSDL, dan menempatkan mereka pada tambahan batasan yang diperlukan, untuk menyediakan web service interoperable. Profil ini dikenal dengan istilah Basic Profil.
  • 8. Modul 12 Model Web Service Page 8 of 11 API Java Terkait Dengan XML dan Web Services Sebagian besar dari spesifikasi dalam daftar berikut ini digunakan ketika membuat atau menggunakan web service dalam bahasa pemrograman Java. Namun, Anda tidak perlu menggunakan atau bahkan mengetahui rincian spesifikasi ini untuk menggunakan web service dengan teknologi Java. Java Document Object Model (JDOM atau Java DOM) menyediakan model Java berorientasi objek dari XML dokumen. Java API untuk XML Processing (JAXP) adalah teknologi Java yang merupakan abstraksi dari pemrosesan XML. Java Architecture untuk XML Binding (JAXB) mengatur bagaimana mengkonversi objek Java ke skema XML. Java API for XML-based Remote Process Communications (JAX-RPC) adalah spesifikasi untuk membangun web service dengan teknologi Java. Di spesifikasi Java 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 untuk menggunakan UDDI registries. SOAP With Attachment API for Java (SAAJ) adalah spesifikasi standar Java untuk membuat, mengirim, menerima, dan memparsing pesan SOAP. Digunakan oleh JAX-WS. Java API for XML Web Service (JAX-WS) adalah spesifikasi Java untuk web service. Implementasi JAX-WS menggunakan implementasi dari SAAJ, yang pada gilirannya menggunakan JAXP dan spesifikasi Java untuk XML yang lainnya. API SAAJ API SAAJ memungkinkan klien untuk menggunakan web service tanpa harus mempedulikan parser XML atau protokol transport yang digunakan. API-nya dianggap lebih tinggi dari JAXP, untuk menggunakan API SAAJ masih memerlukan pengetahuan XML dan WSDL. Kode 12-4 Contoh Pemakaian API SAAJ MessageFactory msgFactory = MessageFactory.newInstance(); SOAPMessage message = msgFactory.createMessage(); SOAPHeader header = message.getSOAPHeader(); header.detachNode();
  • 9. Membangun Aplikasi dengan Platform Java EE Page 9 of 11 SOAPBody 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-WS API JAX-WS adalah Java API level tertinggi (saat ini) untuk web service. API JAX-WS: Menggantikan JAX-RPC Memerlukan sedikit pengetahuan XML atau WSDL tingkat dasar untuk web service yang sederhana Menggunakan JAXB untuk menentukan bagaimana melakukan pemetaan tipe data antara teknologi Java dan XML Menggunakan SAAJ untuk mengirim, menerima, dan mem-parsing pesan SOAP Menggunakan JAX-WS pada sisi klien atau server tidak memerlukan penggunaannya pada sisi lainnya. Jika anda sedang mengembangkan web service klien dan server dengan menggunakan teknologi Java, maka anda harus menggunakan API JAX-WS. Walaupun ada sedikit yang menggunakan untuk membuat web service yang memiliki baik pada sisi klien dan service yang menggunakan platform Java, masih ada beberapa alasan untuk mempertimbangkan menggunakan web service: Mendukung fleksibilitas platform klien tidak dikenal di masa mendatang
  • 10. Modul 12 Model Web Service Page 10 of 11 Tidak terikat pada platform server tertentu. Misalnya, jika server platform tidak memiliki skalabilitas yang baik, maka dapat diganti tanpa mempengaruhi aplikasi client Penggunaan 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 komunikasi antara web service dan klien. Gambar 12-1 Komunikasi antara yang JAX-WS Web Service dan Klien
  • 11. Membangun Aplikasi dengan Platform Java EE Page 11 of 11 Rangkuman Peran web service di aplikasi enterprise adalah menyediakan metode yang tidak bergantung pada platform untuk pemanggilan method secara remote. Supaya platform-netral, beberapa spesifikasi digunakan, seperti SOAP dan HTTP. Teknologi Java menyediakan API untuk pengolahan XML dan web service . Dasar API, seperti JAXP merupakan bagian dari platform Java SE, sedangkan API tingkat tinggi, seperti JAX-WS merupakan bagian dari platform Java EE.