Salome HOME
Join modifications from branch BR_DEBUG_3_2_0b1
[modules/gui.git] / doc / salome / gui / GUI / kernel / about_salome_pro_architecture.htm
1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">\r
2 \r
3 <html>\r
4 \r
5 <head>\r
6 <title>About SALOME architecture</title>\r
7 <meta http-equiv="content-type" content="text/html; charset=windows-1252">\r
8 <meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">\r
9 <link rel="stylesheet" href="../default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">\r
10 <!--\r
11 if (navigator.appName !="Netscape")\r
12 {   document.write("<link rel='stylesheet' href='../default.css'>");}\r
13 //-->\r
14 </script>\r
15 <style type="text/css">\r
16 <!--\r
17 h1.whs1 { margin-left:40px; }\r
18 p.whs2 { font-family:'Times New Roman' , serif; text-align:justify; text-indent:48px; }\r
19 p.whs3 { text-indent:48px; font-weight:bold; font-family:'Times New Roman' , serif; text-align:justify; }\r
20 img_whs4 { border:none; width:445px; height:288px; border-style:none; }\r
21 p.whs5 { text-indent:48px; font-family:'Times New Roman' , serif; text-align:justify; font-weight:normal; }\r
22 p.whs6 { font-family:'Times New Roman'  , serif; text-align:justify; font-weight:bold; text-indent:8px; background-image:url('../texture_horiz_ltbluebubbles.jpg'); }\r
23 img_whs7 { border:none; width:35px; height:37px; float:none; border-style:none; }\r
24 p.whs8 { font-family:'Times New Roman' , serif; text-align:justify; font-weight:bold; text-indent:8px; }\r
25 p.whs9 { margin-left:40px; font-family:'Times New Roman' , serif; }\r
26 p.whs10 { font-family:'Times New Roman' , serif; margin-left:40px; }\r
27 ul.whs11 { list-style:disc; }\r
28 p.whs12 { font-family:'Times New Roman' , serif; }\r
29 -->\r
30 </style><script type="text/javascript" language="JavaScript" title="BSSC Special Effects" src="../ehlpdhtm.js"></script><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">\r
31 <!--\r
32 function reDo() {\r
33   if (innerWidth != origWidth || innerHeight != origHeight)\r
34      location.reload();\r
35 }\r
36 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {\r
37         origWidth = innerWidth;\r
38         origHeight = innerHeight;\r
39         onresize = reDo;\r
40 }\r
41 onerror = null; \r
42 //-->\r
43 </script>\r
44 <style type="text/css">\r
45 <!--\r
46 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }\r
47 p.WebHelpNavBar { text-align:right; }\r
48 -->\r
49 </style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
50 <script type="text/javascript" language="javascript" src="../whver.js"></script>\r
51 <script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
52 <script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
53 <script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
54 <script type="text/javascript" language="javascript1.2">\r
55 <!--\r
56 if (window.gbWhTopic)\r
57 {\r
58         if (window.setRelStartPage)\r
59         {\r
60         addTocInfo("About SALOME\nSALOME architecture");\r
61 addButton("show",BTN_IMG,"Show","","","","",0,0,"../whd_show0.gif","../whd_show2.gif","../whd_show1.gif");\r
62 addButton("hide",BTN_IMG,"Hide","","","","",0,0,"../whd_hide0.gif","../whd_hide2.gif","../whd_hide1.gif");\r
63 \r
64         }\r
65 \r
66 \r
67         if (window.setRelStartPage)\r
68         {\r
69         setRelStartPage("../index.htm");\r
70 \r
71                 autoSync(1);\r
72                 sendSyncInfo();\r
73                 sendAveInfoOut();\r
74         }\r
75 \r
76 }\r
77 else\r
78         if (window.gbIE4)\r
79                 document.location.reload();\r
80 //-->\r
81 </script>\r
82 </head>\r
83 <body><script type="text/javascript" language="javascript1.2">\r
84 <!--\r
85 if (window.writeIntopicBar)\r
86         writeIntopicBar(4);\r
87 //-->\r
88 </script>\r
89 <h1 class="whs1">&nbsp;SALOME \r
90  architecture</h1>\r
91 \r
92 <p class="whs2"><span style="font-weight: bold;"><B>SALOME \r
93  </B></span>architecture is based on <span style="font-weight: bold;"><B>CORBA</B></span> \r
94  technology using distributed system model of applications. This architecture \r
95  takes the concept of multitier client/server to its natural conclusion. \r
96  The distributed system model exposes all functionality of the application \r
97  as objects, each of which can use any of the services provided by other \r
98  objects in the system, or even objects in other systems. The architecture \r
99  can also blur the distinction between &quot;client&quot; and &quot;server&quot; \r
100  because the client components can also create objects that behave in server-like \r
101  roles. This architecture provides the ultimate in flexibility.</p>\r
102 \r
103 <p class="whs2"><span style="font-family: 'Times New Roman', serif;">The \r
104  distributed system architecture achieves its flexibility by encouraging \r
105  (or enforcing) the definition of specific component interfaces. The interface \r
106  of a component specifies to other components what services are offered \r
107  by that component and how they are used. As long as the interface of a \r
108  component remains constant, that component's implementation can change \r
109  dramatically without affecting other components. </span></p>\r
110 \r
111 <p class="whs3"><span style="font-weight: normal;">All \r
112  software components (Post-Pro, Geometry, Mesh...) integrated into </span>SALOME \r
113  <span style="font-weight: normal;">platform &nbsp;implement \r
114  predefined interfaces. Each component provides data for the </span>SALOME<span \r
115  style="font-weight: normal;"> study in a form of links (stored in the \r
116  Study) to the specific data created and stored in the component. All components \r
117  represent</span> CORBA <span style="font-weight: normal;">servers and \r
118  it allows to run them on different host stations.</span></p>\r
119 \r
120 <p class="whs3">&nbsp;</p>\r
121 \r
122 <p class="whs2"><img src="../image67.gif" width="445px" height="288px" border="0" class="img_whs4"></p>\r
123 \r
124 <p class="whs2">&nbsp;</p>\r
125 \r
126 <p class="whs5">It is equally possible to create engine-independent \r
127  modules. These modules may not use CORBA at all, and can have internal \r
128  data structure which can be written in pure C++ (or python). Such modules \r
129  are located inside SALOME GUI process and from the point of view of the \r
130  end user have no difference with standard components. Such modules not \r
131  using the standard tools of SALOME platform are defined on a special separated \r
132  level named CAM. CAM component is the basis for new SALOME GUI and contains \r
133  all basic functionality for working with modules (loading; saving, closing, \r
134  customization of toolbar and menu).</p>\r
135 \r
136 <p class="whs5">Another fundamental piece of the <span \r
137  style="font-weight: bold;"><B>SALOME</B></span> architecture is the use of the \r
138  Interface Definition Language (IDL). IDL, which specifies interfaces between \r
139  CORBA components, is instrumental in ensuring CORBA's language independence. \r
140  Because interfaces described in IDL can be mapped to any programming language, \r
141  CORBA applications and components are thus independent of the language(s) \r
142  used to implement them. </p>\r
143 \r
144 <p class="whs3"><span style="font-weight: normal;">Additional \r
145  information about CORBA technology is available at </span><span style="text-indent: 8px;"><a \r
146  href="http://www.omg.org">www.omg.org</a></span><span style="font-weight: normal;"> \r
147  &nbsp;</span></p>\r
148 \r
149 <p class="whs3">&nbsp;</p>\r
150 \r
151 <p class="whs6"><span \r
152  style="font-weight: normal;">&nbsp;<img src="../note1.gif" x-maintain-ratio="TRUE" width="35px" height="37px" border="0" class="img_whs7">In </span>SALOME<span style="font-weight: normal;"> there \r
153  is a possibility to run definite components in the so-called </span><a href="running_salome_pro.htm#batchmode">batch mode</a><span style="font-weight: normal;"> \r
154  without GUI provided by GUI component. In this case you can work with \r
155  these components with the help of Python commands and scripts. </span>&nbsp;</p>\r
156 \r
157 <p class="whs8">&nbsp;</p>\r
158 \r
159 <p class="whs9">The \r
160  architecture of this all-inclusive platform for numerical components &nbsp;responds \r
161  to the following objectives: </p>\r
162 \r
163 <p class="whs10">&nbsp;</p>\r
164 \r
165 <ul type="disc" class="whs11">\r
166         \r
167         <li style="margin-left: -20px;"\r
168                 class=kadov-p><p class="whs12"><span \r
169  style="font-weight: bold;"><B>Flexibility</B></span> : &nbsp;the \r
170  creation and modification of computation schemes must be easy. The developer \r
171  must have easy access to all modeling parameters to create domain-specific \r
172  tools adapted to new situations or to test new numerical algorithms. SALOME \r
173  allows integration and implementation of numerical and physical components \r
174  derived from existing code. </p></li>\r
175 </ul>\r
176 \r
177 <p class="whs12">&nbsp;</p>\r
178 \r
179 <ul type="disc" class="whs11">\r
180         \r
181         <li style="margin-left: -20px;"\r
182                 class=kadov-p><p class="whs12"><span \r
183  style="font-weight: bold;"><B>Productivity</B></span> : &nbsp;the \r
184  implementation of code is simple for the user and the reuse of components \r
185  (within other environments for macro-components) is noticeably facilitated.</p></li>\r
186 </ul>\r
187 \r
188 <p class="whs12">&nbsp;</p>\r
189 \r
190 <ul type="disc" class="whs11">\r
191         \r
192         <li style="margin-left: -20px;"\r
193                 class=kadov-p><p class="whs12"><span \r
194  style="font-weight: bold;"><B>Performance</B></span> : &nbsp;<span \r
195  style="font-weight: bold;"><B>SALOME</B></span> \r
196  is able to more finely simulate phenomena that is more complex in scale \r
197  and in physical coupling requirements. <span style="font-weight: bold;"><B>SALOME \r
198  </B></span>economically exploits the performance of used machines (massively \r
199  parallel processors, PC clusters, etc).</p></li>\r
200 </ul>\r
201 \r
202 <p class="whs12">&nbsp;</p>\r
203 \r
204 <ul type="disc" class="whs11">\r
205         \r
206         <li style="margin-left: -20px;"\r
207                 class=kadov-p><p class="whs12"><span \r
208  style="font-weight: bold;"><B>Expandability</B></span>: &nbsp;on \r
209  the one hand, software technologies and physical architectures evolve \r
210  rapidly compared to the development time, validation and use of a scientific \r
211  application while on the other hand, the development of a database model \r
212  adapted to the totality of exchanges between components can be achieved \r
213  incrementally. <span style="font-weight: bold;"><B>SALOME</B></span> &nbsp;is \r
214  able to easily follow these developments.</p></li>\r
215 </ul>\r
216 \r
217 <p class="whs12">&nbsp;</p>\r
218 \r
219 <p class="whs12">&nbsp;</p>\r
220 \r
221 <p class="whs12">&nbsp;</p>\r
222 \r
223 <p class="whs12">\r
224 <a href="javascript:void(0);" onClick="var e; if (parseInt(navigator.appVersion)>=4){e=event;}  if (parseInt(navigator.appVersion) >=2 && typeof(PickupDialog_Invoke) == 'function') PickupDialog_Invoke(e,'','Introduction to SALOME ','introduction_to_salome_pro.htm');return false;" title="Related Topics"><img src="../ss_btn_related_topics.gif" border=0 height=17 width=82 alt="Related Topics"></a>\r
225 \r
226 \r
227  </p>\r
228 \r
229 <p class="whs12">&nbsp;</p>\r
230 \r
231 <p class="whs12">&nbsp;</p>\r
232 \r
233 <script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
234 if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
235   WritePopupMenuLayer();\r
236 //--></script><script type="text/javascript" language="javascript1.2">\r
237 <!--\r
238 if (window.writeIntopicBar)\r
239         writeIntopicBar(0);\r
240 //-->\r
241 </script>\r
242 </body>\r
243 </html>\r