Archive
Head First SOA (Service Oriented Architecture)
Belakangan ini di kalangan teman2 saya lagi getol2nya belajar SOA. Ada yg belajar SOA karena ingin diterima di perusahaan yang baru. Ada juga yang ingin belajar SOA hanya karena tertarik atau penasaran. Ada juga yang karena menanggap bahwa SOA itu bakalan menjadi investasi yang menguntungkan di masa depan.
Jika ada yang bertanya resource belajar SOA yang bagus itu apa kepada saya… Maka jawaban saya akan selalu sama.. Mw belajar SOA yang bagaimana… SOA yang versi Java yg identik web service dan vendor coupled? Atau SOA yang benar2 SOA. Karena kebanyakan orang menganggap bahwa SOA itu identik dengan web service. Dan ada sebagian yg menganggap itu harus butuh application server dan segala spesifikasi web service yang rumit dan container.
Read more…
Bye-Bye Assembler
Assembler pattern merupakan satu ciri khas dari aplikasi yg menggunakan Remote Facade. Fungsinya adalah mengconvert data yg ada dari domain object ke DTO (data transfer object) agar bisa ditransfer melalui network.
Setelah mendengar pencerahan2 dari milis DDD dengan pentolan2 nya Greg Young dan Udi Dahan mengenai topik CQRS. Assembler sebenarnya merupakan hal yg tidak perlu dilakukan. Assembler juga menyebabkan aplikasi menjadi lambat karena seringkali kita harus melakukan looping, convert dsb.
Read more…
Service Autonomy 2
Autonomous = Otonomi = Mampu berdiri sendiri.
Autonomous service brarti service yg mandiri. Yg ingin dicapai sebenarnya dari prinsip tersebut adalah loosely couple. Misalkan service A membutuhkan service B maka meskipun Service B tidak tersedia Service A tetap dapat menjalankan fungsinya sesuai dengan service agreementnya. Sesuai dengan janjinya
Jadi caranya adalah menghilangkan request response collaboration pada level service. Jadi jika kita memiliki 2 software entities dimana kita harus melakukan request response brarti keduanya berada pada satu service. Tetapi harus digaris bawahi kata harus. Semua emang bisa dilakukan dengan Req/Resp tetapi ada bagian2 yg sebenarnya tidak.
Component Orientation dan Object Orientation membagi solusi menjadi bagian2. Jadi kita harus menemukan boundary yg tepat. Sehingga bagian2 yg sebenarnya dapat terpisah tidak couple. Read more…
REST == Architecture Style
Nah dengan demikian kita membuat implementasi detail tidak kelihatan. Nah jadi dimana code yg menangani URL trsebut di server ?? Bagaimana caranya ?? Nah klo misalnya udh familiar dengan web development. Maka kita biasa membuat URL seperti ini
http://www.acme.com/phonebook/UserDetails?id=12345
Nah kita dapat melakukan URL Rewriting sehingga lebih menceriminkan resource dan lebih clean
http://www.acme.com/phonebook/UserDetails/12345
Membuat Architecture
Software Architecture merupakan hasil dari ide yg dikumpulkan bersama2 dari pilihan design yang dibuat oleh tim untuk versi awal dari sistem. awalnya bisa berupa skecth di papan, kertas dll. Mungkin saja nanti pada akhirnya system yg sudah selesai bakalan berbeda dengan skecthnya. Yah .. namanya juga skecth.. Karena system tersebut pasti selalu harus diupdate.
Pada awalnya ketika arsitektur masih muda. sudah lengkap tapi masih belum dewasa. jadi masih belum bisa menghadapi tantangan2 yg keras. Tapi seiring dengan waktu maka arsitktur akan semakin kuat dan solid. tim juga akan semakin percaya diri karena sudah mengerti dan mulai expert di system tersebut. Jadi tw kelebihan dan dapat mengatasi keterbatasan2 arsitektur tersebut. Feedback dari arsitktur yg mature biasanya diperoleh ketika sistem tersebut dipasarkan. Read more…