DDS Architecture & Technology Stack

tenuousdrunkshipInternet and Web Development

Nov 12, 2013 (3 years and 8 months ago)

77 views





















DDS Architecture &
Technology Stack

DDS Architecture and Technology Stack




Page
2

/
4

I. Architecture


The architecture is a classic 3
-
tier architecture.


1.

Presentation Tier

2.

Business Tier

3.

Data Tier




II. Technology Stack by Tier


Introduction


This technology stack contains
standardize
d
technologies and frameworks for
building
Rich Internet Applications

(RIA). All of these frameworks are
open
source

frameworks and are widely accepted by the Java community.


Frameworks categorized by technology. Company behind technology in brackets:




We
b related technology


o

JSF (Sun)

o

Facelets (Sun)

o

Icefaces (IceSoft)

o

Seam (JBoss)




Java EE related technology


o

Spring (Spring Source)

o

JPA / Hibernate (Sun)



Technology by Tier


1. Presentation
-
Tier


JSF (
http://java.sun.com/javaee/javaserverfaces

)


Developed through the
Java Community Process

under
JSR
-
127
, Java Server
Faces technology establishes the
standard for building server
-
side user
int
erfaces
. With the contributions of the expert group, the Java Server Faces
APIs are being designed so that they can be leveraged by tools that will make
web application development even easier. Java Server Faces technology
simplifies building user interfac
es

for Java Server applications. Developers of
various skill levels can
quickly build web applications

by:




assembling
reusable UI components

in a page;



connecting these components to an application data source;



and wiring client
-
generated events to ser
ver
-
side
event handlers
.

DDS Architecture and Technology Stack




Page
3

/
4


Ease
-
of
-
use being the primary goal
, the Java Server Faces architecture clearly
defines a
separation between application logic and presentation

while
making it easy to connect the presentation layer to the application code. JSF
co
uld be considered the standardized (JEE API) improved successor to Struts.



Facelets (
https://facelets.dev.java.net/

)


While Java Server Faces and JSP are meant to be aligned, Facelets steps outside
of the

JSP spec and
provide a highly performant, JSF
-
centric view
technology
. Anyone who has
created a JSP page

will be able to do
the same
with Facelets
. The difference is under the hood where
all the burden of the
JSP Vendor API is removed

to more greatly
enha
nce JSF performance

and
provide
easy plug
-
and
-
go development
. Facelets is being developed open
source under
Sun
's guidance.



IceFaces (
http://www.icefaces.org

)


ICEfaces is
an integrated Ajax application framework

that enables Java EE
application developers to
easily create and deploy thin
-
client rich Internet
applications (RIA)

in pure Java. ICEfaces is a fully featured product that
enterprise developers can use to develop new or existing Java EE applications at
n
o cost
.


ICEfaces applications are JavaServer Faces (JSF) applications
, so Java EE
application development skills apply directly and Java developers are isolated
from doing any JavaScript related development. The ICEfaces Component Suite
provides all of t
he building blocks for the application UI. It
includes both the
standard
JSF

components
, and a
wide array of advanced components

that
enable the developer to
assemble sophisticated application inter
faces
efficiently
. All ICEfaces component renders leverage the server
-
based,
direct
-
to
-
DOM rendering

mechanism provided in the framework, and use their partial
submit attribute to facilitate automated event generation over the Ajax Bridge
based on user int
eraction with the component's presentation.



2. Business
-
Tier


Spring (
http://www.springframework.org

)


Spring is the
leading full
-
stack Java/JEE open source application framework
.
Spring delivers significa
nt benefits for many projects,
increasing
development productivity

and runtime performance while
improving test
coverage

and
application quality
. Central in the Spring Framework is its
Inversion of Control

container, which provides a consistent means of
configuring and managing Java objects through
Dependency Injection
.

Spring
Transaction management framework
brings an abstraction mechanism
to the Java platform: work
ing with local and global transactions, nested
transactions,… even outside the application server.




DDS Architecture and Technology Stack




Page
4

/
4

Seam (
http://www.seamframework.org

)


Seam is a powerful
open source development platform

for building
rich
Internet applications

in Java. Seam integrates technologies such as JavaServer
Faces (
JSF
), Java Persistence (
JPA
), … into a
unified full
-
stack solution
,
complete with sophisticated tooling. Seam has been designed from the ground up
to
eliminate complexity

at both architecture and API levels. It enables
developers to
assemble complex web applications with simple annotated
plain Java classes
. Seam's unique support for conversations and declarative
state management eliminates a whole class of bugs common in t
raditional web
applications.


Seam
integrates open source JSF
-
based AJAX solutions like ICEfaces

and
Ajax4JSF
with Seam's unique state and concurrency management engine
.
Also Seam replaces the JSF XML configuration with a handful of
annotations
,
reducing c
ode

and making
developers more productive
. Seam grew out of
the Hibernate community, and was designed and implemented by the people who
created Hibernate, the same people who coined the term persistence context.
Seam's conversation model
solves

a raft of
p
ersistence
-
related programming
problems

caused by traditional stateless web application architectures. Whether
you use Hibernate or JPA
, Seam makes it easy and natural to use
.



3. Data
-
Tier


JPA
(
http://java.sun.com/javaee/technologies/persistence.jsp
)


The Java Persistence API
standardizes object
-
relational mapping
and
simplifies the entity persistence model
. The Java Persistence API provides a
POJO persistence model
for object
-
relat
ional mapping through

annotations
(or XML)
. The Java Persistence API
deals with the way relational data is
mapped to Java objects
("persistent entities") and the way that these
objects
are stored in a relational database
.


JPA provides
cleaner, easier, st
andardized object
-
relational mapping
and
provides an enhanced standardized query language.