Bukan Tutorial JPOS (ISO 8583)

Bismillah.

Disklamasi

Sesuai judul posting, tulisan ini bukan tutorial JPOS, melainkan pengalaman saya menggunakan jpos (project log). Jadi jangan terlalu banyak berharap tulisan ini akan membantu Anda memecahkan masalah yang Anda hadapi. Untuk itulah Anda dibayar Boss Anda bukan? Wkwkwkw…

jpos

Pendahuluan

Menggunakan JPOS adalah salah satu tantangan terberat yang pernah saya hadapi di dunia perkodingan. Minimnya resource tentang JPOS (baik dalam bahasa Inggris maupun Indonesia) masih diperparah dengan kenyataan bahwa tutorial-tutorial JPOS yang tersedia hanya membahas satu tipe instalasi JPOS saja. Tutorial-tutorial tersebut masih belum menunjukkan kekuatan sebenarnya dari JPOS. Mungkin saja karena tutorial-tutorial tersebut ditulis ketika JPOS masih dalam versi awal. Untuk itulah tulisan ini ingin menunjukkan bahwa fitur yang ditawarkan JPOS sebenarnya sangat luar biasa. Kombinasinya bisa dikatakan endless.

Mengapa kita perlu mengetahui kelengkapan fitur JPOS? Ada dua alasan utama. Pertama, aplikasi ISo8583 diharapkan dapat mengantisipasi load yang tinggi. Tuning JPOS untuk mendapatkan TPS (Transaction per Second) yang tinggi, jelas tidak datang dari konfigurasi standar. Kedua, tidak setiap kondisi di mana JPOS digunakan, dapat dipecahkan dengan solusi konfigurasi yang standar. Pengalaman saya menggunakan JPOS untuk menghubungkan sebuah database korporasi dengan salah satu institusi keuangan, justru mengharuskan sebuah konfigurasi JPOS di luar konfigurasi umum.

Meskipun tulisan ini tidak merinci seluruh fitur-fitur kelengkapan JPOS (karena kombinasinya luar biasa banyaknya), tetapi tulisan ini ingin setidaknya mengenalkan logika dasar penggunaan JPOS. Untuk penyelesaian akhir aplikasi ISO8583 yang sedang Anda bangun, Anda bisa merujuk pada Guide yang disediakan JPOS ataupun melalui milis user jpos. Hati-hati! Jangan kaget bila ada senior-senior di milis yang akan membalas pertanyaan Anda dengan sinis dan nyinyir.

Berikut ini adalah susunan tulisan bukan tutorial JPOS ini:

  1. Lisensi
  2. ISO 8583
  3. Kompilasi JPOS
  4. JPOS sebagai Aplikasi
  5. JPOS sebagai Framework
  6. Packager
  7. Menghubungkan JPOS dengan Database
  8. Referensi Lain yang Menarik

Lisensi

Meskipun JPOS dirilis di bawah lisensi Open Source, tetapi (entah bagaimana, saya bukan orang hukum) penggunaan JPOS untuk kegiatan komersial diharuskan menggunakan lisensi komersial. Apakah ini jebakan betmen? Hehehe.. entahlah. Padahal sangat kecil kemungkinan (atau bahkan mustahil?) ada aplikasi ISO 8583 yang tidak bertujuan komersial.

Sisi baiknya, dengan lisensi JPOS yang Open Source itu , kita bisa menggunakan (baca: mengkonfigurasikan) JPOS terlebih dahulu, baru membeli lisensinya. Jadi kita tidak membeli kucing dalam karung seperti ketika membeli aplikasi komersial biasa. Bahkan JPOS jauh lebih baik dari aplikasi yang memberikan demo atau trial, karena JPOS sudah memberikan aplikasi full feature sejak awal. Kita bebas menggunakannya sampai pada titik ketika aplikasi tersebut berjalan secara komersial, kita disyaratkan untuk memiliki lisensi komersial dari JPOS.

ISO 8583

ISO 8583 adalah sebuah protokol komunikasi antarhost yang dirancang khusus untuk kebutuhan payment. Anda dapat mempelajari ISO 8583 dari berbagai sumber kemudian kembali ke halaman ini untuk melanjutkan (bukan) tutorial JPOS.

Berikut beberapa link yang mungkin bisa membantu:

  1. Wikipedia page ttg ISO 8583
  2. An Introduction to ISO 8583 oleh kuriositaet.de
  3. Ebook ttg ISO 8583 oleh mas amyunus
  4. Pengenalan ISO 8583 oleh Bayu Rimba

Kompilasi JPOS

Kode sumber JPOS selalu tersedia terbuka. Dulu kode sumber ini disediakan di sourceforge. Sejak versi xx, kode sumber JPOS disediakan di github. Untuk dapat menggunakan JPOS, kita harus meng-compile kode sumber ini menjadi sebuah file JAR. Ada berbagai cara mengkompilasi JPOS menjadi JAR. Untuk amannya, ikutilah petunjuk di file README.md di dalam JPOS.

  1. Kompilasi Quick and Dirty.
    Cara kompilasi ini bisa ditempuh dalam keadaan terdesak 😀 Caranya adalah dengan menzip direktori JPOS dan me-rename-nya menjadi JPOS.jar. Belum saya coba! Cuman denger dari temen master Java. (Untested)
  2. Kompilasi dengan Maven dan/atau Gradle
  3. Download saja dari saya
    Opsi terakhir, jika Anda merasa kerepotan dengan urusan kompail-mengompail ini, silakan unduh saja file JAR hasil kompilasian saya.

jpos-1.8.9-SNAPSHOT (796,6 Kb)

jpos-1.9.5-SNAPSHOT (825 Kb)

atau download sendiri nightly build dari http://jpos.org/maven/ (direktori: org/jpos/jpos/x.x.x-SNAPSHOT/)

 

JPOS sebagai Aplikasi

Oke, setelah memiliki file jar JPOS, selanjutnya kita akan mulai dengan skenario paling sederhana, yaitu langsung menggunakan JPOS sebagai aplikasi. Keuntungan metode ini adalah kita tidak perlu melakukan programmning, cukup dengan mengedit file konfigurasi saja. Di dalam coding aplikasi berbasis JPOS, bisa dikominasikan dengan konfigurasi QBean. Pembahasan lebih lanjut akan dituangkan dalam postingan terpisah.

Project Guide jpos terbaru justru menyarankan kita menggunakan metode ini.

JPOS sebagai Framework

Selain menggunakan JPOS sebagai aplikasi, kita juga bisa menggunakan JPOS sebagai framework. Keuntungan metode ini adalah kita dapat mensetting/memprogram aplikasi ISO 8583 dengan cara yang fleksibel sesuai dengan keinginan kita. Seluruh perilaku aplikasi bisa kita kendalikan sepenuhnya. Kita dapat mengkonfigurasi koneksi, logika pemrograman, ISO package, ISO message, dst. Hal ini sangat kita perlukan jika requirement dari user maupun lingkungan menuntut adanya fitur khusus dari aplikasi kita (haduh.. belibet bener bahasanya, mudah-mudahan yang baca ngerti ya). Pembahasan lebih lanjut akan dituangkan dalam postingan terpisah, Insya Allah.

Sebagai gambaran singkat, penggunaan jPOS sebagai ISO Server adalah solusi terpopuler. Tetapi saya pernah juga mendapati requirement dari bank agar jPOS sebagai pensuplai data ditempatkan sebagai client (nah lho!).

Packager

Jpos belum bisa berjalan tanpa konfigurasi packager data. Ada banyak Packager yang sudah preload di jpos, tinggal pilih. Yaitu:

  1. XML Packager
  2. ISO 87A Packager
  3. ISO 87A Packager BBitmap
  4. ISO 87B Packager
  5. ISO 93A Packager
  6. ISO 93B Packager

Kita juga bisa membuat Packager sendiri, jpos menyediakan class Generic Packager untuk menggunakan packager buatan sendiri.

Menghubungkan JPOS dengan Database

Agar JPOS dapat memberikan data yang diperlukan oleh host, maka kita perlu mengambil data yang diminta oleh host dari database kita. Nah ini urusannya agak panjang, karena database bisa bermacam-macam platform.

Pembahasan lebih lanjut akan dituangkan dalam postingan terpisah, Insya Allah. Namun secara singkat, saya banyak terbantu dengan adanya JDBC driver. Ada banyak database yang bisa diakses menggunakan JDBC, antara lain:

  1. MySQL (JDBC Driver),
  2. PostgreSQL (JDBC Driver),
  3. MS SQL Server (JDBC Driver),
  4. dan lain-lain.

Saya sendiri menggunakan Oracle JDBC Driver versi 6.

Referensi Lain yang Menarik

Uulasan di atas masih membicarakan seputar dasar-dasar jpos, masih ada banyak hal lain yang dapat dibangun menggunakan jpos. Beberapa sumber telah mengulas hal-hal menarik dan berguna seputar jpos.  Sementara ini saya list dulu saja yha..

  1. Membuat jPOS client dengan jpos-template
  2. Step-by-Step Membangun jPOS ISO Server dengan Netbeans
  3. jpos javadoc (Very Useful! Terutama ketika mencari method suatu Class jpos)
  4. Me-log message ISO 8583 dengan log4j

Jika Anda menemukan referensi jpos yang menarik, silakan tambahkan melalui kotak komentar ya!

Penutup

Apa yang ingin saya katakan di penutup tulisan ini mungkin tidak relevan dengan isi tulisan. Namun saya merasa hal tersebut cukup sangat penting untuk diketahui. Perlu diingat bahwa bank adalah sumber aktivitas ribawi, sebuah dosa yang tidak ditolerir di berbagai agama. Sebagai programmer jpos, saya harap kita dapat memilah mana bentuk kerja sama dengan bank yang terlarang dan mana yang masih dalam kategori diperbolehkan.

Mudah-mudahan tulisan ini bermanfaat.

Categories: A little bit Techie

  • Galih

    mas saya kebeneran lagi belajar soal jpos, bisa kasih point” ga soal tuning jpos biar dapet tps yang lebih besar, konfigurasi yang kaya gimana yg bisa bikin tps lebih besar, di hardware maupun di softwarenya, makasih banyak buat sharing knowledge nya 🙂

    • Saya belum pernah tune up utk tps tinggi mas. Masih di bawah 100 TPS. Saya lebih ngejar reliabel, karena pernah punya pengalaman putus koneksi. Yang dibutuhkan tps berapa gan?

  • Syukron

    jPOS Suapaya bisa berjalan di eclipse gimana ya gan.?

    • Saya belum pernah pake eclipse gan 😛

  • tyo

    ternyata setelah download dari website resmi jpos harus di kompail lagi ya..? pantes saya langsung add Jar gak bisa. pas download dari sini baru bisa.. maklum masih belajar gan.. terimakasih pencerahannya.

    • Iya gan.. dan ngompailnya itu beda2 tiap versi, ada yg pake gradle, ada yg pake maven. Rempong dah.. Di atas juga udah ane cantumin link ke jar nightly build dari jposnya sendiri kok.

  • tyo

    iya thx bgd.. sory ni banyak tanya masih di bangku sekolah ni…

  • tyo

    gan ane mau tanya ni. setelah ngikutin dari yang agan kasi di Step-by-Step Membangun jPOS ISO Server dengan Netbeans. sudah sampai menetapkan main class tapi pas ane isi main classnya gk bisa ya.. knp gan? mohon pencerahan..

    • Kalo di link tsb, dia pake pendekatan qpos gan. Makanya main class nya harus merujuk ke org.jpos.q2.Q2. itu karena dia pake jpos versi 1.6.6. Kalo pake versi yang ane share (1.8.9 atau 1.9.5), main class q2 nya kayaknya beda.. ntar ane nanti liat dulu yha.. ^_^

  • tyo

    ooh gtu ya gann.. thx gann. ngebantu banget..

    • Mas, itu class nya masih sama kok. Coba dicek di Netbeans nya udah include lib jpos belum?

  • wew.. ada Blog gw disitu 😀
    gw jg share ttg pengalaman tutorial sederhana coding pakai jpos (bukan advance ya gan)

    • Sip mantab gan!

  • oiya sekedar info, library utk iso8583 yang free, coba cari: nucleus8583
    made in indonesia gan

    • Ntar ane coba gan, ini lagi seneng banget sama jpos. Milisnya itu lho.. responsif banget. Banyak member dari Indonesia juga. Awal2 emang diplonco abis, sekarang udah ketemu selahnya. Indonesia mustinya juga bisa buat yang lebih bagus. Ini jpos codingnya gak banyak, tapi uangnya ngalir bertahun2..

      • konsep dan ide itu harganya mahal
        coding mah bisa dipelajari (y)

  • awik

    gan kalo koneksi dengan bank apakah menggunakan ip public atau harus menggunakan vsat
    share pengalaman nya saja gan,
    tengkyu

    • Pake koneksi host to host gan.