--
PedroRio - 14 Dec 2010
XEO Architecture
XEO is a
J2EE framework, and XEO Applications are deployed in a
J2EE Application Server (such as JBOSS,
GlashFish). XEO's Architecture will be explained by steps (with a complete overview at the end). XEO is structured in three vertical layers, which are set upon each other, the layers are XEO Data Layer, XEO Core System and XEO Client Controller Layer.
XEO's Data Layer, depicted in figure Arch.1, has two components. The Database Driver component and the Virtualization component. The Database Driver is the connection to the DBMS where instances of XEO Object Models are to be saved while the Virtualization layer (still not fully implemented) is the component which allows the use of other datasources (such as webservices, XML databases, LDAP, etc..) for object instances.
Figure Arch.1 - XEO Architecture, only including its Data Layer
The second layer, XEO Core System, is where the
XEO Engine is present. It's responsible for all the abstractions seen in the
XEO Concepts section, as well as some other features, such as XEOQL (XEO Query Language), which is a SQL-esque language used in XEO to query instances of XEO Object Models or the XEO Java API which is the primary method of defining custom behavior for XEO Objects. The XEO Core System layer is depicted in figure Arch.2, bellow. Even in runtime, XEO Object Models are grouped in XEO Packages (again, merely a logical grouping).
Figure Arch.2 - XEO Architecture with Data Layer and Core System Layer
Above XEO's Core System Layer is the XEO Web Components Layer, which deals with the rendering of web-pages for user interaction. XEO
WebComponents have built-in security mechanisms, which allow to create rules where users, may or may not see certain components in a given viewer (or see a viewer altogether). The XEO Client Controller Layer is depicted the in figure Arch.3
Figure Arch.3 - XEO Data Layer, Core System Layer with the added Client Layer
The XEO Framework not only allows for great customization of its Object Models, has query, visual and security mechanisms but can also be extended with the concept of a XEO Module. A XEO Module is was of adding new features to XEO (which can be installed separately form the main framework), a XEO Module may define a set of XEO Object Models, have its own API, include existing Java libraries and interact with XEO's Java API to create the desired features. The XEO framework has been extended with two modules, one to allow interaction with object instances via web services (REST and SOAP) and one to integrate with a Business Process Management (BPM) engine. The ability to interact directly with XEO's Java API allows for modules to integrate in the Core System Layer, Data Layer or the Client Layer, as depicted in figure Arch.4
Figure Arch.4 - Complete XEO Runtime Architecture
In the next chapter we'll describe a sample application (which we'll use throughout the documentation, building an incrementally complex application), read more.
FALTA AQUI FALAR DA DEVELOPER ARCHITECTURE?