Salome HOME
#19007 [CEA][Windows] SALOME non regression tests on Windows: fix KERNEL_SALOME_COMMA...
[modules/kernel.git] / doc / salome / salome_application.dox
index bd79433d910aab44bbbf6adca0c3b9ff320f3474..c909d4e3b4f0d8ce4ab48a920acfb3bdad481c78 100644 (file)
@@ -1,26 +1,28 @@
 /*!
-  \page SALOME_Application Salome Application Concept 
+  \page SALOME_Application Salome Application Concept
 
 
 The following explains how to configure your own application with your list of
 modules, how to define and run this application on one or more computers.
+You can choose one of the following approaches:
+-# use an \ref sec_salome_profile
+-# use a \ref sec_virtual_appli
 
 \section S1_sal_appl General principles
 
-%A %SALOME application is defined by :
+%A %SALOME application is defined by:
 - a set of modules (GEOM, SMESH, ASTER...)
-- a profile: set of informatic resources (images, documentation, tests...) binding the modules together. 
-- a launcher: python script that creates a context (set of environment variables usable by the SALOME modules) and runs an instance of SALOME.
+- a set of informatic resources (images, documentation, tests...) binding the modules together, also called profile.
+- a launcher: a python script that creates a context (set of environment variables usable by the %SALOME modules) and runs an instance of %SALOME.
 
-%A %SALOME User can define several %SALOME Applications. These applications are
-runnable from the same user account. These applications may share the same 
-KERNEL and modules. Thus, the application configuration is independant of
+%A %SALOME user can define several %SALOME applications. These applications are
+runnable from the same user account. These applications may share the same
+KERNEL and modules. Thus, the application configuration is independent of
 KERNEL and must not be put in KERNEL_ROOT_DIR.
 
 Furthermore, prerequisites may not be the same on all the applications.
 
-%A %SALOME Session can run on a several computers.
+%A %SALOME session can run on a several computers.
 
 Binary modules and prerequisites are installed on the different computers.
 There is no need to have all the modules on each computer (the minimum is
@@ -40,7 +42,8 @@ account@computer is via rsh or ssh and must be configured for use without
 password (key exchange for ssh). Account may be different on each
 computer.
 
-\section S2_sal_appl Generation of a profile
+
+\section sec_salome_profile Application profile
 
 The user can generate a default profile for its application using the following command:
 \code
@@ -60,14 +63,14 @@ This profile can be used within a python launcher - like the \subpage salome_com
 context variable <b>SalomeAppConfig</b> to the path where the profile is installed.
 
 
-\section S3_sal_appl Deprecated Application Directory
+\section sec_virtual_appli Virtual application
 
 First, the user must create a %SALOME application configuration file by modifying a
 copy of ${KERNEL_ROOT_DIR}/bin/salome/config_appli.xml.
 The file describes the list of %SALOME modules used in the application, with
 their respective installation path. The configuration file also defines the
 path of an existing script which sets the %SALOME prerequisites (tag "prerequisites"),
-and optionally, the path of samples directory (SAMPLES_SRC) (tag "samples") 
+and optionally, the path of samples directory (SAMPLES_SRC) (tag "samples")
 and the path of a catalog of resources (tag "resources").
 
 The following command:
@@ -87,262 +90,6 @@ some modules needs a special environment not defined in the above script).
 For a distributed application (several computers), one must copy and adapt
 CatalogResources.xml from ${KERNEL_ROOT_DIR}/bin/salome/appliskel (see below).
 
-\section S4_sal_appl Deprecated general rules
-
-The application directory must be created on each computer of the application.
-The easiest way is to use the same relative path (to ${HOME}) on each computer.
-(Sometimes it is not possible to use the same path everywhere, for instance
-when ${HOME} is shared with NFS, so it is possible to define different path
-following the computers).
-
-The application directory contains scripts for environment and runs. Environment
-scripts must be configured (by the user) on each computer. All the environment
-scripts are in the env.d subdirectory. 
-
-The script envd sources \b all the files (*.sh) in subdirectory env.d
-in alphanumeric order (after edition, think to remove backup files). The envd
-script is used by run scripts.
-
-<ol>
-  <li>
-<b>env.d scripts</b>
-
-<b>env.d scripts are built automatically.</b>
-
-You can add your own environment scripts in env.d subdirectory, they will be sourced as
-the generated ones provided they have a .sh extension.
-
-  </li>
-  <li>
-<b>User run scripts</b>
-
-The %SALOME user can use 4 scripts:
-
-- runAppli\n
-   Launches a %SALOME Session
-   (similar to ${KERNEL_ROOT_DIR}/bin/salome/runSalome but with a different
-   name to avoid confusions). See parameters below.
-
-- runSession\n
-   Launches a shell script in the %SALOME application environment, with access
-   to the current (last launched) %SALOME session (naming service), if any.
-   Without arguments, the script is interactive. With arguments, the script
-   executes the command in the %SALOME application environment.
-
-- runConsole\n
-   Gives a python console connected to the current %SALOME Session.
-   It is also possible to use runSession, then python.
-
-- runTests\n
-   Similar to runSession, used for unit testing, but runSession tries to use an
-   already existing naming service definition from a running session (hostname
-   and port number), and runTests defines a new configuration for naming service
-   (new port number).
-  </li>
-  <li>
-<b>%SALOME internal run scripts</b>
-
-- envd\n
-   Sets %SALOME application environment, envd is sourced by other scripts.
-
-For remote calls, %SALOME uses one script.
-
-- runRemote.sh\n
-   This script is mainly used to launch containers. The first 3 arguments
-   define the hostname and port userd for naming service, plus a working directory, the remaining
-   arguments define the command to execute.
-  </li>
-  <li>
-<b>Other configuration files</b>
-
-- SALOMEApp.xml\n
-   This file is similar to the default given
-   in ${GUI_ROOT_DIR}/share/SALOME/resources/gui
-
-
-- CatalogRessources.xml\n
-   This file describes all the computers the application can use. The given
-   example is minimal and suppose application directory is the same relative path
-   to ${HOME}, on all the computers. %A different directory can be set on a
-   particular computer with a line:
-   \code
-appliPath="my/specific/path/on/this/computer"
-   \endcode
-
-  </li>
-</ol>
-
-\section S5_sal_appl Deprecated examples of use
-
-<ol>
-  <li>
-<b>Launch a %SALOME session with a GUI interface</b>
-
-Launch is done with a command like:
-
-\code
-./runAppli --logger
-\endcode
-
-The --logger option means here : collect all the traces from the all the
-distributed process, via CORBA, in a single file : logger.log.
-
-There are a lot of options, a complete list is given by:
-
-\code
-./runAppli --help
-\endcode
-
-Note that, without argument, runAppli is a non interactive Python application,
-and, with arguments, runAppli is an interactive Python interpreter.
-
-Several options are already defined by default in SALOMEApp.xml files. Optional
-arguments given in the command override the SALOMEApp.xml configuration.
-
-Several sessions can run simultaneously, each session use a different port for
-CORBA naming service, so the sessions are totally separated from each other.
-
-When the GUI is closed, the different %SALOME servers are still running.
-  </li>
-  <li>
-<b>Close a %SALOME session, kill all the servers</b>
-
-Inside the interactive python interpreter you get when you use runAppli
-with arguments, you can kill all the servers of your session with:
-
-\code
->>> killLocalPort()
-\endcode
-
-or the servers of all the sessions with:
-
-\code
->>> killAllPorts()
-\endcode
-
-If you have no active Python interpreter connected to your session, you can
-kill all the %SALOME servers of <b>all the sessions</b> on a given computer:
-
-\code
-./runSession killSalome.py
-\endcode
-
-Remember! it's the same idea in <b>Windows (R) operating system</b> (Microsoft and Windows are either registered trademarks or trademarks of
-       Microsoft Corporation in the United States and/or other countries) :
-use the start menu to stop...
-
-When you use only one session at a time, you don't need more.
-
-To kill a given session (when several session are running), one needs
-the naming service port number:
-
-\code
-./runSession killSalomeWithPort 2810
-\endcode
-
-Note that the port number of the last launched session can be found on Linux,
-in the prompt, within a runSession shell (see below).
-
-It is also possible to get the Naming Service host and port number of
-the last launched session with:
-
-\code
-./runSession NSparam.py
-\endcode
-
-  </li>
-  <li>
-<b>Launch a %SALOME session without GUI interface</b>
-
-This is used to launch a %SALOME Python script without GUI
-(no GUI %server = SALOME_session_server)
-
-Example of script (test_session_geom.py):
-
-\code
-import salome_session
-salome_session.startSession(modules=["GEOM"])
-import GEOM_usinggeom
-raw_input("Press a key and the servers will be killed ...")
-\endcode
-
-This script is run in a non interactive way with:
-
-\code
-./runSession python test_session_geom.py
-\endcode
-
-All the process are automatically killed when Python is closed
-(with SALOME_session delete).
-  </li>
-  <li>
-<b>Add an external Python interpretor to a running session</b>
-
-It's often easier to develop and try Python scripts outside the GUI embedded
-Python interpreter. Imagine, for instance, you are writing a script involving
-geometry and mesh modules.
-first, launch a %SALOME session with gui, then, on another terminal:
-
-\code
-./runSession
-python
-\endcode
-
-Import salome module. salome_init() without arguments creates a new study
-in the running session (note: salome_init(n) attachs to a running session whose
-studyId is n):
-
-\code
-import salome
-salome.salome_init()
-\endcode
-
-An example of script given with SMESH:
-
-\code
-import ex01_cube2build
-\endcode
-
-It is possible to connect the GUI interface to the study created in the above
-script with the file/connect menu, then browse study and display objects.
-Further modifications on study can be done either with GUI or external script
-(use refresh popup in GUI %object browser to see study modifications generated
-by the external script). <b>AVOID modifications with GUI when a Python script
-is running</b>. Not all the modules are protected against concurrent actions...
-  </li>
-  <li>
-<b>Different uses of the runSession shell interpreter</b>
-
-runSession invoked without arguments gives an interactive shell with the full
-environment of %SALOME (PATH, LD_LIBRARY_PATH, PYTHONPATH, other variables).
-If there are running sessions of the same %SALOME application, runSession
-connects to the last launched session (i.e. gets the naming service references
-of the session: hostname and port)
-
-On Linux, the shell prompt (bash) gives information on naming service
-references, hostname and port:
-
-\code
-[NS=cli76cc:2811]prascle@cli76cc:~/SALOME2/Run/Virtual$
-\endcode
-
-If there is no running session, prompt looks like:
-
-\code
-[NS=:]prascle@cli76cc:~/SALOME2/Run/Virtual$
-\endcode
-
-runSession is useful to launch any script or program which needs the complete
-%SALOME environment, with or without a session already running.
-For instance, to launch the ddd debugger interface on the gui %server, first
-launch a %SALOME session with gui, then, on another terminal:
-
-\code
-./runSession ddd
-\endcode
-
-Then attach to the running SALOME_Session_Server process.
-  </li>
-</ol>  
+The application directory contains the elements required to run %SALOME, for example the \ref salome_command, and some context files in env.d directory.
 
 */