Thursday, August 21, 2008

Arsitektur SWDEV Sms Server

Ide menjadikan Sms Server sebagai aplikasi yang berdiri sendiri muncul tatkala saya sudah 4 kali membuat aplikasi Sms Gateway, yaitu

  1. Pengisian Pulsa Elektronik dengan Java
  2. Penjualan HP dengan Gnokii Sms Gateway dan Gambas
  3. Sms Dakwah dengan Java
  4. Absensi dengan Sidik Jari Menggunakan U R U dan Sms Gateway Menggunakan FBUS

Kompleksitas Sms Gateway yang bercampur dengan kompleksitas domain aplikasi pada Aplikasi 1 dan Aplikasi 3, ternyata dicerahkan dengan pemisahan keduanya pada Aplikasi 2 dan Aplikasi 4. Cara kerja Gnokii dan FBUS sama saja, yaitu mereka merupakan Sms Server yang berdiri sendiri, dimana setiap ada Sms yang masuk akan dimasukkan ke tabel sms Inbox, dan setiap data baru pada sms outbox akan dikirim ke nomor HP yang dituju.


Setelah melalui beberapa kali proses penyempurnaan, berikut adalah arsitektur Sms Server yang saya beri saja nama, SWDEV Sms Server (S3).

Pertama kali yang perlu diamati adalah adanya garis-garis putus berwarna merah yang memisahkan dua domain aplikasi, yaitu S3 dan aplikasi Anda (apapun itu, mulai dari aplikasi pembayaran tagihan listrik dan telepon via SMS, SMS Banking atau Penjualan Handhone via SMS). S3 dan aplikasi Anda berkomunikasi dengan menggunakan Tabel SMS Inbox sebagai tabel penampung SMS yang baru masuk dan tabel SMS Outbox sebagai tabel penampung SMS yang akan dikirimkan. Sederhananya, jika ingin membaca SMS yang baru masuk, buatlah timer/thread yang akan membaca tabel SMS Inbox setiap jeda waktu beberapa detik ( 5 detik cukup bagus) dan jika ingin mengirimkan SMS ke nomor tertentu, masukkan saja data sms yang akan dikirimkan beserta nomor HP yang dituju ke tabel SMS Outbox. Sederhana kan?


Berikut adalah tampilan S3 yang independen, dan berdiri sendiri.


Daftar koneksi ditampilkan pada dialog di bawah ini:


Setting koneksi dilakukan pada dialog di bawah ini :


Berikut adalah beberapa HP yang telah diuji dengan baik:

Semoga bermanfaat!


NB :

  • Perhatikan, bahwa Anda dapat saja membuat tabel-tabel baru di dalam Database S3, namun sebaiknya Anda membuatnya di database tersendiri, sebagaimana ditunjukkan pada tabel di atas.
  • Saya sudah mencoba menggunakan Microsoft Access dan MySQL sebagai server Database S3, mungkin sekarang saatnya ada yang menggunakan Microsoft SQL Server. Bagaimana dengan Oracle? Seharusnya tidak ada masalah yang berarti, karena semuanya dikendalikan oleh interface yang sama, yaitu JDCB (Java Database Connectivity)
  • S3 menggunakan tiga proyek Java Independen lainnya, yaitu CORE, CORESYSTEM dan SMSGATEWAY. Ketiga proyek ini muncul akibat kebutuhkan akan sentralisasi pengembangan proyek Java yang sering berulang.
  • Saya senang menggunakan warna, mulailah dengan garis warna Hijau yang menjelaskan proses SMS masuk sampai berakhir ke tabel SMS Inbox. Kemudian gunakan garis berwarna kuning yang mulai dari tabel SMS Inbox sampai berakhir ke Application Domain Logic. Selanjutnya garis berwarna merah memandu dari Application Domain Logic ke Tabel SMS Outbox. Dengan garis warna ungu merupakan garis optional yang menggambarkan bagaiman aplikasi memanggil basis data miliknya sendiri. Saya sebut opsional, karena mungkin sekali Anda tidak membutuhkan basis data (sebagai contoh, misalnya kita bisa saja membangun aplikasi Penghitung Berat Badan Ideal menggunakan SMS Gateway).
  • Application Domain Logic, merupakan logika utama pemrosesan aplikasi. Ia dapat berupa logika pemilihan wahana wisata kuliner terbaik, pemesanan obat kesehatan, pemilihan pesan-pesan dakwah Islam yang sesuai dan lain sebagainya.
  • S3 mungkin belum siap di Open Source-kan untuk beberapa waktu ini. Hubungi saya jika Anda tertarik untuk eksplorasi lebih lanjut.
  • Beberapa perintah AT Command yang dipakai : AT+CMGS (mengirim sms), AT+CMGR (membaca sms), AT+CMGL menampilkan daftar sms yang belum terbaca), AT+COPS (menampilkan nama provider), AT+CNMI (membuat sms terbaca otomatis), AT+CMGD (menghapus sms yang sudah dibaca), AT+CGMM (menampilkan merk/seri hp) dan AT+CGMI (menampilkan merk/seri hp)

1 comment:

Anonymous said...

Probably I can say with this blog make, more some interesting topics.