1 <!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
\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
11 if (navigator.appName !="Netscape")
\r
12 { document.write("<link rel='stylesheet' href='../default.css'>");}
\r
15 <style type="text/css">
\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
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
33 if (innerWidth != origWidth || innerHeight != origHeight)
\r
36 if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
\r
37 origWidth = innerWidth;
\r
38 origHeight = innerHeight;
\r
44 <style type="text/css">
\r
46 div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
\r
47 p.WebHelpNavBar { text-align:right; }
\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
56 if (window.gbWhTopic)
\r
58 if (window.setRelStartPage)
\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
67 if (window.setRelStartPage)
\r
69 setRelStartPage("../index.htm");
\r
79 document.location.reload();
\r
83 <body><script type="text/javascript" language="javascript1.2">
\r
85 if (window.writeIntopicBar)
\r
89 <h1 class="whs1"> SALOME
\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 "client" and "server"
\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
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
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 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
120 <p class="whs3"> </p>
\r
122 <p class="whs2"><img src="../image67.gif" width="445px" height="288px" border="0" class="img_whs4"></p>
\r
124 <p class="whs2"> </p>
\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
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
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
149 <p class="whs3"> </p>
\r
151 <p class="whs6"><span
\r
152 style="font-weight: normal;"> <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> </p>
\r
157 <p class="whs8"> </p>
\r
159 <p class="whs9">The
\r
160 architecture of this all-inclusive platform for numerical components responds
\r
161 to the following objectives: </p>
\r
163 <p class="whs10"> </p>
\r
165 <ul type="disc" class="whs11">
\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> : 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
177 <p class="whs12"> </p>
\r
179 <ul type="disc" class="whs11">
\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> : 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
188 <p class="whs12"> </p>
\r
190 <ul type="disc" class="whs11">
\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> : <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
202 <p class="whs12"> </p>
\r
204 <ul type="disc" class="whs11">
\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>: 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> is
\r
214 able to easily follow these developments.</p></li>
\r
217 <p class="whs12"> </p>
\r
219 <p class="whs12"> </p>
\r
221 <p class="whs12"> </p>
\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
229 <p class="whs12"> </p>
\r
231 <p class="whs12"> </p>
\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
238 if (window.writeIntopicBar)
\r
239 writeIntopicBar(0);
\r