Java-technology based projects TietoEnator Corporation Oyj Simo Vuorinen

TietoEnator  Presentation
Java-technology based projects
TietoEnator Corporation Oyj
Simo Vuorinen
simo.vuorinen@tietoenator.com
1
TietoEnator©2000
TietoEnator  Presentation
Agenda
Java: language, architecture, platform?
Javan promises and problems
Enterprise-APIs
Java-component architectures: JavaBeans and EJB
Application servers
Experiences and experiments
Close-up and future visions
2
TietoEnator©2000
TietoEnator  Presentation
Java: language, architecture, platform?
Programming language:
Easy-to-use object-oriented programming language, which has been cleaned of
features that used to cause problems in C and C++.
Designed for Internet- and WWW-use.
Via Web-browser Java gives the possibility to use applications from anywhere in
the world.
Java is distributed, interpreted architecture- and platform-neutral programming
language that can be used in addition to traditional application building also applets
(small applications running in WWW-browser). Applets can be downloaded over the
network from anywhere in the world.
3
TietoEnator©2000
TietoEnator  Presentation
Java: language, architecture, platform?
Architecture generally:
Architecture (application architecture, system architecture) defines the guidelines,
which together help to achieve the information system goals without the need for
ad hoc-compromises during the implementation of the system.
Architecture defines
•general usability
•performance and scalability
•availability and robustiness
•security
Architecture
Logical
Logicalarchitecture
architecture
Technical
Technicalarchitecture
architecture
Architecture can be divided into
•logical architecture:
•what is to be done; db-, UI-, bl-services and utilities
•technical architecture:
•with what tools; os, db, mw, development tools
4
TietoEnator©2000
TietoEnator  Presentation
Java: language, architecture, platform?
JavaOS
Logical
LogicalArchitecture
Architecture
JECF
JECF
Business
Businesslogic
logic
Technical
TechnicalArchitecture
Architecture
Java
JavaWebServer
WebServer
Java
JavaApplication
ApplicationServer
Server
Java
JavaEnterprise
EnterpriseAPIs
APIs
5
TietoEnator©2000
Version: 1.4
TietoEnator  Presentation
Java Architectural Layers
Data
Management
Business
Logic
Presentation
Navigation
Legacy
TP
TCP/IP
MW
(transport)
logic
JDBC
TCP/IP
DB
DB
DATA
Java, HTML
IIOP
+ JavaOS:
400 % Pure?
RMI
JDBC
TCP/IP
DB
HTTP
IIOP
Sockets
HTTP
HTTP Server
DATA
Servlets
JSP
EJB
JTS
RMI
IIOP
IIOP
HTTP
JDBC
J/SQL
Java Application
Server (JAS)
Java App.
App.
DB
300 % Pure
6
TietoEnator©2000
200 % Pure
100 % Pure
TietoEnator  Presentation
Java-platforms
7
TietoEnator©2000
TietoEnator  Presentation
Where does Java run?
8
TietoEnator©2000
TietoEnator  Presentation
Java’s promises and problems
Ease of use
Feature richness
Desktop-features
Performance
Matureness
9
TietoEnator©2000
TietoEnator  Presentation
Java’s promises and problems
WWW: Applets
more functionality
“real” applications in WWW
“write once, run anywhere”
10
TietoEnator©2000
Problems with firewalls
problems with browsers and their
versions
applets tend to be big;
downloading is slow
TietoEnator  Presentation
Java’s promises and problems
Java-applications
Same application runs anywhere
that you can find a VM
Programmers don’t make as many
errors as they used to
made network-ready
threads are easily implemented
11
TietoEnator©2000
Interpreting slows down the
application
Critical real-time-applications
require good memory management;
GC is in important role
desktop features have been
deficient for enterprise usage;
printing, drag-drop, db-handling
TietoEnator  Presentation
Java’s promises and problems
Java’s performance
Has been slow
But is getting better
JIT-compilers
native compilers
HotSpot
14
12
10
8
Sym JIT
IE4
C++
HotSpot
6
4
0
12
TietoEnator©2000
Demo
JavaOne:
2
Version: 1.0
TietoEnator  Presentation
Java Enterprise-APIs
Client
Client
HTML
Java
Java Beans
Beans components
components
IIOP, other
other protocols
protocols
JSP/Servlets
JSP/Servlets
Enterprise
Enterprise Java
Java Beans
Beans components
components
Server
Server
Platform
Platform
JTS
JTS
13
JavaMail
JavaMail
TietoEnator©2000
JNDI
JNDI
JIDL
JIDL
JMS
JMS
JDBC
JDBC RMI-IIOP
RMI-IIOP
TietoEnator  Presentation
Java Enterprise-APIs
Enterprise JavaBeans Architecture
The Enterprise JavaBeans specification defines an API that will make it easy for
developers to create, deploy and manage cross-platform, component-based enterprise
applications that work within the framework of the systems currently in use.
JavaServer Pages
JavaServer Pages combines easy-to-use server-side tags with the power of JavaBeansTM
components to provide a solution that cleanly separates the presentation of dynamic
content from the generation of that content. Neutral to development platforms and
Web servers, it's a Write Once, Run AnywhereTM solution.
Java Servlet
Java Servlet provides a uniform, industry-supported interface for extending a web
server with cross-platform and cross-server components written in the Java
Programming Language.
Java Naming and Directory Interface
Provides uniform, industry-standard, seamless connectivity from the Java platform to
business information assets, thus allowing developers to deliver Java applications with
unified access to multiple naming and directory services across the enterprise.
Java Interface Definition Language (IDL)
Provides interoperability with CORBA, the industry standard for heterogeneous computing.
Java IDL includes an IDL-to-Java compiler and a lightweight ORB that supports IIOP.
14
TietoEnator©2000
TietoEnator  Presentation
Java Enterprise-APIs
JDBC
Provides programmers with a uniform interface to a wide range of relational databases,
and provides a common base on which higher-level tools and interfaces can be built.
Java Message Service (JMS)
The Java Message Service specification provides developers with a standard Java API
for enterprise messaging services such as reliable queuing, publish and subscribe
communication and various aspects of push/pull technologies.
Java Transaction (JTA)
Java Transaction API (JTA) defines a high-level transaction management specification
intended for resource managers and transactional applications in distributed
transaction systems.
Java Transaction Service (JTS)
The Java Transaction Service (JTS) API technology ensures interoperability with
sophisticated transaction resources such as transactional application programs, resource
managers, transaction processing monitors and transaction managers. Since these
components are provided by different vendors, JTS provides open, standard access to
these transaction resources.
15
TietoEnator©2000
TietoEnator  Presentation
Java Enterprise-APIs
JavaMail
The JavaMail API provides a set of abstract classes that models a mail system.
The API is meant to provide a platform independent and protocol independent framework
to build Java-based mail and messaging applications.
RMI/IIOP
RMI-IIOP provides developers an implementation of the Java RMI API over the
Object Management Group's industry-standard Internet Inter-Orb Protocol (IIOP).
With it, developers can write remote interfaces between clients and servers, and
implement them just using Java technology and the Java RMI APIs.
16
TietoEnator©2000
TietoEnator  Presentation
Java-components: JavaBeans and EJB
JavaBeans (Client-component architecture):
JavaBeans-component is composed of three parts:
Properties
Methods
MyBean
…
getXXX
setXXX
doStuff()
fireEvent(Event ev)
Events
Register Event Listener
Event Object
Fire Event
17
TietoEnator©2000
SomeClass
SomeClass
Version: 1.0
TietoEnator  Presentation
Java-components: EJB
J2EE Server
Java Clients
EJB Clients:
- Client access is
controlled by the
container
- EJB’s are located
through JNDI
- RMI and CORBA are
means of accessing a
bean over a network
18
Web Container
Web Container:
- Runtime
Environment for
JSP and servlets
TietoEnator©2000
/ Versio: 1.1
EJB Container
J2EE Server: EJB Container:
EJB Components
- Naming and
Directory
- Authentication
- HTTP
-- EJB
- Specialized Java
class
- Distributed over a net
- Transactional &
Secure
- Server vendor tools
provide: distribution,
transaction, security
- Runtime Environment
for an EJB
- Transaction mgmt.
- Security
- Remote client
connectivity
- Life cycle mgmt.
- DB Connection Pool
Version: 1.4
TietoEnator  Presentation
BEA WebLogic Enterprise
Data
Services / Logic
Legacy
M3 (OTM)
WRAP
IIOP
Application
EJB
Application
Tuxedo
TCP/IP
Application
Application
JDBC
19
EJB
COM
CORBA
RMI
IIOP
Java
TietoEnator©2000
Application
Servlets
JOLT
Clustering
JTS, JNDI,
RMI,
DCOM
HTTP Server
DATA
DB
WebLogic
CORBA
DATA
DB
Client
HTTP
ActiveX,
COM
HTML
Version: 1.1
TietoEnator  Presentation
CASE: Jaguar CTS
Application Layer
Jaguar CTS
Data
Business
Logic
Layer
(Java
Classes)
DB
JDBC
Oracle DB
DBTransactionC
Service
Layer
TDS
JagDBAction
HTTP Server
getComp
DATA
Client
HTTP
DBAction
GUI Layer
(Java)
BugInfoapplet
20
TietoEnator©2000
/ Versio: 1.1
Version: 1.1
TietoEnator  Presentation
CASE: Servlets and Java
Data
Application Layer
DB Layer
(Java
Classes)
Service
Layer
(Servlets)
Collector
DATA
DB
TCP/IP
WFService
FileNet
M2User
Servlets
GUI Layer
(Java)
DATA
JDBC
DB
TCP/IP
M2DB
Oracle DB
21
TietoEnator©2000
/ Versio: 1.1
M2Html
Gen
HTTP Server
Business
Logic
Layer
(Java
Classes)
Client
HTTP
HTML
Version: 1.0
TietoEnator  Presentation
What does Java offer?
•
•
•
•
•
•
•
Client-component architecture (JavaBeans)
Server- component architecture (EJB)
4 different Java-application environments
11 enterprise-APIs
8 core-APIs(JFC, Security, JavaBeans, 2D, ...)
lot of extensions, frameworks, etc.
Platform-neutrality in reasonable scale
22
TietoEnator©2000
Version: 1.0
TietoEnator  Presentation
Where can Java be chosen?
• BL requires integration with Internet-technology
• Old systems C/C++ Client-Server-systems
• application is meant to be deployed on more than one
platform
23
TietoEnator©2000
Version: 1.0
TietoEnator  Presentation
When not to choose Java?
• System is complex, business-critical and must be in
production in six months
• Lot of integration is needed with legacy-systems
• Existing 3rd-party products fill the need
24
TietoEnator©2000
Version: 1.0
TietoEnator  Presentation
Mistakes in WWW-technology projects
can be caused by:
•
•
•
•
•
•
•
25
Lack of Internet- and WWW-knowledge
Too big of a desire of experimenting new tech
Lack of knowledge in Internet security
Not making a proof-of-concept
Not testing enough: profiling, load testing, etc.
Lack of inspections
Lack of architecture lining
TietoEnator©2000
Version: 1.0
TietoEnator  Presentation
Mistakes in Java-technology projects
can be caused by:
•
•
•
•
•
26
Component recognizing
C-style, procedural programming
Disregarding internal security
Complex object-object relations
Mixing objects with components
TietoEnator©2000