Monday, June 20, 2005

Oracle Toplink

Toplink adalah framework untuk mapping data dari Relational DB ke dalam Objek Java. Fungsinya hampir sama dengan tool ORM (Object/Relational Mapping) yang sering dipake saat ini seperti Hibernate dan iBATIS, dan hampir sama pula dengan standard spesifikasi dari Java yaitu JDO (Java Data Objects). Cuman perbedaannya sih hanya dalam algoritma implementasinya. Pada saat ini versi yang dipake adalah Toplink 10.1.3.

Menurut dari arsitekturnya, Toplink ini bisa dipake didalam DBMS yang berbeda, Application Server yang berbeda, dan arsitektur J2EE yang berbeda. Hmm ... jadinya bisa di sebut multi-??? ;p. Pada intinya Toplink akan support jika arsitektur yang dipake juga support JDBC karena Toplink akan menggunakannya. Dengan menggunakan Toplink maka objek dari RDBMS (Relational Database Management System) akan bisa dibaca di Java seperti Java Bean yang dalam hal ini disebut model. Jadinya nantinya kita akan bermain-main dengan setter/getter dari objek bean. Mengapa bisa terjadi ? karena Toplink punya file mapping , berupa xml, yang akan mendefinisikan konversi antara DB type dengan Java type. Toplink juga mendukung adanya constraint foreign key dengan cara merepresentasikan sebagai reference object dalam objek Java. Hmm... tapi kayaknya ga bakalan dipake klo RDBMS-nya pake MySQL (itu pun klo bisa pake Toplink) karena setauku di MySQL ga ada yang namanya foreign key :(.

Di project yang sedang aku kerjakan, aku juga pake Toplink. Tapi sayang kita cuman dikasih layer lagi berisi method2 buatan programmer Toplink untuk mengakses objek2 yang dihasilkan Toplink agar penggunaan sintaknya seragam. Meskipun begitu aku masih bica baca dari code2nya :D. Intinya didalam Toplink, session itu dimasukkan ke dalam Unit of Work, jadi paling hati2 klo main sessionnya. Misal jika session modenya Non transaction ya jangan coba2 untuk mengupdate data, trus jangan sampe dalam 1 method membikin dua session transaction karena session terakhir yang akan dipake untuk mengupdate data. Karena Toplink menyimpan perubahan dalam cache, nah setelah method selesai dikerjakan maka baru di commit, jadinya session yang sama akan tertindih dengan yang paling akhir. Dan itu merupakan kejadian paling menyusahkan ketika project memasuki phase integration :D, karena harus cross check dengan module lain. O ya klo pengen tau lebih detil coba kunjungi Oracle TopLink.
Selamat belajar dan mencoba :D.

2 comments:

boendh4 said...

klo Oracle Finance ngerti ga??

Jajang Kavita said...

Wah ga ngerti dek.... soalnya aku belum pernah pegang...mungkin ntar klo udah masuk project yang pake orafin kita bisa share :D...saranku sih coba aja cek di oracle.com di bagian productnya, mungkin disitu u bisa nemuin FAQ yang cukup membantu.