slides - BTW 2003

Werbung
BTW 2003
26.-28. Februar 2003
The IOP Approach to
Enterprise Frameworks
Stefan Schäfer, Dr. Udo Nink
(CronideSoft AG)
(udo.nink | stefan.schaefer)@cronidesoft.com
2003-02
Inhalt
• Motivation
• Architektur
– Entwurfsziele, Schichtenarchitektur, Systeme,
Topologie, Architekturvergleich
• Bausteine
– Objektmodell, Komponentenmodell,
Design Repository, Resource Framework,
Service Framework, Persistence Framework,
Interaction Framework, Workflow Framework,
Integration Framework, Code Generation Framework
• IOP-Components
• Anwendung - Entwicklungsprozess
2003-02
Motivation
out-of-the-box vs from-scratch
Grad des Anpassungsaufwandes
in-time & in-budget
Rollen & Skills
Tools & Prozesse
Märkte
Projekte
Enterprise
Frameworks
2003-02
Technologien
Anwendungen
“making rookies out of experts“
stabile Entwicklungsumgebung
technologische Plattform
technischer Fokus vs Business Fokus
Technologien & Produkte
tragfähige Architektur
Motivation – Was ist IOP?
• IOP ist ein Enterprise Java Framework
• IOP kapselt und komplettiert Application Server
• IOP selbst ist kein Application Server
– läuft standalone oder in Application Servern
• IOP ist eine Plattform für
– Consulting + Entwicklung
– Schulung + Coaching
• IOP abstrahiert grundsätzlich von
Technologien + Produkten + Standards
• Einheitliches Objektmodell (von GUI bis Persistence)
• Unterteilung in Domänen- und Anwendungscode
2003-02
Architektur – Entwurfsziele
Tasks (Methoden), Werkzeuge
Basis
Optionen
Frontend
2003-02
Swing
HTML
DHTML
WML
JSP/Servl.
XSLT
...
Workflow Kommunikation Komponenten Persistenz
architektur
WPDL
XPDL*
UML
BPML
...
UML
HTTP
RMI
FTP
JMS
POP3
...
JAVA
IOP
CORBA
EJB
WebServ.
...
VM
SQL92
SQL:1999
XML
Oracle
Informix
...
XML
Architektur – Schichtenarchitektur
IOP Workflow
Workflows/Act.
Implementations
IOP Components
Design Repository
Persistence
Integration
IOP Persistence
SQL92
2003-02
Workflow Engine
SQL:1999
XML
VM
IOP Communication
Design Model
IOP Interaction
Configuration
IOP Object Type System
HTML/HTTP WML/WAP XML/HTTP Java Applets Java Applications email/SMTP ...
Architektur – Systeme
IOP
Boot
System
IOP
Configuration
System
Start
Installation
Topologie
Optionsauswahl
Anfragen
IOP
Session
System
IOP
Logger
System
Sessions
User-Info
Laufzeitstatus
Protokolle
Nachrichten
Stufen
Kategorien
IOP Kernel System
IOP
Workflow
System
IOP
Driver
System
IOP
Component
System
VFS
Dateisysteme
APIs
Protokolle
Geräte
Mapping
Verteilung
Container
Instanzen
Verwaltung der Systeme, run Levels
IOP
IOP
IOP
IOP
Resource Object Type Transaction Statistics
System
System
System
System
Ablaufmaschine
technischer Wf dynamische
Interaction Wf
IOP
Business Wf
Ressourcen
2003-02
IOP
File
System
Typsystem
Objekttypen
Metaobjekte
Mappings
IOP
Dispatcher
System
IOP
Thread
System
statistische Delegation von konfigurierbare
System- +
Tx-Klammern Laufzeitdaten Requests an
Auswertung Systeme, Wf, Application
JTS
Analyse
Komponenten
Threads
JTA
Architektur – Topologie
<<IOPBO>>
IOP Installation
0..n
1
name
<<IOPBO>>
IOPHostNo deCon fig
<<IOPBO>>
IOPVfsConfig
hasHosts
1
name
+hostNodes
+fileSystem
1
S ystemFile System
hasProcesses
0..n
+softwareNodes
runningModules
<<IOPBO>>
IOPModul eNode Config
name
0..n
+moduleNodes
n
RunsThreads
<<IOPBO>>
IOPSoftwareNodeConfig
+threads
name
0..1
name
1
<<IOPBO>>
IOPThreadConfig
+logger
<<IOPBO>>
IOP Logge rConfig
AvailableListeners
use Components
+listeners
0..n
0..n
<<IOPBO>>
IOPComponentContainerConfig
2003-02
+components
<<IOPBO>>
IOPComponentInstanceConfig
<<IOPBO>>
IOPListenerConfig
Architektur – Topologie (fortgesetzt)
1
+driv ers
<<IOPBO>>
IOPComponentDriv erConf ig
1..n
1..n
providesDrivers
name
<<IOPBO>>
IOPComponentContainerConf ig
+container
+driv ers
name
+s erv ers
1..n
1 .. n
+dev ice
<<IOPBO>>
IOPDriv erConf ig
hasDevice
0..1
+primaries
0..1
redundancy
<<IOPBO >>
IOPDev iceConf ig
+secondary
<<IOPBO>>
IOPPersistenceConf ig
providesServants
0..n
0..1
+driv ers
+persistence
+serv ants
has Driver s
hasPersistence
0.. n
<<IOPBO>>
IOPComponentInstanceConf ig
name
0..n
1..n
1..n
<<IOPBO>>
IOPComponent Confi g
1
0.. n
+component
name
+qu eries
<<IOPBO>>
IOPQuery Conf ig
2003-02
+f ileSy stem
0..*
<<IOPBO >>
I OPVfsConf ig
0..1
name
+accessPolicies
0..*
<<IOPBO>>
IOPAccessPolicy Conf ig
Architektur – Vergleich
Type 1
Page
Type 2
Page
Business
Logic
Type 3
Web
Components
Application
Components
J2EE
Web
Container
IOP
2003-02
Interaction
Transformers
DB
DB
Domain
Components
EJB Container
Workflow
Components
Objects
POS
TopLink
XML
Database
Components
EIS
Drivers & Devices
persistence, communication...
EIS connectors
Bausteine – Objektmodell
Type
Member
+members
Sc alar
- Erweitertes Java-Typsystem
- höhere Ausdrucksstärke
- höhere Effizienz (Member)
- typsicher
0..n
Struct
type
+mappings
+has
Object
0..n Mapping
Entity
0.. n
ocl logic
Component
Lookup
0..n
Array
manage
Behavior
Collection
- Häufige Objektmuster
- Graphschnittstelle
- Anfragen + Navigation
2003-02
storeFor
reference
manage
storeFor
List
Map
Reference
Bausteine – Komponentenmodell
Komponenten J2EE/EJB
modell
IOP Components
Komponenten EJB
architekturen
IOP, CORBA, EJB
Resource
Management
Threads, Connections,
Komponenten
IOP Resourcen
(Components, File Systems,
Workflows, Threads, Treiber
+ Listener, ...)
Workflow
n.a.
IOP Workflow
Kommuni
kation
RMI, RMI-IIOP, JMS
beliebige Treiber (HTTP,
JMS, RMI, ...)
Programmier
modell
beliebige Java-Klassen,
kaum Vorstrukturierung
model-driven, globales
Objektmodell + -Zugriff
2003-02
Bausteine – Web Services vs IOP Components
• Abgrenzung Web Services
+ inter-Anwendungskommunikation
+ Publikation + Aufruf von Diensten
+ verteilte Kommunikation mittels spezifizierter
Komponentenschnittstellen + XML-Nachrichten
- Eignung für intra-Anwendungskommunikation?
- weder Unterstützung für Implementierung von Diensten noch
Assemblierung komplexer Dienste
• geplanter Einsatz von Web Services in IOP
– WSDL für Workflows, Activities, Komponenten generieren
– Treiber für die Einbindung von Web Services
2003-02
Bausteine – Design Repository
• hält alle statischen Design-Informationen
• reichert diese an um Mapping-Informationen für die
Zielsprachen Java + SQL
• Derzeit werden das UML-Klassenmodell und das UMLKomponentenmodell unterstützt
• Dynamische Design-Informationen sind mittels WPDL
unterstützt, für XPDL in Arbeit und für UML
Aktivitätsmodelle geplant
• verwendet IOP Design Component
<<IOPBO>>
CMSNode
name : String
lastModified : date
size : int
fileSystemAttributes : int
owner : String
path : path
0..n +nodes
hasNodes
<<IOPBO>>
CMSDirectory
2003-02
1
+directory
<<IOPBO>>
CMSFile
Bausteine – Resource Framework
manage
ResourceSystem
1
1
1..n
runs
Resource.Manager
UserSession
1
Resource.Master
manage 1
1..n
use
Resource.Provider
owns
SoftwareNode
manage
0..1
1
n
used
Resource
runs
n
f ree
0..n
1
1
Resource.Pool
use
0..n n
1
Resource.Context
belongs to
2003-02
manage
Resource.Consumer
Bausteine – Service Framework
• Sammlung von Mikro-Frameworks für partielle, meist
technische Lösungen
– filesystem, localization, logging, persistence, session, workflow, ...
• Device/Driver-Konzept als wichtigstes Entwurfsmuster
• Devices kapseln low-level APIs (Protokolle)
– ejb, ftp, http, pop3, rmi, smtp, corba, ...
• Drivers nutzen Devices und kapseln high-level APIs
– component, persistence, virtual file system, workflow, ...
• Mögliche Kombinationen können pro instanziiertem
Dienst konfiguriert werden
– z.B. VFS mit gekapseltem ftp- und http-Server + lokalem Dateisys.
2003-02
Bausteine – Persistence Framework
• Persistente Speicherung von Java-Objekten
• Angelehnt an SUN JDO + objektrelationale Mappings
• Verfügbare Mappings
– IOP Virtual Memory Persistence, IOP XML Persistence,
IOP SQL92 Persistence, IOP SQL:1999 Persistence
• Mapping ist pro Komponente konfigurierbar
• Mappings werden aus UML + Konfiguration generiert
– Datenbankskripte, Objektzugriff, Anfragetransformation
• unterstützte Konzepte
– Objektversionierung, multi-Objekt Aktionen, Objektgraphen,
automatische Erkennung von Änderungen, automatisches Delete
bei Kompositionen, XML-Import/Export, relationale + komplexe
Ergebnismengen, optimierter Speicherungsalgorithmus
2003-02
Bausteine – Interaction Framework
• Definiert Zugriffspunkt auf IOP-Systeme von außen
• Basiert auf einer Service-Handler-Architektur
• Transformiert Anfragen an + Antworten von IOPDispatcher
• Erlaubt Kombination von
– Kommunikationsprotokollen: HTTP, JMS, RMI, POP3, ...
– und Formaten: HTML, WML, XML, Java Objects, Messages, ...
– durch Konfiguration für verschiedene Server
• Tomcat, JBoss, Oracle iAS, ...
• Erweiterbar durch anpassbare technische Workflows
2003-02
Bausteine – Workflow Framework
•
•
•
•
•
Basiert auf der Referenzarchitektur der WfMC + OMG
Workflow-Spezifikation via WPDL, XPDL in Arbeit
Konfigurierbar: verteilte Ausführung, Auditing, Statistiken
Participants werden auf Organizational Model abgebildet
Robustheit + Skalierbarkeit durch transaktionale
Workflows und disconnected Session Management
• Unterstützung verschiedener Workflow-Ebenen
– technischer Workflow, Interaction Workflow, Business Workflow
• Unterteilung in einfache, effiziente Core Engine und
spezialisierter Workflow Engine
2003-02
Bausteine – Integration Framework
• Konzepte, Implementierungen + Workflows für die
Integration von Fremdsystemen
• Zugang über Treiber oder Integrationskomponenten
• gemeinsame Code-Basis mit IOP Interaction
– Formate, Kommunikationsprotokolle, Services, Transformationen
• Wiederverwendung von IOP Interaction
– Registrierung eines Listeners an einem Integration Hub
• Integrationskomponenten können als Persistence Manager
fungieren
– Integrationsdaten als Geschäftsobjekte
2003-02
Bausteine – Code Generation Framework
• Satz von Compilern ausgehend von Design-Modellen
• Sowohl für Anwendungsentwicklung als auch zur
Framework-Entwicklung eingesetzt
– dadurch kontinuierliches Testen der Konzepte an IOP
• Alle Design-Informationen werden im IOP Object Type
System und IOP Design Repository abgelegt
• Design bleibt auf Geschäftsobjektebene, generiert werden:
– Java-Klassen mit inneren Schnittstellen zu Entity, Behavior,
Collections, Maps und Referenzierung
– SQL-Skripte für Typen, Tabellen, Indizes, Table Spaces
– DTD/XMLSchema zur XML-Darstellung von Objektgraphen
– IOP Workflow Format für Ablaufstrukturen von Workflows
2003-02
IOP-Components
IOP
Design
Component
Modellelemente
UML 1.3
+ Mapping
IOP
ID
Component
OID-Vergabe
IOP
Workflow
Definition
Component
IOP
Workflow
Instance
Component
Prozessdefinitionen
WPDL
workflows, act. ...
Instanziierung
Konfigurierung
laufzeitoptimiert
IOP Component System
Verwaltung der Komponenten
IOP
Content
Management
Component
IOP
Content
Run-Time
Component
IOP
Actor
Component
multi-provider Sites
bulk Loading
auch für GUI
laufzeitoptimiert
logisch/physisch
multi Channel
Akteure
Participants
Accounts
2003-02
IOP
Localization
Component
IOP
Access
Component
IOP
Organization
Component
Access Control Lists Organizational Units
Accessor/Accessible
Rollen
Access Levels
Gültigkeiten
Anwendung – Entwicklungsprozess
requirements
modeling
frontend
workflow
class model
component
model
gui markup
extend wpdl
generate
content
code generation
generate
model
write component
code
2003-02
extend bo
code
generate
workflow
coding and configuration
write executable
write test
code
code
installation
Herunterladen