Friday 3 October 2014

Implementasi Menggunakan jPOS

Setelah kita mengetahui apa itu library jPOS, sekarang bagaimana penggunaan-nya secara nyata ? Pada bab kali ini, kita akan menulis ulang spesifikasi Network Management yang sebelum-nya sudah di implementasikan menggunakan Socket biasa. Nah untuk memulai-nya ada beberapa persiapan yang harus kita lakukan yaitu :

  • Persiapan Project
  • Pembuatan Aplikasi Server
  • Pembuatan Aplikasi Client


Persiapan Project

Sebagai langkah awal, tambahkanlah dahulu 2 buah library yaitu jdom-1.0.jar dan jpos.jar yang dapat diambil dari direktori jpos (yang bisa kita download melalui subversion) kedalam project. Setelah itu, buatlah 1 buah direktori dengan nama packager didalam direktori project dan pastekan kedua file dibawah ini :





Jika sudah, harusnya tampilan dari NetBeans akan tampak seperti gambar dibawah ini :





Pembuatan Aplikasi Server

Sekarang buatlah sebuah class baru dan beri nama JPosServer dan simpan pada package id.web.martinusadyh.iso8583.jpos. Karena kita menggunakan library jPOS, maka implementasi Server kita tidak serumit yang pertama :) Dan inilah implementasi server kita yang menggunakan library jPOS :



Melihat perbedaan antara penulisan menggunakan library jPOS dengan menggunakan Socket biasa ??? Jika belum, mari kita lihat bagaimana implementasi untuk client-nya :)


Pembuatan Aplikasi Client

Pembuatan aplikasi untuk client-nya pun tidak begitu susah :) , sekarang buatlah sebuah class baru dengan nama JPosClient dan simpan pada package id.web.martinusadyh.iso8583.jpos. Setelah itu, pastekan kode dibawah ini :



Bagaimana tidak susah bukan ? Kode kita terlihat makin sederhana :) Nah jika sudah, sekarang coba lakukan proses Clean and Build dan jalankanlah JPosServer hingga muncul tampilan seperti dibawah ini :
run:
Server siap menerima koneksi pada port [12345]
Jika sudah menjumpai tampilan seperti diatas, sekarang jalankanlah aplikasi client-nya yaitu JPosClient. Jika tidak ada pesan kesalahan, maka kita akan melihat tampilan seperti dibawah ini pada sisi client :
run:
Req [1800A2380000000100000400000000000000123456201011090000010257411109029Tutorial ISO 8583 Dengan Java001]
Res [1810A2380000020100000400000000000000123456201011090000010257411109000029Tutorial ISO 8583 Dengan Java001]
Dan tampilan seperti ini pada sisi server :
run:
Server siap menerima koneksi pada port [12345]
Server menerima koneksi dari [127.0.0.1]
Accepting Network Management Request
Sekarang cobalah secara bergantian jalankan server yang menggunakan class ServerSocket biasa dengan client yang menggunakan library jPOS. Begitu juga sebaliknya, client dari class Socket dan server yang menggunakan library jPOS. Seharus-nya sudah tidak ada masalah lagi :)

18 comments:

  1. Replies
    1. "ISO 8583 ini adalah sebuah standart internasional untuk transaksi finansial. Dan standart atau protokol ini sudah sejak lama digunakan oleh perbankan untuk menjembatani komunikasi-nya (walaupun tidak menutup kemungkinan pihak selain bank menggunakan protokol ISO 8583), dengan adanya sebuah standart komunikasi seperti ini maka tidak menutup kemungkinan transaksi dapat tetap dilakukan antar pihak yang terkait walaupun menggunakan sistem atau bahasa pemrograman yang berbeda."

      Sudah dijelaskan di bab pendahuluan di depan sini[1]

      [1] http://iso8583tutorial.blogspot.com/2014/09/pendahuluan.html

      Delete
  2. Pak Martin ,
    terimakasih tutorialnya sangat membantu , tetapi kalau diimplementasikan di servlet kenapa file iso87ascii.xml nilai variabel ist null ya (InputStream ist = ClassLoader.getSystemResourceAsStream("packager/iso87ascii.xml")) .

    Sebaiknya file tersebut ditaruh dimana . Saya menggunakan netbean 7.2.1

    ReplyDelete
    Replies
    1. Klo pengalaman dulu, jika mo pake servlet. Maka file generic packager-nya bukan xml, melainkan dibuatkan sebuah class :)

      Delete
  3. Solved pak ,
    Setelah di coba ternyata dua file tsb (iso87ascii.xml dan dtd) di copy ke C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.27\bin\packager

    ReplyDelete
    Replies
    1. Klo saran saya, sebaiknya jangan seperti itu pak (ga standart dan mengotori direktori tomcat). Btw kenapa ga dibuat jadi class saja ?

      Delete
  4. ISOMux sekarang untuk Jpos versi 1.9.0 sudah tidak ada.
    Bisa tolong kasih tutorial untuk pengganti ISOMux jadi MUX atau QMux ?

    ReplyDelete
    Replies
    1. Ok pak, saya akan coba buatkan tutorial-nya kalau waktu sudah agak senggang ya pak.

      Delete
    2. Bagi yang masih menggunakan ISOMux dari milist nya JPOS memang disarankan untuk include library compatible (compat_1.5.2_x.x.x.jar)..

      btw blog ini sangat membantu, kebetulan pas lagi dapet proyek ISO8583.. thanks pak Martinus Ady :D

      Delete
  5. Thanks so much for this illustration

    ReplyDelete
  6. saya mau belajar, tapi setelh saya download jpos nya, koq nggak ada jpos.jar nya ya?
    versi jpos berapa pak, mohon bantuanya, kalau ada link linya bisa kh saya di kasih untuk mendpatkan jpos.jar nya
    terakhir saya download dr jpos.org
    terimakasih

    ReplyDelete
  7. iso 8583 dalam perancngan mobile payment berrti library dan mngenai iso 8583 diimplemntasikan pada webserver gateway, sedangkan pada aplikasi mobilenya implemntasi iso 8583 dibagian mnanya? masih rada bingun

    ReplyDelete
  8. Pak kalau pakai bahasa python bisa tidak? Kalau ada boleh tau referensinya?

    ReplyDelete
    Replies
    1. Terus terang saya blm pernah mainan pake python, tapi ketika search di google ada library ISO8583 untuk python disini[1]

      [1] https://pypi.python.org/pypi/ISO8583-Module/

      Delete
  9. This comment has been removed by the author.

    ReplyDelete
  10. cara merundown message request dan response gimana ya Mas ?

    misalkah hasilnya gini:

    DE2 = 16123456789012345
    DE7 = 123456
    ...dan seterusnya

    mohon pencerahan

    ReplyDelete
  11. apakah jpos ini support untuk konversi multiple ISO yg datang dalam 1 request?

    ReplyDelete