[EMAIL PROTECTED] wrote:
>
> gambaran skema
>
> server <-----> internet <-------> client
> linux windows
> (web server) |
> serialpc mikrokontroller
>
> cara kerja sistem sbb:
> client menerima data sample sinyal sinus dari mikrokontroller, data
> dikirimkan ke server melalui browser, data di olah server dan
> dikembalikan ke client dalam bentuk tampilan grafik yang bisa dilihat
> di client (client yang sama yang terhubung mikrokontroller).
> pengiriman dan penerimaan data ke server lewat browser. pengiriman dan
> penampilan data berlangsung secara terus menerus perpaket (200 kb per
> 20 detik) . ini yang sebut dengan semi real time. komunikasi server dan
> client menggunakan http.
> 1. saya ingin jika data dari server berubah data dari browser juga
> berubah. bisakah ini dilakukan ? apakah pakai php bisa atau ada
> alternatif yang lain yang lebih mendekati realtime ?
> 2. apakah pengaksesan port serial com2 pc yang terhubung u-controller
> bisa langsung dari web server ?
> jika ya pakai bahasa apa ? dan diletakkan dimana diserver atau
> di client ?
> 3. apakah client dapat di refresh secara otomatis oleh server jika
> halaman web di update. (saya ingin menampilkan gelombang sinus yang
> diupdate terus berjalan pada browser). jika ya pakai script atau
> program apa ? apakah php /java mendukung untuk fungsi ini ? atau ada
> alternatif lain yang lebih cepat ?
> 4. apa yang dimaksudkan dengan servlet dan aplet ? ditempatkan
> diserver atau client ?
Untuk setup seperti itu, ada baiknya kalau sekalian saja di mesin client
tersebut pakai Linux saja; soalnya kan bisa hemat, 486 atau Pentium 100
(tanpa X) bisa bagus. Mengenai akses ke serial port, kalau mau pakai
Java, bisa menggunakan library untuk pengaksesan serial port yang ada di
Sun. Kalau baca dokumentasinya (saya belum sempat implementasi), library
tersebut adalah event driven, menggunakan fitur "Listener" di Java;
dengan kata lain, untuk "event" tertentu dari serial port (data masuk,
buffer penuh, buffer kosong, dll, silahkan baca dokumentasi), kita
tinggal membuat kelas Java (implementasi dari Listener) yang menangani
event tersebut.
Mengenai aplikasinya, idealnya sih bikin suatu program pemonitor serial
port tersebut (yang mengimplementasikan RS-232 dari Sun tersebut), yang
secara periodik membaca jalur output portnya. Hasil bacaan tersebut
lalu disimpan di suatu file. Nanti aplikasi lain yang membaca output
tersebut dan merepresentasikannya dalam bentuk grafis. Pakai file adalah
salah satu alternatif. Alternatif lain yang lebih baik adalah menerapkan
fasilitas RMI (remote method invocation) pada program pemonitor
tersebut; yang dengan RMI, nantinya kita bisa menganggap bahwa program
tersebut adalah lokal terhadap program lain yang mengaksesnya.
Usulan saya sih:
+ [web browser]
+ <applet grafis>
+ |
+ | HTTP ke web server, RMI ke akumulator
+ |
+ [web server]
+ <akumulator>
+ |
+ +-----------------------[monitor server]
+ <program pemonitor>
+ RMI |
+ | RS-232
+ |
+ [microcontroler]
Penggunaan RMI ada baiknya juga mempertimbangkan Voyager
(http://www.objectspace.com). Kegunaannya sama dengan RMI, hanya saja,
pemrogramannya relatif lebih mudah dari RMI. Bedanya, Voyager pakai
protokol proprietary, sedang RMI bisa pakai CORBA, jadi lebih open.
(Apakah Voyager sudah mensuport CORBA, bisa dilihat sendiri).
Pada gambar di atas, bisa saja program akumulator tersebut dibuat supaya
menjalankan remote method (yang ada di pemonitor) untuk mengambil data
di serial port; hanya saja, bisa jadi pembacaan data malah membebani
jaringan (kalau via Internet, bisa jadi sedang tidak kebagian
bandwidth). Dengan dipisahkannya akumulator dengan pemonitor, frekuensi
pembacaan bisa diatur supaya berbeda (pemonitor bisa lebih sering,
akumulator lebih jarang). Di samping itu, data di pemonitor tak usah
banyak-banyak, data, katakanlah, sehari juga cukup, yang di akumulator
bisa bulanan.
Penggunaan applet di atas, juga menggunakan RMI, untuk mengakses data
yang disimpan oleh akumulator. Jadi, setelah appletnya di-load via
web-server dan sudah tampil di web browser, applet tersebut akan membuka
port di web server untuk menyambung ke akumulator; yang lalu datanya
diambil dan kemudian ditampilkan oleh appletnya dalam bentuk grafis.
Tergantung sejauh mana sasaran "audience" dari aplikasi tersebut,
penggunaan applet bisa dipertimbangkan. Kalau scope lebih sempit
(internal LAN, sehingga bisa punya kontrol terhadap web browser yang
digunakan; atau bisa diyakinkan bahwa pengguna adalah pensuport Open
Source, maka menggunakan applet bisa dijadikan pilihan). Tapi kalau
tujuannya adalah sebanyak-banyaknya, barangkali perlu menggunakan HTML
(bukan applet), dan itu perlu "push" technology (untuk push ini saya tak
bisa kasih saran). Tapi... kalau mau pakai applet (dan yakin semua
browser pasti bisa menjalankan) juga bisa, yaitu pakai fasilitas Java
plug-in dari Sun; dimana di halaman .html yang ada tag <applet> untuk
mendownload applet, di situ ditambahkan tag untuk menjalankan Java VM
yang pasti kompatibel dengan standar JDK.
Oki
ps: semua yang di atas, menggunakan free software.
--------------------------------------------------------------------------------
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3
Pengelola dapat dihubungi lewat [EMAIL PROTECTED]