[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]

Kirim email ke