8/17/2019 Java Tech Based Projects
1/26
1 TietoEnator©2000
TietoEnator Presentation
Java-technology based projects
TietoEnator Corporation Oyj
Simo [email protected]
8/17/2019 Java Tech Based Projects
2/26
2 TietoEnator©2000
TietoEnator Presentation
AgendaAgenda
Java: language, architecture, platform?Java: language, architecture, platform?
Javan promises and problemsJavan promises and problems
Enterprise-APIsEnterprise-APIs
Java-component architectures: JavaBeans and EJBJava-component architectures: JavaBeans and EJB
Application serversApplication serversExperiences and experimentsExperiences and experiments
Close-up and future visionsClose-up and future visions
8/17/2019 Java Tech Based Projects
3/26
3 TietoEnator©2000
TietoEnator Presentation
Java: language, architecture, platform?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.
8/17/2019 Java Tech Based Projects
4/26
4 TietoEnator©2000
TietoEnator Presentation
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 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
Logical architectureLogical architecture Technical architectureTechnical architecture
Architecture
Java: language, architecture, platform?Java: language, architecture, platform?
8/17/2019 Java Tech Based Projects
5/26
5 TietoEnator©2000
TietoEnator Presentation
Logical ArchitectureLogical Architecture Technical ArchitectureTechnical Architecture
JavaOS
JECFJECF
Business logicBusiness logic
Java WebServer Java WebServer
Java Application Server Java Application Server
Java Enterprise APIsJava Enterprise APIs
Java: language, architecture, platform?Java: language, architecture, platform?
V i 1 4
8/17/2019 Java Tech Based Projects
6/26
6 TietoEnator©2000
TietoEnator Presentation
Java Architectural LayersJava Architectural Layers
JavaJava AppApp..
DATADATA
DBDB
DBDB
DATADATA
DBDB
DBDB
TCP/IPTCP/IP
TCP/IPTCP/IP
LegacyLegacy
logiclogic
T P T P TCP/IPTCP/IP
MWMW
(transport)(transport)
JDBC
J/SQL
IIOPIIOP
Sockets
Java ApplicationJava Application
Server (JAS)Server (JAS)
HTTP
Server
HTTP
Server
J D
B C
J D
B C
J D B C
J D B C
100 % Pure100 % Pure200 % Pure200 % Pure300 % Pure300 % Pure
Servlets
JSP
EJBEJB
JTS
RMI
IIOP
R M I
R M I IIOPIIOP
IIOPIIOP
H T T P
H T T P
Java, HTML Java, HTMLH T T P
H T T P
HTTPHTTP
Version: 1.4
DataDataManagementManagement
BusinessBusinessLogicLogic
PresentationPresentationNavigationNavigation
+ JavaOS:+ JavaOS:400 % Pure?400 % Pure?
8/17/2019 Java Tech Based Projects
7/26
7 TietoEnator©2000
TietoEnator Presentation
Java-platformsJava-platforms
8/17/2019 Java Tech Based Projects
8/26
8 TietoEnator©2000
TietoEnator Presentation
Where does Java run?Where does Java run?
8/17/2019 Java Tech Based Projects
9/26
9 TietoEnator©2000
TietoEnator Presentation
Java’s promises and problemsJava’s promises and problems
Ease of use
Feature richness
Desktop-features
Performance
Matureness
8/17/2019 Java Tech Based Projects
10/26
10 TietoEnator©2000
TietoEnator Presentation
WWW: Applets
more functionality
“real” applications in WWW“write once, run anywhere”
Problems with firewalls
problems with browsers and their versions
applets tend to be big;
downloading is slow
Java’s promises and problemsJava’s promises and problems
8/17/2019 Java Tech Based Projects
11/26
11 TietoEnator©2000
TietoEnator Presentation
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
Interpreting slows down the
applicationCritical 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
Java’s promises and problemsJava’s promises and problems
Ti t E t P t ti
8/17/2019 Java Tech Based Projects
12/26
12 TietoEnator©2000
TietoEnator Presentation
Java’s performance
Has been slow
But is getting better
JIT-compilers
native compilers
HotSpot
0
2
4
6
8
10
1214
D e m o
J a v a O n e :
Sym JITIE4
C++
HotSpot
Java’s promises and problemsJava’s promises and problems
TietoEnator Presentation
Version: 1.0
8/17/2019 Java Tech Based Projects
13/26
13 TietoEnator©2000
TietoEnator Presentation
JSP/ServletsJSP/ServletsJSP/Servlets
Enterprise Java Beans componentsEnterprise Java Beans componentsEnterprise Java Beans components
JDBCJDBCJDBC
Server
Platform
Server Server
PlatformPlatform
JMSJMSJMSJIDLJIDLJIDLJNDIJNDIJNDIJavaMailJavaMailJavaMailJTSJTSJTS
Java Beans componentsJava Beans componentsJava Beans componentsClientClientClient
IIOP, other protocolsIIOP,IIOP, other protocolsother protocols
HTMLHTMLHTML
RMI-IIOPRMI-IIOPRMI-IIOP
Java Enterprise-APIsJava Enterprise-APIs
TietoEnator Presentation
8/17/2019 Java Tech Based Projects
14/26
14 TietoEnator©2000
TietoEnator Presentation
Enterprise JavaBeans ArchitectureThe 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.
Java Enterprise-APIsJava Enterprise-APIs
TietoEnator Presentation
8/17/2019 Java Tech Based Projects
15/26
15 TietoEnator©2000
TietoEnator Presentation
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.
Java Enterprise-APIsJava Enterprise-APIs
TietoEnator Presentation
8/17/2019 Java Tech Based Projects
16/26
16 TietoEnator©2000
TietoEnator Presentation
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, andimplement them just using Java technology and the Java RMI APIs.
Java Enterprise-APIsJava Enterprise-APIs
TietoEnator Presentation
8/17/2019 Java Tech Based Projects
17/26
17 TietoEnator©2000
JavaBeans (Client-component architecture):
JavaBeans-component is composed of three parts:
Properties
Methods
Events MyBean…
getXXX
setXXX
doStuff()
fireEvent(Event ev)
SomeClassSomeClass
Register Event Listener
Fire Event
Event Object
Java-components: JavaBeans and EJBJava-components: JavaBeans and EJB
TietoEnator PresentationVersion: 1.0
8/17/2019 Java Tech Based Projects
18/26
18 TietoEnator©2000
Java-components: EJBJava-components: EJB
/ Versio: 1.1
JavaJava ClientsClients
EJB Container:EJB Container:- Runtime Environment- Runtime Environment
for an EJBfor an EJB- Transaction mgmt.- Transaction mgmt.
- Security- Security
- Remote client- Remote client
connectivity connectivity
- Life cycle mgmt.- Life cycle mgmt.
-- DB Connection PoolDB Connection Pool
EJB ComponentsEJB Components- Specialized Java- Specialized Java
classclass- Distributed over a net- Distributed over a net
- Transactional &- Transactional &
SecureSecure
- Server vendor tools- Server vendor tools
provide: distribution,provide: distribution,
transaction,transaction, securitysecurity
J2EEJ2EE Server Server
EJB Container EJB Container Web Container Web Container
J2EEJ2EE Server:Server:-- Naming andNaming and
Directory Directory-- Authentication Authentication
- HTTP- HTTP
---- EJBEJB
Web Container:Web Container: -- RuntimeRuntime
Environment for Environment for
JSP and servlets JSP and servlets
EJB Clients:EJB Clients:- Client access is- Client access is
controlled by thecontrolled by thecontainer container
-- EJB’sEJB’s are locatedare located
through JNDIthrough JNDI
- RMI and CORBA are- RMI and CORBA are
means of accessing ameans of accessing a
bean over abean over a networknetwork
TietoEnator PresentationVersion: 1.4
8/17/2019 Java Tech Based Projects
19/26
19 TietoEnator©2000
BEA WebLogic EnterpriseBEA WebLogic Enterprise
ServicesServices / / LogicLogicDataData ClientClient
DCOMDCOM
RMIRMI
IIOPIIOP
DATADATA
DBDB
J D
B C
J D
B C
ActiveX,ActiveX,
COMCOM
JavaJava
LegacyLegacy
ApplicationApplication
W
R A P
W
R A P
DATADATA
DBDB
IIOPIIOP
M3 (OTM)M3 (OTM)
ApplicationApplication
EJBEJB
CORBACORBA
TuxedoTuxedo
ApplicationApplication
ApplicationApplication
ApplicationApplication
WebLogicWebLogic
EJBEJB
COMCOM
CORBACORBA
ServletsServlets
JOLTJOLT
HTTP
Server
HTTP
Server
HTTPHTTP
HTMLHTML
TCP/IPTCP/IP
ClusteringClusteringJTS, JNDI,JTS, JNDI,
RMI,RMI,
TietoEnator PresentationVersion: 1.1
8/17/2019 Java Tech Based Projects
20/26
20 TietoEnator©2000
CASE:CASE: Jaguar CTSJaguar CTS
DataData
/ Versio: 1.1
DATADATA
Oracle DBOracle DB
DBDB
BusinessBusiness
LogicLogic
Layer Layer
(Java(Java
Classes)Classes)
getComp
ClientClient
H
TTP
Server
H
TTP
Server
ServiceService
Layer Layer
GUI Layer GUI Layer
(Java)(Java)
DBAction
JagDBActionJagDBAction
BugInfo-
applet
DBTransactionC
Application Layer Application Layer
Jaguar CTSJaguar CTS
TDSTDS
HTTPHTTPJDBCJDBC
TietoEnator Presentation
Version: 1.1
8/17/2019 Java Tech Based Projects
21/26
21 TietoEnator©2000
CASE: Servlets and JavaCASE: Servlets and Java
Application Layer Application Layer DataData ClientClient
/ Versio: 1.1
DATADATA
Oracle DBOracle DB
DBDBTCP/IPTCP/IP
DATADATA
FileNetFileNet
DBDBTCP/IPTCP/IP
DB Layer DB Layer
(Java(Java
Classes)Classes)
WFService
M2DB
J D
B C
J D
B C
BusinessBusiness
LogicLogic
Layer Layer
(Java(JavaClasses)Classes)
ServiceService
Layer Layer
(Servlets)(Servlets)
GUI Layer GUI Layer
(Java)(Java)
HTTP
Serve
r
HTTP
Serve
r
HTTPHTTP
HTMLHTMLServlets
Collector
M2Html
Gen
M2User
TietoEnator PresentationVersion: 1.0
8/17/2019 Java Tech Based Projects
22/26
22 TietoEnator©2000
What does Java offer?What does Java offer?
•• Client-component architecture (JavaBeans)Client-component architecture (JavaBeans)
•• Server- component architecture (EJB)Server- component architecture (EJB)
•• 4 different Java-application environments4 different Java-application environments
•• 11 enterprise-APIs11 enterprise-APIs
•• 8 core-APIs(JFC, Security, JavaBeans, 2D, ...)8 core-APIs(JFC, Security, JavaBeans, 2D, ...)•• lot of extensions, frameworks, etc.lot of extensions, frameworks, etc.
•• Platform-neutrality in reasonable scalePlatform-neutrality in reasonable scale
TietoEnator PresentationVersion: 1.0
8/17/2019 Java Tech Based Projects
23/26
23 TietoEnator©2000
Where can Java be chosen?Where can Java be chosen?
•• BL requires integration with Internet-technologyBL requires integration with Internet-technology
•• Old systems C/C++ Client-Server-systemsOld systems C/C++ Client-Server-systems
•• application is meant to be deployed on more than oneapplication is meant to be deployed on more than one
platformplatform
TietoEnator PresentationVersion: 1.0
8/17/2019 Java Tech Based Projects
24/26
24 TietoEnator©2000
When not to choose Java?When not to choose Java?
•• System is complex, business-critical and must be inSystem is complex, business-critical and must be in
production in six monthsproduction in six months
•• Lot of integration is needed with legacy-systemsLot of integration is needed with legacy-systems
•• Existing 3rd-party products fill the needExisting 3rd-party products fill the need
TietoEnator PresentationVersion: 1.0
8/17/2019 Java Tech Based Projects
25/26
25 TietoEnator©2000
Mistakes in WWW-technology projectsMistakes in WWW-technology projects
can be caused by:can be caused by:
•• Lack of Internet- and WWW-knowledgeLack of Internet- and WWW-knowledge
•• Too big of a desire of experimenting new techToo big of a desire of experimenting new tech
•• Lack of knowledge in Internet securityLack of knowledge in Internet security
•• Not making a proof-of-conceptNot making a proof-of-concept
•• Not testing enough: profiling, load testing, etc.Not testing enough: profiling, load testing, etc.•• Lack of inspectionsLack of inspections
•• Lack of architecture liningLack of architecture lining
TietoEnator PresentationVersion: 1.0
8/17/2019 Java Tech Based Projects
26/26
26 TietoEnator©2000
Mistakes in Java-technology projectsMistakes in Java-technology projects
can be caused by:can be caused by:
•• Component recognizingComponent recognizing
•• C-style, procedural programmingC-style, procedural programming
•• Disregarding internal securityDisregarding internal security
•• Complex object-object relationsComplex object-object relations
•• Mixing objects with componentsMixing objects with components
Top Related