Design of Distributed Object Systems

Assessments Session 1 2000

Overview

This document has 3 different assessments. You may choose which one you do.

The technical assessment project is suitable for people without a technical software background.

The technical learning assessment is suitable for people who have some programming experience, but not necessarily in Java and/or C++.

The advanced assessment is suitable for people who are competent programmers preferably with Java and/or C++.

Advanced Assessment

Your task is to take the example Stock-Online code and:

1.  Port it to another middleware product and database (60%)

2.  Extend the application in one of the specified ways (40%)

The code you have been given works with the CORBA product OrbixOTM and SQL Server/ODBC. Depending on what hardware and operating system you have available wish to use, we recommend porting the code to (inform us if you want to use something different):

1.  Java 2 Enterprise Edition (Solaris, or NT 4) (http://developer.java.sun.com/developer/products/j2ee/resources.html#download)

2.  Orbacus (most, including Windows 98), using C++ or Java (www.ooc.com).

3.  COM/MTS or COM+ (NT, Windows 98/2000) (Java, C++)

In terms of a database, it is open what as to what interface you use, although using ODBC/JDBC is probably sensible. You can use any database you wish, although a full relational database such as SQL/Server or Oracle is probably the best choice.

The tasks involved in porting the application will depend on which platform you choose. For example:

J2EE: translate code to Java/EJB/JDBC

Orbacus: replace Orbix-specific code, use of OTS with DBMS commits, replace use of OrbixNames with new binding mechanism.

COM: Replace CORBA IDL with COM IDL, use MTS instead of OTS, etc

Once you have ported the code and got it working, you should attempt to extend it in one of the following ways (or suggest an extension to us):

1.  add a WWW browser based front-end

2.  write a client that continuously updates stock item prices (the StockFeed client)

3.  Create a new database called Invoices and a new transaction and client that removes records from the StockTransaction table and creates a new entry in the Invoices database for every transaction record it removes. The Invoices database contains a single table which has the following fields:

Subscriber id, name, address, transaction ID, stock id, transaction type, price (purchase or sell).

You will be required to demonstrate your running system and extensions. You should also hand in a brief report that details:

·  The design and implementation changes you needed to make to the base code to get it working

·  What extension you have implemented, and how it works

Technical Learning Assessment

The aim of this assessment is to enable students to gain some experience with Java and J2EE. You will be required to:

1.  Install and get running Sun’s J2EE reference implementation on the University’s Solaris machines or your own NT machine[1].

2.  Work through the 7 supplied tutorials at http://developer.java.sun.com/developer/onlineTraining/J2EE/Intro/. It’s probably wise to read some of the supporting introduction documentation as well.

3.  Answer questions in quiz, to be held in the lecture on the 1st or the 8th of June (depending on when the exam is)

After Easter a tutor will help people in tutorials in the labs, which will run for at least the last hour of the lecture on Thursday nights.

Technical Evaluation Assessment

Your task is to:

1  Read and understand the following example application

2  Propose a 1 page block architecture of the major components that will be needed to build a new system for Stage 3 of the proposed system evolution. Write a brief (2-4 pages) description of the architecture, describing the roles of the major components, and any assumptions that you have made.

3  Identify one or more candidate technologies that could be used to build the system. Explain in a report (5-15 pages) how these technologies could be deployed in the application architecture.

You will have an opportunity in the first lecture after Easter to ask any questions about this system and assignment. Please be prepared for that session, as it will be very important in helping you clarify your understanding of what is required.

Deadline: In the lecture, June 8th

Warehouse System Example

The sample system supports the typical orders and payments processes for an organisation such as a book publisher or wholesaler. The company has customers, sales office and warehouses located throughout the country. Customers can place orders for products that will result in shipping requests being sent to the appropriate warehouses and the requested goods being dispatched. A single order may be satisfied by shipments from a number of warehouses. The system also processes payments and keeps customer accounts and history.

Existing system

The company has an existing system based on a set of applications that run on a central computer using remote terminals and printers. Customers place orders by contacting their local sales office who enter the order into the system on their behalf. The system processes the order and prints shipping requests at the appropriate warehouses. The warehouse staff then take these request slips and dispatch the goods directly to the customer. This existing system is shown in

Figure 1 - Existing system

The system is made up of a number of separate applications and databases that are under the control of a transaction monitor, such as CICS or Tuxedo, which ensures the overall integrity of the system. The transaction monitor ensures that operations, such as entering an order into the system, will either succeed or fail without trace. This atomicity constraint includes not allowing the printing of shipping requests at warehouses until their corresponding orders have successfully completed.

Requirements: System Distribution

The organisation wishes to re-architect the system to:

·  Move to WWW-based client applications running against component-based application servers and database servers.

·  Support replication of components across nodes and replication and partitioning databases to reflect the geographical distribution of their business.

Stage 1 implementation

Client applications will access a single application server through a transactional ORB or equivalent. There will be background server processes for printing shipping requests. Clients can be local UI applications or Web applications through Web server and scripting. This system is shown in Figure 2.

Figure 2 - Stage 1 System

Stage 2 implementation

Move to separate warehouse systems that are responsible for their own stock levels and shipping process. Orders are still placed on the central system. Possible ways of getting shipping requests to warehouses might be:

·  Warehouse application polls central server

·  ORB call from central server to warehouse

·  Messaging/Message queue

The stage 2 system is shown in Figure 3.

Figure 3 - Stage 2 system

Stage 3 implementation

Distributed systems in each region, responsible for their own order processing and accounting. Each system only sends financial and sales data back to the head office system. There are replicated customer databases at each site. Orders can come into any system, especially the central Web server, and be routed to the customer’s home system. The stage 3 system is shown in Figure 4.

Figure 4 - Stage 3 system

[1] Installation instructions are at http://developer.java.sun.com/developer/products/j2ee/resources.html#download and the install package has actually been downloaded to the undergraduate sparc servers at

Jdk: is in /usr/local/java1.2

j2sdk: is in /usr/local/j2sdkee1.2