Você está na página 1de 11

QUARIX ARCHITECTURE OVERVIEW

CONTENTS
The Quarix Platform.................................................................................................................... 2 QuariX Frontends .................................................................................................................... 3 QuariX Progress Backend ....................................................................................................... 3 Architecture Overview ................................................................................................................. 4 Quarix Web Rich Client Framework......................................................................................... 5 Quarix Java Middle Tier........................................................................................................... 6 Quarix Progress Business Logic Framework ........................................................................... 6 Platform dependencies ............................................................................................................... 8 Scalable Architecture ................................................................................................................ 10

THE QUARIX PLATFORM


QuariX is a development platform and framework based on a mixture of industry leading technologies, specially created to fulfill the need of rapid development and deployment of modern applications. Applications based on QuariX can be deployed on desktop environments as native applications and in the same time as Web 2.0 applications, maintaining their rich client properties without any of their classic drawbacks.

QUARIX FRONTENDS
On the frontend QuariX features a fully compatible XML format that can be used to render user interfaces on both Desktop and Web environments. This allows a very flexible development and deployment model which can fit any needs. At this moment two fully functional frontends are available in QuariX: y y QuariX Web the Web 2.0 solution for rich user interfaces ; QuariX Desktop a WPF implementation of the QuariX standard on the desktop;

QUARIX PROGRESS BACKEND


Conceived from the beginning as a Web 2.0 framework for Progress developers, QuariXs goal is to offer a simple to use and straightforward framework to help Progress developers to rapidly build rich and responsive web interfaces while requiring minimum web development knowledge. Progress Application Server running in a stateless mode is the central part of the system holding the whole application business logic. Beside this the Application Server is taking care of interface description (widget-based markup objects description based on repository), generic data-access layer provider and complete request routing management. The Data Access Object (DAO) implements the bridge between business logic and interface. Due to this functional requirement, DAO has a dual implementation, on both front-end (to be a data server for the rest of Interface Objects that manipulates data) and back-end (to retrieve data or to commit data). Because of the mixed technology the two components of the Data Object uses an efficient and well defined communication mechanism based on standard formats: XML for client requests, JSON for server response. Standard operations are implemented to handle records retrieval as well as update operations: adding, removing, editing records. The components were designed in such a way to allow a highly distributed architecture for best scalability.

ARCHITECTURE OVERVIEW
The major components of the QuariX platform are: y y y
cmp Architecture - high lev el

Quarix Web Rich Client Framework Quarix Java Middle Tier Quarix Progress Business Logic Framework

C en

eb B o

GU Quarix Rich Gui Framew ork tags a a 3 1 + ope a 9 5 +


    

tags a a = un d e 1 5+ a a eb app e e = e e 2 3 + o a = 4 1 3 9+ p e e ed
 "   !    

p og e p og e

tags app e e = 10 1 B+ db = 10 1 B+

Se e

P og e

App

a o n Se e

Bu n e Log Quarix Progress Framew ork

Se e

a a

dd e

a a Quarix Middle Tier

 

 

bo

e =

e o 3+ e 7+

h o e 1+

Bu n e Log Existing Application Business Logic

QUARIX WEB RICH CLIENT FRAMEWORK


QuariX Web Rich Client Framework consists of a comprehensive collection of graphical user interface controls for Web 2.0 interface. The implementation is done using a slightly modified version of the Model-View-Controller pattern based on a publish/subscribe mechanism facilitating the interaction between completely decoupled components.

The interface between the user interface components and the back-end is done through a client-side version of what it can be called a data access object to which all graphical components can be bind. Standard compliance and standard technologies where at the core of the requirements and that shows in all the pieces that form the QuariX framework: Standard JavaScript for the client side / browser based Rich Internet Application framework (no plugins, just A grade browsers) XHTML/W3-DOM for content presentation, manipulation

CSS for presentation, styling

QUARIX JAVA MIDDLE TIER


Quarix Java Middle Tier is a simple middle tier that only has a very limited but specific functionality which comprise of: provide the interface for accessing the Progress Application Server provide uniform transformation from the Quarix agnostic user interface representation (XML) to X-HTML/JavaScript through an unified XSLT process provide basic session management functionality (initiation, handle expiration)

QUARIX PROGRESS BUSINESS LOGIC FRAMEWORK


Quarix Progress Business Logic Framework is a comprehensive collection of business logic components written in Progress OO ABL which offers among others basic data access layer, common services like: localization, authentication, session and context management, error and logging management, etc. The communication between the business logic layer and the Java middle tier is done through a single point of entry which acts as a request dispatcher while offering the standard processing for all requests (authentication, authorization, localization). The business logic layer also provides support for accessing existing/legacy application business logic through faade components, as seen in the following low level component diagram.

ags ja a = un jd e 1 5 + ja a e b app e e = e l e 2 3 + o a = 4 1 3 9+ p e e e d Qua i og e


1

logging
& % ( %

% 0

%&

@ @

E i i ng
A @ 2

p pli a i on

u ine

Logi

A @

u ildReque

bus ness og c /ap

ex s ng ser

gu screens
C %

bus ness og c /da a access

o n i gu a i on

e o
11

c es

@ @

@ R A2

A @

A @

u ildReque

Da a Reque

au h en i a i on on e e ion
A 3 A A

1A

d s pa cher
& % C

a n la i on

% 0

61

Fa e o
5 4 1

E1

%G

E1

%F

@ 6

&

34

@ @

19 2 1

7 2 1

Qua i

iddle

ie

ja a Quar x dd e

# &

reques

a nager

A @

e e Reque
1 E1

er

A @

da a e que
1 A D

A @

E1

A @

1 A

A @

e e Reque
1 E1

pain e que

Da a i nd
C A

Da a i nd

&

gu co ponen s
& # %

61

Qua i Ri h Gui F a e o
5 4 1 3 2 1

( '

c p rch ec ure
& &% $ #

e e

bind

da a access proxy

e e Reque

ser

c es

anage en

PLATFORM DEPENDENCIES
Quarix solution requires the following execution environments to be present in order to be deployed, please install the pre-requisites components before proceeding with Quarix deployment: A. Web Se e A standard HTTP server used to serve the static content (images, documents, css, javascript) this component is usually required in a production environment even if most of the Web Application Servers can also serve static content; we recommend this to be used because of two reasons: has specific functionality (virtual hosts, proxy, content cache, etc.) has less functionality compared to a Web Application Server hence its less exposed to various malicious attacks

Any HTTP server can be used given there is also a connector available for the selected Web Application Server selected to be used as the middle tier component: Internet Information Server (IIS), Apache HTTP Server (preferred). Please note that if you choose not to use this component, by deploying also the static content on the Web Application Server, that the Application Server need to be connected to the Progress Application Server which usually is placed inside the internal network (LAN) while the web server need to be places somewhere outside of the internal network (preferred in the DMZ).

B. Web App ca on Se e (Ja a Se

e s)

The Quarix middle tier layer is build using standard Java Servlet Technology and needs any Web Application Server that support at minimum the 2.3 version specifications. We recommend the Apache Tomcat Application Server but there are also other solutions available among which we can name: JBoss Application Server, IBM WebSphere Application Server. iven the fact that this layer is actually assuring the connection to the Progress Application Server is advisable to be placed inside the internal network (LAN) or in the demilitarized zone (DMZ). C. P og ess App ca on Se e

Progress Application Server is actually hosting the application business logic and provides access to the Progress Database Server. The normal operation mode used by Quarix solution is state-free which is the less restrictive option meaning no session management is provided by the Application Server itself and no connection is hold open between requests. Because the Quarix Progress framework use the newly Object Oriented ABL and require support for large object data type (CLOB, BLOB) the minimal version that can be used is Progress Open dge 10.1B. The number of agents needed and the licensing model to be used depends on the number of users accessing the application; please consult your Progress Sales Representative to discuss the licensing requirements. D. P og ess Da abase Se e Beside the applications specific databases the Quarix solution requires a run-time database for things like application configuration, user management, session management. Because the usage of large object data type (CLOB, BLOB) the minimal version that can be used is Progress Open dge 10.1B. The number of access licenses needed and the licensing model to be used depends on the number of users accessing the application; please consult your Progress Sales Representative to discuss the licensing requirements.

SCALABLE ARCHITECTURE
iven the fact that the solution architecture is a highly distributed one there are a couple of deployment options going from all on one server choice to the totally distributed one on which each running environment is hosted by a separate server. The fact that most of the existing Web Application Servers (servlets) are able to also serve static content the plain Web Server can be taken completely out of the picture, however we do not recommend that for a production environment. The choice of the deploying architecture is not imposed by Quarix and depending on the series of requirements/constraints a decision need to be made case by case. Among the most important things that need to be considered when deciding upon the deployment architecture to be used we ca name: y y y y required application availability/response-time security considerations need for fail-over and load-balancing existing network/hardware infrastructure

One of the deployment option which we think can provide a good performance as well and scalability while maintaining a high security level is a 3-tier architecture as seen bellow. Optionally if high availability is a key factor a combination of load-balancing and fail-over servers coupled with database replication solutions can be put in place obtain a near-zero downtime solution.

10

deployment Deployment 3-t er


V U T

wan

i nt net devi ce Web Brow ser

tags apache t mcat connector mod_jk) ii tomcat connector i api _redi rect.dl l )
rg q p h i hg

(f l an i nt anet
V

S ft

TCP/IP

tags ervl et p ec . tomcat . . prefered)


(f

S ft

TCP/IP Hardw are::Back End Serv er

11

sn r q

p on

g f e

(f

S ft

(f

ml j

kj

versi on

tags .

TCP/IP versi on

tags .

S ft

executi on envi ronment Progress ppServ er

executi on envi ronment Jav a Web ppServ er


u

Hardw are::Middle Tier

e xecuti n envi nment Web erv er


V b ` b

Hardw are::Front End

f e

y x w

TCP/IP
YX W

erv er

a d v d f T

e rv er

executi on envi ronment Progress DBServ er

Você também pode gostar