Host to Host

Apa itu Host to Host?

Istilah Host to Host atau sering disingkat H2H pada prinsipnya adalah sistem interkoneksi antara 2 pihak. Satu pihat bertindak sebagai client yang mengirim request, dan satu pihak lainnya bertindak sebagai server yang memproses request. Jadi dengan kata lain, host to host dalam sistem komputer adalah model aplikasi client-server.

Dalam server pulsa, host to host dipersempit menjadi aplikasi pengisian pulsa antara 2 pihak. Biasanya berbeda sistem. Karena ada banyak sistem yang berbeda-beda, maka harus ada interoperabilitas di antara keduanya supaya bisa berkomunikasi. Interoperabilitas ini disusun menjadi sebuah protokol dan messaging. Protokol adalah jalur transport (TCP, UDP) dan workflownya. Messaging adalah isi konten (payload) yang dikirim dan diterima.

Perlu kesepakatan antara 2 belah pihak supaya terjadi interopabilitas. Mengingat ada banyak protokol dan ada banyak format messaging. Penggunaan aplikasi chat seperti Yahoo! Messenger, WhatsApp, Gtalk/Jabber/Facebook untuk host to host adalah praktek yang kurang baik, sebab design pattern sistem transaksional sangat berbeda dengan aplikasi chat. Walaupun yang digunakan adalah protokol dan messagingnya saja, namun perlu diingat bahwa aplikasi chat memiliki banyak keterbatasan dan tidak dapat mengimplementasikan berbagai kelebihan sistem host to host.

Protokol

Biasanya protokol yang digunakan adalah HTTP dan HTTPS karena kedua protokol ini sudah matang dan mudah diimplementasikan. Ada juga yang menggunakan protokol sendiri menggunakan TCP. XMLRPC menggunakan HTTP dan HTTPS sebagai protokolnya.

Messaging

Biasanya format yang digunakan adalah XML. Seiring dengan perkembangan, juga sudah ada yang menggunakan JSON (Javascript object notation). Di luar ini ada juga ISO8583 yang digunakan oleh perbankan dan industri.

Workflow & Use Case

Use case minimal yang harus ada dalam sistem host to host adalah:

Request

Request dikirim oleh pihak client kepada pihak server berupa request isi pulsa, pembayaran pln dan lain-lain. Kemudian server memproses request tersebut dan mengirimkan respon hasilnya kepada pihak client. Status transaksi harus jelas BERHASIL atau GAGAL. Tidak boleh abu-abu.

Advice/Inquiry

Ada kalanya pada saat mengirim request ke pihak server dan server sudah memprosesnya, koneksi terputus di tengah jalan.Sehingga status transaksi tidak diketahui. Jika ada kondisi seperti itu, maka pihak client mengirim fungsi advise atau inquiry untuk mengetahui status transaksi yang dikirim berhasil atau gagal. Server tinggal mengirim status transaksinya kepada pihak client.

Dengan demikian transaksi yang statusnya tidak diketahui bisa langsung diketahui. Tidak perlu cek manual di web report atau menghubungi customer service.

Result

Dalam kasus tertentu, proses transaksi bisa memakan waktu lebih lama (di atas 30 detik). Jika client harus menunggu status transaksi, tentu antrian akan menumpuk. Untuk mengatasinya, client dapat mengirim request tanpa harus menunggu hasilnya. Hasil transaksi dikirim oleh pihak server kepada pihak client melalui HTTP atau HTTPS.

Dengan demikian, tidak ada antrian yang menumpuk pada sisi client. Dan client tidak perlu mengecek status transaksi satu-persatu di web report.

Supaya hal ini bisa bekerja dengan baik, pihak client perlu memiliki nama domain atau IP statik. Sehingga server dapat mengirim result langsung kepada pihak client. URL untuk menerima result tersebut didaftarkan kepada pihak server.

Untuk client yang menggunakan koneksi internet tanpa IP statik atau berada di belakang router, hal ini dapat diatasi dengan menggunakan Port Forwarding, selama IP statik tersebut adalah IP Publik (dapat diakases dari internet). Namun jika Port Forwarding tidak memungkinkan karena ISP tidak memberikan IP Publik, maka solusi paling baik adalah menggunakan VPN.

Sayangnya jarang sekali pengguna yang mengimplementasikan fungsi ini. Mayoritas tidak mau memahami dan menganggap fungsi ini justru merepotkan. Mereka lebih suka transaksi langsung muncul serial number. Sehingga lebih suka tumpukan antrian yang panjang, cek web report satu persatu dan kontak customer service minta dicek.

Padahal ada yang lebih mudah dan otomatis, tapi mayoritas orang memilih yang lebih repot.

Balance

Fungsi balance adalah mengetahui saldo terakhir pihak client. Sehingga jika saldo sudah mencapai minimum, client dapat mengantisipasinya dengan menambah saldo di pihak server.

Product

Fungsi product adalah mengetahui harga dan status produk. Sehingga jika ada perubahan status produk menjadi offline atau online, pihak client dapat mengalihkan produk tersebut. Jika ada perubahan harga, pihak client dapat menyesuaikan harganya di sistem.

Penutup

Kami di Sandiloka telah mengimplementasikan sistem host to host untuk berbagai macam client. Tidak hanya membuat aplikasinya, tapi juga menyediakan infrastrukturnya. Salah satunya VPN yang sudah teruji keamanan dan reliabilitasnya. Jika Anda tertarik untuk menggunakan solusi kami, silakan hubungi kami.

 

Tagged:

One Comment

Leave a Reply