1 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
\r
4 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
\r
5 <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
\r
6 <title>Main Page</title>
\r
7 <link href="doxygen.css" rel="stylesheet" type="text/css">
\r
11 <center><table WIDTH="96%" >
\r
13 <td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
\r
17 <div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
\r
23 <h1><a name="page2">General overview</a>
\r
25 <a name="cont"></a><h2>Table of contents </h2>
\r
28 <li><a href="#1">1. Introduction</a></li>
\r
29 <li><a href="#2">2. Basic principles </a></li>
\r
31 <li><a href="#3">3. Services and features of the SALOME kernel module</a></li>
\r
33 <li><a href="#3_1">3.1 Session service</a></li>
\r
34 <li><a href="#3_2">3.2 Registry service </a></li>
\r
35 <li><a href="#3_3">3.3 Notification service </a></li>
\r
36 <li><a href="#3_4">3.4 Module catalog service </a></li>
\r
37 <li><a href="#3_5">3.5 Data type catalog </a></li>
\r
38 <li><a href="#3_6">3.6 Resource catalog </a></li>
\r
39 <li><a href="#3_7">3.7 Engine </a></li>
\r
41 <li><a href="#3_7_1">3.7.1 Component class </a></li>
\r
42 <li><a href="#3_7_2">3.7.2 Container class </a></li>
\r
47 <a name="1"></a><h2>1. Introduction</h2>
\r
48 <p>The kernel corresponds to the minimal set of services required for the use of SALOME components (Supervisor, IAPP).
\r
49 The kernel is also used by application software components (solver) and their container.
\r
50 The kernel is associated to a unique user who can launch only one kernel at once.
\r
51 The kernel is launched and destroyed by voluntary actions of the user. These functions are realized via the
\r
53 <p>The list of the kernel services related to communication issues is:</p>
\r
55 <li>The Naming service</li>
\r
56 <li> The Session service </li>
\r
57 <li>The Life Cycle service </li>
\r
58 <li>The Registry service </li>
\r
59 <li>The Notification service </li>
\r
61 <p>This list is enlarged with CORBA independent services :</p>
\r
64 <li>The module catalog service </li>
\r
65 <li>The Data Type Catalog service </li>
\r
66 <li>The resource catalog service </li>
\r
68 <p> SALOME kernel module also encapsulates the Engine
\r
69 <i><a href="#cont">Back to the contents</a></i>
\r
70 <a name="2"></a><h2>2. Basic principles </h2>
\r
71 <p>The SALOME user's desktop is a process on a machine. This process includes:</p>
\r
73 <li>A graphic interface (based on Qt), </li>
\r
74 <li>A text interface (Python interpreter), </li>
\r
75 <li>A 3D visualization window shared by components.</li>
\r
77 <p>SALOME Modules decompose into an interface (widgets GUI, text mode TUI, 3D visualization V3D) and
\r
79 <p>The description of a module and its components is obtained by consulting the module catalog.</p>
\r
80 <p>The interface is dynamically loaded in the process of the SALOME user's desktop. The engine is a CORBA
\r
81 server launched either on the local machine or on the distant machine.</p>
\r
82 <p>The engine (CORBA server) is created by a factory (or container).
\r
83 This factory is also a CORBA server. Several containers can be present on a machine.
\r
84 Some containers are specialized for types of components requiring a specific management.
\r
85 For example, a specific container is required for components performing parallel calculations.
\r
86 The engine includes at least a dynamically linked library in the container process.
\r
87 This library is the implementation of the CORBA server associated to the engine.
\r
88 If the engine is built from a pre-existent executable code, the library is simply a wrapper of the encapsulated code.
\r
89 It launches the code in a separate process. Wherever possible, the code is included into the dynamic library.
\r
90 <p>The container is one of the kernel services. If one needs to create a container on a distant machine, one creates a process resuming a part of the kernel services. The kernel can create other containers on distant machines via the trader (rsh). All the containers and the kernel share the same CORBA naming service with which they register.</p>
\r
91 <p>The user reaches the functions of various SALOME'S components, either in graphic interactive mode (GUI) or in command mode ( TUI), via a Python interpreter.</p>
\r
92 <i><a href="#cont">Back to the contents</a></i>
\r
94 <h2>3. Services and features of the SALOME kernel module </h2>
\r
95 <p>This section gives a brief overview of the services composing the kernel module.
\r
96 The <a href="overview_Life_Cycle.html">Life Cycle</a> and <a href="overview_Naming.html">Naming</a>
\r
97 services are described in separate chapters of this reference manual.</p>
\r
99 <a name="3_1"></a><h3>3.1 Session service </h3>
\r
100 <p>SALOME session describes the period starting from the kernel creation and
\r
101 ending with its destruction. During this period the user can connect the session
\r
102 and disconnect from it without ending this session. One connection log could
\r
103 be written. A priori, no information resulting from another (past) session can
\r
104 be used by the current session. </p>
\r
105 <p>Implementation of this service in SALOME application is provided by the class
\r
106 <a href="interfaceSALOME_1_1Session.html">Session</a> encapsulated in the package
\r
107 <a href="namespaceSALOME.html">SALOME</a>.</p>
\r
109 <a name="3_2"></a><h3>3.2 Registry service </h3>
\r
110 <p> The active component registry should contain:</p>
\r
113 <li>The list of the active components</li>
\r
114 <li>The list of the active containers during a SALOME session.</li>
\r
116 <p>It should allow the state of a session. It also should allow to know if session can be stopped.</p>
\r
117 <p>The API reference for this service is not included in the current version of the reference manual.</p>
\r
119 <a name="3_3"></a><h3>3.3 Notification service </h3>
\r
120 <p>The notification service is a kernel function which allows exchanging of events between CORBA objects.</p>
\r
121 <p>In comparison with traditional CORBA event service, SALOME notification service allows to:</p>
\r
123 <li>Filter the events, </li>
\r
124 <li>Structure the events,</li>
\r
125 <li>Establish quality policies of services,</li>
\r
126 <li>Subscribe to various event channels.</li>
\r
128 <p>The API reference for this service is not included in the current version of the reference
\r
131 <a name="3_4"></a><h3>3.4 Module catalog service </h3>
\r
132 <p>There are two module catalogs in SALOME application:</p>
\r
134 <li>General module catalog : This first catalog is common to all SALOME users once the the platform is installed (for example for a particular company or a service). This catalog will be managed by the integrator or the administrator of the platform,
\r
135 <li>Personal module catalog : A specific catalog for every user (possibly empty). This catalog should notably allow the developers to test a new component before integrating it into the general catalog.
\r
137 <p>The objective of these two module catalogs is to:</p>
\r
139 <li>List the available modules;
\r
140 <li>Allow the addition, the modification and the deletion of a module in catalogs;
\r
141 <li>Look for a module and\or a service fulfilling some given criteria (in catalogs);
\r
143 <p><p>Implementation of this service in SALOME application is provided by two classes
\r
144 <a href="interfaceSALOME__ModuleCatalog_1_1ModuleCatalog.html">ModuleCatalog</a>and <a href="interfaceSALOME__ModuleCatalog_1_1AComponent.html">AComponent</a> encapsulated in the package
\r
145 <a href="namespaceSALOME__ModuleCatalog.html">SALOME_ModuleCatalog</a>.</p>
\r
147 <a name="3_5"></a><h3>3.5 Data type catalog </h3>
\r
149 <p>The data exchanged between components services have definite types. During description of input, output, and
\r
150 configuration parameters of components in the module catalog, the
\r
151 definition of the parameters types is taken from data type catalog. During the editing of execution of
\r
152 graphs, it is necessary to check that the connections output-input parameters are of compatible
\r
154 <p>The data types correspond to CORBA object classes, including attributes and access methods (defined by their IDL).
\r
155 These types can be created by specialization of generic data types.</p>
\r
156 <p>The purpose of the data type catalog is to:</p>
\r
158 <li>List the available data types in the catalog;
\r
159 <li>Browse the type hierarchy to check the compatibility of types (specialized output toward generic input);
\r
160 <li>Allow the addition, the modification and the deletion of a data type in the catalog;
\r
162 <p>The API reference for this service is not included in the current version of the reference
\r
164 <a name="3_6"></a><h3>3.6 Resource catalog</h3>
\r
166 <p>This catalog describes machines, possible types of container on a machine, resources of machines... This catalog is used by the SALOME LifeCycle service.</p>
\r
167 <p>The API reference for this service is not included in the current version of the reference
\r
170 <a name="3_7"></a><h3>3.7 Engine</h3>
\r
171 <p>The engine represents a shared library which can be dynamically loaded by a container. The container can load this library,
\r
172 given an interface name and an implementation
\r
173 name. The container dynamically resolves an extern_C function in the library,
\r
174 which constructs the CORBA Engine servant object.</p>
\r
175 <p>The SALOME engine in
\r
176 the current version of the application is implemented
\r
177 as <b>Engines</b> package of interfaces. It encapsulates two classes: Component, Container.</p>
\r
178 <p>The API refernce for <b>Engines</b> package can be found <a href="namespaceEngines.html">here</a>.
\r
180 <a name="3_7_1"></a><h4>3.7.1 Component class</h4>
\r
181 <p>This class is used for interaction between the container and the component and between the components inside the container.
\r
183 <p>The API reference for this class can be found <a href="interfaceEngines_1_1Component.html">here</a>.</p>
\r
185 <a name="3_7_2"></a><h4>3.7.2 Container class</h4>
\r
186 <p>This class provides a set of methods which are necessary for definition of the process of loading and registration of new components in SALOME application.</p>
\r
187 <p>The API reference for this class can be found <a href="interfaceEngines_1_1Container.html">here</a>.</p>
\r
189 <i><a href="#cont">Back to the contents</a></i>
\r