java tech based projects

Upload: lakshmi-gunupudi

Post on 06-Jul-2018

224 views

Category:

Documents


0 download

TRANSCRIPT

  • 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