java & components · >api design work started recently. •early draft review planned for...

68
Timo Jalonen Lead Architect (SW) Enterprise Web Services - Finland Sun Client Solutions Email: [email protected] Java & Components

Upload: others

Post on 17-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

Timo JalonenLead Architect (SW)Enterprise Web Services - FinlandSun Client Solutions

Email: [email protected]

Java & Components

Page 2: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

2

Aiheita

• Java yleistä• Eri komponenttimallit• (JEE 5.0)• (SOA)

Page 3: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

3

Yleistä

Page 4: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

4

Java - maisema

Java APIs

Java Programming

Language

Java Virtual Machine

JAINTM

Shared DataToolkit

JiniTM

Java DMK

JXTA

Java WebStart

JMI

JavaSpacesTM

OSS/J

Page 5: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

5

Virtuaalikone

• (J)VM = (Java) Virtual Machine• Javalla kirjoitetut ohjelmat käännetään

välikielelle• Välikieli on kaikissa toteutuksissa sama• Virtuaalikone on ajoympäristöön

toteutettu ohjelma, joka suorittaa välikieltä

Page 6: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

6

APIt

• “Luokkakirjasto”• Joukko pakkauksia, joissa olevat luokat

tarjoavat yleisimmän perustoiminnallisuuden

• Eri painoksissa eri kokoelma luokkia• java.lang katsotaan “kuuluvaksi kieleen”

> ei tarvitse erikseen ottaa mukaan käännökseen

Page 7: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

7

”Painokset”

High-EndServer

Java TechnologyEnabled Desktop

WorkgroupServer

Java TechnologyEnabled Devices

Page 8: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

8

Painosten erot

Java HotSpot™ Java Virtual Machine (JVM) KVM Card VM

Java Language

J2EE

Core APIs J2SE

Core APIs J2ME Core APIs

server

communicator

PDA

pager

Jokaiselle alustalle oma sopiva JVM ja APIt

Page 9: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

9

JavaBeans• Javan komponenttimalli• Usein, muttei välttämättä, visuaalisia

kompenentteja• Perusominaisuudet:

> Introspection - kehitysvälineet saavat selville komponentin ominaisuudet

> Customization - ominaisuuksia voidaan muuttaa suunnitteluvaiheessa

> Events - eventtipohjainen kommunikointi> Properties - komponentin ominaisuudet näkyvät ja

niitä voidaan muuttaa ajonaikaisesti > Persistence - kustomoidut ominaisuudet voidaan

säilyttää• Yksinkertainen ohjelmointimalli

Page 10: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

10

Appletit

• Selaimessa ajettavia Java-sovelluksia• Periytyvät java.applet.Applet-luokasta• Applet-luokan määrittelemä rajapinta

> Appletin kontrolloimiseen> Tarjoaa myös appletille mahdollisuuden saada

tietoa ympäristöstään

• Sama luokka voi toimia sekä itsenäisenä sovelluksena, että applettina

Page 11: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

11

Java 2 Micro Edition• JavaOne 1999: KVM (Palm Pilot V)• Vahvasti optimoitu runtime• Kaksi virtuaalikonetta: KVM ja JVM• Sama tavukoodisetti ja luokkaformaatti kuin

J2SE:ssä

Page 12: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

12

J2ME

• Konfiguraatiot (CDC ja CLDC) määrittelevät minimivaatimukset joita sovelluskehittäjä voi odottaa java-kirjastoilta ja virtuaalikoneelta tietyn konfiguraation laitteilta

• Profiilit lisäävät laiteryhmäkohtaisia ominaisuuksia tiettyyn konfiguraatioon

Mobile Information

Device Profile

KVM

DSP chip(esim. ARM)

J2ME core APIs

Midlet

Page 13: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

13

J2ME komponentit = Midlet• J2ME:n komponentit ovat midlettejä• Erittäin analoginen Appletin kanssa, mutta

ajoympäristönä ei ole selain, vaan esim. puhelin

• Ei kuitenkaan sovellusten koostamisen väline

Page 14: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

14

J2ME – Sovellusten lataus

Web Page

JAM lataa

sovelluksen

Käyttäjä

valitsee

sovelluksen

Sovelluksen

mainonta

webbisivulla

Network Transfer Java Application

Manager

(Name,

Version,

Size,

…)

Jar File

Descriptor

File

Page 15: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

15

MSA Technical Approach

• MSA will:1)Choose the base set of Component APIs that

will be available on all next-generation JavaME devices.

2)Define clarifications that will define the proper behaviorof the Component APIs

3)Define roadmap for the future versions of the platform.

• Guiding principles:> Reduce fragmentation.> Minimize optional features.> Focus on the needs of mass-market handsets.

Page 16: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

16

MSA/CLDC 1.0 Platform

CLDC 1.1 (JSR 139)

MM

AP

I 1.1

(JS

R 1

35)

WM

A 2

.0 (

JSR

205

)

Blu

etoo

th/O

bex

(JS

R 8

2)

J2ME MSA/CLDC Platform 1.0 (JSR 248)P

DA

OP

(JS

R 7

5)

Web

Ser

vice

s (J

SR

172

)

SA

TS

A (

JSR

177

)

Loca

tion

(JS

R 1

79)

MI1

8N (

JSR

238

)

CH

AP

I (JS

R 2

11)

SV

G (

JSR

226

)

Adv

. m

edia

(JS

R 2

34)

3DG

raph

ics

(JS

R 1

84)

SIP

(JS

R 1

80)

Pay

men

t A

PI (

JSR

229

)

MIDP 2.0 (JSR 118)

Page 17: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

17

MSA Status• MSA/CLDC 1.0 Specification Public Review

was completed in October 2005.• Final Review and Final Release expected

in spring 2006.• Devices expected to ship in mid-to-late

2006.

Page 18: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

18

MIDP3 Overview• MIDP3 (JSR 271) will define a new version of the

highly popular Mobile Information Device Profile standard.

• Main goals:> Maintain and enhance the role of MIDP as the

leading mobile application environment.> Add functionality requested by the developer

community.> Maintain backwards compatibility with MIDP 2.0.> Maintain focus on high-volume mobile handsets.> Reduce ambiguity & tighten specification in all

areas.

Page 19: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

19

MIDP3 Feature Highlights• Multitasking (MVM) support:• Shared libraries for MIDlets (LIBlets)• UI enhancements• Secure/Removable/Remote RMS stores• Networking enhancements: Multiple

network interfaces – IPv6, VPN, IPSEC, MobileIP (to be decided)

Page 20: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

20

MIDP3 Status

• MIDP3 is still in an early stage.> Expert group work was started in May 2005.> Use case analysis completed in Sep/Oct 2005.> Requirements work is nearly complete.> API design work started recently.

• Early Draft Review planned for Spring 2006.

• Public Review by JavaOne 2006 (?)• Final Release by the end of year 2006.

Page 21: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

21

J2EE ja sen komponenttimallit

Page 22: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

22

Java 2 Enterprise Edition

• Laajojen hajautettujen sovellusten kehitykseen

• Joukko API-laajennoksia• Sovelluskehitysmalli• Referenssitoteutus• Yhteensopivuustestit

Page 23: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

23

J2EE-tuotteet

• Toisin kuin perusversiossa, Sun ei tarjoa valmista ympäristöä, vaan määrittelyt

• Viitetoteutus on toimiva ympäristö, mutta ei tarkoitettu tuotantokäyttöön

• Lukuisia kaupallisia ja avoimen lähdekoodin tuotteita saatavilla

Page 24: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

24

J2EE Arkkitehtuuri

DBMS

ERP

CMS

EJB

EJB

Servlet

JSP

Web Container EJB Container

Server-SidePresentation

Server-SideBusiness Logic

EISClient-SidePresentation

XHTML/WML

MIDP Devices

HTML/XML

RMI/IIOPRich Clients

Browsers

J2CA

CORBA

JDBC

JMS

J2EE Application Server

XML/HTTP

SOAP/HTTPB2B Application

SOAP/HTTP

SOAP

Page 25: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

25

J2EE komponentit eri tasoilla

Page 26: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

26

Komponenttien tehtävät

J2EE säiliöt ja komponentit

• Rinnakkaisuus• Tietoturva• Saatavuus• Skaalatuvuus• Pysyvyys• Tapahtumat• Elinkaari• Hallinta

• Esitys• Liiketoimintalogiikka• (Tietovarastoyhteydet)

Säiliöiden tehtävät

Page 27: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

27

J2EE komponentit

• Servlet• JSP• EJB

Page 28: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

28

J2EE - Servlet

• WWW-palvelinkontekstissa ajettava ohjelma, joka ottaa vastaan pyyntöjä ja lähettää vastauksia

• Ohjelmoija toteuttaa minimissään muutaman yksinkertaisen funktion, joita palvelin osaa kutsua

• Tarjoaa myös ohjelmoijalle joukon luokkia helpottamaan tehtävää

Page 29: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

29

J2EE - JavaServer Pages

• Tekstitiedosto (esim. HTML-sivu), johon kirjoitetaan laajennuselementtejä:> ohjelmakoodia> JSP-tagejä> Itse tehtyjä tageja

• Ajoympäristö kääntää sivusta Servlet-ohjelman

Page 30: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

30

J2EE - Enterprise JavaBeans

• Hajautettu komponenttimalli• Kolme päätyyppiä: Session, Entity ja

Message Driven> Session Bean voi olla tilallinen tai tilaton> Entity Bean voi hallita pysyvyytensä itse tai

jättää sen säiliön huoleksi> Message Driven Beania kutsutaan kun

sovelluspalvelin saa määritellyn viestin• Transaktionaalisia

Page 31: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

31

J2EE - EJB

• Komponenteilla on:> Home/LocalHome-rajapinta (luonti, haku,

tuhoaminen)> Local/Remote-rajapinta (toiminnallisuus)> Toteutus> Käyttöönottokuvain

Page 32: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

32

EJB Arkkitehtuuri

Page 33: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

33

Muita J2EE-ominaisuuksia• J2EE Connectors

• J2EE Deployment API

• J2EE Management

• Enterprise JavaBeans to CORBA Mapping

• Java API for XML Processing

• Java API for XML Registries

• Java API for XML-based RPC

• Java Naming and Directory Interface

• Java Message Service

• Java Transaction API / Java Transaction Service

• JavaMail API

• SOAP with Attachments API for Java ....

Page 34: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

34

Sovelluksen paketointi

Page 35: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

35

Creation Assembly Deployment

Created by Component Developer

Assembledand Augmentedby Application

Assembler

Processed by Deployer

Deploy

EnterpriseComponents

J2EE Container

J2EE APPJ2EE Modules

J2EE sovellusten kokoamisprosessi

Page 36: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

36

JEE 5.0

Page 37: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

37

JavaTM EE 5Introduction

• Theme: “Ease of Development”● Simplified EJB models: EJB 3.0 ● Java Technology Object Persistence● Extensive use of annotations: ● Common Annotations ● Web Services Annotations

● Java API for XML Binding (JAXB) 2.0:

● But also...● Streaming API for XML (StaX) ● Asynchronous Web Services (JAX-WS 2.0)● JavaServer™ Faces technology ● Updates to servlets, JavaServer Pages™ (JSP™),

JavaMail™ APIs, etc.

Page 38: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

38

The J2EETM Challenge

• J2EE is enormously powerful> The industry standard for robust enterprise

apps

• But that power sometimes gets in the way> Too difficult to get started> Even simple apps need boring boilerplate

• Can we keep the power, but make typical development tasks simpler?

• YES: and that is the focus of Java EE 5!

Page 39: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

39

JavaTM EE 5 Major Features

• Greatly simplified EJBTM development• New persistence API• Easy web applications with JavaServerTM

Faces• Simplified web services support• More web service standards support

Page 40: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

40

EJB 2.1 • Very powerful, but complex to use

> Too many classes, interfaces > Java Naming and Directory Interface™

(JNDI) API lookups> javax.ejb interfaces> Awkward programming model> Deployment descriptors> Entity bean anti-patterns> ...

Page 41: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

41

Ease of Development in EJB 3.0● Makes EJB technology easier to learn and use

> Extensive use of annotations> Fewer classes and interfaces> Dependency injection> Simple lookups> No required container interfaces> No required deployment descriptor> Simplified persistence> Object/relational mapping

● Improves developer productivity> Designed to draw new developers to J2EE platform

Page 42: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

42

Simplification of EJB Bean Types• Elimination of requirement for EJB

component interfaces> Business interfaces are plain Java interfaces

• Elimination of requirements for Home interfaces> Only need business interface, not home

• Elimination of requirements for javax.ejb.EnterpriseBean interfaces> Annotations for (optional) callbacks

• Elimination of need for use of JNDI API> Use dependency injection, simple lookup

method

Page 43: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

43

Simplified Client View

• Session beans have plain Java language business interface > No more EJB(Local)Home interface > No more EJB(Local)Object interface

• Bean class implements interface> Looks like normal Java class to bean developer

• Looks like normal Java language interface to client (POJI)

Page 44: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

44

EJB 2.1 Bean Examplepublic class PayrollBean implements javax.ejb.SessionBean {

SessionContext ctx;

DataSource empDB;

public void setSessionContext(SessionContext ctx) {

this.ctx = ctx;

}

public void ejbCreate() {

Context initialContext = new InitialContext();

empDB = (DataSource)initialContext.lookup(“java:comp/env/jdbc/empDB”);

}

public void ejbActivate() {}

public void ejbPassivate() {}

public void ejbRemove() {}

public void setBenefitsDeduction (int empId, double deduction) {

Connection conn = empDB.getConnection();

}

}

Page 45: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

45

EJB 2.1 DD Example<session>

<ejb-name>PayrollBean</ejb-name>

<local-home>PayrollHome</local-home>

<local>Payroll</local>

<ejb-class>com.example.PayrollBean</ejb-class>

<session-type>Stateless</session-type>

<transaction-type>Container</transaction-type>

<resource-ref>

<res-ref-name>jdbc/empDB</res-ref-name>

<res-ref-type>javax.sql.DataSource</res-ref-type>

<res-auth>Container</res-auth>

</resource-ref>

</session>

...

<assembly-descriptor>

...

</assembly-descriptor>

Page 46: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

46

EJB 3.0 Example@Remote public interface Payroll {

public void setBenefitsDeduction(int empId, double deduction);

}

@Stateless public class PayrollBean implements Payroll {

@Resource DataSource empDB;

public void setBenefitsDeduction(int empId, double deduction){

Connection conn = empDB.getConnection();

...

return;

}

}

Page 47: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

47

EJB 2.1 Client Example

...

Context initialContext = new InitialContext();

ShoppingCartHome myCartHome =

(ShoppingCartHome)initialContext.lookup(“java:comp/env/ejb/cart”);

ShoppingCart myCart= myCartHome.create();

//Use the bean

Collection widgets = myCart.startToShop(“widgets”)

...

// Don't forget code to handle javax.ejb.CreateException

...

Page 48: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

48

EJB 3.0 Client Example@EJB ShoppingCart myCart;

...

Collection widgets = myCart.startToShop(“widgets”);

...

Page 49: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

49

Persistence Model in EJB 3.0

• Entities are simple Java classes> Concrete classes—support use of new> Getter/setter “property” methods or persistent

instance variables> No required bean interfaces> No required callback interfaces

• Usable as “detached” objects in other application tiers> No more need for DTOs (Data Transfer Objects)

Page 50: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

50

EntityManager

• EntityManager serves as untyped “home” for entity operations> Methods for lifecycle operations

> Persist, remove, merge, flush, refresh, etc.

> Similar in functionality to Hibernate Session, JDO PersistenceManager, etc.

> Manages persistence context

Page 51: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

51

JavaServer™ Faces (JSF) Framework Is…

A server side user interface (UI) component framework for Java™ technology-based web applications.

Drag-and-drop UI components to build a web Application.

Page 52: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

52

JSF Architecture

HTML RenderKit

AppBackend

DesktopBrowser

Phone

Frontctrl

JSF Page

JSF Page

WML

HTML

Server

WML RenderKit

Page 53: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

53

JavaTM EE 5 Status

• All Specs available for review now• Specs at Proposed Final Draft stage – Q3 2005• Java EE 5 SDK Beta release – Q4 2005• Java EE 5 Final release – Q1 2006

Page 54: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

54

SOA

Page 55: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

55

What is SOA? (the obligatory definition slide)

• SOA is an architectural style that emphasizes loosely coupled, coarse-grained, shareable, secure, network based services to enable business flexibility in an interoperable technology agnostic manner.

• SOA is a business & technical strategy to expose business functionality & data within and between enterprises

• SOA is a design paradigm for the creation of applications via the orchestration of stateless services that interact through a variety of standards based interfaces

• SOA is an integrated software infrastructure and design approach based on best practices

Page 56: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

56

Accidental Architecture?Silo Oriented Architecture

• Rigid• Complex• Expensive• Slow to Market• Monolithic• Hard to Integrate

Mature information systems grow old disgracefully as successive waves of hacking result in accidental architectures which resist the reflection of on-going business process change.- Anthony Lauder & Stuart Kent; University of Kent. (2000)

Page 57: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

57

Promise of SOA

• Interoperability• Federation• Dynamic Discovery• Loose Coupling• Reuse and Composition• Evolution, not Revolution• Wrap and Reuse; Not Rip and Replace• Standards based approach• Alignment of Business and Technology

Page 58: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

58

SOA Conceptual Model

Page 59: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

59

Layering Principle

• Shared Network-based Layered Services

Process Layer

Access Layer

Service Layer

Resource Layer

Page 60: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

60

Pragmatic SOA: What It Is Not

• SOA Products

• SOA Middleware

• SOA Software

• SOA Enterprise Service Bus

• SOA Web Services

• SOA ...

Page 61: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

61

LayeredModular &Autonomous Service Reuse Interoperable

Coarse-GrainedBusiness Services

Composable Stateless XML Doc-Based Asynchronous Conversational

Reliable Messaging Secure Policy-Driven Described Orchestrated

SOA Big Rules – Eye Chart

Registered & Discovered Loosely Coupled Versioned Self HealingChoreographed

Page 62: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

62

Composite Application

• Set of reusable services composed into a new application

• Consumes existing services• Exposes new service interfaces• Encapsulates business

processes/collaboration• Unit of deployment for services• May or May not expose a user interface

Page 63: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

63

The “Move” to Service Orientation

AccidentalRigid

Silo-Oriented

LayeredExtensible

Service-Oriented

Page 64: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

64

IT Silo

CheckCustomer Status

Determine ProductAvailability

CheckCustomer Status

Determine ProductAvailability

VerifyCustomer Credit

Order Status

CalculateShipping Charges

Order Status

VerifyCustomer Credit

DataRepository

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

SAPFinanceSystem

OracleCRM

System

AS400Sales

System

CustomMarketing

System

MonolithicApplications

AccountsManagement

OrderProcessing

FieldService

Scheduling

Page 65: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

65

IT Silo

CheckCustomer Status

Determine ProductAvailability

Order Status

CalculateShipping Charges

Verify

Customer Credit

DataRepository

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

SAPFinanceSystem

OracleCRM

System

AS400Sales

System

CustomMarketing

System

MonolithicApplications

AccountsManagement

OrderProcessing

FieldService

Scheduling

CheckCustomer Status

Determine ProductAvailability Order Status

Verify

Customer Credit

Page 66: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

66

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

SAPFinanceSystem

OracleCRM

System

AS400Sales

System

CustomMarketing

System

Reuse Services Via Re-composition

ElementalBusinessServices

AccountsManagement

OrderProcessing

FieldService

Scheduling

DataRepository

CheckCustomer Status

CheckCredit

CheckInventory

CheckOrder Status

CreateInvoice

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

SAPFinanceSystem

OracleCRM

System

AS400Sales

System

CustomMarketing

System

Page 67: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

67

Reuse Services Via Re-composition

AccountsManagement

OrderProcessing

FieldService

Scheduling

DataRepository

ComposedBusinessProcessesInstallation Scheduling Process Customer Order Bill Presentment/Payment

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

SAPFinanceSystem

OracleCRM

System

AS400Sales

System

CustomMarketing

System

ElementalBusinessServices

CheckCredit

CheckOrder Status

CreateInvoice

CheckCustomer Status

CheckInventory

Installation Scheduling

CheckCustomer Status

CheckInventory

Page 68: Java & Components · >API design work started recently. •Early Draft Review planned for Spring 2006. •Public Review by JavaOne 2006 (?) •Final Release by the end of year 2006

68

ElementalBusinessServices

DataRepository

ExternalTradingPartner

AnotherBusiness

Unit

Red PrairieWarehouse

Mgmt. System

SAPFinanceSystem

OracleCRM

System

AS400Sales

System

CustomMarketing

System

Business Processes Are Composed Hierarchicallyto Create Composite Applications

AccountsManagement

OrderProcessing

FieldService

Scheduling CompositeApps

CheckCustomer Status

CheckCredit

CheckInventory

CheckOrder Status

CreateInvoice