Metodologi Pengembangan Layanan Web – Pengembangan Aplikasi Seluler, Layanan Web, Arsitektur SOA - Teknologi
Lewati ke konten

Metodologi untuk Pengembangan Layanan Web – Pengembangan Aplikasi Seluler, Layanan Web, Arsitektur SOA

Iklan

Coulouris mendefinisikan sistem terdistribusi sebagai "sistem di mana komponen perangkat keras dan/atau perangkat lunak yang ada dalam jaringan komputer berkomunikasi dan mengkoordinasikan tindakan mereka dengan bertukar pesan".

Konsep ini menjadi populer dalam beberapa tahun terakhir karena beberapa faktor. Faktor pertama yang mempromosikan pengembangan sistem terdistribusi adalah munculnya jaringan area lokal berkecepatan tinggi. Faktor penting lainnya adalah kemajuan teknologi dalam kinerja komputer pribadi dan pengembangan perangkat lunak untuk mendukung aplikasi terdistribusi. Sistem terdistribusi terkait dengan konsep Web dan Internet. Dengan evolusi Web, dan munculnya area, interaksi, kebutuhan, dan aplikasi baru, konsep Web 2.0 muncul. Istilah ini diciptakan oleh Tim O'Reilly pada tahun 2004 untuk merujuk pada generasi kedua dalam sejarah Web berdasarkan komunitas pengguna dan rangkaian layanan khusus, seperti jejaring sosial, blog, wiki, atau folkonomi, yang mendorong kolaborasi dan kerja cepat. pertukaran informasi antar pengguna.

Arsitektur pertama yang dapat dianggap berorientasi layanan (SOA) didasarkan pada CORBA (Common Object Request Broker Architecture), yang bertindak sebagai lapisan abstraksi untuk menghubungkan berbagai elemen arsitektur dan membangun layanan. Teknologi sebelumnya lainnya adalah DCOM (Distributed Component Object Model) atau RPC (Remote Procedure Protocol). Dengan kebutuhan untuk merancang dan mengimplementasikan sistem terdistribusi secara efisien di Web, beberapa tantangan muncul, beberapa fokus pada pengembangan itu sendiri (kinerja, pengalaman pengguna, dll.) dan pelengkap lainnya, berdasarkan usabilitas dan kompatibilitas layanan. Dari kebutuhan ini muncul Layanan Web, yang menyediakan mekanisme standar untuk menghubungkan pengguna yang berbeda dengan server informasi.

ARSITEKTUR BERORIENTASI PELAYANAN

Menurut SOA (Arsitektur Berorientasi Layanan) adalah arsitektur perangkat lunak yang menentukan penggunaan layanan untuk mendukung persyaratan bisnis, yang tujuannya adalah untuk mencapai penggabungan yang paling tidak mungkin antara agen perangkat lunak. Layanan adalah unit kerja yang dilakukan oleh penyedia layanan untuk mencapai hasil akhir yang diinginkan oleh konsumen layanan. Penyedia layanan dan konsumen layanan adalah peran yang dimainkan oleh agen perangkat lunak, bukan pemilik perangkat lunak. Secara umum, arsitektur berorientasi layanan adalah solusi perangkat lunak yang dimaksudkan untuk memungkinkan perusahaan mengatur dan memanfaatkan berbagai proses. Dengan SOA, aplikasi perangkat lunak bukan lagi blok besar fungsi dan proses. Sebaliknya, aplikasi ini terdiri dari layanan modular rakitan. Ingatlah bahwa layanan adalah fungsi perangkat lunak sederhana (seperti membatalkan CD). Itu dapat dijalankan sesuai permintaan oleh sistem apa pun, terlepas dari sistem operasi, platform, bahasa pemrograman, atau lokasi geografis.

Apa yang revolusioner tentang SOA bukanlah konsep itu sendiri, yang telah ada sejak lama, tetapi fakta bahwa SOA dapat diimplementasikan melalui WWW (World Wide Web). Dengan cara yang sama halaman web dimuat pada platform apa pun, layanan web bekerja dengan cara yang sama terlepas dari platform yang digunakan
standar universal.

FotoIde SOA berasal langsung dari pemrograman berorientasi objek, yang menyarankan hubungan antara data dan pemrosesannya. Dengan demikian, mereka secara formal mendefinisikan layanan melalui antarmuka yang tidak bergantung pada platform dan bahasa pemrograman yang mendasarinya. Antarmuka ini menyembunyikan kekhasan penerapannya, yang membuatnya tidak bergantung pada pengembang dan bahasa pemrograman. Melalui arsitektur ini, dimungkinkan untuk merancang dan mengimplementasikan sistem yang sangat dapat diskalakan yang mencerminkan logika bisnis dan pada saat yang sama memfasilitasi interaksi antara sistem milik atau pihak ketiga yang berbeda. Alasan kami ingin orang lain melakukan pekerjaan untuk kami adalah karena mereka ahli. Menggunakan layanan biasanya lebih murah dan lebih efektif daripada melakukannya sendiri. Jadi kebanyakan dari kita mengerti bahwa kita tidak bisa menjadi ahli dalam segala hal. Aturan yang sama dapat diterapkan untuk membangun sistem perangkat lunak.

Antarmuka sangat penting, jika tidak didefinisikan dengan baik atau tidak berfungsi, sistem tidak berfungsi. Mengintegrasikan lebih banyak antarmuka itu mahal dan juga meningkatkan potensi kesalahan dalam aplikasi terdistribusi. Antarmuka jarak jauh adalah bagian paling lambat dari sebagian besar aplikasi terdistribusi. Dengan semua ini, alih-alih membuat antarmuka baru untuk setiap aplikasi, lebih masuk akal untuk menggunakan kembali antarmuka generik untuk semua aplikasi.

Jadi, karena kita hanya memiliki sedikit antarmuka umum yang tersedia, kita harus menyertakan semantik khusus aplikasi dalam pesan. Kami dapat mengirim pesan apa pun melalui antarmuka kami, tetapi ada beberapa aturan yang harus diikuti untuk mengatakan bahwa arsitektur berorientasi pada layanan.

– Pertama, pesan harus bersifat deskriptif, bukan instruktif, karena penyedia layanan bertanggung jawab untuk menyelesaikan masalah. Misalnya, situasinya mirip dengan pergi ke restoran dan memberi tahu pramusaji apa yang ingin Anda minum dan preferensi Anda, tetapi kami tidak boleh menjelaskan kepada juru masak cara menyiapkan hidangan Anda, langkah demi langkah.

‐ Kedua, penyedia layanan tidak akan dapat memahami permintaan Anda jika pesan mereka tidak ditulis dalam format, struktur, dan kosa kata yang dapat dipahami oleh semua yang terlibat. Dengan demikian, pembatasan kosa kata dan struktur pesan adalah a
diperlukan untuk komunikasi yang efektif. Semakin sempit pesannya, semakin mudah dipahami.

- Ketiga, kemungkinan perpanjangan sangat penting. Dunia adalah tempat yang selalu berubah, demikian juga lingkungan tempat perangkat lunak hidup. Perubahan ini memerlukan perubahan yang sesuai dalam perangkat lunak sistem, konsumen layanan, penyedia, dan pesan yang mereka tukarkan. Jika pesan tidak dapat diperluas, konsumen dan penyedia dikunci ke versi layanan tertentu. Kendala dan ekstensibilitas sangat terkait, Anda membutuhkan keduanya, dan meningkatkan satu berarti mengurangi yang lain. Yang ideal adalah mencapai keseimbangan yang benar.

– Keempat, SOA harus memiliki mekanisme yang memungkinkan konsumen menemukan penyedia layanan dalam konteks layanan yang dicari oleh konsumen. Mekanismenya harus fleksibel dan bukan registri terpusat.

- Kelima, Layanan tanpa negara: Setiap pesan yang dikirim konsumen ke penyedia harus berisi semua informasi yang diperlukan penyedia untuk memprosesnya. Pembatasan ini membuat penyedia layanan lebih terukur, karena penyedia tidak perlu menyimpan informasi status di antara permintaan. Ini bisa disebut "layanan produksi massal" karena setiap permintaan dapat ditangani secara umum. Pembatasan ini juga memberikan lebih banyak visibilitas, karena setiap perangkat lunak pemantauan dapat secara mandiri memeriksa permintaan dan mengekstrak maksudnya. Hal ini juga memungkinkan pemulihan yang mudah dari kegagalan sebagian karena tidak ada status perantara, membuat layanan lebih andal.

- Keenam, permintaan idempoten (tidak membuat perubahan): permintaan duplikat yang diterima oleh agen perangkat lunak memiliki efek yang sama dengan permintaan tunggal. Persyaratan ini memungkinkan penyedia dan konsumen untuk meningkatkan keandalan keseluruhan layanan, cukup ulangi permintaan jika ada kegagalan.

Jadi kita dapat mengatakan bahwa SOA bukanlah alat, tetapi seperangkat standar untuk membangun aplikasi baru, lebih dinamis dan tidak terlalu bergantung. SOA memfasilitasi akses ke logika bisnis dan informasi di berbagai layanan secara sistematis, dan juga dapat mengatur beberapa layanan jarak jauh untuk menyusun satu layanan tunggal. kebanyakan definisi mengidentifikasi penggunaan Layanan Web, yang akan kita lihat di bab selanjutnya, dalam penerapan arsitektur berorientasi layanan. Namun, itu dapat diimplementasikan menggunakan teknologi berbasis layanan lainnya.