Você está na página 1de 100

Java Curriculum ASERT Education 1999-2006 JeeOverview - 1

Java Enterprise Edition


Platform Overview
Java EE/J2EE Explained, Technologies &
Tools for each Tier, Frameworks, Best
Practices, Market Assessment
March 2006
A
S
E
R
T
:

A
d
v
a
n
c
e
d

S
o
f
t
w
a
r
e

E
n
g
i
n
e
e
r
i
n
g

*

R
e
s
e
a
r
c
h

*

T
r
a
i
n
i
n
g
e
B
u
s
i
n
e
s
s
p
l
a
t
f
o
r
m

e
x
p
e
r
t
s
:

J
2
E
E
,

X
M
L
,

F
r
a
m
e
w
o
r
k
s
,

I
n
t
e
g
r
a
t
i
o
n
,

W
e
b

S
e
r
v
i
c
e
s
,

P
o
r
t
a
l
s
,

C
o
n
t
e
n
t

M
a
n
a
g
e
m
e
n
t
D
i
s
c
l
a
i
m
e
r

&

L
e
g
a
l
s
:

A
l
l

i
n
f
o
r
m
a
t
i
o
n

i
n

t
h
i
s

p
r
e
s
e
n
t
a
t
i
o
n

i
s

c
o
p
y
r
i
g
h
t

A
S
E
R
T

C
o
n
s
u
l
t
i
n
g

P
t
y

L
t
d

u
n
l
e
s
s

o
t
h
e
r
w
i
s
e

a
t
t
r
i
b
u
t
e
d
.

A
l
l

i
n
f
o
r
m
a
t
i
o
n

i
n

t
h
i
s

p
r
e
s
e
n
t
a
t
i
o
n

i
s

p
r
o
v
i
d
e
d

a
s

i
s

w
i
t
h

n
o

e
x
p
l
i
c
i
t

o
r

i
m
p
l
i
e
d

w
a
r
r
a
n
t
i
e
s
.


A
S
E
R
T

c
a
n

n
o
t

b
e

h
e
l
d

r
e
s
p
o
n
s
i
b
l
e

f
o
r

a
n
y

d
a
m
a
g
e

t
h
a
t

y
o
u

m
a
y

i
n
c
u
r

a
s

a

r
e
s
u
l
t

o
f

u
s
i
n
g

t
h
i
s

i
n
f
o
r
m
a
t
i
o
n
.
P
l
e
a
s
e

c
o
n
t
a
c
t

A
S
E
R
T

i
f

y
o
u

n
o
t
i
c
e

a
n
y

i
n
a
a
c
u
r
a
t
e
i
n
f
o
r
m
a
t
i
o
n
.
JeeOverview - 2
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 3
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java Evolution
Simple
Object Oriented
Distributed
Robust
Secure
Architecture
Neutral
Java started out as a simple programming language:
Portable
Interpreted
High Performance
Multi-threaded
Dynamic
JeeOverview - 4
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Success Brought Proliferation Chaos?
Accessibility
Collections
Drag and Drop
Embedded Java
Enterprise
JavaBeans
HotJava Browser
HotJava HTML
Component
InfoBus
JDBC
Java 2D
Java 3D
Java Advanced
Imaging
Java Blend
Java Card
Java Cryptography
JDK 1.0
JDK 1.1
Java DMK
Java Electronic
Commerce
Framework
Java Embedded
Server
Java HotSpot
Java IDL
JavaLoad
JMAPI
Java Media
Framework
JMS
JNDI
JMX
KVM
Java Plug-in
JRE
JavaSafe
Java Serial Port
JSP
Servlets
Java Shared Data
toolkit
JavaSpaces
Java TV API
Java Telephony API
JTA
JTS
Java Web Server
Java Workshop
Java 2 Enterprise
Edition
Java 2 SDK
JavaBeans
JAF
Java BDK
Java Check
Java Help
Java Mail
Java OS
JavaScope
JavaSpec
JavaStar
Jini
Personal Java
Pluggable Look
and Feel
RMI-IIOP
RMI
Security
Swing
JeeOverview - 5
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Platforms Brought Order Industry Consolidation
An attempt to bring structure to the
proliferation of Java APIs & technologies
Java Platforms
Micro Edition (Java ME/J2ME)
consumer devices (CDC, CDLC, KVM,
PersonalJava, JavaPhone, JavaCard)
Standard Edition (Java SE/J2SE)
desktop/workgroup server
Enterprise Edition (Java EE/J2EE)
workgroup server/enterprise server
builds on Java SE with enterprise APIs & technologies
Business Impact: Best attempt to date to create universal
platform coverage and workable industry standards processes
Source of duke
images: Sun
Web Site
JeeOverview - 6
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
What is Java EE/J2EE?
Java 2 Platform, Enterprise Edition (J2EE) is a platform that
enables solutions for developing, deploying and managing n-tier
server-centric enterprise applications
Client
EJB
Container
Web Container
Standard Services
Enterprise
Information
Systems
EJB
EJB
EJB
Client Tier EIS Tier Middle Tier
JSP Page
Servlet
RDBMS
J
N
D
I
J
D
B
C
J
M
S
J
A
X
P
J
T
A
J
A
A
S
C
o
n
n
e
c
t
o
r
s
JavaMail
JAF
ERP
Messaging
Legacy
App
Client
Client
Client
Business Impact: Better Scalability, Evolvability and Integrability
JeeOverview - 7
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Parts of J2EE
Platform
J2EE specification defines standard
platform for hosting J2EE applications
Incorporates APIs & Architecture
Current version is 1.4 (March 2004)
J2EE 1.5 AKA JSR 244 initiated (April 2004)
Reference Implementation
Demonstrates J2EE capabilities
Operational definition of J2EE platform
Design Guidelines
Incorporating the Application
Programming Model (Blueprint)
Sample Application
Java Pet Store: complete implementation
of a non-trivial web-based e-commerce
application (exemplar of many things)
Compatibility Test Suite
For verifying that a J2EE platform product
complies with the J2EE platform standard
Related Software
Application
compatibility
test suite
Java Community
Process (JCP)
Sun created and
fostered process
allowing controlled
industry input to
Java's future via
Java Specification
Requests (JSRs)
Business Impact: High
application portability
and skills transfer
between different
vendors products
JeeOverview - 8
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
J2EE APIs
Requires J2SE
JNDI, JDBC Core, RMI-IIOP, Java
IDL, HTTP/Sockets, Security, etc.
Adds the following Enterprise APIs
JDBC Extension (also called JDBC Optional Package)
Enterprise JavaBeans (EJBs**): component framework
Web application technologies: Servlets** (dynamic web content), Java Server Pages
(JSPs**) (templates) and JSP Standard Tag Library (JSTL*)
Java Message Service (JMS**): message-oriented middleware
Java Transaction API (JTA): global two-phase commit Txs
JavaMail: email processing and Java Activation Framework (JAF): MimeType
framework
Java API for XML Processing (JAXP**): SAX, DOM & XSLT
Web Service technologies: Java API for XML-Based RPC (JAX-RPC*), Java API for
XML Registries (JAXR*), SOAP with Attachments API for Java (SAAJ)
Enterprise Security technologies: Java API for Authentication and Authorisation
(JAAS), J2EE Authorization Contract for Containers (Java ACC*)
J2EE Connector** Architecture: legacy system integration framework
Management technologies: Java Management eXtensions (JMX*), J2EE Management*
Model, J2EE Deployment* API
Optional
Java Server Faces (JSF), JAXM, JAXB,
JDO, Web Services Metadata
Business Impact: Evolving
vendor releases will maintain
high levels of compatibility
* New in J2EE 1.4
** Significant update in J2EE 1.4
More: http://java.sun.com/j2ee
JeeOverview - 9
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java EE 5 Upcoming Changes
Focus is ease of development
Extensive use of annotations for injection of resources and other
dependencies and to override default configuration settings
More sensible defaults
JAX-RPC has evolved into JAX-WS technology
Which in turn makes heavy use of the (previously optional) JAXB
technology to bind Java objects to XML data
Other additions
Java Persistence API developed by EJB 3.0 expert group
Java Server Faces (JSF) web framework
Other changes
JSTL improved and made more compatible with JSF
StAX API for XML parsing
Most APIs from previous versions have been updated with small
to medium improvements
JeeOverview - 10
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
J2EE Architecture
Application Components
Off-the-shelf or bespoke components that
deliver a particular piece of functionality
Containers
Provide an intelligent execution environment
for components
Resource Manager Drivers/Connectors
Standardised mechanisms for talking with
databases and heritage applications
Standard Services
Shared services which our components use
directly or indirectly
Tools Application Programming Model
C
o
n
n
e
c
t
o
r
s
EJBs JSPs Servlets
Naming/Directory RMI Database CORBA
J
M
X
/
M
g
m
t
Applets
Transactions
Messaging Mail
Container
Java 2 SDK Standard Edition
Business Impact:
- Minimise plumbing for
developers if you are
BUILDing components
- Provides facilities for
BUYing cross-platform
components
- Best framework for
INTEGRATING
components & applications
that you BUY
Web Services
JavaBeans
JeeOverview - 11
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Containers, Components, Connectors
Containers handle
Concurrency
Consistency
Security
Availability
Scalability
Administration
Integration
Distribution
Data Access
Connectors handle:
Connection to EIS in a standard way
Components
handle:
Presentation
Business Logic
Data Access
Business Impact: Key goal is supporting
off-the-shelf Components:
No need to give out my source code
Declarative approach allows
configuration at deployment time
(including database configuration)
JeeOverview - 12
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Architecture involves Containers
Containers provide the environment in
which components execute
No complicated APIs (lifecycle & context methods)
Control by interposition
Container code generated by vendor tools
Based on bean type selected and deployment descriptors
Containers implemented using J2EE APIs
Look the same to components
Vendors have freedom
to innovate and
differentiate
themselves
App Server
Container
Component
J2EE Services
Appn Server
Client
JeeOverview - 13
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Packaging Components
Java SE Archives
Archived class files
Metadata in .properties files or
proprietary files or from command
line parameters
Manifest file can contain a small
amount of metadata
Applets
Similar to applications but Manifest
may also contain signature and applet
sub-tags may contain metadata
Java EE Components and
Applications
Make extensive use of Deployment
Descriptors (in war, jar & ear files)
Store metadata about component
properties and configuration required
for EJBC as well as application params
Resource Adapters
Also support Deployment Descriptors
Can be standalone or part of EAR
App Client
App Client DD
Java App
.jar file
J2EE Application
J2EE App DD
.ear file
Web Component
Web Comp DD
JSP File
Servlet Class
HTML
GIF
.war file
Enterprise Bean
EJB DD
Bean Class
Remote
Home
.jar file
Simple
J2SE Package
Manifest
Java Class Files
.jar file
J2EE Resource
Adapter
RA DD
Adapter Classes
Native Code
.rar file
JeeOverview - 14
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 15
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JNDI in a Nutshell
The Java Naming and Directory Interface (JNDI) provides
uniform access from Java to diverse
naming and directory services
Frequently used to find things, i.e. identify the locations
of components or other resources across a network
Also used for storing security or other
information in a distributed fashion
SUN provide the following
service providers:
RMI registry, CORBA naming
Netware Directory Services
LDAP (supports Active Directory)
File System, DNS
NIS (yellow pages)
Directory Service Markup Language
Others
Java Application
Naming Manager
R
M
I
C
O
S
N
a
m
i
n
g
N
D
S
L
D
A
P

F
i
l
e

S
y
s
t
e
m
JNDI API
JNDI SPI
D
N
S
D
S
M
L
Best Practices:
- Fairly straight forward to use
- LDAP best option for security
JeeOverview - 16
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JDBC in a Nutshell
Java DataBase
Connectivity (JDBC)
API allowing SQL
commands to be passed to
an underlying DBMS
hides differences between
databases but can support
DBMS-specific features
can work over ODBC
can support connection
pooling
DBMS DBMS
Java Application
JDBC API
Driver Manager
Driver Driver
Best Practices:
- use DataSources to hide
away database details
- use Connection Pools for
increased performance
JeeOverview - 17
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
RMI
client
server
X.getMessage()
Stub or Stub or
Server Server
proxy proxy
Skeleton Skeleton
or Client or Client
proxy proxy
physically
logically
network invocation
via JRMP
Local
method call
Local
method call
Client Client
Naming.lookup
RMI RMI
Registry Registry
or JNDI or JNDI
Naming.rebind
Interface Interface
X X
RMI Compiler
Server Server
XImpl XImpl
Business Impact:
Supports clustered & hybrid
deployment environments
with relatively minor changes
to development practices
Makes Distributed/Remote
programming look like local
programming (almost)
Underpins EJBs
JeeOverview - 18
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
CORBA in a Nutshell
Conceptually the same as RMI
Requires the Interface to be
specified using an Interface
Definition Language (IDL)
Supports different languages via different IDL compilers,
e.g. SmallTalk, C++ as well as Java
Uses CORBA stubs and skeletons instead of RMI versions
Uses IIOP as the client/server communication protocol
instead of JRMP
Uses CORBA Naming
Service instead of RMI
Registry (difference
hidden if using JNDI)
// StockMarket.idl
module SimpleStocks
{
interface StockMarket
{
float get_price(in string symbol);
};
};
Business Impact:
Better multi-language
support than RMI (cf .Net)
but now deemed obsolete
JeeOverview - 19
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
CORBA Services
Collection supports grouping of objects
using Set, Heap, Stack, Queue, Iterator
Concurrency support for multithreading
access to remote objects
Event supports asynchronous
interactions between remote objects
Externalization conversions of objects into of forms suitable for storage and
transfer between systems as streams
Licensing allows licensing support when accessing services
Life Cycle supports object creation, copying, movement & deletion
Naming allows client to find objects/services on a network
Notification richer but more complex way of achieving asynchronous
interactions, supports publish and subscribe
Persistent Object framework for interacting with OO & RDBMS systems
Property supports name/value pairs associated with objects
Query provides a general object query mechanism
Relationship allows the description of relationships between objects
Security provides the tools you need to secure your application
Time/Enhanced View of Time various time/clock/date mechanisms
Trading Object richer yellow pages naming-like service supporting bids &
offers for services
Transaction provides APIs to allow systems to exhibit and participate in ACID
transactions
Business Impact:
Services available 10 years ago much
richer than what we have will have
with web services for a few years
JeeOverview - 20
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java Transaction Service/Architecture (JTS/JTA)
Application
Resource
Manager
Transaction
Manager
Communications
Resource
Manager
JDBC or
other API
AX
register
status

XA
begin
prepare
commit

XA+
TxRPC
CICS
Tux
TX
begin
commit
rollback

Business Impact:
Allows global transactions (spanning multiple vendors databases)
Automatically supported (mostly) by J2EE infrastructure
Provide future proofing even if not needed now
Transactions allow
interactions which
support ACID
properties:
Atomicity
Consistency
Isolation
Durability
JeeOverview - 21
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java EE Security/JAAS
Security Principles
Authentication typically via
Usernames (Principals) and
Passwords (Credentials)
Augmented by Groups
Can support Smart Cards &
Certificates
Role-based Security used for
J2EE Applications
Declarative Security: within
deployment descriptors
Programmatic Security: within
code for fine-grained control
JAAS is upward compatible
extension to Java security
which supports:
User-centric rather than
code-centric authorisation
Standard Pluggable
Authentication Module
(PAM) framework
Security Frameworks
Permit dynamic changes to
security policies
Allow security infrastructure to
span multiple environments
Framework examples:
WebLogic 7+ Security Realms, IBM
Tivoli Policy Director, Netegrity,
Entrust, Entegrity
Business Impact:
Features available to support rich &
flexible security policies
Investment in security technologies
can be carried between vendors
Java Security
Principal
AccessController
AccessControllerContext
Policy
Protection Domain
JAAS Security
Subject
LoginContext
LoginModule
Policy
Security API
Java Application
JeeOverview - 22
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
What is XML?
Looks like HTML but isnt HTML
Tagged-language with simplicity of
HTML but more power from SGML
User or application defined tags
Method of structuring data to
facilitate open interchange formats
Useful for separating content and formatting/presentation
Useful for exchanging B2B information
Basis for Web Services protocols and descriptions
Is meant to be parsed by software
But is human readable
Family of technologies supporting
Data Description: XML, DTDs, XML Schema
Data Transformation & Presentation: CSS, XSL (among others)
Data Relationships: Linking (XLink, XPointer & XPath)
Data Exchange: Several industry initiatives
Processing: DOM and SAX APIs
Many application domain
standards & activities
Much politics !
<?xml version="1.0"?>
<WEATHER-SUMMARY>
<DATE>2000-09-07</DATE>
<CLOUDY>Brisbane</CLOUDY>
<CLOUDY>Canberra</CLOUDY>
<SUNNY>Sydney</SUNNY>
</WEATHER-SUMMARY>
Business Impact:
Java makes programs portable
XML makes data portable
Supports loosely coupled integration strategies
rather than forcing common middleware
platforms (in theory)
JeeOverview - 23
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
XML and Java EE
XML used within Java EE
Internally for configuration information
As a format for reading and writing data in a portable
way (arguably, XML is to data what Java is to programs)
For passing XML formatted messages in B2B and legacy
environments
For presentation purposes, often in combination with XSLT
JAXP (Java API for XML Processing)
Common interface to DOM, SAX
& XSLT parser implementations
Developers may swap between
XML processors (such as high
performance vs. memory
conservative parsers) without
making application code changes
JSR 206 JAXP 1.3
XML 1.1, NameSpaces 1.1,
Dom Level 3, SAX 2.0.1
Java Application
JAXP API
DOM
Parser
SAX
Parser
XSLT
Parser
JeeOverview - 24
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Parsing & Transformations: DOM, SAX & XSLT
<?xml version="1.0"?>
<WEATHER-REPORT>
<DATE>2000-09-07</DATE>
<CITY>Brisbane</CITY>
<OBSERVATIONS>
<SKIES>Partly Cloudy</SKIES>
<WINDS>30</WINDS>
<TEMPERATURE>26</TEMPERATURE>
</OBSERVATIONS>
</WEATHER-REPORT>
start document
start element: WEATHER-REPORT
start element: DATE
characters: 2000-09-07
start element: CITY
characters: Brisbane
start element: OBSERVATIONS
start element: SKIES
characters: Partly Cloudy
start element: WINDS
characters: 30
start element: TEMPERATURE
characters: 26
end element: OBSERVATIONS
end element: WEATHER-REPORT
end document
SAX event
stream
DOM tree
structure
2000-09-07
DATE
Brisbane
CITY
Partly Cloudy
SKIES
30
WINDS
26
TEMPERATURE
OBSERVATIONS
WEATHER-REPORT
WML
XSLT
transformation
rules
HTML
<?xml version="1.0"?> XML
<WEATHER-SUMMARY>
<DATE>
<YEAR>2000</YEAR>
<MONTH>09</MONTH>
<DAY>07</DAY>
</DATE>
<CLOUDY>Brisbane</CLOUDY>
<CLOUDY>Canberra</CLOUDY>
<SUNNY>Sydney</SUNNY>
</WEATHER-SUMMARY>
JeeOverview - 25
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
Java EE Web Technologies
Mobile Technologies
Best Practices
Frameworks & Portals
EJB-Tier/Persistence Layer
Integration
Manageability/Deployment
Development
Testing
Content Management
Market Assessment/Trends
JeeOverview - 26
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Applications
What are they?
Applications accessed via web browsers
Powered by back-end systems which dynamically
generate content (typically) HTML
Back-end systems utilise Web Container
Might be standalone, e.g. Tomcat, or built-in to an application
server, e.g. WebLogic Server, WebSphere Application Server
Technology Choices
Servlets and JSPs (perhaps using patterns)
Applets, Flash, JavaScript, AJAX, PDF, Fat Client
Home-grown frameworks (tag libraries/JavaBeans)
Java-flavoured Web Framework (e.g. Struts/JSF)
XML-flavoured Web Framework (e.g. Cocoon)
Content Management/Collaboration Systems
Personalisation Servers/Portals
JeeOverview - 27
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Container Architecture
Client
Tier
Data
Tier
Java Virtual Machine
J2EE Application Server
R
M
I
/
I
I
O
P
J
N
D
I
J
T
A
J
D
B
C
J
M
S
J
a
v
a
M
a
i
l
J
A
F
Infrastructure
Services
Web Container
E
J
B

C
o
n
t
a
i
n
e
r
T
a
g
L
i
b
r
a
r
i
e
s
sessions security
JSPs
Servlets
Config
Context
logging dispatcher
Web Components (Servlets and JSPs) are managed within a
web container (aka servlet engine) according to the
servlet/JSP lifecycle. They have access to a rich collection of
web-specific and generic infrastructure APIs.
C
o
n
n
e
c
t
i
o
n
s
J
A
X
P
J
A
A
S
C
o
n
n
e
c
t
o
r
s
J
A
X
R
S
A
A
J
J
A
X
-
R
P
C
M
g
m
t
J
M
X
JeeOverview - 28
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
What are Servlets?
Used for dynamically generating web content
Alternative to technologies such as CGI & Server-Side Includes
Generally quite efficient
Server-side technology for
deploying and executing Java
code within a web server
Each servlet is a Java class coded
with certain constraints & deployed
against a URL or URL pattern
Not part of J2SE but required for J2EE
Built around a standard mechanism & API
Web Container (aka Servlet Engine) handles low-level protocol
details, security issues, mapping of URL
Convenient API for handling incoming service requests & outgoing
responses, e.g. forms, cookies, sessions
Supports single and multi-threaded execution
Supports packaging & deployment (Servlet 2.2 & above)
App Server
Web Container
Servlet
J2EE Services
Browser
HTTP
Request
HTTP
Response
HTML
JeeOverview - 29
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
J2EE Application Server
JSP Overview
A Template mechanism
Presentation material (html, xml,
wml) plus embedded dynamic
actions written in (typically) Java
an inside-out servlet
Designed with an eye on tool support & web designer needs
Web Container
T
a
g

L
i
b
r
a
r
i
e
s
sessions security
Hello
Servlet
Config
Context
logging
dispatcher
Browser
Hello
JSP
HTTP GET Request
http://buyme.com/hello.jsp
C
o
n
n
e
c
t
i
o
n
s
Servlet
Java Source
HTTP Response
With embedded content
(e.g. HTML, XML, gif)
JSP Compiler
(normally invoked only
when JSP changes)
Javac Compiler
(ensures type safety,
sometimes one step)
Standard Services & JVM
<html><head>
<title>My JSP</title>
</head><body>
<h1>Hello, you are calling from
<%= request.getRemoteHost() %></h1>
</body></html>
JeeOverview - 30
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JSP Best Practices: Traditional, JavaBeans, TagLib
<%@ page language="java" isErrorPage="false" %>
<%@ page import="java.text.*,java.util.*" %>
<html>
<head><title>Date JSP Example</title></head>
<body>
<% // create date format based on client locale
Locale loc = request.getLocale();
DateFormat df = DateFormat.getDateInstance(DateFormat.MEDIUM, loc); %>
<h1>Today is <%= df.format(new Date()) %></h1>
</body>
</html>
<jsp:useBean id="today" class="asert.DateBean" scope="page"/>
<jsp:useBean id="release" class="asert.DateBean" scope="page"/>
<html>
<head><title>Date JSP JavaBean Example</title></head>
<body>
<jsp:setProperty name="today" property="locale" value="<%= request.getLocale() %>" />
<h2>Today is <jsp:getProperty name="today" property="date"/></h2>
<jsp:setProperty name="release" property="format" value="E dd-MMM-yyyy hh:mm a z" />
<jsp:setProperty name="release" property="date" value="01-01-2005" />
<h2>Product Release Date is <jsp:getProperty name="release" property="date"/></h2>
</body>
</html>
<%@ page import="java.util.Date" %>
<%@ taglib uri="datetaglib" prefix="date" %>
<html>
<head><title>Date JSP Tag Example</title></head>
<body>
<% // 1 day = 24 * 60 * 60 * 1000 = 86400000 ms
Date today = new Date(), tomorrow = new Date(today.getTime()+86400000); %>
<h2>Today is <date:displaytoday format="E dd-MMM-yyyy"/></h2>
<h2>Tomorrow is <date:display format="E dd-MMM-yyyy"
date="<%= tomorrow %>"/></h2>
</body>
</html>
JavaBeans & Tag Libraries
allow for better tool support
permit separation of job roles
supports the development of
an aftermarket for tags & beans
Use Tag Libraries to generate
dynamic content or when
context is required
Use JavaBeans to
represent data
JeeOverview - 31
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JSP Standard Tag Library (JSTL)
Released June 2002
Borrows some of the important ideas from the Jakarta Taglibs
project
Incorporates
General-purpose actions
Conditional actions
Iterator actions
URL-related actions
Formatting actions
SQL actions
XML Core actions
XML Flow Control actions
XML Transform actions
Internationalization (i18n) actions
Expression Language
<table>
<c:forEach var="customer" items="${customers}">
<tr><td><c:out value="${customer}"/></td></tr>
</c:forEach>
</table>
<!-- parse an XML document -->
<c:import url="http://acme.com/customer?id=76567" var="xml"/>
<x:parse xml="${xml}" var="doc"/>
<!-- access XML data via XPath expressions -->
<x:out select="$doc/name"/>
<x:out select="$doc/address"/>
<!-- set a scoped variable -->
<x:set var="custName" scope="request" select="$doc/name"/>
<fmt:message key="athletesRegistered">
<fmt:param>
<fmt:formatNumber value="${athletesCount}"/>
</fmt:param>
</fmt:message>
french: Il y a 10 582 athletes enregistres.
english: There are 10,582 athletes registered.
JeeOverview - 32
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
3
rd
Party Tags Example: Pragmatic WebControls
Includes various Open Source web controls
Work with (almost?) any browser, minimal coding
Examples: Outlook bar and Tree control
<%@ taglib prefix="pragmatic"
uri="/WEB-INF/tld/pragmatic-controls.tld" %>
<html>
<head>
<pragmatic:tree-head/>
</head>
<body onclick="hideMyMenu();" >
<pragmatic:tree-body
treeConfigXmlPath="WEB-INF/tree.xml"
treeSessionName="ABC" contextMenuSessionName="XYZ"
contextMenuConfigXmlPath="WEB-INF/contextMenu.xml"
/>
</body>
</html>
<tree name="t1" caption="My World" inFrame="false">
- <node caption="America" url="america.jsp" title="" ...>
+ <node caption="USA" url="usa.jsp" title="" >
<node caption="New York" url="newyork.jsp" title="" >
</node>

</node>
</tree>
JeeOverview - 33
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web-Tier Best Practices
Use JavaBeans & Tag Libraries
Use Caching
Use Model-View-Controller (MVC) Design Pattern
The model is typically implemented by EJBs and other Java classes but
may also be stored in a database (J2EE programmers build these)
The views are typically provided by JavaServer Pages (JSPs) rendered
in a browser (Web designers create these)
The controller is often implemented by a master servlet which often
invokes helper classes (J2EE programmers build these)
Use Framework
often incorporates MVC
Struts
JavaServer Faces
Cocoon
Velocity
Portals
Picture Source:
Oracle web site
JeeOverview - 34
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Caching Options
Possibilities
Pre-generation: e.g. Anakia from Apache Jakarta Project
Http page caching
JSP page fragment caching
Needs to support invalidation/flushing, personalisation, expiration
May support keys
May support multiple profiles
Object Caching
Database caching
Various offerings
OSCache
BEA WebLogic Caching Tag Library
Apache Jakarta Caching Tag Library
Oracle Web Cache, Cache Tag Library, Object Cache
IBM Servlet Cache
JeeOverview - 35
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Comparing Frameworks
h
t
t
p
:
/
/
w
w
w
.
w
a
f
e
r
p
r
o
j
e
c
t
.
o
r
g
(
2
2

f
r
a
m
e
w
o
r
k
s

c
o
m
p
a
r
e
d
)
JeeOverview - 36
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Server
Struts Framework
Page 1
Controller
Action2
.java
struts-
config.
xml
Mappings
Data Layer
View
Layer
Business
Bean 1
Jsp Engine
JSP 1
Action3
.java
Action4
.java
Action1
.java
Business
Bean 2
Business
Bean 3
Jsp 2 JSP 3
Form
Bean 1 Form
Bean 2 Other
Bean 1
request/session
Web Browser
Back End Server
path
action
[form bean]
[forwards]
Jsp 2 JSP 2
Picture source:
struts website
Controller
provides central point of control
allows paths for application to be
configured via XML file
ActionBeans act as adapters
between web & business layers
FormBeans hold data for JSP
pages - automagically updated
Struts
includes tag
libraries for
JavaBeans,
logic, HTML,
templates,
I18N,
JeeOverview - 37
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JavaServer Faces (JSF)
JSF (JSR 127) provides a standard way to define complex HTML forms
and other "web" GUI elements
Enable developers to focus their attention
on a single component framework
First release of the framework has
the following design goals:
Standard "forms-style" GUI component framework
which can be leveraged by development tools
Provide set of light-weight Java base classes for
web GUI components, state and input events
Provide set of common GUI components
including classes which handle HTML form
input elements built upon base classes
Provide JavaBeans model for dispatching
events from client-side GUI controls to
server-side application behavior
Define APIs for input validation, including
support for client-side validation
Specify a model for internationalization
and localization of the GUI
Automatic generation of appropriate output
for the target client, taking into account all
available client configuration data, such as
browser version, etc.
Automatic Generation of output containing
required hooks for supporting accessibility
Source: Exadel Web Site
Richer environment than .NET
but early days for tools!
Like custom tag
libraries but with
events ala .NET
<html>
<f:view>
<h:form id="inputNumbers">
<h:outputText value="#{msg.how_to_play}"/>
<br/>
<h:messages style="color: blue"/>
<br/>
<h:inputText id="userNumber" required="true
value="#{NumberBean.userNumber}" >
<f:validateLongRange minimum="0" maximum="100"/>
</h:inputText>
<br/><br/>
<h:commandButton value="#{msg.makeguess_button}
action="#{NumberBean.checkGuess}"/>
</h:form>
</f:view>
</html>
JeeOverview - 38
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Portals
BEA Portal
Nicest Architecture with strong
J2EE integration capabilities
Inbuilt WebFlow language
Replaces framework and struts
Strong Personalization aspects
Oracle Portal
Replaced original WebDB
Strengths are excellent facilities for
getting to database & security options
IBM Portal
Some great Enterprise Features
Other players
Microsoft Sharepoint, Plumtree Portal, Tibco
PortalBuilder, SAP Portal, Novell Portal
Open Source
Jetspeed (jakarta.apache.org/jetspeed)
Jahia (www.jahia.org)
Liferay (www.liferay.com)
BasicPortal (www.basicportal.com)
Java Lobby Community Platform(www.jlcp.org)
JeeOverview - 39
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Typical Portal Architecture
Typical Features
User registration
User authentication
User access control
Personalization
Content management
Document/workflow
Newsfeeds
Look-and-feel templates
Collaboration
Enterprise integration
Target Clients
Browser versions
Mobile/wireless devices
Portal standards activities
JCP's JSR 168 & OASIS' WSRP
Attempting to develop standard
APIs and component interfaces to
lower portal development &
maintenance costs and support
plug-n-play between vendors
eBusiness Platform (e.g. Java EE)
Information
Services
Security Integration
Search
Presentation
& I18N Services
Development
Services
Admin Services
Application
Services
Collaboration
Services
Collaboration
Content
Retrieval
Workflow
Personalisation
Unstructured
Data
Mail, News &
Collaboration
Structured
Data
Applications Newsfeeds
Your Portal
User
Management
Rules
Management
JeeOverview - 40
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Other Client/Viewer Technologies
Flash MX
XML, Flash Remoting
XML
CSS and/or XSLT (Client or Server)
Scalable Vector Graphics
MathML
RSS
RDF
XUL
XForms
Adobe Acrobat
300+ million users
Acrobat 5 supports
tagged (XML like) documents
Forms Data Format
JeeOverview - 41
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Mobile Device Platforms
Java ME
Cut down version of Java for small devices with GUI removed
and replaced by device specific profile - most common being
Mobile Information Device Profile (MIDP)
Symbian OS
Networking (TCP/IP, PPP, TSL/SSL/IPSec)
communications (Bluetooth, IrDA, Obex)
security (DES, RSA, DSA, DH)
Messaging (POP3, IMAP4, SMTP, SMS, BIO)
browsing (HTML, HTTPS, WAP, FTP, WML)
telephony (GSM, GPRS, fax)
graphics, multimedia
(WAV, AU, WVE, JPEG, BMP, MBM, GIF)
BREW System Software
Multimedia (Qsynth, CMX, IP Voice Chat, Qtunes, MP3,
QTV, MPEG4, still images, kareoke)
Connectivity (USB, Bluetooth, PureVoiceMail, IP, WAP)
Positioning (gpsOne, SnapTrack)
User Interface (voice recognition, recorder, color LCD driver,
SIM/UIM card interface)
Storage (MMC, SD-card)
Motorola/Linux
Emerging Third Option
Microsoft
Pocket PC/Smart Phone/Compact .Net
Symbian, BREW and Motorola's Linux
all support J2ME/Java Midlets
JeeOverview - 42
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
JDBC, EJBs, O/R Mapping
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 43
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java Persistence Technologies
RDBMS
Java Application
XML JDBC
XML Persistence
Technology
Custom
Technology
XML File(s)
or Native XML
Database
Custom
Object/Relational
Technology
Adapter
JeeOverview - 44
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Hibernate JDO TopLink
Java Database Technologies
Java Application
EJB 2.x
Spring Framework (Optional)
JDBC Driver
JDBC API
EJB 3.x
JeeOverview - 45
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java with JDBC
JDBC Features
API allows SQL commands to
be passed to underlying DBMS
Hides differences between
DBMSs but doesn't hide object
to relational "impedance
mismatch"
Object world has classes,
instances, fields
Relational world has tables,
rows, columns, normalisation
Result is code with hard-wired
knowledge about data model
implies a maintenance load
DBMS
Java Application
JDBC API
Driver Manager
Driver Driver
DBMS
JeeOverview - 46
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Object-Relational Technologies
Features
Hide "impedence mismatch"
More complex technology to
learn
Differences
Some use deployment
descriptors, own XML,
annotations to store O-R
mapping
Open Source vs Standards
Different tool support
Different levels of support for
transactions and searching
Different caching options
H
i
b
e
r
n
a
t
e
Java Application
Spring Framework (Optional)
JDBC Driver
JDBC API
T
o
p
L
i
n
k
J
D
O
E
J
B
JeeOverview - 47
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Architecture Basics
Architecture consists of
Components (EJBs) which encapsulate business logic & data
Servers which provide underlying functionality
transactions, security, scalability, concurrency, communication,
resource management, persistence, error handling, etc.
Containers which map component to server
EJB EJB
Object Object
Enterprise Enterprise
JavaBean JavaBean
Client Client
EJB EJB
Home Home
Container
EJB Server
Database
JeeOverview - 48
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
EJB Architecture
Messaging
Client
Data
Tier
Java Virtual Machine
Java EE/J2EE Application Server
W
e
b

C
o
n
t
a
i
n
e
r
(
P
r
e
s
e
n
t
a
t
i
o
n

T
i
e
r
)
EJB Container (Business Tier)
Tag
Libraries
JSPs
Servlets
C++
Client
Java Appn
or Applet
HTML
Client
Business
Partner
Message
Driven EJB
Session
EJB
Entity
EJB
Session
EJB
Session
EJB
Session
EJB
HTTP
SOAP
UDDI
ebXML
WSDL
CORBA
IIOP
R
M
I-IIO
P
M
e
s
s
a
g
in
g
RMI
IIOP
JMS Server
Queue or
Topic
JNDI (Home Stubs)
Shown with Common
Appn Server but JMS,
JNDI and Web
Container may be
separate from EJB
Container
Interfaces
& Deployment
Descriptors
EJBC
R
M
I
/
I
I
O
P
J
N
D
I
J
T
A
J
D
B
C
J
M
S
J
a
v
a
M
a
i
l
J
A
F
Infrastructure
Services
J
A
X
P
J
A
A
S
C
o
n
n
e
c
t
o
r
s
J
A
X
R
S
A
A
J
J
A
X
-
R
P
C
M
g
m
t
J
M
X
JeeOverview - 49
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Approaches
Technologies
Frameworks
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 50
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
J2EE Integration Approaches
Data Integration
JDBC, XML, Custom Java Code
Messaging Integration
JMS/Message Brokers, JavaMail, Web
Services/SOAP, FTP
Business Process Modeling/Workflow
Modeling Tools, Workflow Engines
A2A Integration
RMI, CORBA, JNI, J2CA/Connectors, EJB,
SOAP/Web Services
B2B Integration
XML, Web Services, EDI, RosettaNet, ebXML,
OAGI, OASIS, Biztalk, cXML
Other Integration
JNDI, Mainframe, Windows,
Timing Services, Security, Transactions
Integration Frameworks
Main Vendors: BEA, IBM, Oracle
Pure-play vendors: webMethods
Other noteworthy players: SeeBeyond, C24
Open Source
Open For Business
www.ofbiz.org
OpenEAI
www.openeai.org
OpenAdaptors
www.openadaptor.org
Tambora
tambora.zenplex.org
FreebXML
www.freebxml.org
Open ebXML
www.openebxml.org
ebXML Registry Ref Impl'n
http://ebxmlrr.sourceforge.net/
App
Business
Partners
ASPs
Exchanges
App
Enterprise
Internet
A2A
B2B
ASP
JeeOverview - 51
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JavaMail in a Nutshell
The JavaMail API allows applications to send and receive
email messages transparently from actual mail service
Supports a variety of protocols and implementations, e.g.
SendMail, Exchange Server, POP3, SMTP, IMAP
SMTP
Server
Java Application
JavaMail API JAF
SMTP SP
IMAP
Mail
Store
IMAP SP
POP3
Mail
Store
POP3 SP
Business Impact:
Makes sending emails
from within programs
portable and easy
JeeOverview - 52
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JMS Features
Java Messaging Service
(JMS) provides a single
unified messaging API
Works with TIBCO, MSMQ,
IBM MQ Series, Oracle AQ
API includes interfaces
& helper objects
Define how JMS clients access
the facilities of an underlying
enterprise messaging product (MOM)
Supports multiple delivery styles
Point-to-point & publish-subscribe
Supports multiple message types
Including Java objects and XML
TIBCO
Java Application
JMS API
MQ
Series
OJMS
Business Impact:
Supports particular
programming models which
are difficult to achieve
with traditional RMI/EJB
paradigms
Allows for reliable
message delivery &
asynchronous systems
Native
JMS
JeeOverview - 53
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JMS: Point-to-Point vs Publish/Subscribe
Message
Producer
MessageE Message
Consumer
MOM Server
Message6 Message4 Message5
Queue 2
MessageD MessageC
Queue 1
Message
Producer
Message
Consumer
MessageA
Message7
Message3
MessageB
Message2
Message1
Message
Consumer
Message
Consumer
Message
Producer
Message5
Message
Consumer
MOM Server
Message4 Message2 Message3
Topic 1
Message1
Message
Consumer
Message
Consumer
Message1
Message1
JeeOverview - 54
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Connectors in a Nutshell
Connectors allow application
servers to talk to Enterprise
Information Systems (EIS) in
a standard way through the
use of a resource adapter
App Server
J2EE CA Container
Connection Connection
Manager Manager
Transaction Transaction
Manager Manager
Security Security
Manager Manager
Enterprise Information
System (e.g. SAP)
Container-Component
Contract
System Contracts
EIS-specific Interface
Resource
Adapter
Adapter Client Interface
(possibly CCI)
App App n n Server Server
Application
Component
(e.g. EJB, JSP)
Business Impact:
Integration projects have often
been expensive and difficult
As this technology matures, expect
both of these to reduce
JeeOverview - 55
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Other Integration Technologies: Workflow
Workflow-like Tools
B2C: Struts, JavaServer Faces, WebLogic Portal (Webflow)
B2B/Generic: WebLogic Integration, Oracle Workflow, IBM Holosofx,
Reactor, Intalio, WebMethods
Open Source: OSWorkflow, jBpm, Open For Business, Werkflow,
Workflow Toolkit, Open Business Engine
Business Impact: No Java EE standards yet for tools in these areas
JeeOverview - 56
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Other Integration Technologies: Timing/Scheduling
Flux
More flexible alternative to
Windows Scheduling/Unix Cron
Supports time-based, event-driven
and file-driven job scheduling
Sophisticated time/date schedule
specification
Jobs can be invoked on any
machine with a JVM & run within
a transaction if using J2EE
Access to fire jobs is via Java, RMI or XML/Web Services
Others
Built-in: JMX-based Time Service: WebLogic 8.1, JBoss 3
Commercial: Kronos, SuperScheduler, Tempo, CronacleBeans
Open Source: Pulsar, Quartz, Jcrontab
Business Impact: Minor overlap with recent EJB 2.1 Timer capabilities
JeeOverview - 57
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
XML & Integration
<Value1>1.885
</Value1>
<Value2>0.953
</Value2>
<Value3>4.454
</Value3>

Integration
Server
Data
Store
XML
Documents
Server
Data
Store
XML or XSL XML or XSL
processing processing
SAP
XML or XSL XML or XSL
processing processing
Multiple
Communication
Formats
Multiple Data/App
Access Mechanisms
Multiple XML
Vocabularies
And custom tools
Server
JeeOverview - 58
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
What are Web Services?
Like RPC but using Web
& XML Protocols/APIs
Still working out security,
transactions,
Web Service
environments include:
host run-time environment
e.g. Axis, .NET/IIS, J2EE App Server
registry for looking up services: UDDI
standard mechanism for transmitting
calls and receiving results: SOAP
standard way to define a service: WSDL
supported protocols for making calls:
HTTP, HTTPS, SMTP, etc.
Examples:
weather services
stock quotes
mortgage rates
Business Impact:
Loose coupling between different
vendors and between different
technology stacks, e.g. J2EE/.Net
Will require vendors to cooperate to
realise benefits
Still a long way to go before stable
industry standard
Service
Requestor
Service
Provider
Discovery
Agency
Discovery
Agency
Client
Service
Service
Description
Service
Description
Find
Interact
Publish
JeeOverview - 59
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Services Technology Stacks
Not officially specified
in this way but useful
WS-Inspection
WS-Discovery
Service
Inspection
UDDI
ebXML Registry
Service Discovery
& Directory
XML Schema Structure
WSDL
Service
Description
WS-Policy
WS-MetadataExchange
Metadata
Description
BPEL
WS-CDL
Process
Description
HTTP, SMTP FTP,
UDP
Communication
XML with
namespaces
Data
Encoding
DTD, Relax NG
XML Schema
Format
Specification
SOAP, Events
ebXML messaging
WS-Addressing
XML
Messaging
WS-Security
WS-Trust
WS-Federation
Security
Transactions
ReliableMessaging
Coordination
Context
Assurance
BizTalk, OAG
RosettaNet, HL7
Business
Domain
Discovery Stack
Description/Metadata Stack
Wire/Transport Stack
JeeOverview - 60
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
What is SOAP?
Simple Object Access
Protocol XML Extension
Invoke services using XML
and HTTP
SOAP consists of:
An envelope
Encoding rules
Convention for a procedure call/response
SOAP is included in:
WebLogic, OC4J, Apache AXIS, WebSphere, .Net
Spec:
http://www.w3.org/TR/SOAP/
SOAP Envelope
SOAP Header
Header Block
Header Block
SOAP Body
Body Block
Body Block

Attachment
(Optional)
Attachment
(Optional)
JeeOverview - 61
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
What is WSDL?
Web Services
Description
Language
(WSDL):
An XML grammar for
describing network
services
Serves as a recipe
for automating the
details in application
communication
Service
Interface
(Abstract
Definition)
Types/Messages
Service
Implementation
(Concrete
Definition)
Operations
Interfaces
Binding
Service
Endpoint
JeeOverview - 62
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Services & J2EE
Good combination
Added in EJB 2.1 Specification
Standard way for Session and Message-Driven EJBs to be
automatically offered as Web Services
RPC-style Web Services: stateless session EJBs
Message-style Web Services: JMS listeners, message-driven EJBs
Similar functionality already in main Java EE offerings
SOAP
Router
Servlet
Thin
client
SOAP
Client
Stateless
EJB
XML
Message
Request
Java EE Server
JMS
Message
Driven
Bean
Other
Java EE
Components
HTTP
WSDL
JeeOverview - 63
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Web Services Future Directions
Java Web Services Developer Pack includes:
Java XML Pack Release which includes the following:
Java API for XML Messaging (JAXM)
Java API for XML Processing (JAXP)
Java API for XML Registries (JAXR)
Java API for XML-based RPC (JAX-RPC)
SOAP with Attachments API for Java (SAAJ)
JavaServer Pages Standard Tag Library (JSTL)
Java WSDP Registry Server
Web Application Deployment Tool
Ant Build Tool
Apache Tomcat container
For Latest versions see
http://java.sun.com/webservices/whatsnew.html
Web Services JCP Activity
Individual JSRs for each JAX* technology
JSR 109: Implementing Enterprise Web Services describes how web
services should work with J2EE
Java API for XMl Binding (JAXB) is related but not web service API
Business Impact: Critical
mass support of important
web service standards
appears to be emerging
JeeOverview - 64
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
BEA Integration Framework
WebLogic Integration
Application Integration
Supports J2EE Connector Architecture (JCA)
Extensions to JCA to support application views
Catalog of pre-built adapters
J2EE techniques available including EJBs, XML, Web
Services, JMS, jCom
Tools
Integrated with WebLogic Workshop (from 8.1)
Data Transformation Builder Tool
Supporting XML and non-XML data sources
Message Broker and Repository
Business Process Modelling
Modelling, binding to resources, execution
Supports real-time changes to processes
Workflows defined by Business Analysts rather than
programmers
Business to Business Integration (B2Bi)
RosettaNet, EDI, ebXML, SOAP
Secure messaging with digital signatures & encryption
Related JSRs
JSR 207: Process Definition for Java
Defines programming model for developers to write
business processes
JSR 208: Java Business Integration
Describes service provider interface for implementing
business processes
JeeOverview - 65
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
IBM Integration Framework
Business Integration
WebSphere Business Integration
Business Connection
Industry Solutions
Connectors and Adaptors
Application Connectivity
WebSphere MQ/MQ Everyplace/Integration Broker
WebSphere Data Interchange
Process Integration
MQ Series Workflow
IBM Holosofx BPM
Process Automation
CrossWorlds InterChange Server/Collaborations
JeeOverview - 66
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Oracle Integration Framework
J2EE Technologies
Database: PL/SQL & JDBC APIs, Open Interfaces Tables, Streams
Messaging: Oracle Advanced Queuing, Gateways
XML: XML Gateway
EDI: e-Commerce Gateway
Adapters: Peoplesoft, JD Edwards, SAP, Siebel
Standards
OAG XML Business Object Documents
RosettaNet
OASIS/ebXML
SOAP/Web Services
9iAS Integration Framework
BPM: Oracle Workflow
A2A: Oracle InterConnect (Technology Adapters)
Mobile: 9iAS Wireless
JeeOverview - 67
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 68
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Content Management
Selected Products
Interwoven
Documentum
IBM Content Manager
Aptrix
WebLogic Portal
Oracle IFS
Fatwire
Venetica
ASERT/Digicon CmeDocs
Open Source
OpenCMS
InfoGlue
Redhat CCM
Desirable Features
Repository
Versioning
Templates
Publishing services
Retrieval of structured &
unstructured data
Aggregation, conversion &
authoring tools
Site Administration
Authorisation & Security
Metadata support
Searching
JCP Activity
JSR170: Content Repository API
JSR147: Workspace Versioning
and Configuration Management
JeeOverview - 69
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
CMS Comparison
S
o
u
r
c
e
:

m
o
d
i
f
i
e
d

f
r
o
m

h
t
t
p
:
/
/
w
w
w
.
p
l
a
i
n
b
l
a
c
k
.
c
o
m
(
E
v
a
l
u
a
t
i
o
n
s

d
o
n
e

l
a
t
e

2
0
0
2
)
O
r
i
g
i
n
a
l

C
o
m
p
a
r
e
s

1
3

C
M
S

S
y
s
t
e
m
s
JeeOverview - 70
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
CmeDocs - CMS Environment
Developed by ASERT in
partnership with Digicon
Features
Flexible versioning of content
Searching across heterogeneous
content sources
In-built HTML editing
Role-based security
Powerful metadata extraction tools
Powerful tag libraries reduce web
application development time for
web designers
Common APIs and plugin
mechanisms reduce system
integration costs
Standards-based technologies
including J2EE, XML & Portals
Standards-based tools & APIs
Site Administration Tools
Supports development of
Content-Aware applications
Realistic licensing costs
Supports structured and
unstructured data
JeeOverview - 71
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 72
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
JMX MBean technology
Standard way to manage Java applications
Relatively little code required
Management capability embedded within apps
Typically used by server developers
not application developers
Built-in to IBM, BEA, JBoss, Apache Family
Application-level management coming
Three-level architecture
Instrumentation
(applied to Manageable
Resources AKA MBeans)
Agents
(MBean server)
Managers
(Admin Console)
Optional Extension: JMX
1
2
3
2
3
1
Adapted from Sun documentation
Business Impact:
Expect more uniform management
between different products
Easier third-party tool integration
Less vendor lock in
JeeOverview - 73
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Deployment Management
Tableaux
ASERT partner with Incanica
Features include:
Unified Change Management
Build Management
Release Management
Role-based Security
Flexibility & Ease of Use
Management Reporting
Predefined & customisable project types
Promote projects through your environments
Promotion attempts are flagged & displayed
JeeOverview - 74
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Recent Changes/Future Directions
JMX-related JCP Activity
JSR 070 - IIOP Protocol Adaptor for JMX
JSR 077 - J2EE Management Model
Common mgmt bootstrapping and metadata model
JSR 088 - J2EE Deployment API Specification
Standard deployment of components to servers
Tool vendor, server product vendor & shared APIs
Interact via config & deployment descriptor beans
JSR 127 - JavaServer Faces (future GUIs)
JSR 138 - Performance Metric Instrumentation
JSR 151 - J2EE 1.4 Specification
JMX mandated, JSR077/088 incorporated
JSR 160 - JMX Remoting
JSR 174 - Management & Monitoring Spec for JVM
JSR 176 - J2SE Tiger Release Content
Additional support in J2SE 1.5
JCP includes many Telco-flavoured Mgmt JSRs
JSRs 018/022/146 relate to JMX
Source: www.trifork.com
Showing JSR77 compliant mgmt interface
Source: www.ejtools.org
Showing generic JMX browser on JBoss3
EJB
Servlet
J2EE
Server
J2EE
Resource
JeeOverview - 75
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Methodologies, Patterns, Tools
Testing
Market Assessment/Trends
JeeOverview - 76
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Development Methodologies
Approaches
Traditional Waterfall/RUP
Good for infrastructure
But still use short cycles
XP/Iterative/Agile
Good for applications
Stories at start, other
documentation at end
Hackery
Some open source
Hybrid
Diagramming
Notations
UML
UML is very useful but don't go over board
More than 2 solid weeks of UML alone is
probably too much
Split it into smaller pieces with coding &
testing in between
Class
Diagrams
Use Case
Diagrams
Collaboration
Diagrams
Sequence
Diagrams
Package
Diagrams
Activity
Diagrams
State Chart
Diagrams
Deployment
Diagrams
Component
Diagrams
Requirements
Model
System
Pati e n t
N a m e
Ag e
L if e Exp ect an cy
All e rg i es
Me d ica l Hi s tory
Accep t C h a rg e ( )
Class
JeeOverview - 77
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Development Design Patterns
Presentation Tier
Filters
Controllers & Dispatchers
Composition
Worker support
Business Logic Tier
Session Faade
Business delegate
Value Objects
Composite Entity
Service Locator
Value List Iteration
Local Interfaces
Integration Tier
Data Access Objects
Service Activator
Generic Patterns
MVC Architecture
Singletons
Factories
Filters could be used for
language translation without
each component having to
be made language aware
A Customer Entity Bean may
have a getAddress() operation
which returns an Address Value
Object to avoid the Customer
Bean having a plethora of fine-
grained method calls and avoid
making Address an Entity EJB
(too heavy-weight)
Singletons can be used where we need
mutual exclusivity (remember no synchronised
within EJBs) or where just one copy of some
functionality is enough (remember no static
methods which dont work in clusters)
MVC Architecture used to code separate concerns in
separate places
View
Model Controller
Entity EJBs Session EJBs and Controller Classes
JSP Pages
JavaBeans Components
JeeOverview - 78
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Development Tools
Java IDEs/Editors
JBuilder/Together
JDeveloper, JCreator
NetBeans/Forte, Workshop
Eclipse/IBM WSAD
IntelliJ/IDEA
Gel (www.gexperts.com)
Build Tools
Ant, Xdoclet, Ejbgen, SGen
Web/JSP Tools
Macromedia Dreamweaver
XML Tools
IE, Mozilla, XML Spy, Oxygen
XML, TurboXML/Extensibility
from Tibco, XMLwriter,
XMetaL, Visual Scribe
JCP Activity
JSR198: Standard Extension API for
IDEs (Integrated Development
Environments)
Plug-in API allowing tool
extensions to work on any IDE
JSR175: Java Metadata Facility
Allows (but doesn't require
unlike .NET) metadata to be
stored in code e.g. @tags
JeeOverview - 79
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Tools to Watch
WebLogic Workshop
Combines simplified Web
Services/Business Process
development environment with
support for traditional language-
level coding as well
Moving to plugins for Eclipse
Dreamweaver MX
Traditionally web-tier only
Now has hooks to JavaBeans &
Tag Libraries for doing multi-tier
development
Eclipse
Open Source alternative
IBM backing but many other
supporters
Good range of plug-ins
Basis for WSAD/RAD
JeeOverview - 80
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Tools to Watch
Sun Java Studio Creator
Sun's answer to MS Visual
Studio (targetted at VB
programmer level)
And also Netbeans/Sun Studio
JDeveloper
Support for UML, EJB wizards,
great database wizards, ant
Plus nice pricing
JBuilder
Full featured tool
Some quirky aspects
But getting harder to justify
price
IntelliJ/IDEA
JeeOverview - 81
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 82
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Why Testing?
The Obvious: Find bugs,
produce robust programs
But more importantly, find bugs early!
Does the program meet its specs?
Does it have specs!
You may start your programming career as a tester
How much do programmers know about testing?
For complex projects, testing is a
necessary part of the process
Become a smarter,
more efficient programmer
The later an error is found, the
costlier. Air Force: $75/instruction
during development;
$4000/instruction during
maintenance. (Boehm, 1976)
The later an error is found, the
costlier. Air Force: $75/instruction
during development;
$4000/instruction during
maintenance. (Boehm, 1976)
Cost of finding &
fixing errors (testing +
maintenance): 40-80%
of total development
cost. (Kamer, 1993)
Cost of finding &
fixing errors (testing +
maintenance): 40-80%
of total development
cost. (Kamer, 1993)
JeeOverview - 83
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Testing Tools
Open Source/Freeware Tools
Support
Ant, Anthill, CruiseControl, Maven, Gump
Unit/Integration Testing
JUnit, JUnitPerf, Artima, TestNG, NoUnit,
Jester
StrutsTestCase, TagUnit
Cactus, JUnitEE
SqlUnit, DbUnit
Functional
HttpUnit (Web: uses Java Programs)
Canoo (Web: uses XML)
MaxQ, HtmlUnit, JWebUnit
Abbot (GUI)
Performance
JMeter
Grinder
Microsoft WAS
Metrics/Style Compliance/Coverage
JDepend, JavaNCSS, PMD
CheckStyle, JCSC, Simian
Hansel, Quilt, JCoverage
Commercial Tools
Mercury Interactive
Rational
Parasoft
Empirix
Sitraka/Quest
Borland
WilyTech
JeeOverview - 84
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Testing Tools
F
e
a
t
u
r
e
s
A
t
t
r
i
b
u
t
e
s
Unit Tests/Developers Acceptance Tests/Testers
JUnit
HttpUnit
MaxQ
Grinder
JUnitPerf
C
o
v
e
r
a
g
e

T
o
o
l
s
Abbot
Canoo WebTest
Cactus
JUnitEE
M
e
t
r
i
c
s

T
o
o
l
s
JMeter
C
o
n
t
i
n
u
o
u
s

I
n
t
e
g
r
a
t
i
o
n
R
e
p
o
r
t
i
n
g

T
o
o
l
s
B
u
i
l
d

M
a
n
a
g
e
m
e
n
t

T
o
o
l
s
:

A
n
t
/
N
a
n
t
Code Centric User Centric
Mock Objects
JeeOverview - 85
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Open Source Testing Tool Links
http://maxq.tigris.org/
http://www.httpunit.org/
http://www.tagunit.org/
http://www.junit.org/
http://jakarta.apache.org/jmeter/
http://jakarta.apache.org/cactus/
http://hansel.sourceforge.net/
http://jtestcase.sourceforge.net/
http://jfunc.sourceforge.net/
http://xmlunit.sourceforge.net/
http://dbunit.sourceforge.net/
http://sqlunit.sourceforge.net/
http://junitpp.sourceforge.net/
http://www.clarkware.com/software/JUnitPerf.html
http://webtest.canoo.com/webtest/manual/WebTestHome.html
http://sourceforge.net/projects/grinder/
http://solex.sourceforge.net/
http://smile.jcon.org/soft/product/jester/Jester.html
http://sourceforge.net/projects/strutstestcase/
http://doctorj.sourceforge.net/
http://www.ispras.ru/~knizhnik/jlint/ReadMe.htm
http://www.javaworld.com/javaworld/tools/jw-tools-
testing.html
http://www-
130.ibm.com/developerworks/opensource
http://java.about.com/cs/testingtools/
http://opensourcetesting.org/
http://junit.sourceforge.net/doc/testinfected/testing.
htm
http://www.extremeprogramming.org/
http://www.bullseye.com/webCoverage.html
(Excellent article on code coverage)
http://www.softwareqatest.com/
(Excellent FAQ and web tools list)
http://www.JavaPerformanceTuning.com/
(Lots of info on Performance Tuning)
JeeOverview - 86
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Topics
Introduction
Fundamental Services
Web-Tier/Client Layer
EJB-Tier/Persistence Layer
Integration
Content Management
Manageability/Deployment
Development
Testing
Market Assessment/Trends
JeeOverview - 87
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Market Share & Forecasts
IDC
2003: IBM 29.2%, BEA 26.4%, Oracle 19.4, Sun 3.5
2002: BEA 27.5%, BEA 27.5%
Giga Group Market Share Figures
2001: BEA 34%, IBM 34%, Sun 9%
2000: BEA 36%, IBM 29%
1999: BEA 32%, IBM 16%, Sybase 15%
$2.2B market in 2001
Meta Group
North American Appn Server
Market Share (Oct2001 Commissioned by BEA):
J2EE: BEA 37%, IBM 22%, Oracle 11%, iPlanet 5%, Others 12%
EJB: BEA 52%, IBM 14%, Oracle 6%, iPlanet 4%, Others 24%
App Servers by 2004
J2EE 40%, .NET 30%, Legacy/Other 30%
Gartner 2000 Figures
BEA 41%, IBM 31%, iPlanet 13%,
Oracle 4%, HP Bluestone 4%
Some of the figures starting to
age but overall player ratios not
far off current trends.
JeeOverview - 88
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Some ECperf Figures
From ecperf.theserverside.com:
July 8, 2002
Oracle, IBM, BEA, Sybase post new
figures using various hardware configs

June 17, 2002


Oracle posts best Price/Perf figure
June 5, 2002
BEA Posts New ECperf Results
Using Sun Server

April 24, 2002


New ECperf Results: IBM Soars to
the Top in Performance
April 9, 2002
IBM Scoffs at BEA's ECperf Results
April 8, 2002
ECperf 1.1 Proposed Final Draft
March 28, 2002
ECperf: Pramati App. Server 3.0
Now moved to:
http://www.spec.org/osg/
Under SPECjAppServer2001 & SPECjAppServer2002
Rating by Price/Performance
Rating by Performance
JeeOverview - 89
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Recent AppServer Marketplace Milestones
Sun/NetBeans
Dec04: Java Studio Developer 7
Oct04: NetBeans 4.1 early access
Mar04: J2EE 1.4 SDK Final
Jun02: SunONE App Server 7 platform
edition to be bundled in Solaris 9
BEA
Feb05: Wshop 9 to be eclipse-based
Dec04: WebLogic 9 in beta
Dec04: WebLogic Server 8.1sp4
May04: Beehive -> Apache
Jan03: XMLBeans -> Apache
Feb02: WL Workshop 1.0 released
IBM/Eclipse
Jan05: RAD 6 renamed from WSAD
Dec04: WebSphere 6 Trial
Aug04: Cloudscape -> Apache
Oct03: WSAD 5.1 released
Feb03: Acquire Rational
Jun01: Buy Informix (& Cloudscape)
Oracle
Dec04: JDev 10G (10.1.3) Preview
Nov02: JDev 903/OC4J (J2EE 1.3)
Jun02: Acquire TopLink from Webgain
Jun01: License Orion server
Macromedia
Apr05: To be acquired by Adobe
Nov04: Flex 1.5
Sep03: MX 2004 Studio supporting Client &
Server-side development
Jan01: Web tool developer (Market Share: 76%
HTML Editors, 96% Flash) acquired Allaire (JRun,
Cold Fusion)
Open Source
Nov04: Apache Geronimo M3 release
Nov04: JBoss preview EJB 3.0
Apr04: Apache JetSpeed 1.5/Velocity 1.4 released
Feb04: Tomcat 5.0.19 stable released
Jun03: JBoss split
Apr02: Lutris hands over Enhydra to WebObjects
(JOnAS)
Other
Nov04: Orion Server 2.0.5 released
Aug04: Borland announce JBuilder 2005
Mar03: Orion Server 2.0 released
Nov02: Borland acquires TogetherSoft
Jun02: HP dump Bluestone
Jun02: Novell to acquire SilverStream
Mar02: Pramati App Server/Studio 3.0
Jan01: HP acquires Bluestone
JeeOverview - 90
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
WebGain
JeeOverview - 91
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
HP
JeeOverview - 92
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
.NET Platform
Five main components
Assessment
Limited to just MS platforms but sure to work well on those
A little behind Java in J2SE space and tool support but catching
Present releases immature but much legacy to fall back on
Much further behind in J2EE space
No real equivalent defined yet however .NET has equivalents of some
of the APIs which are in J2EE but not all
Too close to call in J2ME space
Only time will tell but Java could be a better bet because Suns
approach and track record is more partner oriented
Visual Studio.NET
.NET Building
Block Services
.NET Enterprise
Servers
.NET Framework
Microsoft operating systems
JeeOverview - 93
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
.NET Framework
Framework Base Classes
IO, string, net, security, threading, text, reflection, collections, etc.
Windows
Forms
Web Services Web Forms
Data and XML Classes
ADO.NET, SQL, XSLT, XPath, XML, etc.
Common Language Runtime (CLR)
debug, exception, type checking, JIT compilers
Windows Platform
Seven pieces
Assessment (Contd)
Shortly Framework will be equivalent to J2SE + 50% of J2EE
but not an equivalent to J2EE no industry standard nor as mature
Compact .NET Framework placeholder for J2ME
JeeOverview - 94
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Java EE/J2EE vs .NET performance (NOT!)
Microsoft
We implemented Sun's own
J2EE best practices blueprint
application, the Java Pet Store,
using C# and Microsoft .NET. The
result? The exact same
application functionality was
implemented in just 1/4 the
code using C#/ASP.NET, and it
performs over 10 times faster
Oracle
JeeOverview - 95
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Comparing .Net vs J2EE
Better Comparison (www.trifork.com)
End result
Much ado
about nothing
VERY similar
stories from
either side
JeeOverview - 96
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Whats Next ?
InternetWeek
Basic App Server is becoming commoditized
Better value-for-money offerings appearing at low end
But app server is emerging as central piece of a larger, more
complex middle-tier computing infrastructure: The Extended App
Server
Larger platform includes integration, portal and edge servers
not to mention related technologies such as identity management
systems
Gartner
Name new area "application server platform suite"
Predicted figures: IBM (33 percent), BEA (24 percent), Oracle (12
percent), and Sun (7 percent) as the leaders in this new area
Sun/Java Community Process
new standards are emerging to support Web services and portal
apps, and standards-based integration schemas begin to wind
their way out of the JCP working groups
JeeOverview - 97
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
BEA WebLogic Platform
Source: BEA Web Site
And Also WebLogic Express:
Complete Portal, J2EE App Server,
Integration & Development Tool
JeeOverview - 98
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
WebSphere Commerce/Collab/Integration Platform
Source: IBM Web Site
And Also
Portal
Express:
Portal, Collaboration,
eCommerce, App Server
JeeOverview - 99
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
Oracle CRM E-Business Suite
Analytical Analytical
Applications Applications
Business Business
Applications Applications
CRM CRM
Foundation Foundation
Interaction Interaction
Channels Channels
E E- -Business Business
Foundation Foundation
E E- -Business Business
Platform Platform
9 9i i Application and Database Servers (inc Wireless) Application and Database Servers (inc Wireless)
Common Application Architecture & Schema Common Application Architecture & Schema
(Trading Community Architecture, Products, Pricing, Configurator (Trading Community Architecture, Products, Pricing, Configurator, User Login, Security, etc) , User Login, Security, etc)
Interaction History Interaction History
Resources Resources
Notes Notes
Universal Work Queue Universal Work Queue
Tasks Tasks
MES/Knowledge Base MES/Knowledge Base
Territories Territories
Calendar Calendar
Attachments Attachments
Assignment Engine Assignment Engine
1 1- -on on- -1 Fulfillment 1 Fulfillment
Escalation Management Escalation Management
Order Capture Order Capture
Installed Base Installed Base
Service Fulfillment Mgr Service Fulfillment Mgr
Customer Intelligence Customer Intelligence
Contracts Contracts
for Sales for Sales
Contracts Contracts
Intelligence Intelligence
Contracts Contracts
for Service for Service
Contracts Contracts
for Rights for Rights
Contracts Contracts
for Lease for Lease
Sales Intelligence Sales Intelligence
i iPayment Payment
Incentive Incentive
Comp Comp
Mobile Mobile
Field Field
Sales Sales
i iStore Store
Tele Tele
Sales Sales
Sales Sales
Online Online
Partners Partners
Online Online
Field Field
Sales Sales
Wireless Wireless
Service Intelligence Service Intelligence
Tele Tele
Service Service
i iSupport Support
Service Service
Online Online
Mobile Mobile
Field Field
Service Service
Depot Depot
Repair Repair
Spares Spares
Mgt Mgt
Field Field
Service Service
Wireless Wireless
Advanced Advanced
Scheduler Scheduler
Interaction Center Intelligence Interaction Center Intelligence
Web Web
eMail eMail
Center Center
Wireless Wireless
i iMeeting Meeting
Collaboration, Collaboration,
Chat. Chat.
Co Co- -browsing browsing
Mobile Mobile
(Laptop, PDA) (Laptop, PDA)
Advanced Advanced
Inbound Inbound
Advanced Advanced
Outbound Outbound
Scripting Scripting i iSurvey Survey
Marketing Intelligence Marketing Intelligence
Marketing Marketing
Online Online
Advanced Advanced
Marketing Marketing
Online Online
Trade Trade
Mgt Mgt
i iMarketing Marketing
Source: Oracle Web Site
And Also 9iAS Java Edition:
Everything from Portal, Collaboration, eCommerce, App Server to Higher-level
applications
JeeOverview - 100
J
a
v
a

C
u
r
r
i
c
u
l
u
m

A
S
E
R
T

E
d
u
c
a
t
i
o
n

1
9
9
9
-
2
0
0
6
eBusiness Platform Technologies & Tools
ASERT Consulting uses
the following eBusiness
platform architecture
when designing systems
for our customers

Você também pode gostar