JCA merupakan solusi untuk EAI (enterprise application integration).
JCA adalah standar/spesifikasi untuk koneksi antara aplikasi J2EE dengan enterprise information systems (EIS).
EIS dapat berupa mainframe transaction processing (TP), database systems, dan legacy applications (misalnya ERP, CMS) yang dibuat mungkin-tidak menggunakan Java.
Versi JCA:
- Versi awal adalah versi 1, memiliki kelemahan:
- Tidak support komunikasi asinkron (asynchronous)
- Tidak support (built-in) pertukaran data XML
- Versi 1.5
Komponen dari JCA:
* Resource adapter (disingkat disini sebagai RA)
- Resource adapter ini mirip dengan JDBC, spesifik untuk suatu EIS (misalnya SAP atau PeopleSoft).
- Berupa sebuah file disebut Resource Adapter Archive (RAR) file yeng berisi file-file jar dan native library yang diperlukan oleh J2EE container.
- File resource adapter dengan ekstensi .rar memiliki deployment descriptor bernama ra.xml. File rar ini kemudian di-deploy ke sebuah application server sehingga bisa digunakan oleh aplikasi Web, EJB atau aplikasi lain yang terkoneksi ke application server
- RA adapter biasanya bisa kita dapatkan dari vendor pembuat EIS.
- RA dapat memiliki beberapa macam cara komunikasi antar EIS dan aplikasi:
- Outbound communication: Hanya support koneksi dari aplikasi ke EIS dan mengkeskusi pekerjaan EIS.
- Inbound communication: Hanya support koneksi dari EIS ke aplikasi dan mengkeskusi pekerjaan di aplikasi.
- Bi-directional communication: SUpport kedua jenis koneksi diatas.
- Adalah pendefinisian cara suatu J2EE server dengan JCA adapter untuk saling berinteraksi/berkolaborasi.
- Ada 7 macam (hanya 3 macam pada JCA versi 1) system contrancts yaitu:
- Manajemen koneksi (Connection management), memberikan kemampuan AS untuk mem-pool koneksi ke EIS
- Manajemen transaksi (Transaction management), memberikan kemampuan akses transaksional ke EIS
- Keamanan (Security), memberikan kemampuan akses yang aman ke EIS
- Manajemen siklus hidup (LIfecycle management), memberikan kemampuan AS untuk memajemen siklus hidup suatu RA
- Manajemen kerja (Work Management), EIS dapat mengirimkan suatu pekerjaan (Work) yang dieksekusi AS
- Inflow transaction (Transaction Inflow), RA dapat mengirimkan transaksi dari EIS ke AS
- Inflow pesan (Message Inflow), kolaborasi pengiriman pesan asinkron
* Common Client Interface (CCI)
- Standar API yang "common" untuk mengakses EIS oleh aplikasi klien.
- Package javax.resource.cci / javax.resource.spi
- API (connector-api.jar) dapat di download di http://java.sun.com/j2ee/connector/download.html
- Bagian dari CCI API yaitu:
- Yang berhubungan dengan koneksi ke EIS (Connection Interfaces)
- Eksekusi perintah pada EIS (Interaction Interfaces)
- Enkapsulasi hasil query dari EIS (Record/ResultSet Interfaces)
- Metadata pada EIS yang dapat di-query (Metadata Interfaces)
- Service Endpoint Message Listener Interface
- Exception Interface
int count;
try {
// Buat koneksi
ConnectionSpec spec = new CciConnectionSpec(user, password);
Connection con = cf.getConnection(spec);
// Buat interaksi, seperti membuat statement pada JDBC
Interaction ix = con.createInteraction();
CciInteractionSpec iSpec = new CciInteractionSpec();
iSpec.setSchema(user);
iSpec.setFunctionName("EMPLOYEECOUNT");
RecordFactory rf = cf.getRecordFactory();
IndexedRecord iRec = rf.createIndexedRecord("InputRecord");
// Eksekusi
Record rec = ix.execute(iSpec, iRec);
// Proses hasil eksekusi
Iterator iter = ((IndexedRecord)rec).iterator();
while(iter.hasNext()) {
Object obj = iter.next();
if(obj instanceof Integer) {
count = ((Integer)obj).intValue();
}
}
// Tutup koneksi
con.close();
}
catch(Exception e) {
e.printStackTrace();
}
System.out.println("Employee count is: " + count);
Referensi:
- J2EE Connector Architecture Overview
- J2EE Connector Architecture Specification
- Introduction to the J2EE Connector Architecture