Salome HOME
Merge branch 'V8_4_BR'
[modules/gui.git] / doc / salome / gui / input / salome_architecture.doc
1 /*!
2
3 \page salome_architecture_page SALOME architecture
4
5         
6
7 \b SALOME architecture is based on \b CORBA technology using
8 distributed system model of applications.
9 \b SALOME combines several software components, which are built in such a way that it allows to
10 integrate solvers and existing meshing algorithms along with the
11 specification of physical properties for a given domain. The
12 originality of this approach is that the various components must
13 cooperate dynamically and be configurable.
14
15 \image html image54.png
16
17 <br>SALOME platform integrates a number of modules each having its own function:
18 <ul>
19 <li>\b KERNEL :  provides a common shell for all components, which can be integrated into the SALOME platform.
20 <li>\b GUI : provides visual representation: basic widgets, viewers
21 etc. Third party modules optionally can have GUI, but in any case they always connected with KERNEL.
22 <li>\b Geometry :  facilitates construction and optimization of geometrical models using a wide range of  CAD functions. 
23 <li>\b Mesh :  generates meshes on geometrical models previously created or imported by the Geometry component.
24 <li>\b ParaVis :  performs data visualization and post-processing.
25 <li>\b MED :  allows to work with MED files.
26 </ul>
27
28 Salome architecture takes the concept of multitier client/server to its natural conclusion. The
29 distributed system model exposes all functionality of the application
30 as objects, each of which can use any of the services provided by
31 other objects in the system, or even objects in other systems. The
32 architecture can also blur the distinction between "client" and
33 "server" because the client components can also create objects that
34 behave in server-like roles. This architecture provides the ultimate
35 in flexibility.
36
37
38 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
39 The distributed system architecture achieves its flexibility by
40 encouraging (or enforcing) the definition of specific component
41 interfaces. The interface of a component specifies to other components
42 what services are offered by that component and how they are used. As
43 long as the interface of a component remains constant, that
44 component's implementation can change dramatically without affecting
45 other components.
46
47
48 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
49 All software components (Geometry, Mesh...) integrated into
50 \b SALOME platform  implement predefined interfaces. Each component
51 provides data for the \b SALOME study in a form of links (stored in
52 the Study) to the specific data created and stored in the
53 component. All components represent \b CORBA servers and it allows to
54 run them on different host stations.
55
56 \image html image67.png
57
58 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
59 It is equally possible to create engine-independent modules. These
60 modules may not use CORBA at all, and can have internal data structure
61 which can be written in pure C++ (or python). Such modules are located
62 inside SALOME GUI process and from the point of view of the end user
63 have no difference with standard components. Such modules not using
64 the standard tools of SALOME platform are defined on a special
65 separated level named CAM. CAM component is the basis for new SALOME
66 GUI and contains all basic functionality for working with modules
67 (loading; saving, closing, customization of toolbar and menu).
68
69
70 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
71 Another fundamental piece of the \b SALOME architecture is the use of
72 the Interface Definition Language (IDL). IDL, which specifies
73 interfaces between CORBA components, is instrumental in ensuring
74 CORBA's language independence. Because interfaces described in IDL can
75 be mapped to any programming language, CORBA applications and
76 components are thus independent of the language(s) used to implement
77 them.
78
79 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
80 Additional information about CORBA technology
81 is available at http://www.omg.org
82
83 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
84 The architecture of this all-inclusive
85 platform for numerical components  responds to the following
86 objectives:
87 <ol>
88 <li>\b Flexibility :  the creation and modification of computation
89 schemes must be easy. The developer must have easy access to all
90 modeling parameters to create domain-specific tools adapted to new
91 situations or to test new numerical algorithms. SALOME allows
92 integration and implementation of numerical and physical components
93 derived from existing code.</li>
94 <li>\b Productivity :  the implementation of code is simple for the
95 user and the reuse of components (within other environments for
96 macro-components) is noticeably facilitated.</li>
97 <li> \b Performance :\b  SALOME is able to more finely simulate
98 phenomena that is more complex in scale and in physical coupling
99 requirements. \b SALOME economically exploits the performance of used
100 machines (massively parallel processors, PC clusters, etc).</li>
101 <li> \b Expandability:  on the one hand, software technologies and
102 physical architectures evolve rapidly compared to the development
103 time, validation and use of a scientific application while on the
104 other hand, the development of a database model adapted to the
105 totality of exchanges between components can be achieved
106 incrementally. \b SALOME  is able to easily follow these
107 developments.</li>
108 </ol>
109
110 */