Feeds:
Posts
Comments

Posts Tagged ‘Message Warehousing’

Oleh : Ferryandi (1201003636)

1.  Latar Belakang
Minoui & Fritz (2011) munculnya fitur Advanced Queuing (AQ) bermula dari kebutuhan pasar akan satu fitur yang bisa menjembatani koneksi dan pertukaran data antar aplikasi. Sebuah aplikasi yg terdistribusi (Distributed Application Development) membutuhkan middle-ware (Message-Oriented Middleware) atau fitur yang bisa menjadi penengah dari pertukaran data aplikasi tersebut. Oleh karena itu, ada motto yang mengatakan bahwa : “Every DAD needs MOM” yang artinya adalah setiap aplikasi terdistribusi mesti memiliki middle-ware (MOM). Jadi karena kebutuhan pasar inilha maka muncullah Oracle Advanced Queuing.
Dalam hal komunikasi antar aplikasi terjadi 2 tipe model pengiriman data yaitu :

  • Enqueue
  • Dequeue

Dengan kata lain, setiap aplikasi yang saling berkomunikasi dalam 1 jaringan melakukan proses menaruh message dalam queue (Enqueue) dan menarik message dari queue (Dequeue). Juga terdapat 2 model aplikasi yaitu :

  • Synchronous (online, connected)
    Program mengirim requests dan menunggu sampai program lain membalas requests dari program tersebut.
  • Asynchronous (deffered, disconnected)
    User
    mengirim requests dan menaruh messages tersebut dalam queue dan dilanjutkan oleh user lainnya untuk menverifikasi messages tersebut dari queue setelah itu baru dieksekusi.

2.  Pembahasan
a.     
Pengertian Oracle Advanced Queuing
Oracle Advanced Queing (AQ) adalah salah satu fungsionalitas queuing messages performan tinggi pada database Oracle. Dengan AQ ini komunikasi message secara otomatis diaudit, yang merupakan kebutuhan penting khususnya untuk keperluan aplikasi finansial. Kita bisa melihat beberapa contoh implementasi dari AQ ini misalnya pada aplikasi finansial, aplikasi yang terintegrasi satu sama lain, dan lain sebagainyan. Untuk mengetahui cara kerja AQ kita bisa melihat dengan jelas di Gambar 1.

Gambar 1. Integrated Application Environment Using Advanced Queuing Sumber : http://download.oracle.com

 Pada gambar 1, kita dapat melihat bahwa dua aplikasi yang berjalan saling berkomunikasi. Ketika internet user melakukan requests ke aplikasi yang berdiri dalam database Oracle, maka terjadi pengiriman messages akan tetapi messages tersebut disimpan lebih dulu ke dalam fitur AQ dimana diproses dulu di dalam queue atau antrian baru dikirim ke aplikasi. Setiap internet user  melakukan requests maka data yang dikirim akan disimpan kedalam antrian atau queue baru diproses oleh database ke aplikasi.

b.      What AQ Addresses ?
Oracle Advanced Queuing mempunyai 5 fitur, yaitu :

  • End to End Tracking
    Arti dari End to End Tracking adalah dimana AQ ini mampu menyimpan current state dan recent history dari setiap message. Setiap messages akan diberitahu dimana posisi dan letak terakhir atau lokasi terakhir penyimpanan dari data messages tersebut.
  • Automatic Correlation
    AQ
    akan secara otomatis memberikan respon diantara messages yang masuk seperti Cause/Effect, Request/Reply, and Original/Copy relationships.
  • Automatic Auditing
    Di dalam setiap environtments dari sebuah aplikasi, messages yang berjalan diantara aplikasi yang berbeda merepresentasikan transaksi yang penting. Maka diperlukan proses audit, AQ ini mempunyai solusi tersebut dengan memberikan fitur automatic auditing.
  • Automatic Exception Handling
    Setiap messages yang tidak dipakai lagi oleh user akan otomatis dipindahkan ke exception queue. Jadi AQ ini mampu memberikan jaminan penggunaan data kepada user jika data tersebut tidak dipakai lagi dalam jangka waktu tertentu sehingga tidak mengganggu transaksi data lainnya.
  • Message Warehousing
    Fitur ini dapat digunakan untuk keperluan yang bervariasi misalnya untuk Business Process Analysis dan Dispute Resolution.

c. Features of Oracle Advanced Queuing
Dibawah ini ada beberapa fitur yang terdapat dalam Oracle Advanced Queuing. Untuk itu kita akan membahasnya satu per satu agar lebih mengenal apa fitur dari Oracle Advanced Queuing ini dan bagaimana cara kerjanya.

  • Point to Point dan Publish Subscribe Messaging
    Untuk mengenal lebih jelas fitur ini bisa dilihat dari gambar 1.2 berikut ini :
Gambar 2. Point to Point Messaging Sumber : http://download.oracle.com

Dari gambar 2, kita tampak bahwa AQ mempunyai fitur yang dapat melakukan proses pendataan aplikasi secara langsung yaitu point to point. Dalam hal ini terjadi proses Enqueue dan Dequeue bersamaan.
Sekarang kita juga akan membahas tentang Publish Subscribe Messaging. Untuk lebih jelasnya silahkan perhatikan gambar 3 di bawah ini :

Gambar 3. Publish Subscribe Messaging Sumber : http://download.oracle.com

Dari gambar 3, bisa kita tarik kesimpulan bahwa AQdapat dipakai oleh multiple aplikasi secara bersamaan.

  • Oracle Internet Directory
    Oracle Internet Directory ini merupakan bagian native dari LDAPv3 directory yang dibuat diatas Oracle Database yang dapat mensentralisasi sejumlah informasi.
  • Message Format Transformation
    AQ
    mensupport format data yang dipakai aplikasi yang berbeda. Dengan fitur ini dapat memudahkan terjadinya pertukaran data dalam format yang berbeda dari aplikasi tersebut. Untuk lebih jelasnya bisa dilihat di gambar 1.4 berikut ini :

Gambar 4. Transformation in Application Integration Sumber : http://download.oracle.com

  • SQL Access
    Messages
    yang disimpan dalam beberapa baris di dalam database, dapat di lakukan proses queries. Ini menunjukkan bahwa messages tersebut dapat diakses dan dilakukan proses queries menggunakan syntax SQL.
  • Support for Statistic Views
    Dapat digunakan dengan menggunakan GV$AQ di terminal linux yang sudah di install Oracle EM.
  • Structured Payloads
    Dengan fitur ini kita dapat menggunakan object tertentu untuk di susun dan dimanage suatu messages payloads. Untuk lebih jelasnya dapat mengunjungi link berikut: “Structured Payloads” .
  • Retention and Message History
    AQ
    menyimpan informasi mengenai history dari setiap messages dan dapat diakses lagi menggunakan fitur ini. Untuk lebih jelasnya bisa mengunjungi link berikut : to Retention and Message History.
  • Tracking and Event Journals
    Dengan AQ tracking features kita dapat menggunakan SQL SELECT dan JOIN statements untuk mendapatkan informasi dari AQ$QUETABLENAME dan views dari ENQ_TRAN_ID, DEQ_TRAN_ID, USER_DATA (the payload), CORR_ID, and MSG_ID.
  • Queue-Level Access Control
    Dengan fitur ini seorang AQ administrator dapat membuat beberapa akses kontrol untuk user. Untuk lebih jelasnya silahkan kunjungi link berikut : “Queue-Level Access Control”.
  • Nonpersistent Queues
    Fitur ini membuat AQ dapat mengirim nonpersisten queues kepada subscribers dalam satu transaksi. Lebih jelas bisa baca dari link berikut : “Nonpersistent Queues”.
  • XMLType Payloads
    Dengan menggunakan fitur ini kita bisa melakukan berbagai hal berikut :
  • Menyimpan berbagai tipe messages dalam satu queue.
  • Menyimpan dokumen secara internal sebagai CLOBs.
  • Menyimpan lebih banyak tipe payloads dalam queue.
  • Query XMLType columns menggunakan operator ExistsNode() dan SchemaMatch().
  • Menspesifikasin operator dalam subscribers rules atau dequeu conditions.
  •  Internet Integration and Internet Data Access Presentation
    Kita dapat mengakses AQ via internet menggunakan Simple Object Access Protocol (SOAP).

d.      Creating AQ Administrators and Users
Kita dapat membuat AQ administrators dan user menggunakan cara berikut :

  • AQ  Administrator created by DBA :
  • Create the user (aqadm)
  • Grant AQ_ADMINISTRATOR_ROLE
  • Grant connect, resource to aqdm

    Berikut setting user bagi Admin :

CONNECT sys/sys CREATE USER aqadm IDENTIFIED BY aqadm;
GRANT AQ_ADMINISTRATOR_ROLE TO aqadm;
GRANT CONNECT, RESOURCE TO aqadm;  

  • Additional grants :
  • Execute on dbms_aqadm
  • Execute on dbms_aq

Sebagai tambahan Anda bisa lakukan grant ke user yang telah ane create:

GRANT EXECUTE ON DBMS_AQADM TO aqadm;
GRANT EXECUTE ON DBMS_AQ TO aqadm;  

 Jika Anda ingin mengcreate user yang dapat membuat dan mengakses queue dalam schemanya sendiri, lakukan langkah berikut :

CONNECT sys/sys;
CREATE USER aquser1 IDENTIFIED BY aquser1;
GRANT CONNECT, RESOURCE TO aquser1;

Sebagai tambahannya, Anda bisa melakukan grant privilege ke user tersebut dalam AQ packages seperti dibawah ini :

GRANT EXECUTE ON DBMS_AQADM to aquser1;
GRANT EXECUTE ON DBMS_AQ TO aquser1;

Dibawah ini adalah cara membuat queue table dan queue of object type :

 /* Creating a message type: *

CREATE type aq.Message_typ as object (
subject     VARCHAR2(30),
text        VARCHAR2(80));    

 /* Creating a object type queue table and queue: */

EXECUTE DBMS_AQADM.CREATE_QUEUE_TABLE (
queue_table        => ‘aq.objmsgs80_qtab’,

queue_payload_type => ‘aq.Message_typ’); 

EXECUTE DBMS_AQADM.CREATE_QUEUE (
queue_name         => ‘msg_queue’,

queue_table        => ‘aq.objmsgs80_qtab’); 

EXECUTE DBMS_AQADM.START_QUEUE (
queue_name         => ‘msg_queue’);

Object dari AQ juga bisa di drop caranya adalah sebagai berikut :

/* Cleans up all objects related to the object type: */

CONNECT aq/aq
EXECUTE DBMS_AQADM.STOP_QUEUE ( queue_name => ‘msg_queue’);
EXECUTE DBMS_AQADM.DROP_QUEUE ( queue_name => ‘msg_queue’);
EXECUTE DBMS_AQADM.DROP_QUEUE_TABLE ( queue_table => ‘aq.objmsgs80_qtab’);

  • Revoking Roles and Privileges

 CONNECT sys/change_on_install DROP USER aq;

Untuk melihat syntax dan kegunaan lainnya dai AQ bisa dilakukan views berikut pada terminal linux yang telah di install Oracle EM :

  • DBA_QUEUE_TABLES
  • USER_QUEUE_TABLES
  • DBA_QUEUES
  • USER_QUEUES
  • AQ$<queue_table>

3.      Simpulan

Sekian dari paper mengenai Oracle Advance Queuing ini. Moga kiranya dengan penjelasan fitur dari Oracle Advanced Queuing ini kita dapat memaksimalkan penanganan data dalam database Oracle untuk keperluan berbagai proses bisnis terutama adalah aplikasi finansial. Untuk materi lebih lanjut mengenai Oracle Advanced Queuing ini bisa dilihat di http://download.oracle.com . Sekian dan terima kasih.

Daftar Pustaka

Advertisements

Read Full Post »