• No results found

Java 2 Platform, Enterprise Edition (J2EE): Enabling Technologies for EAI

N/A
N/A
Protected

Academic year: 2021

Share "Java 2 Platform, Enterprise Edition (J2EE): Enabling Technologies for EAI"

Copied!
55
0
0

Loading.... (view fulltext now)

Full text

(1)

1

Java 2 Platform,

Enterprise Edition (J2EE):

Enabling Technologies for EAI

Tony Ng, Staff Engineer

Rahul Sharma, Senior Staff Engineer Sun Microsystems Inc.

(2)

2

J2EE Overview

Tony Ng, Staff Engineer Sun Microsystems Inc.

(3)

3

What is Java 2 Platform,

Enterprise Edition?

• Java 2 Enterprise Edition (J2EE) is a platform that enables solutions for

developing, deploying and managing n-tier server-centric enterprise

applications.

(4)

4

Java

Platforms

Java Technology Enabled Desktop Workgroup Server Java Technology Enabled Devices High-End Server

(5)

5

J2EE Integrated Platform

Transactions Mail Objects Director y Transactions

Messaging Transactions Messaging

Directory

(6)

6

J2EE Platform Deliverables

• J2EE specification

– Defines the J2EE requirements

• J2EE reference implementation

– Prototype of J2EE platform

• J2EE compatibility test suite

– Vaidates J2EE platform compatibility

• J2EE blueprints

(7)

7

J2EE Reference Implementation

• Fully functional prototype

• Allow development of compatibility tests

• Help developers prototype J2EE technology-enabled applications

• Help server platform and tool vendors build J2EE platform support in their

products

(8)

8

Compatibility Test Suite

• Allow branding of compatible servers

• Ensure all J2EE implementations

branded by Sun conform to the J2EE specification

• Move us towards the goal of Write Once, Run Anywhere

(9)

9

J2EE Blueprints

• Best practices for J2EE

– Examples, patterns, templates

• J2EE blueprints include:

Book, Designing Enterprise Applications

(10)

10

(11)

11

J2EE Components

• Enterprise JavaBeansTM (EJB™)

– Business logic

• JavaServer PagesTM (JSP)

– Dynamic content

• Servlet

– Portable CGI script

• Application Client

(12)

12

J2EE Technologies

• J2EE Connector Architecture

– Enterprise systems integration

• Java Message Service (JMS)

– Asynchronous messaging

• Java API for XML Processing

– XML transformation

• Java Transaction API

(13)

13

J2EE Technologies (Cont...)

• Java Naming and Directory Interface (JNDI) – Enterprise directory • JavaMail – Email Notification • JDBC – Database connectivity

• JavaIDL, RMI, CORBA

(14)

14

J2EE Containers

• Container handles: – Concurrency – Transactions – Security – Scalability – Distribution • Components provide: – Business logic – Presentation

(15)

15

J2EE Components

and Containers

J NDI J2SE JMS RMI/I IOP JD BC Database Database App App Client Client App Client App Client Container Container HTTP/ HTTP/ HTTPS HTTPS J2SE J2SE RMI RMI J2SE J2SE J NDI J NDI JMSJMS RMI/I IOP RMI/I IOP JD BC JD BC JT A JT A JavaMailJavaMail JAF

JAF JNDIJNDI JMSJMS

RMI/I IOP RMI/I IOP JD BC JD BC JT A JT A JavaMailJavaMail JAF JAF HTTP/ HTTP/ HTTP HTTP S S Applet Applet Container Container Applet

Applet JSPJSP ServletServlet EJBEJB

Web Container

Web Container EJB ContainerEJB Container

RMI

RMI

J2SE

(16)

16

Benefits of Using J2EE

• Faster solution delivery time to market

– Components

– JavaServer Pages, EJB and other APIs

• Freedom of choice

– No vendor lock

– Skill reuse

• Simplified connectivity

(17)

17

J2EE and EAI

• Components and containers:

– EJB:business process

– Servlet, JSP: web components

• JAXP: XML parsing and transformation

• Connectors: EIS integration

• JMS: Asynchronous messaging

(18)

18

Building EAI framework

• J2EE provides building blocks

• EAI frameworks add:

– Intelligent routing

– Metadata facility

– Rules engine

– Integration of business processes

– Workflow

(19)

19

Enterprise JavaBeans

Tony Ng, Staff Engineer Sun Microsystems Inc.

(20)

20

The Problem

• Difficult to write distributed, n-tier applications

• Focus on business logic, not plumbing

• Multi-platform, heterogeneous environment

(21)

21

What Is the Enterprise

JavaBeans



Architecture?

• A component architecture for the development and deployment of distributed business applications

• Goals

– Simplify development and deployment of business applications

– Separate business logic from system code

– Portable components (Write Once, Run Anywhere™)

(22)

22

EJB Features

• Flexible component model

• Attribute-based application semantics

• Transaction: Declarative and programmatic

• Security: ACLs on operations

• Distributed access: home and remote interfaces

(23)

23

Benefits

• Simplifies development

• Write once, run anywhere

• Industry support

• Vendor/platform independent

(24)

24

Types of Enterprise Beans

• Session Beans – Stateless – Stateful • Entity Beans – Bean-managed persistence – Container-managed persistence • Message-Driven Beans

(25)

25

Session Beans

• On behalf of a single client

• May keep conversation state (stateful)

• Relatively short-lived: client session

• Do not survive server crashes

(26)

26

Entity Beans

• Represents business entities

• Shared access for multiple users

• Long-lived: as long as data in database

• Transactional

• Survive server crashes

• Container Managed Persistence:

– Relationships, EJB-QL

(27)

27

Message-driven Beans

• New enterprise bean type

– Asynchronous

– Activated upon message arrival

– Stateless

– No home or remote interface

(28)

28

Message-driven Bean

Scenario

Order Bean Inventory Management Bean Mail MessageDrivenBean JMS Topics Publish/subscribe Process Order Procure Inventory <Entity EJB> <Entity EJB> Database

(29)

29

Roles

• Enterprise bean provider

• Application assemblers

• Deployers

• System administrator

(30)

30

Deployment Descriptor

• Declarative rather than programmatic

• Allows easy customization

• Transaction attributes

• Security attributes

• Access control list

• Resource and EJB references

(31)

31

Transaction

• Declarative or programmatic

• Transparent support for distributed transaction

• EJB server handles

– transaction boundaries

– propagation

(32)

32

Security

• Declarative and/or programmatic

• Access control list on business methods

• RunAs mode

• Security-related methods in enterprise bean context

(33)

33

Writing Enterprise beans

• Implement business methods and component contract

• Define home and remote interface

• Define deployment descriptor

• Deploy and Run

(34)

34

Home Interface

• Allows a client to create, locate or destroy a bean

• Example:

public interface AccountHome extends EJBHome { public Account create(String ssn, String name)

throws CreateException, RemoteException; public Account findByPrimaryKey(String ssn)

throws FinderException, RemoteException; }

(35)

35

Remote Interface

• Exposes business methods to clients

• Example:

public interface Account extends EJBObject { public void debit(double amount) throws

InsufficientBalanceException, RemoteException; public void credit(double amount) throws

RemoteException;

public double getBalance() throws RemoteException;

(36)

36

Business Logic

public class AccountBean implements EntityBean { // entity state

private String name; private double balance;

public void debit(double amount) throws InsufficientBalanceException {

if (balance - amount < 0.0) {

throw new InsufficientBalanceException(); }

balance -= amount; }

// more business methods and

// component contract implementation

(37)

37

XML Support in J2EE

Tony Ng, Staff Engineer Sun Microsystems Inc.

(38)

38

XML in J2EE

• Java API for XML Processing

• Future Technologies:

– Java API for XML Messaging (JAXM)

(39)

39

JAXP 1.1

• Java Community Process initiative JSR-000063

• Feature list:

– SAX2.0.

– SAX 2 extensions.

– DOM Level 2 Core interfaces.

– XSLT 1.0

(40)

40

JAXP: Processing APIs for

Java

User Application

Reference Impl Other Impl

(41)

41

JAXP Description

• A lightweight API for parsing XML Documents

• API for transformation, referred to as TrAX.

• Allows for pluggable parsers

• Allows for pluggable XSLT enginges.

• Allows processing of XML using:

– Callback Driven (SAX)

– Tree Based (DOM)

(42)

42

SAX2.0 API

Simple API for XML

• Accesses Documents Serially

• Fast and Lightweight

• Harder to Program

• Sequential Access Only

Org.xml.sax

(43)

43

SAX 2.0 (Contd)

Provided Handler XML Document Parser Events Input

(44)

44

SAX used via JAXP

import java.xml.parsers.* import org.xml.sax.*

SAXParserFactory factory =

SAXParserFactory.newInstance(); factory.setValidating(true);

SAXParser parser = factory.newSAXParser();

parser.parse("http://server.com/foo.xml", handler);

// can also parse InputStreams, Files, and // SAX input sources.

(45)

45

SAX ContentHandler

import org.xml.sax.*

public class MyHandler implements ContentHandler { public void startDocument() throws SAXException {

// start processing here. Could store it in a // stack and build your own tree representation // This is the first method invoked

}

public void endDocument() throws SAXException {

// This is the last method invoked on the // handler

} }

(46)

46

DOM Level 2

• Document Object Model

• Access XML document via a tree structure

• Composed of element nodes and text nodes

• Can "walk" the tree back and forth

• Larger memory requirements

(47)

47

DOM Level 2 (Contd)

XML

Document Parser

(48)

48

DOM used via JAXP

import java.xml.parsers.* import org.w3c.dom.* DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); factory.setValidating(true); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse("http://server.com/foo.xml");

// can also parse InputStreams, Files, and // SAX input sources.

(49)

49

XSLT 1.0

• XSL Transformations.

• Syntax and semantics for transforming xml documents into other xml

documents or any other format.

• Expressed as a well-formed xml document.

• Recommended Processing Instruction to apply to an xml document

– <?xml-stylesheet href="mystyle.css" type="text/css"?>

(50)

50

XSLT 1.0 (Contd)

XML Document XSLT Processor Input XSL Stylesheet Resulting XML Document Result

(51)

51

XSLT used via JAXP

import java.xml.transform.*; Transformer transformer;

TransformerFactory factory =

TransformerFactory.newInstance(); try {

// Create a transformer for a particular stylesheet. transformer = factory.newTransformer(

new StreamSource(stylesheet));

// Transform the source xml to System.out.

transformer.transform(new StreamSource(sourceId), new StreamSource(System.out));

} catch (Exception e) { // handle error

(52)

52

XSLT used via JAXP (contd)

The following example illustrates the serialization of a DOM node to an XML stream.

import java.xml.transform.*; TransformerFactory tfactory = TransformerFactory.newInstance();

Transformer serializer = tfactory.newTransformer(); Properties oprops = new Properties();

oprops.put(“method”, “html”);

oprops.put(“indent-amount”, “2”);

serializer.setOutputProperties(oprops); serializer.transform(new DOMSource(doc), new StreamResult(System.out));

(53)

53

Plugability

• Factory lookup is accomplished by

– System property

• javax.xml.parsers.SAXParserFactory

• javax.xml.parsers.DocumentBuilderFactory

• javax.xml.transform.TransformerFactory – $JAVA_HOME/lib/jaxp.properties file

– Jar Services API

META-INF/services/javax.xml.parsers.XXXFactory – Reference Default

(54)

54

Reference Implementation

• Parser and XSLT Engine based on ASF Code

• Apache Crimson for XML Parsing

(55)

55

Current Status

• Public Review 2 of the spec and beta of the RI can be obtained by following links from

– http://java.sun.com/xml

• eedback aliases

References

Related documents

Life Ticket Submits APP Agent Signature is Automatic Client Phone Interview Client Signs at Exam.. AppAssist Submits APP Agent Signature is Automatic Client Phone

Server Oracle HTTP Server Hardware Load Balancer Banner Database (Oracle) Application Server 3 Linux RedHat VM Oracle WebLogic Container XE App 4 XE App 5 XE App 7 XE App 6

• J2SE Core Components and Optional Packages • Swing • Collections Framework • Assistive Technologies • Introduction to J2EE • XML and Java • Readings7. • Class

P ETLAMUL W., P RASERTSAN P., 2012 – Evaluation of strains of Metarhizium anisopliae and Beauveria bassiana against Spodoptera litura on the basis of their virulence,

The hybrid parallelization of existing discrete-event individual-oriented MPI implementation may bring excellent results depending on the communication pattern among the MPI

(3) may not disclose that the buyer will pay a price greater than the price submitted in a written offer unless authorized in writing to do so by the buyer; and (4) may not

J2SE: Java 2 standard edition J2EE: Java 2 enterprise edition J2ME: Java 2 micro edition... Definition of J2SE, J2EE

OTHERWISE DUE ON SUCH PRODUCT SHALL BE CONSIDERED AS INPUT TAX CREDITABLE AGAINST HIS OUTPUT TAX PAYABLE 2 ND STATEMENT: EXPORT SALES BY A VAT-REGISTERED PERSON ARE.. SUBJECT