Layanan web adalah standar yang ditetapkan untuk pertukaran data melalui Web. Hal ini tidak berarti bahwa layanan web akan terekspos ke Internet, hanya saja terdapat serangkaian "standar web" yang disepakati dan didukung oleh banyak produk. Saat memutuskan standar mana yang akan diadopsi, hal terpenting yang harus dipertimbangkan adalah saran dari staf teknis.
Mereka mungkin merekomendasikan kepada Anda standar yang paling mudah diterapkan, memiliki dukungan teknis terluas untuk produk, dan kemungkinan besar berfungsi dengan baik di lingkungan Anda. Agar implementasi SOA berhasil dan dapat bertahan dalam ujian waktu dan terus berkembang di masa depan, ketiga faktor ini sangat penting.
WS-I
Organisasi Interoperabilitas Layanan Web (WS-I) mengkhususkan diri dalam mengembangkan praktik terbaik untuk standar Web guna memastikan interoperabilitas di berbagai sistem operasi, platform, atau bahasa pemrograman. WS-I bertanggung jawab untuk menentukan dokumen praktik terbaik seperti keamanan layanan Web dan spesifikasi teknis pemrosesan layanan Web. Dokumentasi ini membantu pengembang dan bisnis menyesuaikan diri dengan praktik yang digunakan pihak lain untuk memastikan pengoperasian pengguna.
WS-I juga menerbitkan spesifikasi teknis, rangkaian pengujian, dan contoh tentang cara menerapkan protokol ini. Faktanya, WS-I adalah badan pengatur yang dibentuk oleh banyak organisasi seperti Microsoft dan IBM, dan misinya adalah untuk mempromosikan layanan Web yang dapat dioperasikan.
Perjanjian penggunaan
Layanan web mengandalkan protokol untuk memastikan bahwa komunikasi bermakna. Konten data yang dikirim antar layanan harus disepakati sebelumnya untuk memastikan kedua belah pihak mengetahui konten apa yang diterima. SOAP adalah contoh protokol yang paling banyak digunakan saat bertukar data. SOAP menggunakan bahasa pemrograman XML, memungkinkan kedua belah pihak untuk memecahkan kode apa yang dikirim dan memformat informasi yang dikirim bolak-balik.
menjelaskan
Kami akan segera membahas beberapa arsitektur dan juga merujuk pada beberapa protokol layanan web. Penting untuk tidak mengacaukan kedua hal ini. Jadi mari kita perkenalkan secara singkat di bawah ini.
Arsitektur perangkat lunak seperti REST dan RPC bukanlah protokol. Ini adalah metode yang menentukan bagaimana perjanjian akan dilaksanakan.
WSDL (Bahasa Deskripsi Layanan Web) adalah bahasa yang digunakan untuk mendeskripsikan layanan Web tertentu dalam cara yang diformat sehingga aplikasi dapat mengurai layanan tersebut. WSDL sendiri tidak menyediakan fungsionalitas apapun berupa interaksi layanan Web.
Protokol itu sendiri, seperti SOAP, XML-RPC atau DCOM, menentukan dengan tepat bagaimana pesan dikirimkan dan bagaimana suatu program memahami data yang diterimanya.
Ada dua jenis arsitektur utama dalam SOA: keluarga protokol RPC dan pendekatan Representational State Transfer (REST).
RPC
Metode panggilan prosedur jarak jauh (RPC) memungkinkan pemrogram memanggil sumber daya sistem jarak jauh seperti "memanggil" sumber daya lokal saat memprogram pada suatu sistem. Kerugian dari layanan bergaya RPC adalah orang cenderung menggunakannya seolah-olah mereka sudah familiar dengan bahasa pemrograman pada platform tertentu. Bahkan mudah untuk memanggil prosedur jarak jauh jika sama dengan prosedur lokal.
Logika ini melanggar konsep “kopling longgar”. Konsep kopling longgar sebenarnya berarti bahwa proses jarak jauh tidak boleh bergantung pada sistem operasi atau bahasa pemrograman tertentu.
SOAP adalah protokol penerus XML-RPC dan hanya merupakan panggilan prosedur jarak jauh yang berisi informasinya dalam XML. SOAP menggunakan protokol HTTP untuk mengirim data, yang bagus dan sederhana, namun memiliki beberapa kelemahan. Meskipun demikian, sebagian besar layanan web saat ini masih menggunakan protokol HTTP untuk komunikasi karena dibuat menggunakan protokol SOAP.
ISTIRAHAT
Pendekatan Representational State Transfer (REST) pada dasarnya berbeda dari panggilan prosedur jarak jauh karena ia bekerja pada tingkat yang berbeda. Panggilan REST terlihat seperti permintaan web lainnya melalui protokol HTTP, sedangkan panggilan RPC terlihat seperti panggilan fungsi standar. Fokus REST adalah beroperasi dengan sumber daya yang stabil dibandingkan dengan pesan individual, sehingga menghasilkan cara berinteraksi yang lebih standar dan dipahami secara luas, seperti protokol HTTP itu sendiri. REST menangani transfer potongan data sederhana, sementara RPC mentransfer proses yang kompleks.
Haruskah REST atau RPC digunakan?
Pertanyaan apakah akan menggunakan REST tentu saja merupakan pertanyaan yang bagus. Sepertinya ini adalah jalan masa depan. Namun, SOA Anda perlu diintegrasikan ke dalam setiap perangkat lunak yang Anda gunakan saat ini. Penerapan REST berjalan lambat, terutama karena dukungan layanan web. Meskipun sistem REST dapat menggunakan WSDL untuk mendeskripsikan pesan SOAP melalui HTTP, tidak ada cukup dukungan untuk benar-benar menggunakannya. Misalnya, Apache bahkan tidak mendukung metode yang diperlukan untuk menggunakan REST tanpa menginstal modul plug-in.
Ada standar lain yang bukan bagian dari keluarga layanan Web. Namun, seperti yang Anda duga, standar-standar ini tidak mendapat dukungan luas. Jini, WCF dan CORBA adalah beberapa contohnya. Ketika vendor menawarkan produk yang hanya mendukung salah satu teknologi di atas, Anda ingin melarikan diri, bukan pergi. Layanan web sekarang didukung secara luas. Penggunaan layanan Web hanya akan tumbuh. SOA sendiri dikatakan baru, tidak stabil dan berisiko. Namun, sebagian besar risiko ini dapat dikurangi ketika Anda memilih standar layanan Web yang sesuai dan memiliki dukungan teknis yang luas.
Akhirnya, tetap berpegang pada SOAP jadul pada beberapa jenis sistem bergaya RPC saat ini merupakan mekanisme yang layak untuk membangun SOA menggunakan layanan Web. Jika Anda melakukan ini, Anda secara signifikan mengurangi kemungkinan vendor lock-in.