Java & Components. Timo Jalonen Lead Architect (SW) Enterprise Web Services - Finland Sun Client Solutions. Email: Timo.Jalonen@sun.



Samankaltaiset tiedostot
SOA SIG SOA Tuotetoimittajan näkökulma

7.4 Variability management

7. Product-line architectures

Enterprise Architecture TJTSE Yrityksen kokonaisarkkitehtuuri

Rich Web Applications in Server-side Java without Plug-ins or JavaScript

HOJ J2EE & EJB & SOAP &...

HSMT J2EE & EJB & SOAP &...

Laiteriippumaton UI Ajaxilla ja Javalla

Collaborative & Co-Creative Design in the Semogen -projects

Tuottavuutta sovelluskehitykseen Oraclen työkaluilla: JDeveloper 10g ja HTML DB OUGF Syysseminaari

TIEKE Verkottaja Service Tools for electronic data interchange utilizers. Heikki Laaksamo

in condition monitoring

IoT-platformien vertailu ja valinta erilaisiin sovelluksiin / Jarkko Paavola

Tietokantaohjelmoinnin tekniikkoja Java-kielellä

Ohjelmistoarkkitehtuuri. Verkotettu multimedia. Multimedian vaikutukset. Mediavirtojen puskurointi. Ohjelmointi. Selain-ohjelmistoarkkitehtuuri

Java Platform, Enterprise Edition (Java EE)

<Insert Picture Here> SOA-rakentajan ensimmäiset askeleet avoimien standardien hyödyntämiseen

Liikenteen hankeaihioita

Windows Phone. Module Descriptions. Opiframe Oy puh Espoo

Tavoitteena yhdistää eri tavoin toteutetut ja eri tavoin toimivat järjestelmät; integration & interoperability.

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

API:Hack Tournee 2014

.NET 2006 ja sen jälkeen

Microsoft Visual J++ ohjelmointiympäristö

Encapsulation. Imperative programming abstraction via subprograms Modular programming data abstraction. TTY Ohjelmistotekniikka

Case TUHTI. Projektin tunnuslukuja. ! Suuri perusjärjestelmäuudistus! Työt alkoivat kesällä ! Java luokkia n. 5000

Atostek. KanTa-konseptin tuotteistaminen ja vienti ulkomaille

WAMS 2010,Ylivieska Monitoring service of energy efficiency in housing Jan Nyman,

TietoEnator Pilot. Ari Hirvonen. TietoEnator Oyj. Senior Consultant, Ph. D. (Economics) presentation TietoEnator 2003 Page 1

Käyttöliittymien uusi sukupolvi Logicalla Rondo-tuotteessa

Järjestelmäarkkitehtuuri (TK081702) Järjestelmäarkkitehtuuri. Järjestelmäarkkitehtuuri

T Software Architecture

Security server v6 installation requirements

Making diversity manageable. Miradore. Käytännön kokemuksia rahoituksen hakemisesta. Tiistai Technopolis Vapaudenaukio / Lappeenranta

Security server v6 installation requirements

2 Description of Software Architectures

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

Technische Daten Technical data Tekniset tiedot Hawker perfect plus

Object Framework - One. OF-1 is a high-productive Multi-UI OpenEdge data driven development framework. Veli-Matti Korhonen

Sovellusarkkitehtuurit

ProAgria. Opportunities For Success

Tietojärjestelmä uusiksi? Toimijaverkostot, niiden haasteet ja ratkaisut

DIGITAL MARKETING LANDSCAPE. Maatalous-metsätieteellinen tiedekunta

Tietoturvallinen liikkuva työ. Juha Tschokkinen

HITSAUKSEN TUOTTAVUUSRATKAISUT


Use of spatial data in the new production environment and in a data warehouse

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Teknologia-arkkitehtuurit. Valinta ja mallinnus

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

AKKREDITOITU TESTAUSLABORATORIO ACCREDITED TESTING LABORATORY WE CERTIFICATION OY OPERATOR LABORATORY

1 Introduction. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2006

Augmented Reality (AR) in media applications

Arkkitehtuurisuunnittelun haasteet: tänään SOA ja Web Services, mitä huomenna?

Information on preparing Presentation

Perinteisesti käytettävät tiedon (datan) tyypit

T Iteration demo. T Final Demo. Team Balboa

Copernicus, Sentinels, Finland. Erja Ämmälahti Tekes,

Rakentamisen 3D-mallit hyötykäyttöön

Office 2013 ja SQL Server 2012 SP1 uudet BI toiminnallisuudet Marko Somppi/Invenco Oy

Power BI Tech Conference Power BI. #TechConfFI. Johdanto

Ylläpitäjät, järjestelmäarkkitehdit ja muut, jotka huolehtivat VMwareinfrastruktuurin

ebooks in the libraries ebib trial and results

WP3 Decision Support Technologies

CIO muutosjohtajana yli organisaatiorajojen

Älykkäämmät integraatiot palveluväylän avulla

On instrument costs in decentralized macroeconomic decision making (Helsingin Kauppakorkeakoulun julkaisuja ; D-31)

Improving advisory services through technology. Challenges for agricultural advisory after 2020 Jussi Juhola Warsaw,

BPEL4WS Business Process Execution Language for Web Services. ITK E54 kevät 2005 Ville Seppänen

Web Service torilla tavataan!

Azuren yleiskatsaus. eli mistä on kyse ja miten vertautuu esim. AWS:ään. AWS User Group Helsinki, Petri Raitio, Sulava Oy

Helpottuuko sovellusten välinen integraatio XML:n avulla - kokemuksia ja ratkaisuja, teknologiajohtaja Sauli Tujunen, atbusiness Communications Oyj

Efficiency change over time

TURVALLISEN TEKNIIKAN SEMINAARI Laitteiden etähallinta tietoverkkojen välityksellä Jani Järvinen, tuotepäällikkö

Data Quality Master Data Management

P e d a c o d e ohjelmointikoulutus verkossa

Internet of Things. Ideasta palveluksi IoT:n hyödyntäminen teollisuudessa. Palvelujen digitalisoinnista 4. teolliseen vallankumoukseen

.NET ajoympäristö. Juha Järvensivu 2007

The CCR Model and Production Correspondence

Varmista oma paikkasi tulevaisuuden digitaalisilla markkinoilla. IPR-aamiaisseminaari, Ravintola Pörssi,

Nääsvillen oliopäivät.net vrs Java

VBE2 Työpaketit Jiri Hietanen / TTY

Harri Kaukovuo Senior Sales Consultant Technology Sales Oracle Finland Oy

Green Growth Sessio - Millaisilla kansainvälistymismalleilla kasvumarkkinoille?

JWT 2016 luento 11. to klo Aulikki Hyrskykari. PinniB Aulikki Hyrskykari

ECVETin soveltuvuus suomalaisiin tutkinnon perusteisiin. Case:Yrittäjyyskurssi matkailualan opiskelijoille englantilaisen opettajan toteuttamana

Automaatiojärjestelmän hankinnassa huomioitavat tietoturva-asiat

SAP Alustan Optimointi

Capacity Utilization

Mitä uutta ConfigMgr 2012 SP2 ja 2016? Panu Saukko ProTrainIT Oy

Tietojärjestelmäarkkitehtuurit

Teollinen Internet & Digitalisaatio 2015

TÄYTTÖAUTOMAATIT TÄYTTÖAUTOMAATIT COMPUTER INFLATORS

Other approaches to restrict multipliers

Microsoft Lync 2010 Attendee

Standard Business Reporting (SBR) and diminishing the Administrative Burden for companies

LIIKETOIMINNAN JATKUVUUDEN VARMISTAVAT PALVELURATKAISUT Simo Leisti Myyntijohtaja, IBM teknologiapalvelut

JA CHALLENGE Anna-Mari Sopenlehto Central Administration The City Development Group Business Developement and Competence

SAS & Cloud Computing. antti.hiltunen@sas.com

Transkriptio:

Java & Components Timo Jalonen Lead Architect (SW) Enterprise Web Services - Finland Sun Client Solutions Email: Timo.Jalonen@sun.com

Aiheita Java yleistä Eri komponenttimallit (JEE 5.0) (SOA) 2

Yleistä 3

Java - maisema Java APIs JAINTM JMI JiniTM JXTA Java Programming Language Java WebStart Java Virtual Machine Shared Data Toolkit Java DMK OSS/J JavaSpacesTM 4

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ä 5

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 6

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

Painosten erot Jokaiselle alustalle oma sopiva JVM ja APIt communicator server pager PDA J2EE Core APIs J2SE Core APIs J2ME Core APIs Java Language Java HotSpot Java Virtual Machine (JVM) KVM Card VM 8

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 9

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 10

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ä 11

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 Midlet Mobile Information Device Profile J2ME core APIs KVM DSP chip (esim. ARM) 12

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 13

J2ME Sovellusten lataus Sovelluksen Käyttäjä mainonta valitsee webbisivulla sovelluksen JAM lataa sovelluksen Web Page (Name, Version, Descriptor Size, File Network Transfer Java Application Manager ) Jar File 14

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 behavior of 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. 15

MI18N (JSR 238) Payment API (JSR 229) Adv. media (JSR 234) WMA 2.0 (JSR 205) SVG (JSR 226) CHAPI (JSR 211) 3DGraphics (JSR 184) SIP (JSR 180) Location (JSR 179) SATSA (JSR 177) Web Services (JSR 172) MMAPI 1.1 (JSR 135) Bluetooth/Obex (JSR 82) PDAOP (JSR 75) MSA/CLDC 1.0 Platform J2ME MSA/CLDC Platform 1.0 (JSR 248) MIDP 2.0 (JSR 118) CLDC 1.1 (JSR 139) 16

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. 17

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. 18

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) 19

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. 20

J2EE ja sen komponenttimallit 21

Java 2 Enterprise Edition Laajojen hajautettujen sovellusten kehitykseen Joukko API-laajennoksia Sovelluskehitysmalli Referenssitoteutus Yhteensopivuustestit 22

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 23

J2EE Arkkitehtuuri Client-Side Presentation Server-Side Presentation Server-Side Business Logic EIS MIDP Devices XHTML/WML SOAP/HTTP JDBC EJB Servlet Rich Clients DBMS RMI/IIOP XML/HTTP Browsers HTML/XML B2B Application SOAP/HTTP J2CA JSP EJB CORBA Web Container EJB Container JMS J2EE Application Server ERP CMS SOAP 24

J2EE komponentit eri tasoilla 25

J2EE säiliöt ja komponentit Säiliöiden tehtävät Rinnakkaisuus Tietoturva Saatavuus Skaalatuvuus Pysyvyys Tapahtumat Elinkaari Hallinta Komponenttien tehtävät Esitys Liiketoimintalogiikka (Tietovarastoyhteydet) 26

J2EE komponentit Servlet JSP EJB 27

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ää 28

J2EE - JavaServer Pages Tekstitiedosto (esim. HTML-sivu), johon kirjoitetaan laajennuselementtejä: > ohjelmakoodia > JSP-tagejä > Itse tehtyjä tageja Ajoympäristö kääntää sivusta Servletohjelman 29

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 30

J2EE - EJB Komponenteilla on: > Home/LocalHome-rajapinta (luonti, haku, tuhoaminen) > Local/Remote-rajapinta (toiminnallisuus) > Toteutus > Käyttöönottokuvain 31

EJB Arkkitehtuuri 32

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... 33

Sovelluksen paketointi 34

J2EE sovellusten kokoamisprosessi Creation Assembly Deployment Created by J2EE Modules Component Developer Assembled and Augmented J2EE APP by Application Assembler Processed by Deployer Deploy J2EE Container Enterprise Components 35

JEE 5.0 36

Java EE 5 TM Introduction 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. 37

The J2EE Challenge TM 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! 38

Java EE 5 Major Features TM Greatly simplified EJBTM development New persistence API Easy web applications with JavaServerTM Faces Simplified web services support More web service standards support 39

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... 40

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 41

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 42

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) 43

EJB 2.1 Bean Example public 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(); } } 44

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> 45

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; } } 46

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... 47

EJB 3.0 Client Example @EJB ShoppingCart mycart;... Collection widgets = mycart.starttoshop( widgets );... 48

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) 49

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 50

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. 51

JSF Architecture Server JSF Page Desktop Browser HTML HTML RenderKit Front ctrl JSF Page App Backend WML RenderKit Phone WML 52

Java EE 5 Status TM 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 53

SOA 54

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 55

Accidental Architecture? Silo Oriented Architecture 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) Rigid Complex Expensive Slow to Market Monolithic Hard to Integrate 56

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 57

SOA Conceptual Model 58

Layering Principle Shared Network-based Layered Services Access Layer Process Layer Service Layer Resource Layer 59

Pragmatic SOA: What It Is Not SOA SOA SOA SOA SOA SOA Products Middleware Software Enterprise Service Bus Web Services... 60

SOA Big Rules Eye Chart Layered Modular & Autonomous Service Reuse Interoperable Coarse-Grained Business Services Composable Stateless XML Doc-Based Asynchronous Conversational Policy-Driven Described Orchestrated Loosely Coupled Versioned Self Healing Reliable Messaging Secure Choreographed Registered & Discovered 61

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 62

The Move to Service Orientation Accidental Rigid Silo-Oriented Layered Extensible Service-Oriented 63

IT Silo Field Service Scheduling Order Processing Accounts Management Check Customer Status Check Customer Status Calculate Shipping Charges Determine Product Availability Determine Product Availability Order Status Verify Customer Credit Verify Customer Credit Monolithic Applications Order Status Data Repository Custom Marketing System AS400 Sales System Oracle CRM System SAP Finance System Red Prairie Warehouse Mgmt. System Another Business Unit External Trading Partner 64

IT Silo Field Service Scheduling Order Processing Check Customer Status Check Customer Status Determine Product Availability Determine Product Availability Verify Customer Credit Accounts Management Calculate Shipping Charges Order Status Verify Customer Credit Monolithic Applications Order Status Data Repository Custom Marketing System AS400 Sales System Oracle CRM System SAP Finance System Red Prairie Warehouse Mgmt. System Another Business Unit External Trading Partner 65

Reuse Services Via Re-composition Field Service Scheduling Check Customer Status Order Processing Check Credit Check Inventory Accounts Management Check Order Status Create Invoice Elemental Business Services Data Repository Custom Custom Marketing Marketing System System AS400 AS400 Sales Sales System System Oracle Oracle CRM CRM System System SAP SAP Finance Finance System System Red Red Prairie Prairie Warehouse Warehouse Mgmt. Mgmt. System System Another Another Business Business Unit Unit External External Trading Trading Partner Partner 66

Reuse Services Via Re-composition Field Service Scheduling Order Processing Accounts Management Check Customer Inventory Status Installation Scheduling Check Customer Status Process Customer Order Check Credit Check Inventory Bill Presentment/Payment Check Order Status Create Invoice Composed Business Processes Elemental Business Services Data Repository Custom Marketing System AS400 Sales System Oracle CRM System SAP Finance System Red Prairie Warehouse Mgmt. System Another Business Unit External Trading Partner 67

Field Service Scheduling Order Processing Accounts Management Composite Apps Business Processes Are Composed Hierarchically to Create Composite Applications Check Customer Status Check Credit Check Inventory Check Order Status Create Invoice Elemental Business Services Data Repository Custom Marketing System AS400 Sales System Oracle CRM System SAP Finance System Red Prairie Warehouse Mgmt. System Another Business Unit External Trading Partner 68