Java/CORBA in Domino

sweetleafapartInternet και Εφαρμογές Web

7 Αυγ 2012 (πριν από 4 χρόνια και 10 μήνες)

339 εμφανίσεις

The CORBA Alternative in Domino

Louis J Sacco

December 6, 2000

An Agenda


A Brief History


What, why, and how CORBA


CORBA Architecture


CORBA set
-
up demo


Developing with CORBA


Simple CORBA app. demo


Using multi
-
threaded Java/CORBA agents


Code walk
-
through and demo

A Brief History


In the beginning, there was Lotus Notes…


…then Domino in R4.5


…then Java in R4.6


…then CORBA in R5


…then Domino meets Websphere


…then Agent Proxy in R
-
Next

What is CORBA?


CORBA or the
C
ommon
O
bject
R
equest
B
roker
A
rchitecture is a specification not a programming
language to distribute programs via a common
interface broker or ORB


The ORB hides the implementation details, is platform
agnostic, and communicate using GIOP/IIOP


This technology would be typically used on “thin”
clients or browsers to distribute objects or programs
across a medium


Uses TCP/IP network to transport objects via IIOP
protocol

Domino’s CORBA Implementation


Follows the specification set the OMG, a consortium of
vendors including Lotus/IBM


In domino, the ORB communicates with what is called
D
IIOP over a network using the HTTP stack


Both servers planning to communicate must load the
DIIOP and HTTP task on each machine


Since Java is just a wrapper for the C++ .dll’s, CORBA
allows you to use these “objects” via remote invocation
from browsers, LiveConnect, or other Java clients

CORBA DIIOP Networking

DIIOP/HTTP over TCP/IP Network
Server A
Server B
Why CORBA?


Allows you to access other databases on remote
servers which is prohibited when running scheduled
agents


Allows you to centralize databases that would
otherwise be widely replicated


Allows you to create more dynamic web pages without
applets using Java & JavaScript's LiveConnect


In Domino 5.04 CORBA is compatible with IBM
Websphere architecture

Pre
-
CORBA Architecture

Post
-
CORBA Architecture

Domino Websphere Architecture

Domino
Databases
Web Client
Domino/Websphere
IBM HTTP/Websphere
Domino
Databases
DBMS
(e.g., DB2)
HTTP/HTTPS
HTTP/HTTPS
Domino Java Classes/
JDBC/DIIOP
JDBC
DIIOP/URL Redirection
TIER 1
TIER 2
TIER 3
JDBC
How to configure CORBA?


It’s simple! Enable the DIIOP and HTTP server
tasks!


Actually, you’ll want to tweak some security
settings, but you can be up and running in
minutes


Set “JavaUserClasses” notes.ini setting to the
absolute path of ncso.jar file


Let’s look at how…

Developing with CORBA


Prerequisite


Basic Java and Domino Objects
programming skills


Need Java 1.1.x as development platform


Set your classpath to use notes.jar and
ncso.jar files from Lotus


Notes Factory class makes connecting with
CORBA a snap


A simple example…

Multithreading with Java


With the advent of multiprocessor boxes, this is huge
benefit to get maximum throughput with your Java
agents


Good candidate agents are ones with a good mix of
CPU, I/O, and network
-
bound processing, but not
necessary


Have seen significant performance increases when
processing multiple threads to do mundane processing


Java makes multithreaded programming much easier
than other languages with built
-
in facilities


Performance Example


Processed 1000 requests to create mail files
and write results to a central database


Machine was a 2 x 200 P2 processors NT box
with 1.2 gigs of memory


Processing up to 20 threads yielded a 72%
increase!

Multi
-
threading Performance

Processing of 1000 Requests
0
200
400
600
800
1000
1200
1400
1600
1800
run1
run2
run3
run4
run5
run6
Time (s)
1 Thread
5 Threads
10 Threads
20 Threads
Example Application


A mail
-
in database that accepts many administration
requests, one being to create mail files


Uses CORBA to access any server to create these
mail files whether in the same or a different domain


Uses Java multithreading to process multiple requests
concurrently


Lets see how it works…


Application available for free at
www.eview.com

from
the July/August 2000 issue of The View

Some Conclusions


Great workaround for “beating the server
-
based agent
blues” until R
-
Next


Great for writing Java applications, LiveConnect
JavaScript, and agents to get remote data


Fewer administration headaches trying to maintain
several replicas which all do the same thing


Powerful integration potential with IBM Websphere


Exposure to Java can carry over into Websphere for
developing best
-
in
-
class e
-
business applications

Question & Answer

E
-
mail:

occasl@yahoo.com