/* // /// FILE: README.repository.v1 /// /// DESCRIPTION: This file describes the repository (version 1) /// used by the chaimsCompiler /// The repository is located at: /// /db/8/ftp/www/CHAIMS/Compiler/repository.txt /// /// AUTHOR: Woody Pollack /// CREATED: 6/22/98 whp /// MODIFIED: 6/23/98 whp // */ The repository holds certain information needed by the compiler to generate clients from a megaprogram. This information is used by the compiler to determine the appropriate client to write to (C, C++, JAVA), as well as the binding information needed by that client to connect to the megamodule (distribution protocol, module location (hostname), service name the module is registered under - for RMI this is the name used when registering the megamodule in the rmi-registry; for CORBA this is the name used when registering the megamodule in the Implementation Repository). Since the 3 protocols supported require slightly different information, their entries are slightly different in the repository: DCE: "" DCE "" ex: "room_res" DCE ninja4.stanford.edu "room_res" CORBA: "" CORBA "" ex: "io" CORBA OMNIBROKER sole "io" ex: "CHAIMSRAP" CORBA ORBIX sole "CHAIMSRAP" JAVA: "" JAVA "" ex: "AirInterface" JAVA tree0.stanford.edu "airService1" Module Name vs. Service ============================================================================= The is what is used by the megaprogrammer in their CHAIMS megaprogram. The is used by the generated client to bind to the megamodule (which is registered under ). To explain more clearly: When the compiler encounters a SETUP, it first consults the repository looking at the first field in each line. When it finds an entry matching the argument given to SETUP (in the megaprogram), it then pulls the remaining information from that line in the repository (distribution protocol, host, service, etc.). Then, when generating the information to bind to the megamodule, the is used.