Wednesday, June 21, 2006

Invoking External Functionality/System from within the Database

Looking at the picture at the following URL,
http://photos1.blogger.com/blogger/4310/2356/1600/360_DB_Prog.2.jpg, i have touched through my previous posts on the first three points, including:
(1) the user-defined database functinality itself,
(2)calling database functionality from within the database,
and (3) calling user-defined database functionality from outside.

In this post, I'll touch on the fourth point (4): invoking external functionality from within the database.
The requirements range from alerting or notifying external systems based on data value/state, validating or obtaining credit card authorization, querying/updating remote database, invoking a rate/tax engine, obtaining dynamic data, invalidating middle-tier data cache, messaging across tiers, executing OS commands, and so on.

The Java runtime in the database allows the use of various Java-based mechanisms and protocols, depending on the design/implementation of the target external systems as highlighted in the following examples.

- Calling out external RMI Servers allow invoking SAP System from within the database
through SAP JCO.

- Implementing an HTTP-callout trigger using the Java-based HTTPClient for requesting a
Web component (i.e., JavaServer Page) to invalidate a middle-tier data cache. Similarly a
credit card authorization and validation can be implemented using HTTPS Call-out.

- Alerting/Notifying external systems via email, using Java-based mailer in the database.

- Implementing JDBC-Callout to issue queries and DML against remote non-Oracle database(s)
using a 3rd party pure Java JDBC driver.

- Messaging across tiers using JMS over Streams AQ by invoking Message-Driven Beans in the
middle-tier.

- Web Services Callout allows retrieving dynamic data from external Web services or invoking
remote operations through Web services mechanisms.

- Invoking OS commands using Runtime.exec('').

- And so on ...

The beauty of embedding a full fledged Java VM in the database is that even when a protocol or invocation mechanism is not available by default, you can reuse existing Java library that implements the mechanism or protocol in question. The complete details of the examples and case studies with the code samples are available in my soon-to-be-released book http://www.amazon.com/gp/product/1555583296.

6 comments:

Justin said...

Nice work Kuassi! I was just doing a little bit of this the other day and thought, "Man...there is just nothing you can't do using the Oracle JVM, a little Java and PL/SQL". I can't wait to read your take on this. -Justin

Kuassi Mensah said...

Justin,

Yes man, i share your enthousiasm however, this is true as long as database access is involved, and as we all know there is little you can do without an RDBMS. Fwiw, I discuss the use of Java in the database with PL/SQL, and with Java outside the database (stand alone or Java EE) in chapter one of my book, which is freely available @ http://www.oracle.com/technology/books/pdfs/mensah_ch1.pdf.

Kuassi

vuong said...

医師 転職
医師 転職
医師 転職
医師 転職
医師 転職
医師 転職
医師 転職
医師 転職
医師 転職
医師 転職
ビジネス英語
英文 書き方
英語塾
社会人入試
英語 転職
目頭切開
パッケージ
会社設立 格安
人材派遣会社
東横 賃貸
田園都市 賃貸
デザイナーズ 賃貸
恵比寿 賃貸
学芸大学 賃貸
目黒 賃貸
中目黒 賃貸
新築 賃貸
ペット可 賃貸
三軒茶屋 賃貸
パチンコ求人
販売管理
債務整理 池袋
任意整理
液晶テレビ 激安

vuong said...

先物 比較
先物 比較
先物 比較
先物 比較
先物 比較
先物 比較
先物 比較
先物 比較
先物 比較
先物 比較
事業再生
経営計画書
経営改革
経営改善
会社分割
経営コンサルティング
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
婚活 福岡
浮気調査 柏
浮気調査 安達
備考調査 追跡調査 東京
不倫調査 離婚調査 東京
浮気調査 素行調査 東京 
ストーカー相談 ストーカー対策 東京
結婚調査 結婚詐欺 東京
信用調査 企業調査 東京
調査料金 東京
身上調査 身元調査 身辺調査 東京
所在調査 東京
夫 妻 浮気 東京

r4 card said...

I was just doing a little bit of this the other day and thought, "Man there is just nothing you can't do using the Oracle JVM, a little Java and PL/SQL".

facebook entrar said...

When do I go up the stairs to her again would be very happy to announce to everyone entrar facebook , entrar facebook , login facebook entrar , girl.go.games , facebook entrar , facebook entrar , facebook entrar