]> SALOME platform Git repositories - modules/kernel.git/blob - doc/salome/tui/KERNEL/sources/static/overview_Kernel.html
Salome HOME
Join modifications from BR_Dev_For_4_0 tag V4_1_1.
[modules/kernel.git] / doc / salome / tui / KERNEL / sources / static / overview_Kernel.html
1 <!doctype html public "-//w3c//dtd html 4.0 transitional//en">
2 <html>
3 <head>
4    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
5    <meta name="GENERATOR" content="Mozilla/4.73 [en] (WinNT; I) [Netscape]">
6    <title>Main Page</title>
7 <link href="doxygen.css" rel="stylesheet" type="text/css">
8 </head>
9 <body>
10 &nbsp;
11 <center><table WIDTH="96%" >
12 <tr>
13 <td><a href="http://www.opencascade.com"><img src="sources/logocorp.gif" BORDER=0 height=46 width=122></a></td>
14
15
16 <td>
17 <div align=right><a href="http://www.opencascade.org/SALOME/"><img src="sources/application.gif" BORDER=0 height=46 width=108></a></div>
18 </td>
19 </tr>
20 </table></center>
21
22
23 <h1><a name="page2">General overview</a>
24 </h1>
25 <a name="cont"></a><h2>Table of contents </h2>
26 <b><i>
27 <ul>
28   <li><a href="#1">1. Introduction</a></li>
29   <li><a href="#2">2. Basic principles </a></li>
30                 
31   <li><a href="#3">3. Services and features of the SALOME kernel module</a></li>
32   <ul>
33                 <li><a href="#3_1">3.1 Session service</a></li>
34                 <li><a href="#3_2">3.2 Registry service  </a></li>
35                 <li><a href="#3_3">3.3 Notification service  </a></li>
36                 <li><a href="#3_4">3.4 Module catalog service  </a></li>
37                 <li><a href="#3_5">3.5 Data type catalog  </a></li>
38                 <li><a href="#3_6">3.6 Resource catalog  </a></li>
39                 <li><a href="#3_7">3.7 Engine  </a></li>
40                         <ul>
41                         <li><a href="#3_7_1">3.7.1 Component class  </a></li>
42                         <li><a href="#3_7_2">3.7.2 Container class  </a></li>
43                         </ul>
44                 </ul>
45 </ul>
46 </i> </b> <br>
47 <a name="1"></a><h2>1. Introduction</h2>
48 <p>The kernel corresponds to the minimal set of services required for the use of SALOME components (Supervisor, IAPP). 
49 The kernel is also used by application software components (solver) and their container. 
50 The kernel is associated to a unique user who can launch only one kernel at once. 
51 The kernel is launched and destroyed by voluntary actions of the user. These functions are realized via the
52 use of scripts.</p>
53 <p>The list of the kernel services related to communication issues is:</p>
54 <ul>
55   <li>The Naming service</li>
56   <li> The Session service </li>
57   <li>The Life Cycle service </li>
58   <li>The Registry service </li>
59   <li>The Notification service </li>
60 </ul>
61 <p>This list is enlarged with CORBA independent services :</p>
62
63 <ul>
64   <li>The module catalog service </li>
65   <li>The Data Type Catalog service </li>
66   <li>The resource catalog service </li>
67 </ul>
68 <p> SALOME kernel module also encapsulates the Engine
69 <i><a href="#cont">Back to the contents</a></i>
70 <a name="2"></a><h2>2. Basic principles </h2>
71 <p>The SALOME user's desktop is a process on a machine. This process includes:</p>
72 <ul>
73   <li>A graphic interface (based on Qt), </li>
74   <li>A text interface (Python interpreter), </li>
75   <li>A 3D visualization window shared by components.</li>
76 </ul>
77 <p>SALOME Modules decompose into an interface (widgets GUI, text mode TUI, 3D visualization V3D) and
78 an engine.</p>
79 <p>The description of a module and its components is obtained by consulting the module catalog.</p>
80 <p>The interface is dynamically loaded in the process of the SALOME user's desktop. The engine is a CORBA
81 server launched either on the local machine or on the distant machine.</p>
82 <p>The engine (CORBA server) is created by a factory (or container). 
83 This factory is also a CORBA server. Several containers can be present on a machine. 
84 Some containers are specialized for types of components requiring a specific management. 
85 For example, a specific container is required for components performing parallel calculations.
86 The engine includes at least a dynamically linked library in the container process. 
87 This library is the implementation of the CORBA server associated to the engine. 
88 If the engine is built from a pre-existent executable code, the library is simply a wrapper of the encapsulated code. 
89 It launches the code in a separate process. Wherever possible, the code is included into the dynamic library.
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>
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>
92 <i><a href="#cont">Back to the contents</a></i>
93 <a name="3"></a>
94 <h2>3. Services and features of the SALOME kernel module </h2>
95 <p>This section gives a brief overview of the services composing the kernel module. 
96   The <a href="overview_Life_Cycle.html">Life Cycle</a> and <a href="overview_Naming.html">Naming</a> 
97   services are described in separate chapters of this reference manual.</p>
98   
99 <a name="3_1"></a><h3>3.1 Session service </h3>
100 <p>SALOME session describes the period starting from the kernel creation and 
101   ending with its destruction. During this period the user can connect the session 
102   and disconnect from it without ending this session. One connection log could 
103   be written. A priori, no information resulting from another (past) session can 
104   be used by the current session. </p>
105  <p>Implementation of this service in SALOME application is provided by the class 
106 <a href="interfaceSALOME_1_1Session.html">Session</a> encapsulated in the package 
107 <a href="namespaceSALOME.html">SALOME</a>.</p> 
108
109 <a name="3_2"></a><h3>3.2 Registry service </h3>
110 <p> The active component registry should contain:</p>
111
112 <ul>
113   <li>The list of the active components</li>
114   <li>The list of the active containers during a SALOME session.</li>
115 </ul>
116 <p>It should allow the state of a session. It also should allow to know if session can be stopped.</p>
117 <p>The API reference for this service is not included in the current version of the reference manual.</p>
118
119 <a name="3_3"></a><h3>3.3 Notification service </h3>
120 <p>The notification service is a kernel function which allows exchanging of events between CORBA objects.</p>
121 <p>In comparison with traditional CORBA event service, SALOME notification service allows to:</p>
122 <ul>
123   <li>Filter the events, </li>
124   <li>Structure the events,</li>
125   <li>Establish quality policies of services,</li>
126   <li>Subscribe to various event channels.</li>
127 </ul>
128 <p>The API reference for this service is not included in the current version of the reference 
129   manual. </p>
130   
131 <a name="3_4"></a><h3>3.4 Module catalog service </h3>
132 <p>There are two module catalogs in SALOME application:</p>
133 <ul>
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,
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.
136 </ul>
137 <p>The objective of these two module catalogs is to:</p>
138 <ul>
139 <li>List the available modules;
140 <li>Allow the addition, the modification and the deletion of a module in catalogs;
141 <li>Look for a module and\or a service fulfilling some given criteria (in catalogs);
142 </ul>
143 <p><p>Implementation of this service in SALOME application is provided by two classes 
144 <a href="interfaceSALOME__ModuleCatalog_1_1ModuleCatalog.html">ModuleCatalog</a>and <a href="interfaceSALOME__ModuleCatalog_1_1AComponent.html">AComponent</a> encapsulated in the package 
145 <a href="namespaceSALOME__ModuleCatalog.html">SALOME_ModuleCatalog</a>.</p> 
146
147 <a name="3_5"></a><h3>3.5 Data type catalog </h3>
148
149 <p>The data exchanged between components services have definite types. During description of input, output, and 
150 configuration parameters of components in the module catalog, the
151 definition of the parameters types is taken from data type catalog. During the editing of execution of 
152 graphs, it is necessary to check that the connections output-input parameters are of compatible
153 types.</p>
154 <p>The data types correspond to CORBA object classes, including attributes and access methods (defined by their IDL). 
155 These types can be created by specialization of generic data types.</p>
156 <p>The purpose of the data type catalog is to:</p>
157 <ul>
158 <li>List the available data types in the catalog;
159 <li>Browse the type hierarchy to check the compatibility of types (specialized output toward generic input);
160 <li>Allow the addition, the modification and the deletion of a data type in the catalog;
161 </ul>
162 <p>The API reference for this service is not included in the current version of the reference 
163   manual. </p>
164  <a name="3_6"></a><h3>3.6 Resource catalog</h3>        
165  
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>
167 <p>The API reference for this service is not included in the current version of the reference 
168   manual. </p>
169   
170 <a name="3_7"></a><h3>3.7 Engine</h3> 
171 <p>The engine represents  a shared library which can be dynamically loaded by a container. The container can load this library, 
172 given an interface name and an implementation
173 name. The container dynamically resolves  an extern_C function in the library,
174 which constructs the CORBA Engine servant object.</p>
175 <p>The SALOME engine in
176  the current version of the application is implemented 
177   as <b>Engines</b> package of interfaces. It encapsulates two classes: Component, Container.</p> 
178 <p>The API refernce for <b>Engines</b> package can be found <a href="namespaceEngines.html">here</a>. 
179 </p>
180 <a name="3_7_1"></a><h4>3.7.1 Component class</h4> 
181 <p>This class is used for interaction between the container and the component and between the components inside the container. 
182 </p> 
183 <p>The API reference for this class can be found <a href="interfaceEngines_1_1Component.html">here</a>.</p>
184
185 <a name="3_7_2"></a><h4>3.7.2 Container class</h4> 
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> 
187 <p>The API reference for this class can be found <a href="interfaceEngines_1_1Container.html">here</a>.</p>
188
189 <i><a href="#cont">Back to the contents</a></i> 
190 </body>
191 </html>