E/AS Software Foundation
7 September 2010 
E/AS Logo
E/AS Automation Solutions
The Open Source Project
 
Home » Architecture »  
E/AS Architecture

Contents

1. Architecture
1.1. Definitions
1.2. E/AS Platform
1.3. E/AS Platform Architecture
1.4. E/AS Component
2. System realization
2.1. Language And Layer Elements
2.2. Realization And Components
2.3. Classes
2.4. Functions
3. Platform Work Algorithm
3.1. Common Program Work
3.2. Client
3.3. Server

1. Architecture

1.1. Definitions

System architecture
method of system decomposition into parts and bind they in the integration.
System component
minimal part with all-sufficient functionality. Using both as stand alone and with interaction with another components.
Interaction
information change between system parts
Messages
interaction mechanism. Message is the structure contains:
  • receiver identifier
  • sender identifier
  • command
  • arguments for command
Transport
environment of interaction by messages serialized to text
Event
object achievement specified state. Event message differs from ordinary message by empty 'receiver identifier'. Therefore message manager will be notified and execute one or more commands from components.

1.2. E/AS Platform

1.2.1 E/AS Platform is multilayer execute core intended for support components operations.

1.2.2 Layers:

  • Transport
  • MM (message manager)
  • ODB (object database)
  • Code executor
  • UI (interface to external users and devices)

1.2.3 The interaction between layers is performed by passing messages. Interation is allowed only between neighboring layers. Physical placement of the layers doesn't regulated: layers can be placed on one host or on several hosts in any combinations.

1.3. E/AS Platform Architecture


Figure 1. E/AS Platform Architecture

1.3.1 Applicative information system (system) based on E/AS platform contains from couple of interaction components. Each component has multi-layer structure (contains layers in accordance with 1.2.2) and realize defined finctionality on applicative level. Couple of components and their functions is managed by special component named Component manager. Its goals are installation/removing/updating components int the system, lookup installed components and providing information about components and their finctions.

1.3.2 Functions on Code executor layer must use object-oriented language.

1.3.3 The interaction between components is performed by passing messages. There is the Message manager layer in system for this task. Its functions are:

  • receive messages from components by transport;
  • decoding (deserialization) of these messages;
  • lookup target component and command in list of installed components and supported commands;
  • execute function binded to specified component/command;
  • get result of execution;
  • answer serialization;
  • send answer message by transport.

1.4. E/AS Component

1.4.1 Each E/AS component contains:

  • Formalized definition of data structure (metadata). This definition is stored in the ODB as obect;
  • Stored applicative data (object on ODB layer);
  • Applicative executable code for realization component functionality (Code executor layer);
  • Client UI by XFL forms (UI layer);
  • Message handler (Message manager layer);
  • Documentation

1.4.2. E/AS component must have ability to serialize itself for move and/or replication to the another aplicative information system.

1.4.3 All data and metadata are performed as objects. These objects can be stored in the ODB or can gotten from other sources via components.

1.4.4 Executable code on Code executor layer can be writted on any high-level programming language. Preferences should be given to language, that supports their code distribution via byte-code.

2. System realization

2.1. Language And Layer Elements

It is suggested to use CLIP language and framework, because it is granted followed conditions:

  • simple syntax
  • byte-code support
  • obect-oriented programming support
  • realization of several platform layers (transport, ODB, Code executor, UI)
  • OpenSource license

Disadvantages:

  • less developers
  • weak documentation
  • less ready product written on CLIP

2.2. Realization And Components

E/AS platform consists of realization slice (couple of system classes for base functionality) and components. Base classes specified in 2.3. is named 'core'.

2.3. Classes

  Method/Field Event Description
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

2.4. Functions

setSlot( [<MM>], <event>, <code block> ) — add handler code to event.
setCommand( [<MM>], <object name>, <command>, <code block> ) — connect command for named object and handler code.
sendMessage( [<MM>], [<receiver>], <command/event>, [<arguments as array or object>], [<отправитель>] ) — send message.

3. Platform Work Algorithm

All core classes placed in library libeascore.so.

For platform work one or several executable program will be build with using core E/AS classes (starter).

3.1. Common Program Work

  • First object EASTransportManager is created. On its init object of connections (EASConnection) are created based on parameters from config file. There is in EASConnection constructor EASMessageManager object is created and EASMessageManager constructor crete object of EASDatabaseManager, EASExecuteManager, EASUIManager classes.
    • Execute method open() of EASConnection object.
      • EASMessageManager.open():
        • EASDatabaseManager.open(). Open database.
        • EASExecuteManager.open(). Read components list.
    • Then there is followed algorithm is used:

3.2. Client:

  1. EASUIManager.open(). Init user interface.
  2. Interactive request for connection parameters.
  3. Connect to server via EASConnection.open()
  4. Open main form via EASUIManager.openForm()
  5. On event appearance from user these events are translated via EASMessageManager.process() and executed in EASExecuteManager.execute()
  6. On main interface form EASMessageManager.close() will be executed and all services will be stopped.

3.3. Server:

  1. EASConnection.open(). Wait new connection.
  2. On new connection EASSession object will be created and execute its method open().
  3. On new data packet is received ( EASSession.receive() ):
    1. deserialization of this packet by EASConnection.deserialize()
    2. send message via EASMessageManager.process() and execute command in EASExecuteManager.execute()
    3. answer serialization by EASConnection.serialize()
    4. send packet via EASSession.send()
  4. On session break EASSession.close() will be executed.
05.07.2005

Print version

 
© 2004, E/AS Software Foundation. All right reserved.
Powered by E/AS Portal.