diff options
Diffstat (limited to 'trunk/TAO/examples/Simple/bank/README')
-rw-r--r-- | trunk/TAO/examples/Simple/bank/README | 114 |
1 files changed, 114 insertions, 0 deletions
diff --git a/trunk/TAO/examples/Simple/bank/README b/trunk/TAO/examples/Simple/bank/README new file mode 100644 index 00000000000..7fc2d09e31e --- /dev/null +++ b/trunk/TAO/examples/Simple/bank/README @@ -0,0 +1,114 @@ +$Id$ + +This is a simple CORBA example that has a module Bank with two +interfaces Account and AccountManager. The Account interface has +operations for balance, deposit and withdraw. It has a readonly +attribute for the Account Holder's name. It also has a user defined +exception which is raised for withdrawing more moneythen the current +balance. The AccountManager interface has methods to create and close +Accounts. It also has a method to shutdown the server. + +run_test.pl : This is a perl script to run the server and client as : +------------ + server -o ior_file + client -f ior_file + +Passing the Server IOR to Clients: +--------------------------------- + +To keep this example simple, the server advertises its IOR in the +following manner - The server program writes its server object's IOR +to a ior_file. Later on, the client reads this IOR from the specified +ior_file and uses the <string_to_object> method to obtain a reference +to the server object. + +For this mechanism to work, the file must be readable and writable. If +it doesn't exist, a new file is created by the server. Moreover, the +file path must be accessible to both the client and server. + +If the client and server are on different machine, then there must be +a shared directory accessible by both. On UNIX system's this is +typically done via the NFS mount command. On Windows, the 'explorer' +application provides an option to share drives. + +In general if no such file sharing option is available, then using the +the Naming Service mechanism is the only alternative, as described by +the -n option below. There are other command line options available +for the server and client which are also explained below. + +server: +------- + +server [-d] [-o IOR_file_name] [-n] + +Options: +------- +-d Debug flag (It is additive more -d flags will give debugging). + +When the server is started, you should see as the first line of output +something that looks like + iiop:1.0//danzon.cs.wustl.edu:10015/P35ad159600081a38/child_poa/server + (-ORBobjrefstyle url) +or + IOR:000000000000001649444c3a43756269745... + (-ORBobjrefstyle ior) + +Using -d turns on debugging messages. This option is additive, i.e., +the more -d options provided, the more debugging you can get. At the +moment, only 2 levels of debugging are implemented, and more than 2 -d +options are ignored. + +-o This option creates an ior file for the server with the name ior_filename. +-n Use naming service + +The file can be used by clients who wish to access the server directly +using this ior file. This obviates the need for the client to use the +naming service for getting the server ior. The client can use the -f +option to specify the file which contains the ior of the server (the +same file that was written by the server using the -o option). + +client: +------- + +client [-d] [-x] [-n iterations] [-b initial_balance] [-o Name_of_account_holder] + [-f IOR_file_name ] [-k IOR] + +Options: +------- +-d Debug flag + +-x Tells the server to shutdown at the end of the test. + +-n Use naming service + +-b initial balance + +-o Name of the Account Holder + +-k Read IOR from the command line. If this option is specified the client does not use + the Naming Service for locating the server. It just uses the ior file supplied with + this option. + +-f Read IOR from the specified file. If this option is specified the client does not use + the Naming Service for locating the server. It just uses the ior file supplied with + this option. + +The client executes the following tests : + +1. Creating accounts with the same name to make sure the Account is + created only once and he gets back the same object reference each + time. This is confirmed by the server printing the message for + Creation of an account only once. + +2. Creating accounts with different name to make sure a different + Account is created and a different IOR returned each time. + +3. Creating an Account with some initial balance and then withdrawing + more than the current balance. The server throws an exception which is + passed to the client and the client displays the reason for the + exception. + + + + + |