Execution environments of Lava
applications
A Lava file represents an
executable program if the first Lava
entity in its top-level package is an initiator.
You can execute such a Lava
program, i.e., its first initiator, from LavaPE
by clicking the "Run" button. Alternatively you could start the
Lava interpreter (Lava.exe)
and pass the name of an executable Lava
program as a command line parameter to it.
This way of starting a Lava
program by starting a top-level initiator is appropriate for stand-alone
Lava applications or for
programs with a Lava main
program that perhaps make use of "foreign-language"
components additionally.
Conversely a Lava program
could be invoked as a component from another Lava
or foreign-language main program or component.
In any case we have to envisage several ways how such a Lava
program or Lava component
may interact with its environment, and that is what the term "execution
environments" is intended to express. The pertinent support available
from the underlying operating system will largely decide upon the variety
of reasonable execution environments:
- A "Lava console
application" might be started from a command line environment
and consume/produce nothing else than line mode input/output.
- A "Lava MDI
application" may present a Multiple-Document Interface to the
user. Several Lava
programs may run concurrently in such an execution environment and open
any number of MDI child windows. This is what the current Lava
development aims at as a first step.
- "Lava SDI applications"
presenting a single-program/Single-Document Interface are imaginable as
a special case.
- Component-based applications with Lava
programs on the client/container or on the component/server side could
support various features, for instance, in Microsoft
COM terms: Linking/embedding of user interfaces, compound
documents, ActiveX Documents,
ActiveX Controls,
particularly embedding of Lava
objects in WEB pages similar to Java
applets or ActiveX Controls/Documents,
Automation client or
server, drag-and-drop between components, communication through the
clipboard, database access through OLE-DB.
- Lava programs as CORBA
objects/components.