java-technology based projects

26
1 TietoEnator©2000 TietoEnator Presentation Java-technology based projects TietoEnator Corporation Oyj Simo Vuorinen [email protected]

Upload: hoangdieu

Post on 31-Dec-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java-technology based projects

1 TietoEnator©2000

TietoEnator Presentation

Java-technology based projects

TietoEnator Corporation OyjSimo Vuorinen

[email protected]

Page 2: Java-technology based projects

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

Page 3: Java-technology based projects

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.

Page 4: Java-technology based projects

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?

Page 5: Java-technology based projects

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?

Page 6: Java-technology based projects

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?

Page 7: Java-technology based projects

7 TietoEnator©2000

TietoEnator Presentation

Java-platformsJava-platforms

Page 8: Java-technology based projects

8 TietoEnator©2000

TietoEnator Presentation

Where does Java run?Where does Java run?

Page 9: Java-technology based projects

9 TietoEnator©2000

TietoEnator Presentation

Java’s promises and problemsJava’s promises and problems

Ease of useFeature richnessDesktop-featuresPerformanceMatureness

Page 10: Java-technology based projects

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

Page 11: Java-technology based projects

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

Page 12: Java-technology based projects

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

Page 13: Java-technology based projects

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

Page 14: Java-technology based projects

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

Page 15: Java-technology based projects

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

Page 16: Java-technology based projects

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

Page 17: Java-technology based projects

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

Page 18: Java-technology based projects

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

Page 19: Java-technology based projects

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,

Page 20: Java-technology based projects

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

Page 21: Java-technology based projects

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

Page 22: Java-technology based projects

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

Page 23: Java-technology based projects

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

Page 24: Java-technology based projects

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

Page 25: Java-technology based projects

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

Page 26: Java-technology based projects

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