Archive
REST design
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
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
REST == Istirahat ??
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…
Greg Young DDD version
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…
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…