Erick Kurniawan, S.Kom, M.Kom Web Services Erick Kurniawan, S.Kom, M.Kom
Apa itu Web Services? Adalah service yang mempertukarkan data dalam format XML Tersedia dan diakses melalui Internet / intranet Operating System & Programming Language Independent Antar muka yang mendeskripsikan koleksi yang diakses dalam jaringan menggunakan standar XML untuk pertukaran pesan Web Services mengerjakan tugas yang spesifik
Apa itu Web Services? Web service mempertukarkan data antara Service requestor (aplikasi yang menggunakan data/service) dan service provider (server penyedia data/service) melalaui service registry (yang berisi kumpulan service-service) Menggunakan teknologi XML-RPC atau SOAP, atau HTTP POST/GET
Apa itu Web Services?
Apa itu Web Services? Web service berbeda dengan model aplikasi terdistribusi tradisional seperti CORBA dan RMI dimana method yang dipanggil dieksekusi melalui jaringan Tetapi web service menyediakan method yang akan menghasilkan result berupa data XML (bukan data biner) Web service dapat dipanggil/digunakan melalui web, aplikasi desktop, ataupun aplikasi mobile
Websites vs Web Services Memiliki web interface (rich interface) Ditujukan untuk berinteraksi langsung dengan user Dijalankan pada web browser Merupakan aplikasi front-end Bersifat human-centric: user merupakan faktor utama
Websites vs Web Services Tidak memiliki interface yang bagus Dibuat untuk berinteraksi langsung dengan aplikasi yang lain yg berbeda OS / Arsitektur sekalipun, bukan dengan user back-end application Application-centric: komunikasi terjadi antar aplikasi
Web Services Web service harus ”self-describing”: jika kita membuat web service, kita harus juga mempublikasikan public interface ke service tersebut Minimalnya, service harus memiliki human-readable documentation sehingga developer lain dapat mengintegrasikan aplikasinya dengan web service yang kita buat
Web Services Jika kita membuat SOAP service, kita juga wajib membuat public interface yang ditulis dalam XML sehingga dapat digunakan untuk mengidentifikasikan semua method yang public, argumen-argumennya dan juga return valuenya Web service harus ”discoverable”. Jika kita membuat web service, harus ada mekanisme sederhana agar service dan public method yang kita buat dapat dikenal dan ditemukan oleh aplikasi lain
Kelebihan Web Services Interoperability (platform dan aplikasi) Dapat mempublikasikan service dan method sehingga mudah digunakan Mendukung reusable-components
Web Services Layer Service Transport: Bagian ini bertanggung jawab untuk mengirim message antar aplikasi. Protokol yang ada: Hyper Text Transfer Protocol (HTTP), Simple Mail, Transfer Protocol (SMTP), File Transfer Protocol (FTP)
Web Services Layer XML messaging dan encoding: Bagian ini bertanggung jawab untuk mengencode message dalam format XML sehingga message dapat dimengerti dan dipertukarkan. Protokol yang ada: XML-RPC dan SOAP
Web Services Layer Service description: Bagian ini bertanggung jawab untuk mendeskripsikan public interface sesuai dengan web service yang spesifik. Bagian ini dihandle melalui Web Service Description Language (WSDL) dan XML Schema
Web Services Layer Service discovery: Bagian ini bertanggung jawab untuk memusatkan services ke dalam common registry dan menyediakan kemudahan untuk mempublikasikan interface dan kemudahan dalam pencarian method. Bagian ini dihandle oleh Universal Description, Discovery, and Integration (UDDI)
Security Penggunaan HTTP dan BEEP (Block Extensible Exchange Protocol) Security: Confidentiality: apakah web service menjamin dokumen XML conficidental? Solusinya dilakukan enkripsi XML yang distandarisasi oleh W3C di http://www.w3c.org/Encryption, dilakukan dengan menggunakan SSL dimana masing-masing komponen dalam web service harus dienkripsi sendiri-sendiri
Authentication Apakah web service bisa menjamin bahwa user yang connect itu authorized? Menggunakan HTTP Authentication SOAP Security Extensions : SOAP DSIG (Digital Signature) Menggunakan Security Assertion Markup Language (SAML) Menggunakan XKMS (XML Key Management Service) yaitu service untuk mendistribusikan dan mengatur public keys dan certificates
Service Requestor Service requestor adalah kosumen dari web services. Pengembangan service requestor: Mengidentifikasi dan menemukan service yang relevan sesuai dengan aplikasi yang ada. Biasanya dilakukan dengan pencarian terhadap UDDI Business Directory yang berisi service-service yang ada Setelah mendapatkan service yang diinginkan, langkah selanjutnya adalah mencari service description
Service Requestor Jika service itu adalah SOA, maka kita akan menemukan WSDL document. Jika service itu adalah XML-RPC, maka kita akan menemukan human-readable instruction untuk integrasi Membuat client application. Contohnya, kita membuat XML-RPC atau SOAP client sesuai dengan bahasa pemrograman yang kita sukai Jalankan client application yang kita buat dan invoke the web service
Service Provider Service provider adalah penyedia dari satu atau lebih web service. Pengembangan service provider: Pengembangan fungsi-fungsi utama dari service. Biasanya ini merupakan bagian yang paling sulit, seperti misalnya koneksi database, EJB, COM, dll Kembangkan sebuah service wrapper untuk fungsi-fungsi utama tersebut dalam bentuk XML-RPC atau SOAP service wrapper
Service Provider Kita harus menyediakan service description. Jika kita membuat SOAP service kita harus membuat file WSDL. Jika kita membuat XML-RPC service, kita harus membuat human-readable instructions untuk integrasi Deploy the service. Kita dapat menyesuaikan dengan kebutuhan, apakah diinstal atau berjalan dalam server standalone atau diintegrasikan dengan web server yang telah ada
Service Provider Kita harus mempublikasikan keberadaan dan spesifikasi service yang telah kita buat. Biasanya dapat dilakukan dengan cara mempublikasikan ke global UDDI directory atau private UDDI directory
XML-RPC Adalah mekanisme pengiriman method / function dalam format XML melalui HTTP dalam jaringan Internet Client menentukan prosedur dan parameter yang diinginkan ke dalam XML request, sedangkan server akan meresponse entah itu fault atau benar dalam XML response Dikembangkan tahun 1998 oleh UserLand Software (http://www.xmlrpc.com)
SOAP Simple Object Access Protocol SOAP merupakan protokol komunikasi berbasis XML yang memperbolehkan aplikasi saling bertukar informasi melalui HTTP SOAP juga merupakan protokol untuk mengakses web service SOAP merupakan format untuk mengirimkan message antar Internet, bersifat platform independent, language independent, dan merupakan standar W3C
SOAP Elemen-elemen XML dalam SOAP: Elemen wajib: Envelope yang mengidentifikasi XML dokumen sebagai SOAP message Opsional elemen: Header yang berisi informasi header Elemen wajib: Body yang berisi informasi call dan response Elemen opsional: Fault yang berisi informasi error yang terjadi
SOAP SOAP Envelope menggunakan namespace http://www.w3.org/2001/12/soap-envelope Default namespace untuk SOAP encoding dan data types adalah http://www.w3.org/2001/12/soap-encoding
SOAP SOAP’s Syntax Rules: SOAP harus dibuat dengan menggunakan sintaks XML SOAP harus menggunakan SOAP Envelope namespace SOAP harus menggunakan SOAP Encoding namespace SOAP tidak boleh mengandung DTD SOAP tidak boleh mengadung XML Processing Instruction
DEMO Demo simple Web Services (C#) Demo koneksi Web Services dan Database (C# & SQL Server)