Seminar Nasional Riset Teknologi Informasi Volume III 2008
ISSN 1907-3526
Logging database dengan pemanfaatan database proxy menggunakan php/java sebagai aplikasi pendukung AFRIYUDI 1
M. Akbar 2 1
Program Studi Sistem Informasi Fakultas Ilmu Komputer. Universitas Bina Darma Palembang. email :
[email protected],
[email protected] 2
Program Studi Teknik Informatika Fakultas Ilmu Komputer. Universitas Bina Darma Palembang. email :
[email protected]
Abstrak PHP/java adalah extension yang digunakan sebagai jembatan untuk mengakses objek java dari script php. PHP/Java Bridge, merupakan integrasi teknologi php dan java yang tidak menggunakan java Native Interface (JNI), sehingga memungkinkan komunikasi antara php dan teknologi java seperti JSP, Servlet dapat terjalin. Penggunaan php/java ini merupakan salah satu cara untuk memanfaatkan teknologi java yang memungkinkan dibuat program logging yang merupakan media pencatat segala aktifitas penggunaan database seperti operasi data query yaitu select, update dan delete. Data logging ini nantinya digunakan sebagai bahan analisa untuk mengetahui trafik penggunaan database dan analisa keamanan data. Kata kunci: Database Proxy,Data Logging, PHP/JAVA 1.
Pendahuluan
Aktifitas database dalam program, terutama pada program yang digunakan oleh banyak pemakai seperti program web, apalagi menyangkut data penting seperti data nilai, data keuangan, dan lain-lainnya. Tentunya sangat dibutuhkan sebuah media yang bisa mencatat segala transaksi yang berhubungan dengan database seperti operasi query seperti select, update, delete. Pentingnya memonitoring segala aktifitas ini adalah untuk menjaga agar data penting tersebut tidak dapat disalahgunakan oleh user. Agar monitoring tersebut dapat dianalisa nantinya maka monitoring tersebut harus disimpan yaitu dalam sebuah log, yang berisi segala aktifitas query database.
2.
Tinjauan Pustaka
2.1. Database Database adalah sekumpulan informasi yang disusun sedemikian rupa untuk dapat diakses oleh sebuah software tertentu. Database tersusun atas bagian yang disebut field dan record yang tersimpan dalam sebuah file. Sebuah field merupakan kesatuan terkecil dari informasi dalam sebuah database. Sekumpulan field yang saling berkaitan akan membentuk record. 2.2. Proxy Mekanisme dimana satu sistem menyediakan diri untuk sistem lain sebagai tanggapan atas permintaan untuk suatu protokol. 2.3. Data Logging Data Logging adalah aktivitas pencatatan secara sequensial pada suatu tindakan yang ingin diketahui prosesnya secara kronologis. Aktivitas logging digunakan sebagai bahan analisa atas suatu proses yang ingin diketahui. 2.4. RMI Remote Method Application (RMI) pada Java adalah mekanisme yang mengijinkan sebuah objek untuk mengakses metode objek lainnya yang berada pada alamat lain pada mesin yang sama ataupun mesin yang berbeda 2.5. PHP/JAVA extension
Seminar Nasional Riset Teknologi Informasi Volume III 2008 PHP/java adalah extension yang digunakan sebagai jembatan untuk mengakses objek java dari script php. Ada 3 macam php/java yang bisa digunakan yaitu : 1. Zend PHP/Java Bridge (comersial) , produk buatan Zend ini menawarkan fitur yang menarik yaitu Single JVM Instantiation (hanya membutuhkan Satu JVM untuk seluruh script PHP), Direct Calls from PHP (Mengakses java langsung dari php) dan Seamless Integration (Library dan class terintegrasi langsung dengan script php)
ISSN 1907-3526
masing-masing jvm sedangkan php/java bridge seluruh script php yang menggunakan java diproses oleh satu JVM. Jadi untuk segi kecepatan maka php/java bridge lebih cepat dibandingkan dengan php/java extension.
3. Metodologi Penelitian 3.1. Arsitektur Sistem Merancang arsitektur pada awal pembangunan suatu sistem adalah suatu hal yang penting. Dengan merancang arsitektur, suatu sistem yang dibentuk akan memiliki konstruksi yang baik, proses pengolahan data yang tepat dan akurat, bernilai, memiliki aspek user friendly dan memiliki dasar-dasar untuk pengembangan selanjutnya . Java Memiliki teknologi RMI yang memungkinkan membuat aplikasi basisdata dapat dijadikan database proxy. Tetapi tentunya tidak cukup sampai disini database proxy ini akan diakses melalui web. Tentunya perlu dipilih mekanisme yang tepat untuk mewujudkannya. Oleh sebab itu diperlukan kolaborasi antara java dengan bahasa pemrograman web seperti php.
Gambar 1 : Zend php/java bridge
2. Java PHP Extension (free Source) , dibuat oleh Sam Ruby dan team merupakan experiment untuk mengintegrasikan java dengan php menggunakan Java Native Interface(JNI). Pada awalnya disediakan pada source PHP namun perkembangannya kemudian, untuk versi linux(Mandrake,Redhat dan lainnya) produk ini dihentikan pada php versi 5.0 tetapi masih di support untuk versi 4.X.X sedangkan untuk versi windows sampai php versi 5.2.0 produk ini masih masih digunakan tetapi dalam bentuk binary code. 3. PHP/Java Bridge (free Source), merupakan integrasi teknologi php dan java yang tidak menggunakan java Native Interface (JNI), sehingga memungkinkan komunikasi antara php dan teknologi java seperti JSP, Servlet dapat terjalin.
Sumber : http://www.zend.co.jp/products/platform/ Gambar 2 : php/java extension vs php/java bridge
Perbedaan mendasar dari php/java extension dan php/java bridge adalah pada php/java extension masingmasing script php yang menggunakan java diproses oleh
Gambar 3 : Arsitektur JetProxy
3.2. Alur Sistem Penggunaan php/java merupakan solusi sebagai jembatan penghubung yang memungkinkan pemanfaatan teknologi java pada php. Teknologi ini memungkinkan menarapkan aplikasi java di php. Ide utamanya adalah bagaimana agar Mysql dapat dimonitoring aktifitas data querynya.. Pertanyaannya adalah bagaimana hal ini bisa dilakukan?. Cara yang umum di terapkan pada database sekelas server adalah memungkinkan berkomunikasi dengan database melalui port, misalkan untuk mengakses MySQL dapat dilakukan dengan mengakses port 3306 dan SQL server dapat diakses melalui port 133. Menerapkan teknologi ini tentunya tidak bisa dengan php oleh sebab itu dimanfaatkanlah teknologi php/java. Solusinya adalah membuat Interface yang memungkinkan komunikasi tersebut dapat dilakukan yaitu dengan membuat Database Proxy, dengan sedikit modifikasi pada program jetProxy maka aktifitas query dapat disimpan. JetProxy merupakan java opensource yang memungkinkan mengakses database melalui IP dan Port. Kemudian
Seminar Nasional Riset Teknologi Informasi Volume III 2008 dengan sedikit modifikasi pada engine JetProxy Aktivitas monitoring disimpan dalam database.
} } 2.
Gambar 4 : Alur Kerja Sistem
Port yang digunakan untuk mengakses database proxy adalah port 52372. Agar transaksi dilakukan dengan aman digunakan teknik tunneling dan server di firewall.
4. Pembahasan 4.1. Loging Aktifitas Database studi kasus pada database Mysql Pertama-tama kita jalankan Database Server dengan konfigurasi database mysql sebagai database server. Berikut ini akan dijelaskan bagaimana menggunakan Jet Proxy sehingga dapat digunakan pada php/java. Mekanisme untuk menjalankan jet Proxy adalah : 1. Setting Database Server yaitu dengan memperbaiki file jetproxy.properties pada directory config. Beberapa hal yang perlu di rubah adalah - REGISTRY_HOST="xx.xx.xx.xx", diisi ip address server. - REGISTRY_PORT="52372", diisi nilai port server. - SINGLE_PORT_OPERATION="true", diisi nilai true jika akan mengunakan satu port - FIREWALL_PROXY="xx.xx.xx.xx", disi nilai ip address jika firewall di aktifkan di server. - Kemudian menentukan database yang bisa di share, database yang dishare yaitu MYSQL. SHARES= { datababe= { DRIVER_CLASS="org.gjt.mm.mysql.Driver" CONNECTION_URL="jdbc:mysql://xx.xx.xx.xx /jadwal" CONNECTION_PROPERTIES= { user="xxxx" password="xxxx"
ISSN 1907-3526
} Menjalankan jet Proxy server, dengan menjalankan script jetproxy.bat pada directory bin.
Gambar 5 : Menjalankan Server Jet Proxy Setelah server jetProxy berjalan maka langkah selanjutnya adalah membuat program clientnya yang merupakan program untuk mengakses database, yang nantinya query datanya dapat dilogging sehingga nantinya dapat dianalisa jika terjadi hal yang tidak diinginkan seperti perubahan nilai yang mencurigakan. 1. Membuat File java yang berfungsi sebagai library untuk mengakses query pada jetProxy. import java.util.*; import java.sql.*; import com.jet.jdbc.pdriver.*; public class test_jetproxy_Client { public ResultSet baca_data() { // menentukan alamat host JET Proxy Server String host="xx.xx.xx.xx"; // Menentukan port untuk komunikasi dengan server int port=52372; // nama database share pada ProxyServer String share="datababe"; ResultSet rs=null; try { PDriver pdriver=PDriver.getInstance(); Vector shares=pdriver.getAvailableShares(host, port); String connectionURL="jdbc:jet:proxy@"+host+":"+port+ "?share="+share; Connection con=DriverManager.getConnection(connectionURL ); Statement state=con.createStatement(); String sql=" select hari_kul,kd_matkul,kelas from jadkul where kd_pa='IF006' "; rs=state.executeQuery(sql);
Seminar Nasional Riset Teknologi Informasi Volume III 2008 } catch (Exception ex) { ex.printStackTrace(); } return rs; 2.
} } membuat file php yang berfungsi untuk memanfaat library yang telah di buat sebelumnya untuk mengakses database. currentTimeMillis (); $rs = $obj->baca_data (); $selesai=$system->currentTimeMillis (); echo “
Hari Kuliah | Kode Matkul | Kelas |
”; while($rs->next()) { $v1=$rs->getString(1); $v2=$rs->getString(2); $v3=$rs->getString(3); echo ”$v1 | $v2 | $v3 |
”; } $selesai1=$system->currentTimeMillis (); echo “
”; @java_reset(); ?>
3. Menjalankan program php di browser
ISSN 1907-3526
4. Pada sisi server yang tercatat adalah perintah query select hari_kul,kd_matkul,kelas from jadkul where kd_pa='IF006', alamat client yang melakukan query, tanggal, nama database dan user, data ini tersimpan dalam database logquery pada table log.
Gambar 7 : hasil Data logging 4.
Kesimpulan
Penggunaan php/java sebagai jembatan penghubung yang memungkinkan penggunaan database proxy, sehingga data query dapat di monitoring dan dicatat sehingga sewaktu-waktu dibutuhkan, data ini dapat membantu administrator mengambil keputusan lebih lanjut. Kelemahan penggunaan Database Proxy adalah akses yang sedikit lebih lambat. Dan kelebihannya adalah dapat diakses pada Sistem operasi apapun yang support php/java seperti LINUX, Windows dan MAC OS kemudian database yang digunakan bisa lebih dari satu database. 5.
Daftar Pustaka
Afriyudi, Pemrograman Web Dinamis dengan kolaborasi php dan java, Andi Offset, Jogjakarta, 2008. BÖekermier, Jost and Koerber, Jon., What is php/java bridge, http://php-java-bridge.sourceforge.net/pjb, November 2007. JETProxy – A Type 3 JDBC proxy Driver, http://jmatrix.net/content/jetproxy_home.jsp JETProxy JDBC server, http://jmatrix.net/content/jetproxy_server.jsp Gambar 6 : Menjalankan Jet Proxy client
Seminar Nasional Riset Teknologi Informasi Volume III 2008
ISSN 1907-3526