java-technology based projects
TRANSCRIPT
1 TietoEnator©2000
TietoEnator Presentation
Java-technology based projects
TietoEnator Corporation OyjSimo Vuorinen
2 TietoEnator©2000
TietoEnator Presentation
AgendaAgenda
Java: language, architecture, platform?Java: language, architecture, platform?Javan promises and problemsJavan promises and problemsEnterprise-APIsEnterprise-APIsJava-component architectures: JavaBeans and EJBJava-component architectures: JavaBeans and EJBApplication serversApplication serversExperiences and experimentsExperiences and experimentsClose-up and future visionsClose-up and future visions
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 inthe world.
Java is distributed, interpreted architecture- and platform-neutral programminglanguage that can be used in addition to traditional application building also applets (small applications running in WWW-browser). Applets can be downloaded over thenetwork from anywhere in the world.
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?
5 TietoEnator©2000
TietoEnator Presentation
Logical ArchitectureLogical Architecture Technical ArchitectureTechnical Architecture
JavaOS
JECFJECF
Business logicBusiness logic
Java WebServerJava WebServer
Java Application ServerJava Application Server
Java Enterprise APIsJava Enterprise APIs
Java: language, architecture, platform?Java: language, architecture, platform?
6 TietoEnator©2000
TietoEnator Presentation
Java Architectural LayersJava Architectural Layers
Java Java AppApp..
DATADATA
DBDB
DBDB
DATADATA
DBDB
DBDB
TCP/IPTCP/IP
TCP/IPTCP/IP
LegacyLegacy
logiclogic
TP TP TCP/IPTCP/IP
MWMW(transport)(transport)
JDBCJ/SQL
IIOPIIOPSockets
Java ApplicationJava ApplicationServer (JAS)Server (JAS)
HTTP Server
HTTP Server
JDBC
JDBC
JDBC
JDBC
100 % Pure100 % Pure200 % Pure200 % Pure300 % Pure300 % Pure
ServletsJSPEJBEJBJTSRMIIIOP
RM
IR
MIIIOPIIOP
IIOPIIOP
HTTP
HTTP
Java, HTML Java, HTMLHTTP
HTTP
HTTPHTTP
Version: 1.4
DataDataManagementManagement
BusinessBusinessLogicLogic
PresentationPresentationNavigationNavigation
+ JavaOS: + JavaOS: 400 % Pure?400 % Pure?
7 TietoEnator©2000
TietoEnator Presentation
Java-platformsJava-platforms
8 TietoEnator©2000
TietoEnator Presentation
Where does Java run?Where does Java run?
9 TietoEnator©2000
TietoEnator Presentation
Java’s promises and problemsJava’s promises and problems
Ease of useFeature richnessDesktop-featuresPerformanceMatureness
10 TietoEnator©2000
TietoEnator Presentation
WWW: Applets
more functionality“real” applications in WWW“write once, run anywhere”
Problems with firewallsproblems with browsers and theirversionsapplets tend to be big;downloading is slow
Java’s promises and problemsJava’s promises and problems
11 TietoEnator©2000
TietoEnator Presentation
Java-applications
Same application runs anywherethat you can find a VM
Programmers don’t make as manyerrors as they used to
made network-readythreads are easily implemented
Interpreting slows down theapplicationCritical real-time-applicationsrequire good memory management;GC is in important role
desktop features have beendeficient for enterprise usage;printing, drag-drop, db-handling
Java’s promises and problemsJava’s promises and problems
12 TietoEnator©2000
TietoEnator Presentation
Java’s performance
Has been slowBut is getting betterJIT-compilersnative compilersHotSpot
02468
101214
Dem
oJa
vaO
ne:
Sym JITIE4C++HotSpot
Java’s promises and problemsJava’s promises and problems
13 TietoEnator©2000
TietoEnator Presentation
JSP/ServletsJSP/ServletsJSP/Servlets
Enterprise Java Beans componentsEnterprise Java Beans componentsEnterprise Java Beans components
JDBCJDBCJDBC
ServerPlatformServerServerPlatformPlatform
JMSJMSJMSJIDLJIDLJIDLJNDIJNDIJNDIJavaMailJavaMailJavaMailJTSJTSJTS
Java Beans componentsJava Beans componentsJava Beans componentsClientClientClient
IIOP, other protocolsIIOP, IIOP, other protocolsother protocols
HTMLHTMLHTML
Version: 1.0
RMI-IIOPRMI-IIOPRMI-IIOP
Java Enterprise-APIsJava Enterprise-APIs
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 PagesJavaServer 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 ServletJava 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 InterfaceProvides 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
15 TietoEnator©2000
TietoEnator Presentation
JDBCProvides 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
16 TietoEnator©2000
TietoEnator Presentation
JavaMailThe 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/IIOPRMI-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.
Java Enterprise-APIsJava Enterprise-APIs
17 TietoEnator©2000
TietoEnator Presentation
JavaBeans (Client-component architecture):
JavaBeans-component is composed of three parts:
Properties
Methods
Events MyBean…getXXXsetXXXdoStuff()fireEvent(Event ev)
SomeClassSomeClass
Register Event Listener
Fire Event
Event Object
Java-components: JavaBeans and EJBJava-components: JavaBeans and EJB
18 TietoEnator©2000
TietoEnator Presentation
Java-components: EJBJava-components: EJB
/ Versio: 1.1
Java Java ClientsClients
Version: 1.0
EJB Container:EJB Container:- Runtime Environment- Runtime Environmentfor 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 toolsprovide: distribution,provide: distribution,transaction, transaction, securitysecurity
J2EEJ2EE Server Server
EJB ContainerEJB Container Web ContainerWeb Container
J2EEJ2EE Server: Server: - - Naming and Naming and Directory Directory- - AuthenticationAuthentication- HTTP- HTTP-- -- EJBEJB
Web Container:Web Container: - - Runtime Runtime Environment for Environment for JSP and servlets JSP and servlets
EJB Clients: EJB Clients: - Client access is- Client access iscontrolled by thecontrolled by thecontainercontainer- - EJB’s EJB’s are located are located through JNDIthrough JNDI- RMI and CORBA are- RMI and CORBA aremeans of accessing ameans of accessing abean over a bean over a networknetwork
19 TietoEnator©2000
TietoEnator Presentation
BEA WebLogic EnterpriseBEA WebLogic EnterpriseServices Services / / LogicLogicDataData ClientClient
DCOMDCOM
RMIRMI
IIOPIIOP
DATADATA
DBDB
JDBC
JDBC
ActiveX,ActiveX,COMCOM
JavaJava
LegacyLegacy
ApplicationApplication
WR
A PW
RA P
DATADATA
DBDB
IIOPIIOP
M3 (OTM)M3 (OTM)
ApplicationApplication
EJBEJB
CORBACORBA
TuxedoTuxedo
ApplicationApplication
ApplicationApplication
ApplicationApplication
WebLogicWebLogic
EJBEJBCOMCOM
CORBACORBA
ServletsServletsJOLTJOLT
HTTP Server
HTTP Server
HTTPHTTPHTMLHTML
Version: 1.4
TCP/IPTCP/IP
ClusteringClusteringJTS, JNDI,JTS, JNDI,
RMI, RMI,
20 TietoEnator©2000
TietoEnator Presentation
CASE: CASE: Jaguar CTSJaguar CTS
DataData
/ Versio: 1.1
DATADATA
Oracle DBOracle DBDBDB
BusinessBusinessLogicLogicLayerLayer(Java(Java
Classes)Classes)
getComp
Version: 1.1
ClientClient
HTTP Server
HTTP Server
ServiceServiceLayerLayer
GUI LayerGUI Layer(Java)(Java)
DBAction
JagDBActionJagDBAction
BugInfo-applet
DBTransactionC
Application LayerApplication LayerJaguar CTSJaguar CTS
TDSTDS
HTTPHTTPJDBCJDBC
21 TietoEnator©2000
TietoEnator Presentation
CASE: Servlets and JavaCASE: Servlets and Java
Application LayerApplication LayerDataData ClientClient
/ Versio: 1.1
DATADATA
Oracle DBOracle DBDBDB
TCP/IPTCP/IP
DATADATA
FileNetFileNetDBDB
TCP/IPTCP/IP
DB LayerDB Layer(Java (Java
Classes)Classes)
WFService
M2DB
JDBC
JDBC
BusinessBusinessLogicLogicLayerLayer(Java(Java
Classes)Classes)
ServiceServiceLayerLayer
(Servlets)(Servlets)
GUI LayerGUI Layer(Java)(Java)
HTTP Server
HTTP Server
HTTPHTTP
HTMLHTMLServlets
Collector
M2HtmlGen
M2User
Version: 1.1
22 TietoEnator©2000
TietoEnator Presentation
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
Version: 1.0
23 TietoEnator©2000
TietoEnator Presentation
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
Version: 1.0
24 TietoEnator©2000
TietoEnator Presentation
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 inproduction 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
Version: 1.0
25 TietoEnator©2000
TietoEnator Presentation
Mistakes in WWW-technology projectsMistakes in WWW-technology projectscan 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
Version: 1.0
26 TietoEnator©2000
TietoEnator Presentation
Mistakes in Java-technology projectsMistakes in Java-technology projectscan 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
Version: 1.0