|
|
|
| |
concepts for a multi-channel architecture |
|
|
|
|
| |
Definition of an open
platform, integrating, modular,
evolutionary … focussed on the concept of distribution channel, separating technology
from business and presentation.
Multi-channel platform:
-
The information gets to any place: distribution channels.
-
Reliable information: the same for all channels.
-
Rapidity and efficiency:
as much in the development as in the integration of new channels.
-
Usability: simplicity
of the usage for all users.
-
Interest:
updated and useful information, the user must feel identified with the displayed information (personalization).
Information depending on the
client but not on the channel technology, the channel
is only a diffusion medium, must not
determine the information.
Rapid adaptation to the unbridled technological evolution
through open, scalable, modular and maximally reutilizable architecture.
Clients:
-
Interactive personalization of the required information
-
Single source of information on the client's customs and habits
-
Exhaustive analysis
of the client's data
-
Personalized offer
-
Permanent updating of the information
|
|
|
|
|
|
Application Service Provider philosophy |
|
|
|
| |
PADKernel strengthens the competitivity
of the final products in a multi-layer, multi-business, multi-environment, multi-channel, multi-device, multi-user and multi-language Java architecture in a J2EE
environment 100%.
There are advantages of experience centralization, improved development, scalability,
monitoring projects and of a launching platform for innovative and competitive projects. Moreover,
it serves for utilizing and managing - transparent for developers - the system infrastructures (web servers, applications servers,
file systems, databases, etc.) that are needed for the final projects, optimized if possible,
the velocity of final access.
The installation on the client side is extremely minimalized. In case of web navigators, it will surely be null,
and in PDA devices and cell phones a minimal installation is required except of more advanced terminals like PocketPCs
that have indeed functional navigators at their disposal.
The mentioned layer is always created with a J2ME presentation motor utilizing the client
provisioning J2EE definition with a module for assuring the
realization of the connections. In less open devices with .NET or C++, although the latter one may mean higher costs.
Products previously defined by projects are offered,
the versatility of the architecture will be a clear objetive and with this motivation the architecture has to be oriented toward components and connectors what simplificies its development in different phases.
For each product, multiple services can be offered to the client, as much at the business level as at the system level
(statistics, storage, etc.), of which those of interest can be chosen.
The final objective is the availability 7x24, 99,9999%
32 seconds of disconnection pe ryear (summing up
all the breaks).
|
|
|
|
|
|
general characterístics of the padkernel architecture |
|
|
|
| |
Multi-level: An MVC pattern is implemented (model, view, controller)
based on a server side X-Forms
definition of the W3C. This model separates perfectly
the business implementation of the presentation
and with controllers or filters for the different
protocols: HTTP/S in a starting and Web Services in the following development phases. The X-Forms
model serves for maintaining the access transparent in two senses: from the different channels to the business and from the backend to the business . The XSLT and/or JSP presentation
level, it is possible to add more
types of presentation if necessary.
Multi-business and multi-environment: There exists a configuration manager that gives the framework the possibility to
realize a coexistence of different companies and environments of the mentioned companies, mantaining a single implementation for business service.
Multi-channel and multi-device: The same configuration manager makes it possible to open the mentioned companies and environments to the different channels and the devices to the mentioned channels, mantaining a single implementation per business service and various
presentations that are managed by an independent presentation module through the configuration.
Multi-language: The presentation manager
has a collection of the possible literals
in different languages at its disposal that supports every presentation for each
company, environment, channel and device, managed through an independent manager that, on its part, utilizes the information of the configuration.
Multi-platform: The installation
of the platform is possible in Windows
as well as in Linux/Unix environments, preferably in these latter,
and perhaps in a multiprocessor environment or in an environment that emulates
a multiprocessor with Intel's HyperThreading
technology. Systems in cluster and systems with intelligent load balancing
(SmartStubs, for example.) in a romboidal machine infrastructure
with a manager that maintains safe the contained information in the user contexts
(vertically and horizontally scalable solution).
Multi-user:
The concurrence of multiple users is a critical aspect for the system availability, and although the Java platform and, by extension,
the application servers provide this base aspect, the architecture has to veil this aspect being based on a strategy
of maximal optimization of the components.
|
|
|
|
|
| |
Business processes :
Coordinate the information flow of the process
that is executed. After the execution the results are fetched and stored in an object where they are recollected from by the presention that has the task of showing them. The business processes have the task of indicating
which presentation is the one that funcionally
resolves the user's request. Following that a
Presentation Manager will select
the corresponding presentation.
Data Manager: Formats the information so that they can be processed by external systems (HOST, data bases, BackEnd)
that will have to deal with them. Deliver the formatted response
to the business processes. The data manager
manages the relation to the connectors.
Connectors: Managers of the communication with external systems (TCP-IP, SNA, etc.),
connection with servers (HTTP/S, XML,
etc.), data bases (PostgreSQL, Oracle), etc.
Presentation Managers:
Determinates exactly which presentation element is to be utilized. Receives as entrance the "functional presentation" determinated by the Controller and evaluated the parameters that can fix one or another presentation. For example: Channel, company, language, device,
etc.
|
|
|
|
|
| |
-
Controlller of the
flow of X-form execution of multi-channel requests.
-
Context manager.
-
Configuración manager.
-
The components
of the definition of what all the business components represent.
-
The
presentation manager.
-
Basic cache utilities and XML Scheme y XML treatment.
-
Manager of log files.
-
Pool of Data Base connections.
All these components are mounted in a single machine with the Linux operating system and under a Tomcat web container, both of distinguished prestige and reliability. No container application
will be utilized because the use of EJB will be required. |
|
|
|
|
|
PHASE 2 model server side X-Form complete and transactions manager |
|
|
|
| |
Model of collection of data of multi-channel X-Form entry in the following points:
-
Structure of the there and back request data.
-
Association
(assignment) entry data - data of the predefined entry structure of the request.
-
Validation
of the structure, data prototype and complex business rules under an XML automaton model (this latter not included in the first phase).
Once more using the components of the first point a Backend
transactions manager based on an adapted XMLForms pseudo model is created with the following components:
-
Structure of
there and back transactions.
-
Association
there data - transaction result data.
-
Validation
of the structure, data prototype and complex business rules under an XML automaton model.
Stress probes and the improvements derived from the results of these probes are made in all the managers, above all in the cache and in the logs.
The configuration is improved implementing multi-properties system based on XML.
We proceed to the integration with OpenGIS for the localization projects. |
|
|
|
|
|
PHASE 3 Client Provisioning |
|
|
|
| |
For the applications that are visualized
via the navigators the generic and reutilizable components based on JavaScript are enforced.
These channels only require efforts on presentation level but these must not be underestimated because if well designed and managed they can collaborate on a large scale to increase the access velocity and the richness of the client applications.
For the applications that are installed in client devices
a version and client applications supply manager based on the client provisioning J2EE (enterprise
edition) specification is created and particularly in specifications
defined for J2ME (micro edition) as well as for
CDC (client device connected)
and CLDC (cliente limited device connected) profiles.
The applications are based on a light presentation motor and a module that assures the delivery of the requests of the mentioned applications, under HTTP as well as in safe HTTPS connections.
We proceed to the creation of a configurable security manager that blocks invalid IP's, certificate management, etc.
|
|
|
|
|
|
PHASE 4 load balance, context repository and management tools |
|
|
|
| |
In order to be able to scale the architecture
down to the systems level a repository of user contexts
is created that has the task to assure that the load balance does not no end up with excessive information traffic and latency time in cluster environments, on the one hand, and that only permits those data to safe information in these contexts that have been authorized by the most qualified profiles, so that the improper use of this resource by the developpers is prevented.
An intelligent load balancer is created.
We implement the following business components of the architecture:
We proceed to scale the system infrastructures vertically and horizontally. |
|
|
|
|
|
PHASE 5 Content Management System (CMS) |
|
|
|
| |
For increasing the response velocity of the
final applications and improving the development velocity of the mentioned projects the components necessary for the creation of a CMS are implemented. For that it wil be necessary to create a remote manager of presentation resources
and
literals.
•Having a CMS means simplifying the system architecture because many system resources, e.g. the web servers of Apache type, may cease to have utility.
|
|
|
|
|
| |
X-Forms is a specification of the W3C as result of the redefinition of the HTML forms. All the aspects of web programming have been much evolved except the forms that haven'nt moved even a millimeter from the definition that was given to them initially. The new specification of the forms responds to various necessities:
-
To adapt to the XHTML 1.0 redefinition.
-
Seperate the treatment of forms from the presentation.
-
Solve the problem of facing multi-channel architectures.
The new specification defines an XForm in three parts:
-
XML skeleton of the request: we can launch a data structure that is as complex as we like by means of an XML skeleton that we define.
-
Association of the input fields of the presentations with the nodes of the skeleton: XML Binding.
-
Validation of the data before sending them: XML Validation.
Moreover, the specification defines two possible implementations:
-
Client side: for those browsers that support the mentioned definition.
-
Server side: for being able to migrate to this type of structures without affecting the los channels that don not support such powerful technologies. We choose this option for our architecture.
For implementing the server side XForms we will utilize the JAX-P and JAX-B (Java Api for
XML Processing and Binding) libraries. The former defines the interfaces that are necessary for utilizing the SAX standard for the reading and processing of XML and the latter for the processing in the memory as well as for XML-Java and Java-XML transformation. This latter library, moreover, has to provide JavaBean type interfaces of object trees that are equivalent to the data structure defined by que define an XML, is capable of applying complex validations on data type level as well as more complex validations defined by an XSD (XML Schema).
The implementations utilized will be on one side Xerces of the apache project for JAX-P and the implementation of the Sun referencia of JAX-B. It is noteworthy that JAX-B is Sun's bet for for the creation of complex Java objects starting from a standard XML Scheme definition. By means of these two technologies we have at our disposal the tools necessary to implement an architecture baseda on XForms solving the multi-channel problem.
|
|
|
|
|
| |
STRUTS is one of the Apache Jakarta organization's Open Source projects with the biggest influence and impact on the implementation of frameworks that are based on the MVC paradigm. Simple, light, scalable, and extensible, it separates perfectly the business layer from the presentation defining in the forms that are presented to the client, and by configuration, multiple elements of the following types:
-
Action:
Java class that resolves the business.
-
View:
Possible presentation view resulting from the execution of a business. There may exist multiple views for each action. They may be XSL, JSP, or Velocity patterns, or we may create or own ones.
-
Controller:
we have different flow control classes at our disposal that we can extend according to the necessities of our project.
STRUTS resolves the business via the configuration files defined by the user at the time of design and returns the presentation view that is adequate for each result.
Our architecture will follow a similar structure but specially adapted to a XForm definition.
The advantage of utilizing this model is the elimination of the dependency from the flow control on the server side what - although its business elements and available presentations are persistent - leaves freedom to the formns charged on the client side - freedom to control the flow control that jointly with the XForm definition, in an accumulative way on the server side, solves the multi-channel problem.
|
|
|
|
|
| |
Both technologies are perfectly valid for creating presentations rich in content and functionality. In order to resolve JSP we have basic infrastructures in Tomcat, and for the XSLT resolution we will use the Apache Xalan implementation of the JAX-P part referring to XML StyleSheet Language for Transformation.
|
|
|
|
|
| |
XML Scheme is a standard defined and maintained by the W3C that arose as an XML redefinition of the DTD's (Document Type Definition) standard which served for validating and defining of a data structure and the type-assignment to data of an instance or a valid XML document. Besides the complexity of reading these, the DTD's showed, as quickly as they were accepted in the technological community, certain shortages in their syntax, scalability, and utility. Then, the World Wide Web Consortium (W3C) started working - just as it did with the XML redefinition of HTML (XHTML) - on the new version which is destined to gradually substitute for the DTD’s.
Thus and with a syntax language totally defined by an XML and self-describing, a DTD can be translated to an XML Scheme, but not the other way round, because the power an XML Scheme possesses a DTD does not possess. Tools like XML Spy realize this step directly by a click on a single option. In turn, it can be extracted which one is the corresponding XMLScheme or DTD for a skeleton provided by our hypothetical client.
Our XML Scheme is capable of validating the correct structure of any XML and also the correct type-assignment to the data that travel in this complex structure, applying restrictions to basic types to these items or more complex restrictions like regular expressions, enumerations, validations against other elements of the structure or inheritance if we want to experience its authentic power.
|
|
|
|
|
| |
|
Barcelona
Rosselló, 34 5º 1ª
08029 Barcelona
T 933 630 638
F 934 102 438
comercial@emovilia.com |
Madrid
Barbastro, 5 local
28022 Madrid
T 913 931 037
F 913 930 271
|
Valencia
Guillem de castro , 135
46008 Valencia
T 963 366 699
M 625 443 341
|
|
|
|
|