hi, kalo JPos librarynya memang gratis,cuman dokumentasi dan samplenya
beli yah :D

pada dasarnya aplikasi JPos bisa jadi 2 mode, client atau server.
perbedaan kedua mode ini cuma mana yang harus duluan initiate request.
Kalau client logikanya adalah send message duluan kemudian menunggu
reply, kemudian di sisi server nunggu message kemudian reply lagi ke
cleint.

kita bahas satu2 mulai dari servernya dulu.

Server pertamakali yang harus dilakukan adalah menyiapkan class yang
implement interface IsoRequestListener, misalnya

    public class IsoListerner implements ISORequestListener{

        public boolean process(ISOSource source, ISOMsg msg) {
            //handle request
            ISOMsg reply = handleRequest(msg);
            //reply request
            source.send(reply);
        }

        public ISOMsg handleRequest(ISOMsg msg){
            return new ISOMsg();
        }
    }


kemudian kode untuk jalanin servernya kira-kira begini :

public class Iso8583Server{
    public static void main(String[] args) {
        BASE24Packager packager = new BASE24Packager();
        ServerChannel channel = new BASE24TCPChannel();
        channel.setPackager(packager);
        ISOServer server = new ISOServer(123, channel, null);
        server.addISORequestListener(new IsoListerner());
    }
}

langkah pertama adalah menentukan packagernya,
dalam hal ini adalah Base24 packager,
        BASE24Packager packager = new BASE24Packager();

kemudian membuat Server channel untuk membuka socket, dalam hal ini Base24TCP
        ServerChannel channel = new BASE24TCPChannel();
        channel.setPackager(packager);

kemudian membuat isoserver dan menambahkan listenernya
        ISOServer server = new ISOServer(123, channel, null);
        server.addISORequestListener(new IsoListerner());

setelah itu jalankan servernya di thread yang berbeda
new Thread(server).start();

Kalau diminta bahwa aplikasi kita harus jalan sebagai client,
prosesnya sedikit berbeda, karena client tidak buka koneksi hanya
melakukan koneksi ke server, jadi langkah-langkahnya sedikit berbeda
kalau aplikasi kita harus jalan sebagai client

kita akan buat 2 class, class untuk jalanin client, dan class untuk
process messagenya

    public class IsoClient {

        public static void main(String[] args) {
        BASE24Packager packager = new BASE24Packager();
        BASE24TCPChannel channel = new BASE24TCPChannel("localhost",
123, packager);
        channel.connect();

        IsoClientProcessor process = new IsoClientProcessor();

        while(channel.isConnected()){
            ISOMsg msg = channel.receive();
            ISOMsg reply = process.processMessage(msg);
            msg.getSource().send(reply);
        }

        }

    }

    public class IsoClientProcessor{

        public ISOMsg processMessage(ISOMsg msg){
            //process incoming message
            //then create reply message
            return new ISOMsg();
        }
    }

penjelasan :

pertama buat dulu packager yang sama persis dengan sisi servernya:
        BASE24Packager packager = new BASE24Packager();

kemudian bikin channel untuk koneksi ke socket  yang juga sama persis
dengan servernya, "localhost" adalah nama servernya, 123 adalah
portnya, dan packager berasal dari Base24packager diatas
        BASE24TCPChannel channel = new BASE24TCPChannel("localhost",
123, packager);

berikutnya adalah mencoba melakukan koneksi ke server
        channel.connect();

setelah itu, client menjalankan forever loop, sampe channelnya
terputus, didalam loopnya si client ini menunggu ada message masuk,
kemudian memproses message baru kemudian bales lagi message yang masuk
        IsoClientProcessor process = new IsoClientProcessor();

        while(channel.isConnected()){
            ISOMsg msg = channel.receive();
            ISOMsg reply = process.processMessage(msg);
            msg.getSource().send(reply);
        }

        }

tutorial diatas nggak sepenuhnya jalan, karena hanya kode yang saya
ketik di sini saja, mungkin ada typo atau error.

Untuk memudahkan proses handling message ini gunakan pattern yang
disebut Resolver [1] dan Handler[2], trus jangan lupa gunakan JUnit[3]
dan Logging [4] secara extensive, JUnit menyelamatkan banyak waktu gw
pas development, dan Logger membantu banyak pas testing dan deployment

[1] wah lupa deh linknya, coba cari di core j2ee pattern
[2] idem sama yang diatas
[3] 
http://endy.artivisi.com/downloads/presentations/ruthless-testing-1/ruthless-testing-1.html
[4] http://endy.artivisi.com/blog/java/menggunakan-log4j/

selamat belajar


On 8/12/08, naray citra <[EMAIL PROTECTED]> wrote:
> ada yang tau gak lib gratis untuk baca ISO8583 di Java? gw nemu JPos tapi
> cara pakenya bayar :((
>
>


-- 
Senior Engineer @ ArtiVisi Intermedia
Java Training Center
See our course @ artivisi.com

http://ifnu.artivisi.com
+62 856 9211 8687
regards

Kirim email ke