Archive
Layered /Tiers architecture ke SOA
Bagaimana bisa kita mengubah aplikasi yg lama agar lebih siap dipindahkan ke SOA.
Membuat service layer yg mengantarai Presentation Layer dan Bussines Layer. Service layer tersebut mengexpose method yg hanya akan menerima business entity. Business entites tersebut yg dulunya terdapat di business layer. Keluarkan dari Business Layer. Dan dipisahkan. Sehingga dapat digunakan langsung oleh Presentation layer. Jadi ui berinteraksi dengan service layer dengan menggunakan Business Entites. Business entites ini hanya mengandung data saja. Berupa DTO.
Read more…
Service Autonomy
Salah satu prinsip dari Service Orientation adalah Autonomy. Dapat berdiri sendiri. Peranan publisher subscriber ini mutlak diperlukan untuk mencapai autonomy.
Untuk para pemula di SOA biasanya langkah pertama adalah membuat semua operasi menjadi web service. Yg sama aja hasiilnya dengan RPC. Interaksi antar service terjadi secara synchronous, blocking, request/response. Masalhnya klo misalnya salah satu service tidak ada, service lain yg tergantung terhadapnya tidak akan dapat melakukan pekerjaannya.
Read more…
Asynchronous World
Dengan asynchronous ini kita ga perlu nunggu satu process diselesaikan dulu baru bisa ngerjain yg lain. Tinggal fire and forget aja. Jadi kita kirim pesan dan kita ga ush nunggu2 sampe prosesnya selesai dulu. Jadi prinsipnya udh sama seperti ngirim surat.
Kita misalkan kita mw ngirim surat lamaran kita ke suatu perusahaan dengan cara yg conventional. Kita kirim dari kantor pos. Ntar kantor pos yg ngirimkan ketempat tujuan tersebut. Kita ga ush nungguin terus di kantor pos sampe surat tu nyampe ditujuan. Kita bisa langsung pulang dan ngerjain urusan kita yg lain. Nah ketika surat tersebut sampai di perusahaan yg dituju, terserah perusahaan tersebut mw diproses atau tidak. Kita hanya tinggal menunggu. Klo misalnya perusahaan nya berminat ntar dia hubungin kita. Klo misalnya kita ga dipanggil2 maka kita bisa menyimpulkan bahwa lamaran tersebut gagal total.
Read more…
SOA vs OO
Kenapa butuh SOA SOA lebih ke integrasi antara aplikasi (Top Down) OO lebih kea rah mendesign satu aplikasi. (Bottom up) Jadi keduanya memecahkan permasalahan yg berbeda dan tidak saling menggantikan.
OO memandang system dalam group bentuk class, component, packages, interfaces. Interaksi antarnya adalah invoking method dari object. Kita tidak langsung mengakses datanya. Jadi lebih cocok ditujukan untuk design satu aplikasi, in process bukan interprocess (distributed) berjalan dalam satu mesin
Read more…
SOA dan EDA
SOA : Service Oriented Architecture
EDA : Event Driven Architecture
Pilihan design yg terdapat di SOA bisa banyak. Bahkan ketika kita sudah selesai mendefinisikan service. Contohnya pada kasus order to cash process. Proses2nya adalah register an order. Nah order memiliki hubungan dengan stock. Plihan design yg mungkin adalah
1. Aplikasi mengirimkan pesan ke registerOrder pada Order service
2. Aplikasi mengirimkan pesan yg lain ke reserveStock ke Inventory Service.
1. Aplikasi mengirimkan pesan ke registerOrder pada Order service
2. Order service mengirimkan pesan ke reserveStock pada Inventory Service
1. Aplikasi mengirimkan pesan ke registerOder pada Order Service
2. Order Service mempublish orderReceived event
3. Inventory Service subscribe ke orderReceived event
Read more…