160 likes | 286 Vues
Final Project Presentation Distributed Systems (CSC 8530). By Srinivas Narayanabhatta 25 th April 2002. Project Description:. Title: NSV Book Ordering System . Developing a distributed “Book Ordering System” application over CORBA platform. Technologies used:
E N D
Final Project PresentationDistributed 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).
Architecture: NSV Book Ordering System ACCOUNT SERVER OBJECT REQUEST BROKER (VISIBROKER ORB) JDBC Database CLIENT INTERFACE (SWING) CORBA CLIENT BOOK INFO SERVER JDBC SOAP-CORBA BRIDGE HTML interface JDBC CORBA CLIENT ORDER SERVER CORBA CLIENT
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…
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(OrderEntryStruct) QUERY Transaction 1 COMMIT Reply Request BEGIN getOrderInfo(bookId) QUERY Transaction 2 COMMIT Reply
Phased Transaction model. CORBA client Application Server Database Request BEGIN getBalance() QUERY Reply Transaction Request UPDATE setBalance() COMMIT Reply
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.