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