summaryrefslogtreecommitdiff
path: root/TAO/CIAO/docs/tutorial/Hello/README
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/docs/tutorial/Hello/README')
-rw-r--r--TAO/CIAO/docs/tutorial/Hello/README104
1 files changed, 104 insertions, 0 deletions
diff --git a/TAO/CIAO/docs/tutorial/Hello/README b/TAO/CIAO/docs/tutorial/Hello/README
new file mode 100644
index 00000000000..182f5e5baee
--- /dev/null
+++ b/TAO/CIAO/docs/tutorial/Hello/README
@@ -0,0 +1,104 @@
+// $Id$
+
+This example showcases a component implementation in its simplest
+form. The utmost purpose of this example is to demonstrate how easy
+it is to implement a component and a system using CCM and to provide
+ourselves an example implementation of how the CCIDL generated code
+should look like.
+
+To implement a component, all you need to do is to define the
+component, as in hello.idl. Then you have to define some aspects of
+the component implementations using the CIDL definition, as we do here
+with hello.cidl. And finally, the component implementor implement the
+component and home executors according to the executor mapping.
+
+
+User Defined Notes
+Files
+--------- ---------------------------------------
+hello.idl Component and Home IDL definitions.
+
+hello.cidl Component and Home implementation definitions.
+
+hello_exec Executor implementations.
+
+
+We also generate 3 libraries and 2 executables in this example. They
+may look perplexing at the first glance, but when we have full CCM
+support, all but one library and one executable will need to be
+generated manually. The rest should be generated thru the tools provided by CIAO.
+Below is the list of libraries and executable in this example:
+
+Files Notes
+--------- ---------------------------------------
+hello_stub A library contains the client stub implementation.
+ Client programs can link to this library instead of including
+ the stub implementation directly in the executable. The real
+ purpose of putting the stub code in a separate library is
+ to avoid code duplication when various interdependent components
+ are installed into one component server (where they will need to
+ interact with other components using the collocation code in the
+ stub library.)
+
+hello_svant This library contains the server side skeletons and CIDL generated
+ (currently handcrafted) servant implementation for the component
+ and home defined in CIDL.
+
+server This is a minimalist's implementaion of a simple "generic server".
+ We should be able to generalize the example into a "component server"
+ in CIAO which will support component deployment and server configuration
+ thru some property files.
+
+client A simple client program that access the component.
+
+hello_exec This library contains the CIDL generated executor definitions and the
+ actual component and home implementations (business logic.) It it not
+ clear to me whether we should package this file together with hello_servants
+ library as most of the stuff included in these libraries are generated
+ by CIDL compiler. We will see in the future.
+
+
+** Here's a more detailed break down of the process.
+
+1. Define the component, as in hello.idl which defines the client-view
+ of the component. This view is equivalent to the interfaces
+ defined in helloC.idl (for component unawared client.)
+
+2. Define how the component should be implemented, as in hello.cidl.
+ CIDL compiler should generate the executor definitions as in
+ helloE.idl.
+
+3. CIDL also generate the component-specific skeleton (container?)
+ implementations as in HelloSkel.xxx. These skeleton
+ implementations determine how the component should be activated,
+ how to manage the servant lifecycle, their OID and such.
+
+4. If a component implementation needs to support more advanced
+ features, such as transactional behavior, the developer needs to
+ "extend" the executor definitions by inheriting from other
+ components callback interfaces, such as SessionSynchronization.
+ We don't have an example here because we want to keep this example
+ as simple as possible.
+
+5. Component executors are implemention by implementing the desired
+ executor definition.
+
+6. Packaging and deploying the component.... This example only shows
+ how to deploy a single component implementation. The servant
+ skeletons can either be packaged with the component implementation
+ in a single DLL, or be packaged in a separate DLL which, in turn,
+ can be deployed with the component implementation together as an
+ assembly, or be put in some sort of repository.
+
+
+How to Run:
+----------
+
+Run with
+
+ run_test.pl to start the test using CIAO_Daemon and ComponentServer
+
+or
+
+ run_simple_test.pl to start the test using Simple_Component_Server
+ Note: I am having trouble with the simple component server. \ No newline at end of file