NSV Book Ordering System
Download
Report
Transcript NSV Book Ordering System
Final Project Presentation
Distributed Systems (CSC 8530)
By
Srinivas Narayanabhatta
25th April 2002
Project Description:
Title: NSV Book Ordering System.
Developing a distributed “Book Ordering System”
application over CORBA platform.
Technologies used:
Server side: Java™, JDBC, MS-Access.
Client side : Java™, Swing.
Object Request Broker : Visibroker for Java™ ORB.
UseCases: NSV Book Ordering System
Actors: User, Administrator.
Login to the system
Create user account
View book information of given ISBN
View the entire book list.
Search for a book.
Add a book (administrator)
Process an order
Update book information (administrator).
UseCase Diagram
Architecture:
NSV Book Ordering System
ACCOUNT
SERVER
CLIENT
INTERFACE
(SWING)
SOAP-CORBA
BRIDGE
HTML
interface
CORBA
CLIENT
OBJECT
REQUEST
BROKER
BOOK INFO
SERVER
(VISIBROKER ORB)
CORBA
CLIENT
CORBA
CLIENT
JDB
C
JDB
C
JDB
C
ORDER
SERVER
Database
CORBA-IDLs
AccountInfoServices.idl
AccountInfoServicePOA.java
_AccountInfoServiceStub.java
AccountInfoService.java & helpers, holders , exceptions….
BookInfoServices.idl
BookInfoServicePOA.java
_BookInfoServiceStub.java
BookInfoService.java & helpers, holders, exceptions…
OrderServices.idl
OrderServicePOA.java
_OrderServiceStub.java etc…
OrderServices Class Diagram
Class Diagram
CORBA Transactions
Client-Controlled Transactions.
Server-Controlled Transactions.
Per-Operation Transaction Model.
Each CORBA remote invocation executes its own
transaction. With SQL, each method begins a
transaction, issues queries and updates, commits the
transaction, and returns to the calling CORBA client.
Phased Transaction Model.
The transaction can span multiple remote invocations,
exposing the transaction logic directly to the client.
Per-Operation Transaction model.
CORBA client
Application Server
Database
Request
BEGIN
processORder(Or
derEntryStruct)
QUERY
Transaction 1
COMMIT
Reply
Request
BEGIN
QUERY
getOrderInfo(bookId)
COMMIT
Reply
Transaction 2
Phased Transaction model.
CORBA client
Application Server
Database
Request
BEGIN
getBalance()
QUERY
Reply
Transaction
Request
UPDATE
setBalance()
Reply
COMMIT
Sequence Diagram1: Create Account
Sequence Diagram1: Search for a book
Sequence Diagram1: Order a book.
What I learnt
Common Object Request Broker
Architecture(CORBA) 3.0’s Portable Object
Adapter (POA) and Naming Service.
Understanding CORBA Transaction Services
(Object Transaction Service).
Struggling with different implementations of
CORB Architecture. E.g. Orbacus(IONA), Oracle, java
ORB.
Working with Visibroker for Java™
Conclusions
Although per-operation model appears to be
simple and of limited usability, it is most
widely used transaction models. E.g. Many
thousands of HTTP/HTML based applications.
In cases where server-controlled transactions
are not sufficient a client-controlled model
using the CORBA object transaction service is
used.