Friday 3 October 2014

Referensi

Dibawah ini adalah referensi-referensi yang penulis gunakan ketika menyusun buku ini, semoga bisa menjadi bahan referensi jika tulisan saya dirasa masih membingungkan.
  1. Secondary Bitmap in jPOS
  2. Bit and Byte Conversion
  3. Wikipedia ISO 8583
  4. Introduction to ISO 8583
  5. Wikipedia Hexadecimal

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

Pengenalan jPOS

Pada bab-bab awal implementasi, kita menggunakan class ServerSocket dan Socket dimana untuk melakukan parsing harus kita lakukan secara manual satu-persatu. Beruntunglah kita sebagai programmer Java :) , karena di bahasa pemrograman Java terdapat 1 library yang cukup bagus yaitu jPOS. Meskipun library jPOS ini opensource, tapi untuk dokumentasi-nya (jPOS Programmer’s Guide) kita diharuskan membeli sebesar $ 50 saja (sebuah harga yang tidak terlalu mahal bukan ?) :) Sedangkan untuk source code jPOS sendiri, bisa kita download menggunakan anonymous subversion pada alamathttps://jpos.svn.sourceforge.net/svnroot/jpos (untuk pengembangan menggunakan library jPOS, sangat dianjurkan untuk mendownload source code ini sebagai bahan referensi)
Apasih kelebihan dari library jPOS ini ? Yang jelas adalah, library ini memangkas semua proses manual yang harus kita lakukan ketika kita menggunakan Socket biasa. Selain itu, jPOS juga mendukung beberapa protokol-protokol yang biasa digunakan dalam implementasi ISO 8583. Untuk dapat menggunakan jpos ada beberapa hal dasar yang harus kita ketahui yaitu :
  • ISOPackager
  • ISOChannel
  • ISOServer Dan ISOMUX
  • ISOMsg


Implementasi Menggunakan Java

Nah setelah kita mengetahui format message ISO 8583, sekarang bagaimana meng-implementasikan-nya pada bahasa pemrograman Java ? Sebelum kita menulis kode, yang harus kita lakukan pertama kali yaitu adalah menyusun spesifikasi yang akan kita gunakan untuk berkomunikasi. Pada kenyataan-nya, spesifikasi ini sangat penting peranan-nya dan ada kemungkin tiap vendor mempunyai spesifikasi yang berbedaantara satu dengan yang lain. Sebagai catatan, perhatikan betul-betul spesifikasi yang sudah disepakati bersama. Dan sekarang, bagaimanakah cara membuat sebuah spesifikasi untuk message ISO 8583 dan implementasi-nya pada bahasa pemrograman Java akan kita bahas pada bab-bab dibawah ini :
  • Pembuatan Spesifikasi Message Network Management
  • Pembuatan Aplikasi Server
  • Pembuatan Aplikasi Client
  • Testing


Pembuatan Spesifikasi Message Network Management


Agar komunikasi antara server dan client dapat berjalan dengan sukses, maka diperlukan sebuah kesepakatan yang harus ditaati oleh kedua belah pihak. Beberapa persyaratan tersebut yaitu mencakup tentang :
  1. Message Protokol, protokol yang akan digunakan dalam contoh kasus ini adalah ISO 8583:1993 yang ditandai dengan angka 1 (satu) pada MTI (Message Type Indicator).
  2. Connection Type, mode koneksi yang akan digunakan adalah mode connection-oriented dimana client membuka koneksi ke server sekali dan mengirimkan banyak message (connect once -> many transaction)
  3. Message System, untuk seluruh message yang dikirimkan ke server harus menggunakan 4 bit header sebagai penanda panjang message yang dikirimkan
Dan dibawah ini adalah format message Network Management Request/Response :
  1. NETWORK MANAGEMENT REQUEST
    1. Message Type Identifier : 1800
    2. Sender : Client
    3. Purpose : Request network management action to Server
    4. Data ElementNameSubfieldTypeLengthFormatDescription
      MTIN4For request use 1800
      1BitmapH16Use field = 3,7,11,12,13,48 and 70
      3Processing CodeN6Default set to 000001
      7Transmission Date and TimeN8yyyyMMddTransmission Date and Time
      11System Trace Audit NumberN6zero-left-paddingUnique number from client
      12Local time transactionN6HHmmssTransaction time from client
      13Date local transactionN4mmddDate transaction from client
      48Additional Private DataN3zero-left-paddingLenght of Additional Private Data
      48Additional Private DataClientIDN7zero-left-paddingClient identification number
      70Network Information CodeN3001=sign-on, 002=sign-off, 003=echo-test
  2. NETWORK MANAGEMENT RESPONSE
    1. Message Type Identifier : 1810
    2. Sender : Server
    3. Purpose : Response network management action for Client
    4. Data ElementNameSubfieldTypeLengthFormatDescription
      MTIN4For request use 1800
      1BitmapH16Use field = 3,7,11,12,13,39,48 and 70
      3Processing CodeN6Default set to 000001
      7Transmission Date and TimeN8yyyyMMddTransmission Date and Time
      11System Trace Audit NumberN6zero-left-paddingUnique number from client
      12Local time transactionN6HHmmssTransaction time from client
      13Date local transactionN4mmddDate transaction from client
      39Response CodeN3Available Response Code :

      1. 000 = Successfull
      2. 001 = Timeout from Server
      3. 002 = Invalid Network Information Code
      4. 003 = Invalid Processing Code
      48Additional Private DataN3zero-left-paddingLenght of Additional Private Data
      48Additional Private DataClientIDN7zero-left-paddingClient identification number
      70Network Information CodeN3001=sign-on, 002=sign-off, 003=echo-test

Pembuatan spesifikasi untuk message Network Management sudah selesai, sekarang mari kita implementasikan dengan membuat sebuah aplikasi server-nya dahulu.