Henri Blog

Study and Share knowledge

Archive for the ‘JAVA’ Category

Simple CRUD – SpringMVC & Hibernate3

with 37 comments

It’s been 5 months as I’ve been working with Java Technology. Yes, I’m just a newbie. I’ve been working as bug fixing support team for medical system which is built using struts 1, spring Ioc, and hibernate. It’s painful for me because the legacy code is huge and almost with no comment. In reality I almost never do coding with underlying framework but medical system framework itself. Although it’s painful it’s a good starting point for me to learn Java Technology.

In idle time I encourage myself to learn other java technology and try to put it in code at weekend. For this opportunity I want to share creating simple CRUD application using SpringMVC and Hibernate3. Simple CRUD application that we’re going to build only consist one entity class (Person). Actually what we’re going to build is similar to Simple CRUD – CodeIgniter. Let’s begin. Read the rest of this entry »

Advertisements

Written by Henri H.

May 25, 2009 at 2:04 pm

Posted in JAVA

Java Transaction Design Strategies

with 2 comments

Java Transaction Design Patterns

Java Transaction Design Strategies

Bulan ini gw berhasil membaca secara keseluruhan buku berjudul “Java Transaction Design Strategies”. Buku ini membahas Transaction dengan mengambil contoh implementasi di EJB dan Spring. Melalui tulisan ini gw coba merangkum isi buku tersebut.

Secara garis besar, buku ini membahas 2 point: transaction model dan transaction design pattern. Sebelum membahas tentang 2 point tersebut, buku ini membahas transaction properties dan JTA and JTS yang menurut gw merupakan basic untuk mengerti transaction dalam java.

Transaction properties yang dibahas dalam buku ini:

  1. Atomicity. suatu transaction harus commit/rollback atas seluruh proses yang dilakukan dalam single unit of work (SUW).
  2. Consistency. ketika proses transaction berlangsung, database integrity (constraint) tetap terjaga.
  3. Isolation. suatu level penguncian transaction dari transaction yang lain, misal data yang sedang diupdate oleh transaction A dilock sehingga transaction B tidak bisa mengakses data tersebut.
  4. Durability. setelah commit sukses dilakukan maka dijamin seluruh proses transaction selesai (seluruh data telah tersimpan secara permanen).

JTA (Java Transaction API) merupakan kumpulan interface untuk proses pengaturan transaction. JTS (Java Transaction Service) merupakan low-level code yang implement JTA. Analogi dari JTA dan JTS adalah JDBC dan database driver. JTA (analogi JDBC) merupakan kumpulan interface yang siap pakai sedangkan JTS (analogi database driver) merupakan low-level yang umumnya tidak perlu diketahui detailnya. Selanjutnya mari bahas secara garis besar tentang transaction models dan transaction design patterns.

TRANSACTION MODELS

  1. Local Transaction Model. transaction diatur oleh resource manager. Contoh penggunaan DBMS, maka DBMS sendiri yang mengatur transaction sedangkan developer mengatur connectionnya.
  2. Programmatic Transaction Model. transaction diatur menggunakan JTA. developer perlu menulis code untuk pengaturan transaction. menggunakan interface javax.transaction.UserTransaction, developer menggunakan method begin() (memulai transaction) dan commit() atau rollback() (mengakhiri transaction).
  3. Declarative Transaction Model. transaction diatur oleh framework/container. developer hanya perlu menyiapkan konfigurasi transaction misal melalui ApplicationContext.xml (Spring) atau ejb-jar.xml (EJB).

TRANSACTION DESIGN PATTERNS

  1. Client Owner. pengaturan transaction dilakukan di presentation layer. umumnya digunakan jika applikasi perlu melakukan remote akses ke backend service atau jika applikasi mengandung fine-grained service (terlalu banyak pemanggilan service layer code dalam sebuah proses transaction).
  2. Domain Service Owner. transaction design pattern yang digunakan pada umumnya. pengaturan transaction dilakukan melalui Domain Service.
  3. Server Delegate Owner. spesial case dari Domain Service Owner, mengandalkan Command Pattern atau Server Delegete Pattern dimana pengaturan transaction dilempar ke server dengan mengirim command.

Kira-kira itu yang bisa gw rangkum dalam tulisan ini. Lebih jauh, silakan download (http://www.infoq.com/books/JTDS) dan baca bukunya karena ternyata buku sebagus ini gratis (ebook-version).

Written by Henri H.

April 22, 2009 at 11:46 am

Posted in JAVA

Tagged with