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
Ketika masalah meningkat dimana aplikasi tidak hanya ada di dalam satu proses.kita memiliki banyak proses dalam mesin yg berbeda atau sama. Nah OO mencoba mengatasi permasalahan tersebut dengan remoting. Invoke method pada proses yg berbeda.
Nah muncullah istilah tiers. Membagi aplikasi berdasarkan tiers. SOA membagi aplikasi berdasarkan services. Jadi yg dibagi bukan hanya unit of design object atau kelas. Tetapi juga unit of deployement. Jadi proses ditribusinya lebih baik.
Interaksi antar service berbeda dengan interaksi antar object. Interaksi antar object biasanya chatty dalam satu proses. Dan cepat karena terdapat dalam satu mesin. Nah jika itu dibawa dalam inter proses. Kita ga bisa mengarapkan hal yg sama. Karena ada pertimbangan network latency. Karena ada jarak yg memisahkan antar computer yg satu dengan yg lain. Yaitu network. Jadi permasalahaan tersebut kurang tepat jika dipecahkan dengan oo.
Services dalam SOA sesuatu yg lebih besar dari sekedar object. Service dapat terdiri dari beragam object dan memanage statenya di dalam memory atau database. Jadi di SOA distribusi tersebut merupakan concern yg paling penting.