Apa itu Layanan Web? Architekstur, Jenis, Contoh
Apa itu Layanan Web?
layanan web adalah media standar untuk menyebarkan komunikasi antara aplikasi klien dan server di WWW (World Wide Web). Layanan web adalah modul perangkat lunak yang dirancang untuk melakukan serangkaian tugas tertentu.
- Layanan web dalam komputasi awan dapat dicari melalui jaringan dan juga dapat dipanggil.
- Saat dipanggil, layanan web akan dapat menyediakan fungsionalitas kepada klien, yang memanggil layanan web tersebut.
Bagaimana Layanan Web Bekerja?
Diagram di atas menunjukkan pandangan yang sangat sederhana tentang bagaimana layanan web sebenarnya bekerja. Klien akan memanggil serangkaian panggilan layanan web melalui permintaan ke server yang akan menjadi tuan rumah layanan web sebenarnya.
Permintaan ini dibuat melalui apa yang dikenal sebagai panggilan prosedur jarak jauh. Panggilan Prosedur Jarak Jauh (RPC) adalah panggilan yang dilakukan ke metode yang dihosting oleh layanan web yang relevan.
Sebagai contoh, Amazon menyediakan layanan web yang menyediakan harga untuk produk yang dijual secara online melalui amazon.com. Lapisan front end atau presentasi dapat berupa .Net atau Java tetapi bahasa pemrograman mana pun akan memiliki kemampuan untuk berkomunikasi dengan layanan web.
Komponen utama dari desain layanan web adalah data yang ditransfer antara klien dan server, yaitu XML. XML (Bahasa markup yang dapat diperluas) adalah padanan dari HTML dan bahasa perantara yang mudah dipahami yang dipahami oleh banyak bahasa pemrograman.
Jadi ketika aplikasi berbicara satu sama lain, mereka sebenarnya berbicara dalam XML. Ini menyediakan platform umum bagi aplikasi yang dikembangkan dalam berbagai bahasa pemrograman untuk berkomunikasi satu sama lain.
Layanan web menggunakan sesuatu yang dikenal sebagai SOAP (Simple Object Access Protocol) untuk mengirimkan data XML antar aplikasi. Data dikirim melalui HTTP normal. Data yang dikirim dari layanan web ke aplikasi disebut pesan SOAP. Pesan SOAP tidak lain adalah dokumen XML. Karena dokumen ditulis dalam XML, aplikasi klien yang memanggil layanan web dapat ditulis dalam bahasa pemrograman apa pun.
Mengapa Anda memerlukan Layanan Web?
Aplikasi bisnis modern menggunakan berbagai platform pemrograman untuk mengembangkan aplikasi berbasis web. Beberapa aplikasi mungkin dikembangkan di Java, yang lain di .Net, sementara yang lain di Angular JS, Node.js, dll.
Sering kali, aplikasi heterogen ini memerlukan semacam komunikasi agar dapat terjadi di antara mereka. Karena aplikasi-aplikasi ini dibangun menggunakan bahasa pengembangan yang berbeda, menjadi sangat sulit untuk memastikan komunikasi yang akurat antara aplikasi.
Di sinilah layanan web berperan. Layanan web menyediakan platform umum yang memungkinkan banyak aplikasi dibangun di berbagai aplikasi bahasa pemrograman untuk mempunyai kemampuan berkomunikasi satu sama lain.
Jenis Layanan Web
Pada dasarnya ada dua jenis layanan web.
- Layanan web SABUN.
- Layanan web tenang.
Agar layanan web dapat berfungsi penuh, ada komponen-komponen tertentu yang perlu ada. Komponen-komponen ini harus ada terlepas dari bahasa pengembangan apa pun yang digunakan untuk pemrograman layanan web.
Mari kita lihat komponen-komponen ini lebih detail.
SOAP (Protokol Akses Objek Sederhana)
SOAP dikenal sebagai protokol pengiriman pesan yang tidak bergantung pada transportasi. SOAP didasarkan pada transfer data XML sebagai Pesan SOAP. Setiap pesan memiliki sesuatu yang dikenal sebagai dokumen XML. Hanya struktur dokumen XML yang mengikuti pola tertentu, tetapi tidak mengikuti konten. Bagian terbaik dari layanan Web dan SOAP adalah semuanya dikirim melalui HTTP, yang merupakan protokol web standar.
Berikut isi pesan SOAP
- Setiap dokumen SOAP harus memiliki elemen root yang dikenal sebagai elemen. Elemen root adalah elemen pertama dalam dokumen XML.
- “Amplop” tersebut kemudian dibagi menjadi 2 bagian. Yang pertama adalah header, dan yang berikutnya adalah body.
- Header berisi data perutean yang pada dasarnya adalah informasi yang memberitahukan dokumen XML ke klien mana dokumen tersebut perlu dikirim.
- Badan akan berisi pesan sebenarnya.
Diagram di bawah menunjukkan contoh sederhana komunikasi melalui SOAP.
Kami akan membahas SOAP secara detail di sini tutorial.
WSDL (bahasa deskripsi layanan web)
Layanan web tidak dapat digunakan jika tidak dapat ditemukan. Klien yang memanggil layanan web harus mengetahui di mana layanan web sebenarnya berada.
Kedua, aplikasi klien perlu mengetahui apa yang sebenarnya dilakukan oleh layanan web, sehingga dapat memanggil layanan web yang tepat. Hal ini dilakukan dengan bantuan WSDL, yang dikenal sebagai bahasa deskripsi layanan Web. File WSDL juga merupakan file berbasis XML yang pada dasarnya memberitahu aplikasi klien apa yang dilakukan layanan web. Dengan menggunakan dokumen WSDL, aplikasi klien akan dapat memahami di mana lokasi layanan web dan bagaimana pemanfaatannya.
Contoh Layanan Web
Contoh layanan Web dari file WSDL diberikan di bawah ini.
<definitions> <message name="TutorialRequest"> <part name="TutorialID" type="xsd:string"/> </message> <message name="TutorialResponse"> <part name="TutorialName" type="xsd:string"/> </message> <portType name="Tutorial_PortType"> <operation name="Tutorial"> <input message="tns:TutorialRequest"/> <output message="tns:TutorialResponse"/> </operation> </portType> <binding name="Tutorial_Binding" type="tns:Tutorial_PortType"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="Tutorial"> <soap:operation soapAction="Tutorial"/> <input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </input> <output> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:examples:Tutorialservice" use="encoded"/> </output> </operation> </binding> </definitions>
Aspek penting yang perlu diperhatikan tentang contoh deklarasi layanan web WSDL di atas adalah sebagai berikut:
- – Parameter pesan dalam definisi WSDL digunakan untuk menentukan elemen data yang berbeda untuk setiap operasi yang dilakukan oleh layanan web. Jadi dalam contoh layanan web di atas, kita memiliki 2 pesan yang dapat dipertukarkan antara layanan web dan aplikasi klien, satu adalah “TutorialRequest”, dan yang lainnya adalah operasi “TutorialResponse”. TutorialRequest berisi elemen yang disebut “TutorialID” yang bertipe string. Demikian pula, operasi TutorialResponse berisi elemen yang disebut “TutorialName” yang juga bertipe string.
- – Ini sebenarnya menggambarkan operasi yang dapat dilakukan oleh layanan web, yang dalam kasus kita disebut Tutorial. Operasi ini dapat mengambil 2 pesan; satu adalah pesan masukan, dan yang lainnya adalah pesan keluaran.
- – Elemen ini berisi protokol yang digunakan. Jadi dalam kasus kami, kami mendefinisikannya untuk menggunakan http (http://schemas.xmlsoap.org/soap/http). Kami juga menentukan detail lain untuk isi operasi, seperti namespace dan apakah pesan harus dikodekan.
Kami akan membahas “WDSL” secara rinci di sini tutorial.
Universal Description, Penemuan, dan Integrasi (UDDI)
UDDI adalah standar untuk mendeskripsikan, menerbitkan, dan menemukan layanan web yang disediakan oleh penyedia layanan tertentu. Ini memberikan spesifikasi yang membantu dalam menampung informasi pada layanan web.
Sekarang kita telah membahas topik sebelumnya tentang WSDL dan bagaimana WSDL memuat informasi tentang apa yang sebenarnya dilakukan layanan Web. Namun bagaimana aplikasi klien dapat menemukan file WSDL untuk memahami berbagai operasi yang ditawarkan oleh layanan web? Jadi UDDI adalah jawabannya dan menyediakan repositori tempat file WSDL dapat dihosting. Jadi aplikasi klien akan memiliki akses penuh ke UDDI, yang bertindak sebagai database yang berisi semua file WSDL.
Sama seperti direktori telepon yang memiliki nama, alamat, dan nomor telepon orang tertentu, registri UDDI juga akan memiliki informasi yang relevan untuk layanan web.. Agar aplikasi klien mengetahui, di mana dapat ditemukan.
Keuntungan Layanan Web
Kita sudah memahami mengapa layanan web muncul, yaitu untuk menyediakan platform yang memungkinkan aplikasi berbeda untuk berkomunikasi satu sama lain.
Namun mari kita lihat daftar keuntungan layanan web mengapa penting menggunakan layanan web.
- Mengekspos Fungsi Bisnis di jaringan – Layanan web adalah unit kode terkelola yang menyediakan semacam fungsionalitas untuk aplikasi klien atau pengguna akhir. Fungsionalitas ini dapat dijalankan melalui protokol HTTP yang artinya juga dapat dijalankan melalui internet. Saat ini semua aplikasi ada di internet yang menjadikan tujuan layanan Web lebih bermanfaat. Artinya, layanan web dapat berada di mana saja di internet dan menyediakan fungsionalitas yang diperlukan sesuai kebutuhan.
- Interoperabilitas antar aplikasi – Layanan web memungkinkan berbagai aplikasi untuk berbicara satu sama lain dan berbagi data dan layanan di antara mereka sendiri. Semua jenis aplikasi dapat berbicara satu sama lain. Jadi, alih-alih menulis kode spesifik yang hanya dapat dipahami oleh aplikasi tertentu, kini Anda dapat menulis kode generik yang dapat dipahami oleh semua aplikasi.
- Protokol Standar yang dipahami semua orang – Layanan web menggunakan protokol industri standar untuk komunikasi. Keempat lapisan (Transportasi Layanan, Pesan XML, Layanan Description, dan lapisan Service Discovery) menggunakan protokol yang terdefinisi dengan baik di tumpukan protokol layanan web.
- Pengurangan biaya komunikasi – Layanan web menggunakan SOAP melalui protokol HTTP, sehingga Anda dapat menggunakan internet berbiaya rendah yang ada untuk mengimplementasikan layanan web.
Layanan Web Architekstur
Setiap kerangka kerja memerlukan beberapa jenis arsitektur untuk memastikan keseluruhan kerangka kerja berfungsi sebagaimana mestinya, sama halnya dengan layanan web. Layanan Web Architekstur terdiri dari tiga peran berbeda seperti yang diberikan di bawah ini:
- Penyedia – Penyedia membuat layanan web dan membuatnya tersedia untuk aplikasi klien yang ingin menggunakannya.
- Pemohon – Pemohon tidak lain adalah aplikasi klien yang perlu menghubungi layanan web. Aplikasi klien dapat berupa .Net, Java, atau aplikasi berbasis bahasa lainnya yang mencari semacam fungsi melalui layanan web.
- Pialang – Broker tidak lain adalah aplikasi yang menyediakan akses ke UDDI. UDDI, seperti yang dibahas dalam topik sebelumnya memungkinkan aplikasi klien menemukan layanan web.
Diagram di bawah ini menunjukkan bagaimana Penyedia Layanan, Pemohon Layanan, dan Registri Layanan berinteraksi satu sama lain.
- Menerbitkan – Penyedia memberi tahu broker (registrasi layanan) tentang keberadaan layanan web dengan menggunakan antarmuka publikasi broker agar layanan dapat diakses oleh klien
- Menemukan – Pemohon berkonsultasi dengan broker untuk menemukan layanan web yang dipublikasikan
- Mengikat – Dengan informasi yang diperoleh dari broker (registrasi layanan) tentang layanan web, pemohon dapat mengikat, atau memanggil, layanan web.
Karakteristik layanan web
Layanan web memiliki karakteristik perilaku khusus berikut:
- Mereka Berbasis XML – Layanan Web menggunakan XML untuk merepresentasikan data pada lapisan representasi dan transportasi data. Penggunaan XML menghilangkan ketergantungan jaringan, sistem operasi, atau platform apa pun karena XML adalah bahasa umum yang dipahami oleh semua orang.
- Hubungan renggang – Loosely coupled berarti klien dan layanan web tidak terikat satu sama lain, yang berarti bahwa meskipun layanan web berubah seiring waktu, hal itu tidak akan mengubah cara klien memanggil layanan web. Mengadopsi arsitektur loosely coupled cenderung membuat sistem perangkat lunak lebih mudah dikelola dan memungkinkan integrasi yang lebih sederhana antara sistem yang berbeda.
- Syncfungsi kronik atau asinkron - Synckronisitas mengacu pada pengikatan klien ke pelaksanaan layanan. Dalam operasi sinkron, klien akan benar-benar menunggu layanan web menyelesaikan operasi. Contohnya mungkin adalah skenario saat operasi baca dan tulis basis data sedang dilakukan. Jika data dibaca dari satu basis data dan kemudian ditulis ke basis data lain, maka operasi harus dilakukan secara berurutan. Operasi asinkron memungkinkan klien untuk memanggil layanan dan kemudian menjalankan fungsi lain secara paralel. Ini adalah salah satu teknik umum dan mungkin yang paling disukai untuk memastikan bahwa layanan lain tidak dihentikan saat operasi tertentu sedang dilakukan.
- Kemampuan untuk mendukung Panggilan Prosedur Jarak Jauh (RPC) – Layanan web memungkinkan klien untuk menjalankan prosedur, fungsi, dan metode pada objek jarak jauh menggunakan protokol berbasis XML. Prosedur jarak jauh memaparkan parameter input dan output yang harus didukung oleh layanan web.
- Mendukung Pertukaran Dokumen – Salah satu manfaat utama XML adalah cara generiknya dalam merepresentasikan tidak hanya data tetapi juga dokumen yang kompleks. Dokumen-dokumen ini dapat sesederhana merepresentasikan alamat saat ini, atau dapat serumit merepresentasikan keseluruhan buku.