Sunday, February 20, 2005

Smart Value Object (SVO)

Kita biasanya menggunakan pattern Value Object atau Transfer Object, yaitu membuat object yang hanya properties untuk menyimpan nilai-nilai.
Object tersebut berguna untuk menghubungkan antar layer dalam arsitektur J2EE, misalnya antar presentation layer dengan business, atau business layer dengan data layer, interaksi client dengan server.

SVO dibuat dengan tujuan mempermudah tracking pengubahan pada bussines object (VO) dengan menggunakan byte code processing untuk pengecekan adanya perubahan pada VO tersebut.

Jika VO mengalami perubahan maka kita tinggal mengirimkan VO tersebut ke object Mediator yang berperan sebagai pemroses modifikasi data (misalnya input/update/delete ke database). Mediator juga akan berperan sebagai pendeteksi jika ada concurrent access, sehingga terhindar dari synchronization problem. Mediator adalah sebuah Interface yang implementasinya berbeda-beda sesuai dengan data layer.

Konsep SVO bisa dilihat di gambar berikut:



SDO menggunakan pengecekan secara byte code terhadap VO, sehingga VO yang kita buat seperti layaknya VO biasa, tidak ada penambahan code apapun untuk mejadi bagian dalam SVO.

Contoh code SVO :

TestVO test = new TestVO();
test.setId(new Long(0));
TestVO result = myMediator.getGraph(test);
result.setName("new");
myMediator.updateGraph(result);
result.setName("new2");
// try to do a second update without obtaining the last version first
myMediator.updateGraph(result); // will throw ConcurrencyException


Deskripsi lengkap tentang SVO bisa di lihat di websitenya. SVO menggunakan BSD license.

No comments:

Followers