Server Side Java Technologies

download Server Side Java Technologies

of 26

Transcript of Server Side Java Technologies

  • 8/7/2019 Server Side Java Technologies

    1/26

    What is Java?

  • 8/7/2019 Server Side Java Technologies

    2/26

    Java IS ...

    2

    Simple

    Object Oriented

    Distributed

    Robust

    Secure

    Architecture NeutralPortable

    Integrated

    High-Performance

    Multi-Threaded

    Dynamic

  • 8/7/2019 Server Side Java Technologies

    3/26

    TIOBE Programming Community Index

    3http://www.tiobe.com/index.php/content/paperinfo/tpci/

  • 8/7/2019 Server Side Java Technologies

    4/26

    Position

    Feb 2010

    Position

    Feb 2009

    Delta in

    Position

    Programming

    Language

    Ratings

    Feb 2010

    Delta

    Feb 2009

    Status

    1 1 Java 17.35% -2.05% A2 2 C 16.60% +0.76% A3 5 PHP 10.00% +1.22% A4 3 C++ 9.45% -0.19% A5 4 (Visual) Basic 7.05% -1.79% A6 6 C# 5.02% -0.05% A7 7 Python 4.31% -0.25% A8 8 Perl 3.60% -0.52% A9 9 Delphi 2.66% -0.97% A10 10 JavaScript 2.64% -0.90% A11 11 Ruby 2.44% -0.84% A12 32 Objective-C 1.78% +1.60% A13 - Go 1.78% +1.78% A-14 14 SAS 0.77% -0.06% A15 13 PL/SQL 0.74% -0.25% A16 17 ABAP 0.66% +0.09% B17 16 Pascal 0.61% -0.08% B18 18 ActionScript 0.58% +0.04% B19 23 Lisp/Scheme 0.56% +0.13% B20 24 MATLAB 0.54% +0.12% B

    TIOBE Programming Community Index

    4http://www.tiobe.com/index.php/content/paperinfo/tpci/

    http://www.tiobe.com/content/paperinfo/tpci/MATLAB.htmlhttp://www.tiobe.com/content/paperinfo/tpci/MATLAB.htmlhttp://www.tiobe.com/content/paperinfo/tpci/MATLAB.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Lisp_Scheme.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Lisp_Scheme.htmlhttp://www.tiobe.com/content/paperinfo/tpci/ActionScript.htmlhttp://www.tiobe.com/content/paperinfo/tpci/ActionScript.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Pascal.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Pascal.htmlhttp://www.tiobe.com/content/paperinfo/tpci/ABAP.htmlhttp://www.tiobe.com/content/paperinfo/tpci/ABAP.htmlhttp://www.tiobe.com/content/paperinfo/tpci/PL_SQL.htmlhttp://www.tiobe.com/content/paperinfo/tpci/PL_SQL.htmlhttp://www.tiobe.com/content/paperinfo/tpci/SAS.htmlhttp://www.tiobe.com/content/paperinfo/tpci/SAS.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Go.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Go.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Objective-C.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Objective-C.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Ruby.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Ruby.htmlhttp://www.tiobe.com/content/paperinfo/tpci/JavaScript.htmlhttp://www.tiobe.com/content/paperinfo/tpci/JavaScript.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Delphi.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Delphi.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Perl.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Perl.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Python.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Python.htmlhttp://www.tiobe.com/content/paperinfo/tpci/C_.htmlhttp://www.tiobe.com/content/paperinfo/tpci/C_.htmlhttp://www.tiobe.com/content/paperinfo/tpci/(Visual)_Basic.htmlhttp://www.tiobe.com/content/paperinfo/tpci/(Visual)_Basic.htmlhttp://www.tiobe.com/content/paperinfo/tpci/C__.htmlhttp://www.tiobe.com/content/paperinfo/tpci/C__.htmlhttp://www.tiobe.com/content/paperinfo/tpci/PHP.htmlhttp://www.tiobe.com/content/paperinfo/tpci/PHP.htmlhttp://www.tiobe.com/content/paperinfo/tpci/C.htmlhttp://www.tiobe.com/content/paperinfo/tpci/C.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Java.htmlhttp://www.tiobe.com/content/paperinfo/tpci/Java.html
  • 8/7/2019 Server Side Java Technologies

    5/26

    Release History

    5

    Date Release

    1/23/1996 JDK 1.0

    2/19/1997 JDK 1.1

    12/8/1998 J2SE 1.25/8/2000 J2SE 1.3

    2/6/2002 J2SE 1.4

    9/30/2004 J2SE 5.0

    12/11/2006 Java SE 6

    10/16/2008 Java SE 6, update 10

    1/13/2010 Java SE 6, update 18http://en.wikipedia.org/wiki/Java_version_history

  • 8/7/2019 Server Side Java Technologies

    6/26

    Java VM - Performance

    6

  • 8/7/2019 Server Side Java Technologies

    7/26

    Java VM Architecture

    7

    0011111110101110101011111001010010101010010010100101010010110100101001

    ------------------------------------------------------------------------------------

    Java Bytecode

    Class Loader

    Bytecode Verifier

    Interpreter

    Runtime System

    OS

    Hardware

    Java VM

    Java source code

    compile execute

  • 8/7/2019 Server Side Java Technologies

    8/26

    Simple Java Program

    8

  • 8/7/2019 Server Side Java Technologies

    9/26

  • 8/7/2019 Server Side Java Technologies

    10/26

    10

    Java Compiler Improvements- Bytecode optimization

    - Bytecode inlining

    Java Interpreter Improvements- JIT (Just in Time) Compiler

    - HotSpot Performance Engine

    - Garbage Collection Algorithms

    - Locking Mechanism

    Class Library Improvements

    Performance Improvements

  • 8/7/2019 Server Side Java Technologies

    11/26

    Performance Improvements

    11

    0

    200

    400

    600

    800

    J2SE 1.2.2 J2SE 1.3.1_16 J2SE 1.4.2_11 J2SE 5.0_06 Java SE 6.0

    Server benchmark: Volano 2.5.0.9

    Sun JVMs are 32-bitSun Fire V490: Solaris 9 / SPARCVolano Website: http://www.volano.com

    Source: Java Performance Engineering

    1998

    2001 2003

    2004

    2005

    http://www.volano.com/http://www.volano.com/
  • 8/7/2019 Server Side Java Technologies

    12/26

    Computer Language Benchmark Game

    12http://shootout.alioth.debian.org/u64q/which-programming-languages-are-fastest.php

  • 8/7/2019 Server Side Java Technologies

    13/26

    Java (HotSpot) v.s. Java (Interpreter)

    13

  • 8/7/2019 Server Side Java Technologies

    14/26

    Java v.s. Fortran

    14

  • 8/7/2019 Server Side Java Technologies

    15/26

    Java v.s. GNU g++ (C++)

    15

  • 8/7/2019 Server Side Java Technologies

    16/26

    COBOL to Java

    16

  • 8/7/2019 Server Side Java Technologies

    17/26

    COBOL Program - Display File Contents

    17

  • 8/7/2019 Server Side Java Technologies

    18/26

    Java EE overview

    18

  • 8/7/2019 Server Side Java Technologies

    19/26

    Java EE Tiered Applications

    Client Tier

    Web Tier

    Business Tier

    EIS (Enterprise Information System) Tier

    19

    Client Web Business EIS

  • 8/7/2019 Server Side Java Technologies

    20/26

    Client Tier

    Web Browsers- HTML

    - Java Applet

    - AJAX

    Rich Client Applications- Java Web Start Applications

    - Desktop (Java) Client

    20

  • 8/7/2019 Server Side Java Technologies

    21/26

    Web Tier

    Web Server Applications

    Servlet

    JSF (JavaServer Faces)

    JSF Facelet

    EL (Expression Language)

    JSP (JavaServer Pages)

    JSP Standard Tag Library

    JavaBeans Components

    21

  • 8/7/2019 Server Side Java Technologies

    22/26

    Business Tier

    Enterprise JavaBeans

    JAX-RS RESTful Web Services

    JAX-WS Web Services Endpoints

    Java Persistence API

    22

  • 8/7/2019 Server Side Java Technologies

    23/26

    EIS Tier

    JDBC (Java Database Connection)

    Java Persistence API

    Java EE Connector Architecture

    Java Transaction API

    23

  • 8/7/2019 Server Side Java Technologies

    24/26

    Java EE 6 Technologies

    EJB 3.1

    Servlet 3.0

    JSP 2.2

    EL 2.2

    JMS 1.1

    JTA 1.1

    JavaMail 1.4

    Connector 1.6

    Web Services 1.3

    JAX-RPC 1.1

    JAX-WS 2.2

    JAX-RS 1.1

    JAXB 2.2

    JAXR 1.0

    Java EE Management 1.1

    Java EE Deployment 1.2

    JACC 1.4

    JASPIC 1.0

    JSP Debugging 1.0

    JSTL 1.2

    Web Services Metadata2.1

    JSF 2.0

    Common Annotations 1.1

    Java Persistence 2.0

    Bean Validation 1.0

    Managed Bean 1.0

    Interceptors 1.1

    Contexts andDependency Injection forJavaEE 1.0

    Dependency Injection forJava 1.0

    24

  • 8/7/2019 Server Side Java Technologies

    25/26

    Future Topic Candidates

    25

  • 8/7/2019 Server Side Java Technologies

    26/26

    Future Topic Candidates

    26

    Java EE Details

    Spring Framework

    Testing

    Source Code Management

    COBOL and Java ?

    ...