Salome HOME
*** empty log message ***
[modules/gui.git] / doc / salome / gui / KERNEL / 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 -->\r
48 </style><script type="text/javascript" language="javascript1.2" src="../whmsg.js"></script>\r
49 <script type="text/javascript" language="javascript" src="../whver.js"></script>\r
50 <script type="text/javascript" language="javascript1.2" src="../whproxy.js"></script>\r
51 <script type="text/javascript" language="javascript1.2" src="../whutils.js"></script>\r
52 <script type="text/javascript" language="javascript1.2" src="../whtopic.js"></script>\r
53 </head>\r
54 <body><script type="text/javascript" language="javascript1.2">\r
55 <!--\r
56 if (window.gbWhTopic)\r
57 {\r
58         if (window.addTocInfo)\r
59         {\r
60         addTocInfo("About SALOME\nSALOME architecture");\r
61 addButton("show",BTN_TEXT,"Show","","","","",0,0,"","","");\r
62 \r
63         }\r
64         if (window.writeBtnStyle)\r
65                 writeBtnStyle();\r
66 \r
67         if (window.writeIntopicBar)\r
68                 writeIntopicBar(1);\r
69 \r
70         if (window.setRelStartPage)\r
71         {\r
72         setRelStartPage("../kernel.htm");\r
73 \r
74                 autoSync(1);\r
75                 sendSyncInfo();\r
76                 sendAveInfoOut();\r
77         }\r
78 }\r
79 else\r
80         if (window.gbIE4)\r
81                 document.location.reload();\r
82 //-->\r
83 </script>\r
84 <h1 class="whs1">&nbsp;SALOME \r
85  architecture</h1>\r
86 \r
87 <p class="whs2"><span style="font-weight: bold;"><B>SALOME \r
88  </B></span>architecture is based on <span style="font-weight: bold;"><B>CORBA</B></span> \r
89  technology using distributed system model of applications. This architecture \r
90  takes the concept of multitier client/server to its natural conclusion. \r
91  The distributed system model exposes all functionality of the application \r
92  as objects, each of which can use any of the services provided by other \r
93  objects in the system, or even objects in other systems. The architecture \r
94  can also blur the distinction between &quot;client&quot; and &quot;server&quot; \r
95  because the client components can also create objects that behave in server-like \r
96  roles. This architecture provides the ultimate in flexibility.</p>\r
97 \r
98 <p class="whs2"><span style="font-family: 'Times New Roman', serif;">The \r
99  distributed system architecture achieves its flexibility by encouraging \r
100  (or enforcing) the definition of specific component interfaces. The interface \r
101  of a component specifies to other components what services are offered \r
102  by that component and how they are used. As long as the interface of a \r
103  component remains constant, that component's implementation can change \r
104  dramatically without affecting other components. </span></p>\r
105 \r
106 <p class="whs3"><span style="font-weight: normal;">All \r
107  software components (VISU, GEOM, SMESH...) integrated into </span>SALOME \r
108  <span style="font-weight: normal;">platform &nbsp;implement \r
109  predefined interfaces. Each component provides data for the </span>SALOME<span \r
110  style="font-weight: normal;"> study in a form of links (stored in the \r
111  Study) to the specific data created and stored in the component. All components \r
112  represent</span> CORBA <span style="font-weight: normal;">servers and \r
113  it allows to run them on different host stations.</span></p>\r
114 \r
115 <p class="whs3">&nbsp;</p>\r
116 \r
117 <p class="whs2"><img src="../image67.gif" width="445px" height="288px" border="0" class="img_whs4"></p>\r
118 \r
119 <p class="whs2">&nbsp;</p>\r
120 \r
121 <p class="whs5">Actually, starting with SALOME 3.0.0 \r
122  version, it is possible to create engine-independent modules. These modules \r
123  may not use CORBA at all, and can have internal data structure which can \r
124  be written in pure C++ (or python). Such modules are located inside SALOME \r
125  GUI process and from the point of view of the end user have no difference \r
126  with standard components. Such modules not using the standard tools of \r
127  SALOME platform are defined on a special separated level named CAM. CAM \r
128  component is the basis for new SALOME GUI and contains all basic functionality \r
129  for working with modules (loading; saving, closing, customization of toolbar \r
130  and menu).</p>\r
131 \r
132 <p class="whs5">Another fundamental piece of the <span \r
133  style="font-weight: bold;"><B>SALOME</B></span> architecture is the use of the \r
134  Interface Definition Language (IDL). IDL, which specifies interfaces between \r
135  CORBA components, is instrumental in ensuring CORBA's language independence. \r
136  Because interfaces described in IDL can be mapped to any programming language, \r
137  CORBA applications and components are thus independent of the language(s) \r
138  used to implement them. </p>\r
139 \r
140 <p class="whs3"><span style="font-weight: normal;">Additional \r
141  information about CORBA technology is available at </span><span style="text-indent: 8px;"><a \r
142  href="http://www.omg.org">www.omg.org</a></span><span style="font-weight: normal;"> \r
143  &nbsp;</span></p>\r
144 \r
145 <p class="whs3">&nbsp;</p>\r
146 \r
147 <p class="whs6"><span \r
148  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
149  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
150  without GUI provided by IAPP component. In this case you can work with \r
151  these components with the help of Python commands and scripts. </span>&nbsp;</p>\r
152 \r
153 <p class="whs8">&nbsp;</p>\r
154 \r
155 <p class="whs9">The \r
156  architecture of this all-inclusive platform for numerical components &nbsp;responds \r
157  to the following objectives: </p>\r
158 \r
159 <p class="whs10">&nbsp;</p>\r
160 \r
161 <ul type="disc" class="whs11">\r
162         \r
163         <li style="margin-left: -20px;"\r
164                 class=kadov-p><p class="whs12"><span \r
165  style="font-weight: bold;"><B>Flexibility</B></span> : &nbsp;the \r
166  creation and modification of computation schemes must be easy. The developer \r
167  must have easy access to all modeling parameters to create domain-specific \r
168  tools adapted to new situations or to test new numerical algorithms. SALOME \r
169  allows integration and implementation of numerical and physical components \r
170  derived from existing code. </p></li>\r
171 </ul>\r
172 \r
173 <p class="whs12">&nbsp;</p>\r
174 \r
175 <ul type="disc" class="whs11">\r
176         \r
177         <li style="margin-left: -20px;"\r
178                 class=kadov-p><p class="whs12"><span \r
179  style="font-weight: bold;"><B>Productivity</B></span> : &nbsp;the \r
180  implementation of code is simple for the user and the reuse of components \r
181  (within other environments for macro-components) is noticeably facilitated.</p></li>\r
182 </ul>\r
183 \r
184 <p class="whs12">&nbsp;</p>\r
185 \r
186 <ul type="disc" class="whs11">\r
187         \r
188         <li style="margin-left: -20px;"\r
189                 class=kadov-p><p class="whs12"><span \r
190  style="font-weight: bold;"><B>Performance</B></span> : &nbsp;<span \r
191  style="font-weight: bold;"><B>SALOME</B></span> \r
192  is able to more finely simulate phenomena that is more complex in scale \r
193  and in physical coupling requirements. <span style="font-weight: bold;"><B>SALOME \r
194  </B></span>economically exploits the performance of used machines (massively \r
195  parallel processors, PC clusters, etc).</p></li>\r
196 </ul>\r
197 \r
198 <p class="whs12">&nbsp;</p>\r
199 \r
200 <ul type="disc" class="whs11">\r
201         \r
202         <li style="margin-left: -20px;"\r
203                 class=kadov-p><p class="whs12"><span \r
204  style="font-weight: bold;"><B>Expandability</B></span>: &nbsp;on \r
205  the one hand, software technologies and physical architectures evolve \r
206  rapidly compared to the development time, validation and use of a scientific \r
207  application while on the other hand, the development of a database model \r
208  adapted to the totality of exchanges between components can be achieved \r
209  incrementally. <span style="font-weight: bold;"><B>SALOME</B></span> &nbsp;is \r
210  able to easily follow these developments.</p></li>\r
211 </ul>\r
212 \r
213 <p class="whs12">&nbsp;</p>\r
214 \r
215 <p class="whs12">&nbsp;</p>\r
216 \r
217 <p class="whs12">&nbsp;</p>\r
218 \r
219 <p class="whs12">\r
220 <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
221 \r
222 \r
223  </p>\r
224 \r
225 <p class="whs12">&nbsp;</p>\r
226 \r
227 <p class="whs12">&nbsp;</p>\r
228 \r
229 <script type="text/javascript" language="JavaScript" title="WebHelpRelatedTopics"><!--\r
230 if (parseInt(navigator.appVersion) >= 3 && typeof (WritePopupMenuLayer) == "function")\r
231   WritePopupMenuLayer();\r
232 //--></script><script type="text/javascript" language="javascript1.2">\r
233 <!--\r
234 if (window.writeIntopicBar)\r
235         writeIntopicBar(0);\r
236 //-->\r
237 </script>\r
238 </body>\r
239 </html>\r