Peningkatan Performansi “NoteBOX Unified Messaging System” Afwarman Manaf, Robbi Kurniawan KK Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung
[email protected] Abstraksi NoteBOX merupakan salah satu sistem aplikasi yang mengimplementasikan konsep unified messaging. NoteBOX menggunakan mekanisme store and forward dengan melibatkan gateway sebagai penghubung dengan sistem eksternal. Tulisan ini menguraikan usaha untuk mengatasi beberapa kelemahan sistem yang ada saat ini. Masalah yang pertama, adanya penurunan performansi yang disebabkan delay ketika proses penerusan pesan baik dari gateway ke core server atau sebaliknya. Hal lain adalah masih rendahnya tingkat interoperablility dan flexibility gateway yang bertugas untuk mengkonversi pesan dari satu gateway kepada yang lainnya. Dan juga besarnya kemungkinan terjadinya overload pada core server yang dapat mengakibatkan kegagalan pada sistem NoteBOX (misal karena menggunakan memori/thread dengan jumlah lebih besar dari yang diperkenankan oleh operating system).
Kata kunci: unified messaging, jaringan mobile, Internet Protocol (IP) 1. LATAR BELAKANG NoteBOX merupakan salah satu sistem aplikasi yang mengimplementasikan konsep unified messaging [MAN06a]. Melalui NoteBOX, pengguna dimungkinkan untuk mengirimkan suatu message melalui suatu layanan tertentu (contoh: SMS) ke pengguna lain yang menggunakan layanan messaging yang sama ataupun layanan messaging yang berbeda (contoh: e-mail, fax).
sebagai penghubung dengan sistem eksternal. Saat ini NoteBOX memiliki beberapa gateway yaitu e-mail gateway, SMS gateway, MMS gateway, dan web gateway. Masing-masing gateway tersebut bertanggung jawab menghubungkan NoteBOX dengan sistem eksternal masing-masing sehingga mekanisme store and forward dapat berjalan dengan baik [MAN06b]. Arsitektur global NoteBOX yang ada saat ini dapat dilihat pada gambar 1.
Dalam menjalankan fungsinya, NoteBOX menggunakan mekanisme store and forward dengan melibatkan gateway
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta
Database Server
Web Gateway
TC P
P SI
P TC er ov
SIP over TCP TCP Core Server
E-mail Gateway
SIP
ov er TC P
P
ov er
TC
P
POP3 & SMTP Server
SI
AT
GSM Modem
SMS Gateway
AT GSM Modem
MMS Gateway
Gambar 1. Arsitektur Global NoteBOX Saat Ini Dalam mekanisme store and forward, proses dibagi menjadi dua bagian besar yaitu store dan forward. Proses store merupakan sebuah proses yang bertanggung jawab untuk menerima message dari sistem eksternal dan menyimpannya ke dalam suatu tempat penyimpanan sementara. Sedangkan proses forward merupakan sebuah proses yang bertanggung jawab untuk mengambil message yang telah disimpan sebelumnya (melalui proses store) dan mengirimkannya ke sistem eksternal. Proses store pada NoteBOX diimplementasi dengan menerima message dari sistem eksternal melalui polling yang dilakukan oleh gateway. Kemudian gateway akan meneruskan message tersebut ke core server dengan menggunakan protokol SIP over TCP. Setelah core server menerima message ini, core server akan menyimpannya kedalam sebuah database server. Diagram sekuens proses store diperlihatkan pada gambar 2.
Sementara itu proses forward diimplementasikan dengan mengambil message dari database server melalui polling yang dilakukan oleh core server untuk kemudian diteruskan ke gateway yang menjadi tujuan message dikirimkan dengan menggunakan protokol SIP over TCP. Setelah gateway menerima message ini, gateway akan mengubahnya ke dalam bentuk yang sesuai dengan sistem eksternal yang akan digunakan oleh gateway dalam mengirimkan pesan tersebut ke tujuannya. Setelah diubah, gateway akan meneruskan pesan tersebut ke sistem eksternal sehingga pesan sampai ke tujuan. Proses ini dapat dilihat seperti pada gambar 3. Pada kedua proses di atas terdapat beberapa kelemahan: 1. Adanya penurunan performansi yang disebabkan adanya delay ketika proses penerusan pesan baik dari gateway ke core server atau sebaliknya. Penurunan performansi juga terjadi disebabkan delay saat penyimpanan/pengambilan pesan dari dan ke database server. Delay ini terjadi karena setiap kali proses penerusan / penyimpanan/pengambilan pesan dilakukan, akan dibuat koneksi SIP/TCP yang baru padahal proses pembuatan koneksi SIP /TCP membutuhkan waktu yang cukup lama.
Gambar 2. Proses Store Pada NoteBOX Saat Ini
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta
Gambar 3. Proses Forward pada NoteBOX saat ini 2.
3.
Gateway tidak interoperable dan tidak fleksibel karena gateway bertugas untuk mengkonversi pesan dari gateway lain sehingga pesan tersebut dapat diteruskan. Hal ini menyebabkan apabila ada gateway ditambahkan ke NoteBOX, maka gateway yang lain harus mengimplementasikan proses konversi dari format message gateway baru tersebut. Tidak adanya pengendalian penggunaan resource pada core server. Hal ini dapat menyebabkan besarnya kemungkinan terjadinya overload pada core server yang dapat mengakibatkan kegagalan pada sistem NoteBOX (misal karena menggunakan memori/thread dengan jumlah lebih besar dari yang diperkenankan oleh operating system). Overload dapat terjadi apabila dalam satu waktu NoteBOX menerima pesan dari gateway dalam jumlah yang sangat besar.
2. PENINGKATAN PERFORMANSI Pada proses store and forward awal, terdapat kelemahan yaitu proses konversi message dari satu bentuk ke bentuk lainnya yang menyebabkan gateway tidak interoperable 3.
Layanan messaging yang digunakan oleh pengirim dalam mengirim message. 4. Layanan messaging yang digunakan oleh penerima dalam menerima message. 5. Pesan yang akan dikirim. 6. Tipe pesan yang akan dikirim (dalam format MIME. contoh: text/plain, image/jpeg). 7. Bagaimana pesan dikodekan (contoh: none, base-64, base-16) 8. Pesan tambahan pada pesan yang akan dikirim. Sebagai contoh apabila ingin mengirimkan gambar / suara sebagai bagian dari pesan. 9. Tipe pesan tambahan (dalam format MIME) 10. Bagaimana pesan tambahan dikodekan. 11. Durasi kevalidan pesan. Setelah melampaui batas validnya, pesan tersebut otomatis akan dibuang oleh NoteBOX dan tidak akan di-forward. 12. Waktu message diterima oleh gateway.
dan tidak fleksibel. Oleh karena itu, diperlukan suatu mekanisme proses konversi message yang dapat menjadikan gateway interoperable dan fleksibel. Mekanisme proses konversi message diperbaiki dengan cara menggunakan sebuah intermediate message yang memiliki bentuk / format yang standard dan dapat interoperable untuk seluruh gateway yang mungkin berhubungan dengan NoteBOX. Intermediate message ini disebut juga uniform message. Oleh karena gateway pada NoteBOX akan berhubungan dengan layanan messaging, maka uniform message haruslah dapat memenuhi seluruh kebutuhan layanan messaging akan suatu data sehingga message dari suatu gateway dapat diteruskan dengan baik oleh gateway lainnya. Dengan demikian, uniform message haruslah mengandung informasi: 1. Alamat pengirim message. 2. Alamat penerima message / tujuan pengiriman message. Dengan adanya uniform message, diharapkan gateway yang akan mengirim message ke sistem eksternal cukup melakukan konversi dari uniform message ke format message yang sesuai dengan sistem eksternal sehingga gateway menjadi interoperable dan fleksibel. Agar hal demikian dapat terjadi, gateway pengirim message haruslah menerima message dari core server dalam bentuk uniform message bukan dalam bentuk message yang spesifik sistem eksternal sumber message tersebut diterima sebagaimana pada desain NoteBOX saat ini. Penerimaan dalam bentuk uniform message berdampak pada message yang disimpan dalam database haruslah pula dalam bentuk uniform message agar core server juga tetap interoperable dan fleksibel terhadap gateway yang berhubungan dengannya. Apabila message yang disimpan dalam database haruslah dalam bentuk uniform message, gateway yang menerima message dari sistem eksternal haruslah melakukan konversi message yang diterimanya dari sistem eksternal ke dalam bentuk uniform message. Mekanisme di atas memiliki keunggulan apabila dibandingkan dengan desain NoteBOX saat ini: 1. Karena gateway hanya perlu melakukan konversi dari dan ke uniform message, maka gateway tersebut dapat bekerja dengan gateway lain tanpa memperdulikan oleh gateway mana message tersebut diterima / dikirim dari dan ke sistem eksternal. 2.
Gambar 4. Proses store dengan Uniform Message
Adanya enkapsulasi tanggung jawab konversi pada setiap gateway. Dengan menerapkan mekanisme di atas, gateway hanya perlu mengetahui sistem konversi yang berkaitan dengan dirinya sendiri (dan sistem eksternal yang berhubungan langsung dengannya) dan
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta
tidak perlu mengetahui sistem konversi gateway lainnya.
Gambar 6. Proses store dengan filter Gambar 5. Proses forward dengan Uniform Message Keunggulan-keunggulan di atas menyebabkan gateway menjadi interoperable dan fleksibel. Proses store dan forward dengan menggunakan uniform message dapat dilihat pada gambar 4 dan gambar 5. Dalam proses store, seringkali message yang telah dikonversi ke dalam bentuk uniform message perlu dilakukan pemeriksaan / filtering sebelum disimpan ke database. Salah satu bentuk filtering yang paling umum adalah validasi message, kompresi, dan enkripsi. Demikian pula halnya dalam proses forward. Seringkali message yang telah diambil dari database perlu dilakukan pemeriksaan / filtering sebelum diterima oleh gateway dan diteruskan ke eksternal sistem.
Apabila proses filtering diintegrasikan dalam proses forward, maka proses forward akan menjadi: 1. Core server melakukan polling ke database untuk mendapatkan uniform message. 2. Uniform message yang didapatkan oleh core server akan dimasukkan ke dalam suatu rantai filter (filter chain) yang berasosiasi dengan gateway yang akan mengirim uniform message tersebut. 3. Setelah melalui proses filtrasi, uniform message akan dikonversi ke message yang spesifik sistem eksternal oleh gateway pengirim message untuk kemudian dikirimkan ke sistem eksternal.
Agar suatu message melalui seluruh proses filtering, message yang belum di-filter menjadi input suatu filter. Output filter tersebut akan menjadi input filter selanjutnya, dan begitu seterusnya hingga seluruh filter dilalui oleh message tersebut. Mekanisme ini membentuk sebuah rantai filter atau yang sering disebut sebagai filter chain. Gambar 6 dan gambar 7 memperilhatkan proses store dan forward dengan menyertakan pemeriksaan/ filtering. Dengan mengintegrasikan proses filtering ke dalam proses store, maka proses store akan menjadi: 1. Gateway melakukan polling kepada sistem eksternal untuk mendapatkan message. 2. Message yang didapatkan oleh gateway akan dikonversi ke dalam bentuk uniform message. Proses konversi ini dilakukan oleh gateway. 3. Message yang telah dikonversi akan dimasukkan ke dalam suatu rantai filter (filter chain) yang berasosiasi dengan gateway tersebut. 4. Setelah melalui proses filtrasi, message yang telah difilter akan disimpan ke dalam database.
Gambar 7. Proses forward dengan filter
Agar setiap pesan yang telah tersimpan dalam database tidak dihapus sebelum diterima oleh sistem eksternal, maka diperlukan pengubahan prosedur pengambilan uniform message dari database. Pengubahan prosedur dilakukan pada aspek pengubahan urutan proses forward sehingga penghapusan uniform message dari database dilakukan setelah sistem eksternal menerima message tersebut. Agar core server dapat mengetahui apakah sebuah message telah diterima oleh sistem eksternal / tidak, maka diperlukan mekanisme reporting perihal delivery dari suatu message yang dikirim oleh core server ke
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta
gateway. Mekanisme ini dapat dilihat seperti pada gambar 8.
gateway dan koneksi antara core server dengan database server.
Prosedur proses forward yang telah mengalami pengubahan urutan adalah sebagai berikut: 1. Core server melakukan polling ke database untuk mendapatkan uniform message tetapi tidak menghapus uniform message tersebut dari database melainkan hanya memberikan tanda sedang diproses. Uniform message yang didapatkan oleh core server dari database tidak boleh memiliki tanda sedang diproses sebelumnya. 2. Uniform message yang didapatkan oleh core server akan dimasukkan ke dalam suatu rantai filter (filter chain) yang berasosiasi dengan gateway yang akan mengirim uniform message tersebut. 3. Setelah melalui proses filtrasi, uniform message akan dikonversi ke message yang spesifik sistem eksternal oleh gateway pengirim message untuk kemudian dikirimkan ke sistem eksternal. 4. Setelah diterima oleh sistem eksternal, gateway memberikan delivery report ke core server perihal ketersampaian message tersebut. 5. Setelah core server menerima delivery report, core server akan menghapus uniform message tersebut dari database. 6. Apabila core server menerima error dari gateway / filter chain, maka tanda sedang diproses terhadap uniform message tersebut harus dihapus dari database. Penghapusan tanda sedang diproses terhadap seluruh uniform message yang ada di dalam database dilakukan pada awal proses booting core server.
3.1. Koneksi Core Server dengan Database Server
Gambar 8. Proses forward dengan fault handling 3. INTRA COMMUNICATION Seperti yang telah disebutkan sebelumnya, salah satu permasalahan dalam desain NoteBOX saat ini adalah besar delay yang disebabkan oleh pembuatan koneksi SIP/TCP pada setiap pertukaran dan penyimpanan message. Dilihat dari arsitektur NoteBOX saat ini [Gambar 1], terdapat dua macam koneksi yang dapat direkayasa ulang. Kedua macam koneksi tersebut adalah koneksi SIP over TCP yang berlangsung antara core server dengan seluruh
Ada dua alternatif yang dapat digunakan dalam memperbaiki koneksi core server dengan database server: 1. Penggunaan connection pooling Connection pooling bekerja dengan prinsip dasar pembuatan koneksi dengan database server sebanyak mungkin sehingga banyak query yang dapat dieksekusi dalam waktu yang bersamaan yang pada akhirnya dapat meningkatkan performansi sistem. Koneksi yang telah dibuka akan dipertahankan selama mungkin untuk terbuka sehingga apabila ada query baru yang ingin dikirimkan ke database, akan digunakan koneksi yang masih terbuka dan tidak membuka koneksi baru. Pembuatan koneksi baru hanya dilakukan apabila tidak ada koneksi yang terbuka atau seluruh koneksi yang terbuka sedang sibuk. Dengan sistem ini, jumlah pembuatan koneksi akan ditekan serendah mungkin sehingga delay juga dapat ditekan serendah mungkin yang pada akhirnya dapat meningkatkan performansi sistem. 2.
Pemakaian embedded database Embedded database adalah sebuah komponen (yang dapat diintegrasikan dengan suatu aplikasi) yang memiliki fungsi yang sama dengan database server. Dengan adanya komponen ini, aplikasi tidak perlu melakukan pembuatan koneksi dengan database server dan tidak memerlukan sebuah database server yang terpisah karena embedded database adalah suatu database server yang menjadi satu dalam aplikasi. Oleh karena fungsi yang ditawarkan oleh embedded database sama dengan fungsi yang ditawarkan oleh database server, maka aplikasi tetap dapat mengeksekusi query database melalui embedded database. Dengan pemakaian embedded database, aplikasi mendapatkan advantage yang sama dengan menggunakan database server dan tidak ada lagi resource dan delay yang dibutuhkan untuk koneksi. Kelemahan solusi ini adalah database tidak dapat dishare oleh lebih dari satu aplikasi secara bersamaan.
Dalam kasus NoteBOX, lebih cocok digunakan solusi ke-2 yaitu pemakaian embedded database. Alasannya karena embedded database tidak membutuhkan resource dan delay apapun dan database pada NoteBOX digunakan secara internal / lokal sebuah aplikasi yaitu core server. Dengan digunakannya embedded database pada NoteBOX, isu-isu yang berkaitan dengan koneksi antara core server dengan database termasuk di dalamnya penurunan performansi dan keamanan menjadi tidak applicable. 3.2 Koneksi Core Server dengan Gateway Perihal koneksi core server dengan gateway, terdapat sedikitnya tiga alternatif solusi terhadap permasalahan ini:
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta
1.
2.
3.
Penggunaan connection pooling Connection pooling bekerja dengan prinsip dasar pembuatan koneksi antara core server dan gateway sebanyak mungkin sehingga banyak message yang dapat dapat dipertukarkan dalam satu waktu yang pada akhirnya dapat meningkatkan performansi sistem. Koneksi yang telah dibuka akan dipertahankan selama mungkin untuk terbuka sehingga apabila ada message baru yang ingin dipertukarkan, akan digunakan koneksi yang masih terbuka dan tidak membuka koneksi baru. Pembuatan koneksi baru hanya dilakukan apabila tidak ada koneksi yang terbuka atau seluruh koneksi yang terbuka sedang sibuk. Dengan sistem ini, jumlah pembuatan koneksi akan ditekan serendah mungkin sehingga delay juga dapat ditekan serendah mungkin yang pada akhirnya dapat meningkatkan performansi sistem. Penggantian transport protocol Pada NoteBOX saat ini, transport protocol yang digunakan adalah TCP. TCP memiliki beberapa kelemahan, salah satu di antaranya adalah TCP tidak dapat mengirimkan suatu data yang independen secara bersamaan dengan data lainnya. Salah satu protokol yang cukup populer saat ini dan dapat mengirimkan banyak data independen dalam satu waktu adalah SCTP [TCP01]. Dengan digunakannya SCTP sebagai transport protocol pada NoteBOX, dapat meningkatkan throughput pengiriman message via internet yang pada akhirnya dapat meningkatkan performansi sistem. Penyatuan antara core server dengan gateway Ide dasar solusi ini adalah dengan menyatukan core server dan gateway menjadi aplikasi yang tunggal. Oleh karena gateway sangat dinamis dalam hal jumlah dan jenis sedangkan core server hanya satu dan bertugas mengkoordinasikan seluruh gateway, hubungan antara core server dan gateway dapat dianalogikan sebagai hubungan antara aplikasi induk dengan plugin-plugin yang menempel di dalamnya. Atau dapat dianalogikan dengan hubungan antara EJB container dan enterprise beans yang terinstall di dalamnya. Dengan menerapkan solusi ini, tidak ada koneksi via internet yang dibutuhkan antara core server dan gateway sehingga isu-isu yang berkaitan dengan koneksi via internet menjadi tidak applicable. Dengan diterapkannya solusi ini, ada beberapa fungsi pada core server yang harus ditambahkan dan beberapa isu yang harus diperhatikan. Fungsi-fungsi tersebut berkaitan dengan manajemen gateway itu sendiri agar tetap dapat dinamis baik dalam hal jumlah maupun jenis. Sedangkan isu-isu tersebut berkaitan dengan manajemen memori dan thread karena core server dan gateway membagi memori dan quota thread yang sama.
olusi nomor 3 menjadi solusi yang terbaik bagi NoteBOX karena seluruh isu yang berkaitan dengan koneksi termasuk di dalamnya penurunan performansi dan keamanan dapat terselesaikan. Dengan demikian NoteBOX tidak lagi terdiri dari core server dan gateway melainkan menjadi satu aplikasi NoteBOX yang didalamnya terdapat core server dan gateway. Core server di dalam aplikasi NoteBOX berfungsi menjalankan proses store and forward dan berfungsi sebagai container bagi gateway. Sedangkan gateway berfungsi sebagai penghubung dengan sistem eksternal dan konverter dari dan ke uniform message. Arsitektur global dari NoteBOX baru diperlihatkan pada gambar 9.
External System NoteBOX Gambar 9. Arsitektur Global NoteBOX Baru Namun demikian, seperti yang telah disebutkan sebelumnya ada fungsi-fungsi tambahan yang harus ada pada core server berkaitan dengan manajemen gateway dan ada isu-isu yang harus diperhatikan berkaitan dengan resource management. Saat ini sedang dilaksanakan pengimplementasian dan uji coba performansi sistem NoteBOX yang mengakomodasikan berbagai upaya peningkatan performansi seperti dijelaskan diatas. DAFTAR REFERENSI [MAN06a]
Afwarman Manaf, M. Zuhri Catur. NoteBOX with a Unified Messaging System. International Telecommunicatios Network Strategy and Planning Symposium, New Delhi. November 2006.
[MAN06b]
Afwarman Manaf dan Muh. Zuhri, Unified Messaging System Berbasis Internet Protocol (IP) pada Jaringan Mobile, e-Indonesia Inititatives National Conference, Mei 2006,
[TCP01]
Internet Engineering Task Force. Stream Control Transmission Protocol, Request for Comments 4960. September 2007.
[JEE01]
Jennifer Ball, Debbie Carson, Ian Evans, Scott Fordin, Kim Haase, Eric Jendrock.
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta
The JavaTM 5 EE Tutorial. Microsystem, California. Juni 2006. [W3S01]
http://www.w3schools.com. 2008.
17
Sun
Januari
e-Indonesia Initiative 2008 (eII2008) Konferensi dan Temu Nasional Teknologi Informasi dan Komunikasi untuk Indonesia 21-23 Mei 2008, Jakarta