Dibawah ini adalah referensi-referensi yang penulis gunakan ketika menyusun buku ini, semoga bisa menjadi bahan referensi jika tulisan saya dirasa masih membingungkan.
All information about ISO 8583 including tutorial, example and library. Including Java, PHP, Python, etc
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
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 :
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 :
- 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 :
- 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).
- 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)
- 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 :
- NETWORK MANAGEMENT REQUEST
- Message Type Identifier : 1800
- Sender : Client
- Purpose : Request network management action to Server
- NETWORK MANAGEMENT RESPONSE
- Message Type Identifier : 1810
- Sender : Server
- Purpose : Response network management action for Client
- 000 = Successfull
- 001 = Timeout from Server
- 002 = Invalid Network Information Code
- 003 = Invalid Processing Code
Data Element | Name | Subfield | Type | Length | Format | Description |
---|---|---|---|---|---|---|
MTI | N | 4 | For request use 1800 | |||
1 | Bitmap | H | 16 | Use field = 3,7,11,12,13,48 and 70 | ||
3 | Processing Code | N | 6 | Default set to 000001 | ||
7 | Transmission Date and Time | N | 8 | yyyyMMdd | Transmission Date and Time | |
11 | System Trace Audit Number | N | 6 | zero-left-padding | Unique number from client | |
12 | Local time transaction | N | 6 | HHmmss | Transaction time from client | |
13 | Date local transaction | N | 4 | mmdd | Date transaction from client | |
48 | Additional Private Data | N | 3 | zero-left-padding | Lenght of Additional Private Data | |
48 | Additional Private Data | ClientID | N | 7 | zero-left-padding | Client identification number |
70 | Network Information Code | N | 3 | 001=sign-on, 002=sign-off, 003=echo-test |
Data Element | Name | Subfield | Type | Length | Format | Description |
---|---|---|---|---|---|---|
MTI | N | 4 | For request use 1800 | |||
1 | Bitmap | H | 16 | Use field = 3,7,11,12,13,39,48 and 70 | ||
3 | Processing Code | N | 6 | Default set to 000001 | ||
7 | Transmission Date and Time | N | 8 | yyyyMMdd | Transmission Date and Time | |
11 | System Trace Audit Number | N | 6 | zero-left-padding | Unique number from client | |
12 | Local time transaction | N | 6 | HHmmss | Transaction time from client | |
13 | Date local transaction | N | 4 | mmdd | Date transaction from client | |
39 | Response Code | N | 3 | Available Response Code : | ||
48 | Additional Private Data | N | 3 | zero-left-padding | Lenght of Additional Private Data | |
48 | Additional Private Data | ClientID | N | 7 | zero-left-padding | Client identification number |
70 | Network Information Code | N | 3 | 001=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.
Subscribe to:
Posts (Atom)