The course project is a simplified online representation of a bookstore. There are servers that track how many copies of a book are in stock, that store prices, and that handle requests to buy books.
There are clients that use these servers to process transactions. At the end of the project, users will be able to put items into baskets and pay for them with credit card information.
In the following diagram, everything in the dotted box represents CORBA servers:
The clients will go to the bookstore and get a new basket. They will then use that basket and fill it with book references. The basket object will make sure the books are currently in stock and price them according to sale information, presenting a bill to the client.
It will then take a credit card number and commit the transaction for the client.
We will build this application up slowly through the exercises. During the intermediate steps, the IDL may be slightly contrived to demonstrate the features of the particular lesson. The first part of the project will be to fill in the implementation of a client application that will look up information about a book directly from the inventory server. This client will then be built up into the bookstore server, which will provide a single façade for the pricing and inventory servers. Later, the IDL will be fleshed out with user-defined types and exceptions.
A second client will be built along the way. The administration client will interact directly with the back-end inventory and pricing servers to track sales and report inventory levels.
This project should give you a reasonable idea about implementation complexities involved with CORBA. Many issues are beyond the scope of this course, like life cycle and access control, which need to be part of any production system and can be explored in additional courses.
In the next module, you will learn about basic Java mapping.