Archive

Archive for the ‘SOA’ Category

Head First SOA (Service Oriented Architecture)

February 5, 2011 2 comments

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…

Categories: SOA, Software Architecture

SOA vs REST

March 6, 2009 1 comment

SOA berdasarkan kepada konsep MEST atau MESsage Transfer. Message mengandung statement of intent dan data yg berhubungan dengannya. Contohnya adalah ChangeCustomerAddressMessage (message tersebut sudh menunjukkan maksudnya) dan di dalam object tersebut terkandung data yg berhubungan dengan maksud tersebut.

REST berfokus terhadap Resource. Jadi jika kita ingin merubah alamat dari Customer maka kita harus tahu URI dari Customer tersebut dan menyertakan method PUT dan datanya.

PUT http://example.com/customer1

PUT adalah method dan http://example.com/customer1 adalah URI
Read more…

Service Autonomy 2

March 6, 2009 Leave a comment

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 design

March 6, 2009 Leave a comment

Jika kita ingin membuat aplikasi web kita menjadi scalable maka kita harus dapat mengamati data yg kita sediakan dan bagaimana penggunaan user terhadap data tersebut. Nah jika kita dapat menganalisanya maka kita dapat menentukan mana data yg dapat dicache dan tidak. Karena memang protocol HTTP mendukung teknik tersebut dan bahkan di design untuk hal tersebut. Jadi kita tidak perlu membebani server terlalu berat karena ada bagian2 data yg dicache.

Kita dapat memberikan tanda bahwa page atau request tersbut dapat dicache atau tidak dari HTTP Header. Kita dapat mensetnya. Jadi apabila suatu URI dicache maka kali berikutnya dia dibutuhkan dia akan mengambil dari cache. Read more…

REST == Architecture Style

March 6, 2009 1 comment

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

Read more…

REST == Istirahat ??

March 6, 2009 10 comments

REST sangat amat simple. Coba bandingkan ketika kita ingin meminta phone book dari seorang user. Dengan webservice+soap kita akan mengirimkan request dengan

< ?xml version="1.0"?>
<soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
 <soap:body pb="http://www.acme.com/phonebook">
  <pb:getuserdetails>
   <pb:userid>12345</pb:userid>
  </pb:getuserdetails>
 </soap:body>
</soap:envelope>

Dikirimkan dengan HTTP POST ke server. Nah SOAP tersebut memiliki struktur. Data response akan dikirimkan kembali dalam bentuk XML dan isinya ada didalam envelope atau payload. Jadi selain data yg kita ingingkan ada lagi pembungkusnya atau embel2nya.
Read more…

Categories: Messaging, REST, SOA Tags: ,

Greg Young DDD version

March 6, 2009 Leave a comment

Cara yg terbaik untuk belajar adalah dengan melihat bagaimana orang melakukannya. Nah sama halnya dengan DDD. Salah satu pakarnya adalah greg young. Bisa diliat di sini. Ini salah satu favouriteku di DDD. Hehehe.

Nah saya baca2 dari blognya. Ide yg dapat saya tangkap salah satunya adalah mengenai Command Query Separation(CQS). Pemisahan method untuk membaca atau read only dengan method untuk write(mengubah state).

Nah jadi hal ini diterapkan pada DDD. Mmm… jadi berdasarkan penjelasannya pada Repository hanya ada satu operasi Read saya yaitu method read untuk meload instance dari aggregate root berdasarkan Unique IDNy. Wow. Pdahal selama ini saya menjejali repository dengan method2 yg bertujuan untuk read. Tapi ini hanya satu. Dan itupun untuk retrive berdasarkan ID.
Read more…

Categories: Domain Driven Design, Messaging, SOA Tags: ,