Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Layanan web ASP.NET berbasis sabun (ASMX)
Ketika Anda memodernisasi layanan web ASP.NET lama (ASMX) ke REST API AWS, itu mungkin memiliki konsumen yang bergantung yang tidak dapat, dan kemungkinan besar tidak boleh karena risiko terkait, ditingkatkan pada saat yang sama. Ilustrasi berikut menggambarkan layanan web ASMX yang memiliki tiga konsumen dependen.
Karena konsumen ini memanggil layanan ASMX dengan menggunakan protokol SOAP, mengganti layanan ASMX dengan REST API akan menyebabkan konsumen ini rusak. Selain itu, refactoring layanan ASMX ke REST API saat Anda mengonversi sistem dari arsitektur monolitik ke layanan mikro kemungkinan besar akan melibatkan renovasi perilaku sistem dan model domain. Ini kemungkinan akan menciptakan perubahan tambahan bagi konsumen.
Untuk mempertahankan kompatibilitas mundur dengan layanan lama sehingga sistem dapat dimodernisasi secara bertahap, Anda dapat menerapkan panduan pendekatan ara pencekik. Dalam pendekatan strangler fig, risiko yang terkait dengan modernisasi sistem warisan penting, sebagian, dikelola dengan secara bertahap mengganti sistem warisan dengan yang baru.
Cabang demi abstraksi adalah pendekatan lain yang diperkenalkan oleh Martin Fowler yang merupakan teknik yang efektif untuk menerapkan pola ara pencekik. Seperti halnya pendekatan ara pencekik, cabang demi abstraksi membantu para insinyur membuat perubahan bertahap dan bertahap pada sistem ketika fungsionalitas utama harus diganti atau dimodernisasi. Dalam pendekatan ini, lapisan abstraksi diperkenalkan antara kode yang mengimplementasikan fungsionalitas tertentu dan kode yang menggunakan fungsionalitas itu (yaitu, kode klien). Lapisan abstraksi ini tidak harus berupa tipe abstrak yang dapat diwarisi oleh kelas konkret. Sebaliknya, itu bisa berupa implementasi apa pun yang menangkap kontrak fungsional antara konsumen dan penyedia.
Dalam kasus layanan web ASP.NET berbasis SOAP lama, Anda dapat mengaktifkan migrasi bertahap konsumen layanan dari lama ke yang baru dengan mempertahankan kompatibilitas, melalui pendekatan yang terinspirasi oleh cabang oleh teknik abstraksi. Namun, pendekatan untuk layanan web ASP.NET berbasis SOAP menggunakan delegasi alih-alih warisan. Kompatibilitas dengan konsumen ASMX dicapai dengan refactoring layanan ASMX lama untuk mendelegasikan implementasinya ke REST API yang baru. Ilustrasi berikut menggambarkan layanan ASMX lama yang mendelegasikan implementasinya ke REST API baru. Delegasi ini memungkinkan konsumen layanan 3 untuk meningkatkan ke REST API baru sementara konsumen layanan 1 dan 2 ditingkatkan secara independen.
Sifat refactoring layanan ASMX tergantung pada persyaratan fungsional dan non-fungsional (lintas fungsional) dari layanan tersebut. Dalam beberapa kasus, refactoring mungkin melibatkan penerjemahan dari yang lama ke mekanisme otentikasi dan otorisasi baru, mengubah payload ASMX layanan dari XHTML ke JSON, dan kemudian menjalankan REST API dengan payload yang diubah. Dalam skenario yang lebih kompleks, layanan ASMX yang difaktorkan ulang mungkin harus mengatur panggilan ke beberapa REST dan mempertahankan status. APIs
Proses migrasi konsumen layanan dari layanan ASMX lama ke REST API yang dimodernisasi berlanjut secara bertahap hingga semua konsumen layanan diperbarui untuk merujuk API baru. Ilustrasi berikut menggambarkan keadaan yang sepenuhnya dimodernisasi, di mana semua konsumen layanan mereferensikan REST API, dan layanan ASMX telah dinonaktifkan karena tidak lagi diperlukan.
Contoh arsitektur
Arsitektur end-state untuk layanan ASMX berbasis SOAP menunjukkan semua konsumen layanan menggunakan REST API modern, yang mengarah pada penonaktifan layanan web ASMX lama. Namun, fokus dari pola ini bukanlah arsitektur end-state, tetapi arsitektur interim-state yang diperlukan selama migrasi, sementara konsumen sedang ditingkatkan. Keadaan sementara ini diilustrasikan dalam diagram berikut. Dalam arsitektur sementara ini, konsumen layanan 1 dan 2 masih menggunakan layanan ASMX lama, yang telah difaktorkan ulang untuk mendelegasikan implementasinya ke REST API yang dimodernisasi. Layanan Windows refactored digunakan sebagai wadah Windows di Amazon ECS, dikonfigurasi di tiga Availability Zone untuk ketersediaan tinggi, dan diakses melalui Application Load Balancer. Konsumen layanan 3 telah diperbarui untuk menggunakan REST API baru secara langsung melalui API Gateway.