Erfolgreiche Erfolgreiche Anwendungsentwicklung Anwendungsentwicklung
mit J2EEmit J2EETMTM
Aus der Praxis Aus der Praxis –– für die Praxisfür die Praxis
DOAG Regionaltreffen Nürnberg/FrankenDOAG Regionaltreffen Nürnberg/FrankenNürnberg, 01.07.2003Nürnberg, 01.07.2003
Alexander BenkerSenior IT ArchitectXavo AGEnterprise IT SolutionsMeistersingerstrasse 295444 Bayreuthe-mail: [email protected]. +49 (0)921 787779-0Web: www.xavo.de
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 2
Erfolgreiche Anwendungsentwicklung mit J2EEErfolgreiche Anwendungsentwicklung mit J2EEAus der Praxis für die PraxisAus der Praxis für die Praxis
• Xavo AG
• Serviceorientierte, komponentenbasierte Architektur
• Modellierung
• Design Patterns
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 3
Xavo AGXavo AGDas UnternehmenDas Unternehmen
• Gegründet: Januar 2001
• Kernkompetenzen: IT-Produkte und IT-Dienstleistungen für Industrie und Logistik
• Basistechnologien: J2EE, PL/SQL, XML
• Kunden: British American TobaccoDeutsche TelekomDeutsche PostBayerische Sparkassenu.a.
• Partnerschaften: Swisslog AG (Logistik)Siemens AG (Industrie)SQL GmbH (Datenbanken)Oracle (Technologie)
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 4
Xavo AGXavo AGDie KernkompetenzenDie Kernkompetenzen
• Prozess- und Lösungserfahrung in Industrie & Logistik– Produktentwicklung, Engineering, Fertigungssteuerung, Qualitätssicherung,
Betriebsdatenerfassung etc.– Lagerverwaltung, Materialflusssteuerung, Tracking & Tracing, Produktintegrität
etc.
• Professionelle IT-Dienstleistungen– Geschäftsprozessanalyse, Consulting, Projektmanagement– Datenbanken, Applikationserver, Programmierung, Systemintegration
• Innovative Lösungen & Produkte– XavoManufacturing, XavoLogistics, XavoBusiness, XavoWorkgroup– TransConnectSAP
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 5
Xavo AGXavo AGDie ITDie IT--TechnologienTechnologien
• Relationale Datenbanken– Oracle, Sybase, Microsoft SQL, DB2
• Applikationsserver– Oracle AS, JBoss, BEA Weblogic, IBM Websphere
• Technologien– J2EE, EJB, XML, .NET, ASP, PHP
• Programmiersprachen– Java, PL/SQL, Powerbuilder, Delphi, Visual Basic, Oracle Forms
• Tools– Rational, Crystal Reports, CAST
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 6
Xavo AGXavo AGDie ProduktphilosophieDie Produktphilosophie
Kompetent in GeschäftsprozessenIndustrie/Logistik/Betriebsführung
XavoBaustein
XavoBaustein
XavoBaustein
Kompetenz in ITBeratung/Projekte/Technologien
XYZBaustein
Der Xavo Softwarekatalog
…
entwickeln Software-BausteineDie Software-Lieferanten
ABCBaustein
wählen die benötigten Software-Bausteine (Funktionalitäten) aus,um ihre bestehenden Anwendungen (Prozesse) zu optimieren
Die Kunden
LegacyAnwendungen
LegacyDaten
LegacyProzesse
XavoBaustein
ABCBaustein
XavoBaustein
…
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 7
Xavo AGXavo AGAuszug realisierter J2EE Auszug realisierter J2EE -- ProjekteProjekte
• XavoBusiness– ToDo-Liste– Sitzungsmanagement– Customer/Supplier/Partner Management– Customer Relationship Management– Knowledge Container– ...
• Kundenprojekte– Unternehmensportal für die Industrie– Internationales Reporting Qualitätskennzahlen– Document Builder – Presentation Builder– Tracking and Tracing– Diverse Informationssysteme für Sparkassen– ...
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 8
Erfolgreiche Anwendungsentwicklung mit J2EEErfolgreiche Anwendungsentwicklung mit J2EEAus der Praxis für die PraxisAus der Praxis für die Praxis
• Xavo AG
• Serviceorientierte, komponentenbasierte Architektur
• Modellierung
• Design Patterns
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 9
Aspects of Enterprise IT SystemsAspects of Enterprise IT Systems
IT ApplicationsEnterprise, department specific, user group specific
IT ArchitectureBuilding Materials, Models & Services, Design Pattern
IT InfrastructureActive Network, Passive Network, IT Centres, Telecommunication etc.
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 10
Aspects of Enterprise IT SystemsAspects of Enterprise IT Systems
IT ApplicationsEnterprise, department specific, user group specific
IT ArchitectureBuilding Materials, Models & Services, Design Pattern
IT InfrastructureActive Network, Passive Network, IT Centres, Telecommunication etc.
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 11
ServiceService--Oriented Architecture (SOA)Oriented Architecture (SOA)
• Design software systems, that they provide services to either end-user or other services through published and discoverable interfaces.
• Allow application developers to browse collections of services, select those of interest, and assemble them to create the desired functionality.
• Use modular components to implement services.
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 12
Architectural LayersArchitectural Layers
Applications are build using services provided by components
Picture: IBM
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 13
Architectural LayersArchitectural Layers
Applications are build using services provided by components
Picture: IBM
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 14
Principle: Design Your Services Encapsulated!Principle: Design Your Services Encapsulated!
Picture: Microsoft
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 15
Principle: Structure Your Services!Principle: Structure Your Services!
Pictures: Microsoft
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 16
Principle: Continuous Usage of Services! Principle: Continuous Usage of Services!
Picture: Microsoft
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 17
Principle: Services have different needs!Principle: Services have different needs!
Services Components Objects
Loosely coupled Tightly coupled
Document oriented Object oriented
Process centric Data centric
Asynchronous Synchronous
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 18
Principle: Define abstract Business Services!Principle: Define abstract Business Services!
Service Interface
Client
Application, Service, ...
«use»
Service Implementation 1
Service Implementation 2
Service Locator
«use»
lookup
DataEntry()
Manual Input
Automatic Input
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 19
Prinzipielle Service Hierarchie bei der Xavo AGPrinzipielle Service Hierarchie bei der Xavo AG
Application
Application Delegate
Business Component Business Component
Component Component Component
Master Data Master Data Master Data Master Data
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 20
Komponenten Fertigungsleitstand (Auszug)Komponenten Fertigungsleitstand (Auszug)Production Control Center
Production Control Center Web
Production Control Center EJB
Work Order Execution
Work Order
Work Order Scheduling
Bill Of Material
ERP Connector
Material
XavoLogistics
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 21
Principle: Create Components/Services able to integrate Principle: Create Components/Services able to integrate into different IT Environmentsinto different IT Environments
Framework(Xavo, Oracle, Siemens, …)
Best of breed components, providing business functionality are integrated by a framework,
providing standard technical functions.
Box Size: number of functionalitiesBox Colour: vendor of component
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 22
Erfolgreiche Anwendungsentwicklung mit J2EEErfolgreiche Anwendungsentwicklung mit J2EEAus der Praxis für die PraxisAus der Praxis für die Praxis
• Xavo AG
• Serviceorientierte, komponentenbasierte Architektur
• Modellierung
• Design Patterns
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 23
IT IT Modellierung bei Modellierung bei XavoXavo
IT System
Unit 2Unit 1
Unit 3 Unit 4
ProjectContext
Business ProcessModel
Production OrderMaterial NumberQuantity...
DataModel
Integration Model
XavoEnterprise
EAIBroker
ApplicationArchitecture
Available Services
3rdParty
TechnicalInfrastructure
Enterprise ModelArchitecture Overview
Business ProcessesProceduresOperations
Roles
Logical Data Model(Data Object Definitions, ER)
Physical Data Model
Available ServicesApplication Building
ERP IntegrationEAI Broker
Web Services
NetworkServer
Data Centre
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 24
Standard Standard DiagrammDiagramm--Typen bei Typen bei XavoXavoProject Context
ContextDiagrams
NavigationDiagrams
BusinessProcessModel
UML ActivityDiagrams
UML StatechartDiagrams
UML Use CaseDiagrams
UML CollaborationDiagrams
ApplicationArchitecture
UML SequenceDiagrams
UML ComponentDiagrams
Application TreeDiagrams
UML DeploymentDiagrams
Data Model
UML ClassDiagrams
UML PackageDiagrams
UML ObjectDiagrams
IntegrationModel
EAI BrokerDiagrams
IntegrationArchitecture
TechnicalInfrastructure
TechnicalArchitecture
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 25
Softwareentwicklungszyklus bei XavoSoftwareentwicklungszyklus bei Xavo
Picture: Rational
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 26
Aufgaben und ihre Verteilung bei XavoAufgaben und ihre Verteilung bei Xavo
Picture: Rational
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 27
Modellierungsphasen bei XavoModellierungsphasen bei Xavo
Business Process Modelling
Business
Architect
Developer
Analysis & Design
Implementation
Picture: antipatterns.com
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 28
Hauptaufgaben der Modellierungsphasen bei XavoHauptaufgaben der Modellierungsphasen bei Xavo
• Business Modelling– Geschäftsprozesse– Geschäftsobjekte
• Analysis and Design– Transformation der Business Process Modellierung in eine Systemarchitektur
• Implementation– Programmierung
Pictures: Rational
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 29
Schwerpunkte der Modellierungsphasen bei XavoSchwerpunkte der Modellierungsphasen bei Xavo
• Business Process Modelling– Use Case diagrams– Activity diagrams– Statechart diagrams– Class diagrams
• Analysis and Design– All diagrams
• Implementation– Class diagrams– Sequence diagrams
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 30
Beispiel Beispiel XavoLogisticsXavoLogistics: Business : Business Process ModellingProcess Modelling
Warehouse 1___________
Supplier A
Warehouse 2___________
Supplier B
WorkerWarehouse 1
Administration Logistic
Production Planning
Quality Assurance
WorkerWarehouse 2
XavoLogisticsCockpit
- Inventory Management- Receiving- Shipping- Replenishment- Cycle Count...
- Inventory Management- Receiving- Shipping- Replenishment- Cycle Count...
Special Functions like- Inventory Reports- Status Change- Stock Adjustments...
Production Manager
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 31
map Parameters for external operation
call external operation
throw Exception
map external result to XavoLogistics result
return result
Connector Principle
[operation supported]
[operation not supported]
Beispiel Beispiel XavoLogisticsXavoLogistics: Analyse und Design: Analyse und Design
XavoLogistics Warehouse Management Application
XavoLogistics Warehouse Management EJB
XavoLogistics Warehouse Management Web
XavoLogistics Warehouse Management Applet
XavoLogistics
Witron WM
Witron WM Connector
Swisslog WM
Swisslog WM Connector
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 32
Beispiel Beispiel XavoLogisticsXavoLogistics: Implementierung: Implementierung
«EJBRemoteInterface»SwisslogWMRem
+ «EJBBusinessMethod» getBinStatusReport ( )+ «EJBBusinessMethod» getInventory ( )+ «EJBBusinessMethod» updateInvStatus ( )+ «EJBBusinessMethod» getInvStatus ( )
«EJBImplementation»SwisslogWMEJB
- sessionContext : SessionContext = null
+ ejbActivate ( )+ ejbPassivate ( )+ ejbRemove ( )+ setSessionContext ( )+ «EJBBusinessMethod» getBinStatusReport ( )+ «EJBBusinessMethod» getInventory ( )+ «EJBBusinessMethod» updateInvStatus ( )+ «EJBBusinessMethod» getInvStatus ( )+ «EJBCreateMethod» ejbCreate ( )- getDataSourceName ( )
«EJBSessionHomeInterface»SwisslogWMHome
...
«EJBSessionBean»SwisslogWMEJBean
«EJBRealizeRemote»«abstraction»
«EJBRealizeHome»«abstraction»
«reside»
«reside»
«reside»
Client ServiceLocator : ServiceLocator service : Class
2 : getWMServices ( )
1 : getInstance ( )
3 : getEnvEntry ( name )
4 : forName ( className )
5 : newInstance ( )
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 33
Beispiel Beispiel XavoManufacturingXavoManufacturing: Business : Business Process ModellingProcess Modelling
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 34
BeispielBeispiel XavoManufacturingXavoManufacturing: Business: Business Process ModellingProcess Modelling
Work Order Scheduling
Work Order Change Over
Work Order Execution
: Work Order[Open]
: Work Order[Released]
: Work Order[Active]
: Work Order[Finished]
: Module[No Operation (No Order)]
: Module[Change Over]
: Module[Running]
: Module[Running Out]
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 35
BeispielBeispiel XavoManufacturingXavoManufacturing: Business: Business Process ModellingProcess Modelling
Supplying Materials Set-Up EquipmentActivate DataCollection
Check Change Over Correctness
/ Incorrect
Set-Up Parameter
Execute WO Packet
Ausschnitt: Work Order Execution
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 36
BeispielBeispiel XavoManufacturingXavoManufacturing: Business: Business Process ModellingProcess Modelling
Open
/ Create
Released
/ Release
Active
/ Activate,Initiate Module Brand Change
Finished
/ Finish,Initiate Module Running Out (Optional)
Cancelled
/ Cancel,Initiate Module Running Out
/ Cancel,Initiate Module Running Out
Work Order Status
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 37
BeispielBeispiel XavoManufacturingXavoManufacturing: Analyse und Design: Analyse und DesignProduction Control Center
Production Control Center Web
Production Control Center EJB
Work Order Execution
Work Order
Work Order Scheduling
Bill Of Material
ERP Connector
Material
XavoLogistics
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 38
Beispiel Beispiel XavoManufacturingXavoManufacturing: Analyse und Design: Analyse und Design
show actual WorkOrders download WorkOrders from ERP
show WorkOrder Bill Of Material
check Product Integrity for Bill Of Material
change Stati of WorkOrders
upload WorkOrders to ERP
show the Bill Of Material for a specific WorkOrder and check material IDswhen all materials are checked change status of WorkOrder to released
«access»
«access»
«access»
«access»
check available stock
«access»
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 39
BeispielBeispiel XavoManufacturingXavoManufacturing: Implementierung: Implementierung
«EJBRemoteInterface»WorkOrderExecution
«EJBImplementation»WorkOrderExecutionBean
- sessionContext : javax.ejb.SessionContext
+ WorkOrderExecutionBean ( )+ ejbActivate ( )+ ejbPassivate ( )+ ejbRemove ( )+ «EJBCreateMethod» ejbCreate ( )+ setSessionContext ( )
«EJBRealizeRemote»«abstraction»
«EJBSessionHomeInterface»WorkOrderExecutionHome
+ «EJBCreateMethod» create ( )
«EJBRealizeHome»«abstraction»
«EJBSessionBean»WorkOrderExecutionEJB «reside»
«reside»
«reside»
Client ServiceLocator : ServiceLocator service : Class
2 : \getXMService()\
1 : getInstance ( )
3 : getEnvEntry ( name )
4 : forName ( className )
5 : newInstance ( )
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 40
Erfolgreiche Anwendungsentwicklung mit J2EEErfolgreiche Anwendungsentwicklung mit J2EEAus der Praxis für die PraxisAus der Praxis für die Praxis
• Xavo AG
• Serviceorientierte, komponentenbasierte Architektur
• Modellierung
• Design Patterns
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 41
Design Patterns (Entwurfsmuster)Design Patterns (Entwurfsmuster)
• “Ein Entwurfsmuster beschreibt eine bewährte Lösung für ein wiederholt auftretendes Entwurfsproblem, mit besonderem Schwerpunkt auf den Kontext und die Kräfte, die das Problem umgeben, sowie die Konsequenzen und die Auswirkungen der Lösung.” 1
• Gründe für den Einsatz von Entwurfsmustern– Sie sind bewährt. Man nutzt die Erfahrung, das Wissen und die Einblicke von
Entwicklern, die in ihrer eigenen Arbeit diese Entwurfsmuster erfolgreich eingesetzt haben.
– Sie sind wieder verwendbar. Wenn ein Problem erneut auftritt, muss man keine neue Lösung erfinden; man folgt dem Entwurfsmuster und passt es entsprechend den Notwendigkeiten an.
– Sie sind aussagekräftig. Entwurfsmuster bieten ein allgemein gebräuchliches Vokabular für Lösungen, mit denen man große Lösungen kurz und bündig ausdrücken kann.
Literatur– „Core J2EE Patterns – Best Practices and Design Strategies“
Deepak Alur, John Crupi, Dan Malks– „Design Patterns“
Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides1 http://java.sun.com/blueprints/patterns/j2ee_patterns/index.html
Inoffizielle eigene Übersetzung
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 42
Some PatternsSome Patterns
Process stream of dataPipes and Filters
Event notification on state changeObserver
Add services transparentlyInterceptor
Interchangeable behaviourStrategy
Runtime link/unlinkComponent Configurator
Unified higher-level interface to subsystemFaçade
Representative with identical interfaceProxy
Enhances object without changing interfaceWrapper
Encapsulates communication mechanismForwarder – Receiver
Middleman decouples remote service interactions
Broker
Chain of request handlersChain of Responsibility
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 43
Some J2EE PatternsSome J2EE Patterns
Data Access ObjectService ActivatorWeb Service BrokerDomain Store
Integration Tier
Intercepting FilterFront ControllerContext ObjectView HelperComposite ViewService To WorkerDispatcher View
Presentation Tier
Business DelegateValue Object / Tranfer ObjectValue Object / Transfer Object Assembler Session FacadeApplication ServiceComposite EntityValue List HandlerService Locator
Business Tier
Pattern NameTier
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 44
AntiPatternsAntiPatterns
• AntiPatterns are Negative Solutions that present more problems than they address
• AntiPatterns are a natural extension to design patterns
• AntiPatterns bridge the gap between architectural concepts and real-world implementations
• Understanding AntiPatterns provides the knowledge to prevent or recover from them
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 45
Some Some AntiPatternsAntiPatterns
Ambiguous ViewpointDead EndFire DrillFunctional DecompositionLava FlowWalking Through a Mine Field
Development
Analysis ParalysisDeath by PlanningIrrational ManagementSmoke and MirrorsViewgraph Engineering
Management
Architecture by Implication(Autogenerated) StovepipeCover Your AssetsIntellectual ViolenceSwiss Army KnifeVendor Lock InWolf Ticket
Architecture
AntiPattern NameLevel
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 46
Vielen Dank für Ihre Aufmerksamkeit!
Alexander BenkerSenior IT ArchitectXavo AGEnterprise IT SolutionsMeistersingerstrasse 295444 Bayreuthe-mail: [email protected]. +49 (0)921 787779-0Web: www.xavo.de
Um diese Präsentation in elektronischer Form zu erhalten können Siea) Ihre Visitenkarte bei mir abgeben oderb) auf http://www.xavo.de downloaden
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 47
GlossaryGlossary
• MDA – Model Driven Architecture• OOA – Objektorientierte Analyse• OOD – Objektorientiertes Design• RUP – Rational Unified Process• Service — A logical entity; the contract defined by one or more
published interfaces.• Service provider — The software entity that implements a service
specification.• Service requestor — The software entity that calls a service provider.
Traditionally, this is termed a “client”; however, a service requestor can be an end-user application or another service.
• Service locator — A specific kind of service provider that acts as a registry and allows for the lookup of service provider interfaces and service locations.
• Service broker — A specific kind of service provider that can pass on service requests to one or more additional service providers.
• UML – Unified Modelling Language
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 48
Quellen und weiteres Informationsmaterial Quellen und weiteres Informationsmaterial
• http://www.xavo.de• http://java.sun.com/blueprints• http://msdn.microsoft.com/architecture• http://www.omg.org
Website der Object Management Group (UML, MDA, ...)
• http://www.rational.com Diverse Whitepaper bezüglich UML, Architektur und Applikationsentwicklung
• http://www.antipatterns.com• „Core J2EE Patterns – Best Practices and Design
Strategies“ (Deepak Alur, John Crupi, Dan Malks)
• „Design Patterns“(Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides)
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 49
Reserve Reserve SlidesSlides
This is extra material which might be interesting
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 50
ControllerController-- and Contributorand Contributor--ServicesServices
• Controller– Stateful– Orchestration of other Services– Responsible for
• Business Process• Business Process State
• Contributor– Stateless– Example: Connectors to legacy systems– Responsible for
• Business Logic• Business Data
Source: IONA.com
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 51
Frameworks & PlatformsFrameworks & Platforms: Advantages: AdvantagesWithout Framework & Platform
Project Lifetime
Func
tiona
lVa
lue
Project Goes Live
With Framework & Platform
Project Lifetime
Func
tiona
lVa
lue
Shorten Project Development
Extend Project‘sCompetitive Lifetime
Increase ValueThrough Lifetime
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 52
Frameworks & Platforms: BUT First Projects take longerFrameworks & Platforms: BUT First Projects take longerWithout Framework & Platform
Project Development
With Framework & Platform (First Projects)
Project Duration
Project Goes Live
Project Analysis
Commis-sioning
2M 5M 1M
Services Development
Project Duration
Project Goes Live
Project Analysis
Commis-sioning
2M 4M 1M
Project Development
ServicesAnalysis
1M 2M
With Framework & Platform (Further Projects)
Project Duration
Project Goes Live
Project Analysis
Commis-sioning
2M 1M
Project Development
2M
ServiceExtens.
1M
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 53
Granularität Granularität von Servicesvon Services
Picture: IBM
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 54
Design PatternsDesign PatternsData Access Sequence DiagramData Access Sequence Diagram
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 55
Design PatternsDesign PatternsBusiness Business DelegateDelegate
• Reduziert die Kopplung von Präsentation und Logik
• Wandelt technische Fehler in Geschäftsfehler um
• Einfache, einheitliche Schnittstellen für den Client
• Caching
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 56
Design Patterns Design Patterns Service Service LocatorLocator
• Abstrahiert Komplexität der Aufsuchen- und Kreierungs-Prozesse
• Einheitlicher Zugriff für Clients• Leicht erweiterbar, ohne bestehende
Clients ändern zu müssen• Konzentration der Netzwerk-Zugriffe• Caching
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 57
Design Patterns Design Patterns DataData Access Access ObjectObject
• Transparente Datenquellen für Business-Objekte
• Erleichtert Migration• Reduzierung des Codes in Business-
Objekten• Konzentrierung des Datenzugriffs
auf eine Anwendungsschicht
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 58
Design Patterns Design Patterns Value ObjectValue Object
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 59
Integration ServicesIntegration ServicesXMLXML--basiertes Beispielbasiertes Beispiel
DOAG Regionalgruppe Nürnberg/Franken – 01.07.2003© Xavo AG 2003 Folie 60
The manifesto of J2EE developersThe manifesto of J2EE developers
• We believe in choice
• We believe in heterogeneous systems
• We believe in competition
• We believe in open standards
• We believe in platform neutrality
• We believe in the community process