Atjous Ovrecker wrote:
> Untuk hubungan antara client (yang terhubung dengan U-controller) dan server baiknya
> pake tcp/ip saja terus nanti bikin protocol kecil2an diatasnya. Sekalian nanti bisa
> dikembangkan untuk controlling juga (tidak hanya monitoring)
Rumit amat mesti bikin protokol.
Kalau pakai Voyager, kita tinggal bikin suatu kelas Java; misalnya,
katakanlah nama source-nya ComMonitor.java. Kelas ini bertugas untuk
memonitor serial port dimana dia dijalankan; karena itu, perlu Java
serial lib. (bagian yang dari Sun: Java Comm; satu lagi untuk
implementasi JNI di Linux: http://www.frii.com/~jarvi/rxtx/; keduanya
mesti dipasang). Katakanlah kelas ini sudah berjalan, misalnya dengan
membaca serial, dan lalu menyimpannya di HD lokal dimana dia dijalankan.
Untuk membuat kelas itu bisa diakses dari jauh, maka yang diperlukan
hanyalah:
vcc ComMonitor.java
atau
vcc ComMonitor.class
(nanti outputnya ditaruh di direktori lain dengan nama yang sama)
vcc: virtual-class compiler.
Kelas Java yang telah dikompilasi via vcc akan dirubah bagian (signature
dari) konstruktornya, sehingga kita bisa memasukkan nama host dan port
dimana kelas remote tersebut dijalankan.
Jadi setupnya kira-kira:
Di mesin yang memonitor serial port tersebut kita pasang Voyager server,
dan lalu kelas pembaca port tersebut di-load. (Seingat saya sih, loading
ini dilakukan dari remote. Sorry ya, udah lama banget sih, dulu pakai
Voyager 1.0, kalau tak salah. Dan itu jalan di Slackware/486. Jadi
tinggal "new" saja:
comMonitor = new ComMonitor("vserver", vport);
// vserver: nama remote host
// vport: nomor port dimana Voyager server dijalankan
Kelas ComMonitor ini mesti bisa di-load di mesin dimana kode tersebut
dijalankan. Nanti, obyek dari kelas ComMonitor akan siap digunakan (dan
dia berjalan di Voyager server yang remote itu).
Untuk menjalankan remote method yang ada di remote obyek, ya tinggal
(misalnya):
int reading = comMonitor.getCurrentReading();
Method/metode di atas, ya bisa saja dibuat supaya membaca baris tertentu
di satu file yang ada di mesin remote.
Berikut lisensi dari Voyager (bisa dilihat di www.objectspace.com):
"2. GRANT OF LICENSE.
2.1 TERMS
(a) Grant. LICENSOR hereby grants to LICENSEE a non-exclusive,
non-transferable, non-assignable right to use the Product for internal
use only."
Oki
ps: tulisan di atas merupakan ide saja sih, yang barangkali akan
memudahkan pengembangan. Dibanding dengan mengimplementasikan JNI (Java
Native Interface; yang diprogram di C untuk membaca serial port) dan
lalu kita buat program Java di atasnya untuk link ke object-file dari
program C tersebut, dan lalu program Java tersebut kita akses via RMI,
rasanya sih, cara Voyager tersebut akan lebih mudah. JNI tidak gampang,
dan kalau sudah ada library RXTX (+ Java Comm dari Sun), mengapa harus
bikin sendiri? Lagian, masih cukup low-level kok, jadi bakal bagus buat
praktek pemrogramman serial port, IMO.
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]