IMPLEMENTASI KOMUNIKASI ANTAR SERVER PADA BISNIS PULSA ELEKTRIK MENGGUNAKAN ZEROMQ Penyusun: Yudha Ari Sasongko 5107100606 Pembimbing: Wahyu Suadi, S.Kom, M.Kom
Latar Belakang
Stok Jabar
Supplier/Server Region Jabar
Pengguna Region Jatim
Stok Jatim
Operator
Latar Belakang (Cont.)
Batasan Masalah • Komunikasi mencakup kirim data transaksi sampai terima balasan status pemrosesan • Pengiriman data transaksi pada operator diasumsikan berhasil • Operator Telkomsel – Simpati • OS Ubuntu Desktop 9.04 • Database server MySQL • C++ untuk aplikasi server • Java untuk aplikasi client
ZeroMQ • Implementasi dari lightweight messaging • Cepat • Efisien
ZeroMQ – Distributed Broker
Desain Sistem
Desain Sistem – Aplikasi Server
Desain Sistem – Aplikasi Client
Implementasi & Uji Fungsionalitas • local PC (localhost) • Spesifikasi Hardware – – – –
Prosesor Intel Pentium 4 1,8GHz Memory DDR 512 MB Hard Disk 40 GB Broadcom NetXtreme Gigabit Ethernet
• Spesifikasi Software – – – – –
Gcc versi 4.3 → Aplikasi Server JDK versi 1.6 → Aplikasi Client MySQL 5.0.75 → Aplikasi Client ZeroMQ versi 1.0.1 Ubuntu Desktop 9.04
Implementasi & Uji Fungsionalitas (Cont.) • Koneksi Aplikasi Server pada ZeroMQ
Implementasi & Uji Fungsionalitas (Cont.) • Koneksi Aplikasi Client pada Database
• Koneksi Aplikasi Client pada ZeroMQ Server dan Aplikasi Server
Implementasi & Uji Fungsionalitas (Cont.) • Select Data Transaksi
• Kirim Data Transaksi pada Aplikasi Server
Implementasi & Uji Fungsionalitas (Cont.) • Update Data Transaksi pada Database
• Terima Pesan Data Transaksi Baru dari Aplikasi Client
Implementasi & Uji Fungsionalitas (Cont.) • Terima Pesan Balasan Status Pemrosesan dari Aplikasi Client
• Kirim Pesan pada Aplikasi Client
Implementasi & Uji Fungsionalitas (Cont.) • Kirim Balasan Status Pemrosesan Data Transaksi
• Terima Balasan Status Pemrosesan Data Transaksi
Uji Performa • Intranet point-to-point dengan kabel UTP cross (tanpa switch) • Aplikasi Server – – – – – – –
Prosesor Intel Pentium 4 1,8GHz Memory DDR 512 MB Hard Disk 40 GB Broadcom NetXtreme Gigabit Ethernet Gcc versi 4.3 Ubuntu Desktop 9.04 IP Address 192.168.1.113
Uji Performa (Cont.) • Aplikasi Client – Notebook MSI Mega Book S420 • Prosesor Intel Core 2 Duo T5500 1,66 GHz • Memory DDR2-667 2.976 MB • Realtek RTL8139/810x Family Fast Ethernet NIC
– Gcc versi 4.3 – Ubuntu Desktop 9.04 – VMWare Workstation ACE Edition versi 6.0.0 • Hard Disk 8 GB • Memory 512 MB
– IP Address 192.168.1.112
Uji Performa (Cont.) • Skenario I & II Uji Average Latency
• Skenario I & II Uji Average Throughput
Uji Performa (Cont.) • Skenario III Uji Average Latency
• Skenario III & IV Uji Average Throughput
Uji Performa (Cont.)
Skenario I
Skenario II
Skenario III
Skenario IV
<JABODETABEK> <JATIM><10><0 81331212112>< 1234>
<JABODETABEK> <JATIM><10><0 81331212112>< 1234>
<JABODETABEK> <JATIM><10><0 81331212112>< 1234>
Pesan yang dikirim
test
Jumlah Pengiriman
1.000, 2.000, 3.000 . . . 10.000 kali
Jumlah Client
1
1
1.000 kali 3
1, 3, 5, . . . 15
Uji Performa (Cont.) • Hasil Uji Coba Average Latency Skenario I n-kirim
Average Latency (microseconds)
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000
Average Latency (µs) socket linux zeromq 196,69 291,43 184,96 275,74 181,55 273,07 175,79 266,83 179,86 268,09 176,49 267,37 174,04 266,33 177,03 265,90 173,82 266,11 173,34 265,84
Δ -48,17% -49,08% -50,41% -51,79% -49,05% -51,49% -53,03% -50,20% -53,10% -53,36%
350 300 250 200 150
zeromq socket linux
100 50
0
Roundtrip Count
Uji Performa (Cont.) • Hasil Uji Coba Average Throughput Skenario I Average Throughput (msg/s) socket linux zeromq 5.466 4.942.689 13.046 4.777.895 16.479 4.929.962 28.423 4.940.341 369.408 4.865.876 42.228 4.649.674 41.943 3.555.167 44.019 3.185.234 47.125 3.527.884 410.426 2.476.964
n-kirim
90.326,07% 36.523,45% 29.816,63% 17.281,49% 1.217,21% 10.910,88% 8.376,19% 7.136,04% 7.386,23% 503,51%
6,000,000 5,000,000 4,000,000
3,000,000
zeromq socket linux
2,000,000 1,000,000
Roundtrip Count
10,000
9,000
8,000
7,000
6,000
5,000
4,000
3,000
2,000
0 1,000
Average Throughput (msg/s)
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000
Δ
Uji Performa (Cont.) • Hasil Uji Coba Average Latency Skenario II n-kirim
Average Latency (microseconds)
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000
Average Latency (µs) socket linux zeromq 194,29 303,53 186,39 288,66 182,94 284,69 179,71 282,88 178,08 282,30 177,62 281,56 177,36 279,52 175,25 280,14 187,41 279,18 177,47 295,70
Δ -56,23% -54,87% -55,62% -57,41% -58,52% -58,52% -57,60% -59,85% -48,97% -66,62%
350 300 250 200 150
zeromq socket linux
100 50
0
Roundtrip Count
Uji Performa (Cont.) • Hasil Uji Coba Average Throughput Skenario II Average Throughput (msg/s) socket linux zeromq 4.525 2.620.967 9.612 1.914.359 12.834 522.235 22.389 883.043 383.322 313.736 40.167 345.247 34.374 323.011 31.459 267.225 51.934 253.171 114.846 276.265
n-kirim
57.821,92% 19.816,34% 3.969,15% 3.844,09% -18,15% 759,53% 839,70% 749,44% 387,49% 140,55%
3,000,000 2,500,000 2,000,000
1,500,000
zeromq socket linux
1,000,000 500,000
Roundtrip Count
10,000
9,000
8,000
7,000
6,000
5,000
4,000
3,000
2,000
0 1,000
Average Throughput (msg/s)
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000
Δ
Uji Performa (Cont.) • Hasil Uji Coba Average Latency Skenario III n-kirim
Average Latency (microseconds)
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000
Average Latency (µs) socket linux zeromq 315,78 14,29 301,05 10,63 296,32 8,62 298,26 9,27 294,34 8,36 296,42 9,08 290,75 9,02 293,08 9,52 293,03 10,36 294,41 9,74
Δ 95,47% 96,47% 97,09% 96,89% 97,16% 96,94% 96,90% 96,75% 96,46% 96,69%
350 300 250 200 150
zeromq socket linux
100 50
0
Roundtrip Count
Uji Performa (Cont.) • Hasil Uji Coba Average Throughput Skenario III Average Throughput (msg/s) socket linux zeromq 6.272 2.309.518 13.205 1.561.994 13.517 452.518 17.941 565.695 381.510 229.190 220.206 180.730 42.362 162.360 231.439 167.995 290.477 158.041 338.988 173.927
n-kirim
36.722,67% 11.728,81% 3.247,77% 3.053,09% -39,93% -17,93% 283,27% -27,41% -45,59% -48,69%
2,500,000 2,000,000 1,500,000
zeromq socket linux
1,000,000 500,000
Roundtrip Count
10,000
9,000
8,000
7,000
6,000
5,000
4,000
3,000
2,000
0 1,000
Average Throughput (msg/s)
1.000 2.000 3.000 4.000 5.000 6.000 7.000 8.000 9.000 10.000
Δ
Uji Performa (Cont.) • Hasil Uji Coba Average Throughput Skenario III n-client
Average Throughput (msg/s)
1 3 5 7 9 11 13 15
Average Throughput (msg/s) socket linux zeromq 4.525 2.620.967 6.272 2.309.518 9.585 2.194.740 5.998 2.009.021 5.466 2.020.026 92.172 1.342.698 6.576 1.458.435 40.394 1.806.683
Δ 57.821,92% 36.722,67% 22.797,65% 33.394,85% 36.856,20% 1.356,73% 22.078,15% 4.372,65%
3,000,000
2,500,000 2,000,000 1,500,000
zeromq socket linux
1,000,000 500,000 0 1
3
5
7
9
11 13 15
Client Count
Kesimpulan • Telah diimplementasikan satu aplikasi bisnis pulsa elektrik dengan menggunakan ZeroMQ. • Pengujian menunjukkan kinerja latency ZeroMQ dengan satu client tidak lebih baik dari pada socket linux, dan lebih baik dengan lebih dari satu client. • Dengan satu client atau lebih kinerja throughput ZeroMQ lebih baik dari socket linux.