CORBA Programming Exercises This set of CORBA programming assignments has been designed to get novice people to get acquainted with CORBA programming. There are six progressive programming exercises. You should be able to have a good feeling of developing CORBA applications after doing these programming assignments. Although this set of exercises has been designed assuming you have IONA Orbix implementation, any other CORBA implementation can be used. Have fun! J. W. Hong ------------------------------------------------------------------------ Programming Assignment #1 - compile and run the Grid example provided with Orbix distribution Programming Assignment #2 - write a "hello world" application Programming Assignment #3 - write a simple client/server banking service application - the server should provide four operations 1. deposit operation: one can deposit some amount to an existing account 2. withdraw operation: one can withdraw some amount from an existing account - if there isn't sufficient money in the account, then an error message should be returned 3. balance operation: one can check the balance of an account 4. transfer operation: one can transfer some amount from one account to another - if there isn't sufficient money in the account, then an error message should be returned - of course, you must check the existence of the account(s) in all of the above operations and must return an error message if non-existent - Note: you can assume that two accounts (e.g., with account numbers 12345 & 67890) already exist and they initially have the balance of zero. - write a menu driven client application by which users can interact with the server. Programming Assignment #4 - extend ASN3 to include dynamic creation/deletion of accounts i.e., add create() and delete() operations - employ a password (integer) mechanism to check the user validity - except the deposit operation, every operation must include password and process each request accordingly - also, employ multi-threading to serve multiple users simultaneously. - a thread must be created and assigned for each request - must provide a synchronization mechanism for serializing requests for every account Programming Assignment #5 - Separate the authorization function from the banking server specified in ASN4 by adding an "Authorization Server" as shown below: +---+ request | C +---------+ +---+ +------>+-----------+ request +----------------+ . request | Banking |<------------->| Authorization | . ---------------->| Server | reply | Server | . +------>+-----------+ +----------------+ +---+ request | | C +---------+ +---+ - the banking server should provide the following operations to clients: 1) new account 2) delete account 3) deposit 4) withraw 5) balance 6) transfer - the banking server should pass the account and password to the authorization server and get authorization approval for any operation that requires it. - the authorization server should provide the following operations 1) add - add a new account and password 2) check - perform a validation check given an account & password 3) delete - delete the given account & password Programming Assignment #6 - use the dynamic invocation feature of Orbix - this assignment involves three separate tasks a) Run the DII demo in the Orbix distribution b) Use the Orbix Stream-like Interface (described in the manual) c) Use the CORBA Compliant Approach (also described in the manual)