Technische Open Source Komponenten implementieren die Referenzarchitektur Quasar ISOS 2004 A Company of Dr. Bernhard Humm, sd&m Research Bremen, 17. September 2004
Abhängigkeitsgraph im OO-Betriebssystem Taligent Wo ist hier die Architektur? Erich Gamma, "100 OO Frameworks, Pitfalls and Lessons Learned", 1997 sd&m AG, 17.09.2004, Seite 2
Agenda Quasar-Prinzipien und -Architektur Quasar-Komponenten Fazit sd&m AG, 17.09.2004, Seite 3
Quasar-Prinzipien und -Architektur Quasar besteht aus Prinzipien, Architektur und Komponenten Quasar Prinzipien Architektur Komponenten Einfachheit Trennung von Zuständigkeiten; Softwarekategorien Komponenten und Schnittstellen Sachgemäße Behandlung von Fehlern und Ausnahmen Anwendungsarchitektur, technische Architektur und technische Infrastruktur Referenzarchitekturen, Interfaces für technische Dienste Leitfaden für die Parallelisierung bei der Entwicklung QuasarPersistence QuasarViews QuasarAuthorization hibernate weitere Produkte Expertise im Team: Schools, Architektur- und Quasar-Communitiy sd&m AG, 17.09.2004, Seite 4
Quasar-Prinzipien und -Architektur Quasar ist eine Referenzarchitektur für betriebliche Informationssysteme cd Quasar Architecture «T Service» Client Management «A Component» Dialog Trennung von Anwendung ( A-Software ) und Technik ( T-Software ) «T Service» Application Component Management «A Component» Application Component «T Service» Authorization Identifikation der wesentlichen technische Dienste Alternatives «T Service» Transaction ResourceHandling «T Service» Persistence sd&m AG, 17.09.2004, Seite 5
Technische Dienste werden durch minimale Schnittstellen spezifiziert Quasar-Prinzipien und -Architektur cd Persistence Interfaces Transaction «T Service» Transaction ResourceHandling «A Component» Application Component Pool Query «T Service» Persistence interface Pool { public Object make Class instancetype) public void delete (Object pooledobject) public Query definequery (Object querydefinition) } interface Query { public Object execute Object[] arguments) } sd&m AG, 17.09.2004, Seite 6
Agenda Agenda Quasar-Prinzipien und -Architektur Quasar-Komponenten Fazit sd&m AG, 17.09.2004, Seite 7
Quasar-Komponenten implementieren die technischen Dienste der Quasar-Architektur Quasar-Komponenten cd Quasar Components «T Component» Quasar Views «T Component» Quasar Process «A Component» Dialog «T Component» Quasar ApplicationComponents «A Component» Application Component «T Component» Quasar Authorization Entwicklung technischer Komponenten Quasar-Komponenten passen zur Quasar- Architektur Einsatz in 17 Projekten, davon 8 produktiv (Stand 9/2004) Support durch Community Alternatives «T Component» Quasar LocalTransaction «T Component» Quasar Persistence sd&m AG, 17.09.2004, Seite 8
Quasar-Komponenten Die QuasarPersistence ist ein optimierter O/R Mapper seine Funktionalität ist mit kommerziellen Produkten vergleichbar Contact Name ZIP City Street Java Klassen (Persistent) TypeModel RelationshipModel... CTCT_ID CTCT_NAME... DB-Tabellen AttributeModel TableModel :: Identifier :: ZipCode :: LongString :: LongString 1 Invoice Price TypeMapping 0..N AttributeMapping... Abbildungsmodell :: Money INV_ID CTCT_ID... Hochoptimierte Object / Relational Mapping Komponente Optimistisches und pessimistisches Sperren; Lazy und Eager Loading; OQL Query Schnittstelle Unterstützung für Oracle, SQLServer, DB2, mysql Modellierungswerkzeug MWB 350 Klassen, 2MB Source Code Veröffentlicht unter www.openquasar.de sd&m AG, 17.09.2004, Seite 9
Quasar-Komponenten QuasarPersistence implementiert das Interface Pool package com.sdm.quasar.persistence; public interface Pool extends NamedObject { } public abstract Persistent make( Class instancetype, Object[] primarykey, LockMode lockmode) throws PersistenceException; public abstract void delete( Persistent persistent, int timeout) throws PersistenceException; public abstract void lock ( Persistent persistent, LockMode lockmode, int timeout) throws PersistenceException; public abstract void store(persistent persistent) throws PersistenceException; package com.sdm.quasar.persistence.query; public interface QueryManager { } public abstract PreparedQuery preparequery ( Pool pool, LockMode lockmode, int timeout, String oql) throws PersistenceException; public interface PreparedQuery { public abstract QueryResult execute( Implementierung der Semantik der Schnittstellen; Syntax kann sich unterscheiden, z.b. definequery vs. preparequery Erweiterung der minimalen Schnittstellen für spezifische Situationen, z.b. lock Komfort-Methoden, z.b. queryone Konkretisierung der Parameter, z.b. OQL- String sd&m AG, 17.09.2004, Seite 10
Agenda Agenda Quasar-Prinzipien und -Architektur Quasar-Komponenten Fazit sd&m AG, 17.09.2004, Seite 11
Fazit Fazit Eine gute Architektur ist ein wesentlicher Erfolgsfaktor für die effiziente und sichere Entwicklung von Software mit hoher Qualität. Die Quasar- Architektur destilliert Architekturwissen für betriebliche Informationssysteme aus mehreren tausend Bearbeiterjahren Projekterfahrung Quasar-Komponenten implementieren die wesentlichen technischen Dienste der Quasar-Architektur. Die Quasar-Architektur ist Programm für die Komponenten-Entwicklung. Zahlreiche Referenzen belegen den Erfolg der Quasar-Komponenten Für die Entwicklung der Quasar-Komponenten werden bevorzugt Open-Source Lösungen eingesetzt. Ausgewählte Quasar- Komponenten sind unter www.openquasar.de veröffentlicht. Das gibt den Kunden rechtliche Sicherheit und erhöht die Attraktivität aufgrund der Herstellerunabhängigkeit und entfallender Lizenzkosten sd&m AG, 17.09.2004, Seite 12
Anhang sd&m AG, 17.09.2004, Seite 13
Die QuasarViews bilden einen in der Praxis erprobten Rahmen für die GUI Entwicklung View View Datenobjekt Visualizer View Datenobjekt Visualizer View Datenobjekt Visualizer View Nünninghoff Klaus Herr Max-Planck-Str. 39 A 50858 Köln Architekturrahmen für die Entwicklung von graphischen Benutzeroberflächen (GUI) Implementiert Quasar- Referenzarchitektur für Clients Multichannel-Architektur: verwendbar für native Clients (z.b. Swing) und Web Clients (z.b. wings) Hierarchisch schachtelbar; modellgesteuerte Nutzung möglich (ModelViews) 200 Klassen, 1,1 MB Source Code sd&m AG, 17.09.2004, Seite 14
Die QuasarAuthorization erlaubt Berechtigungsprüfung beliebiger Granularität und Komplexität Schutzobjekte Komponente zur Authentifizierung und Autorisierung Authentifizierung, Autorisierung Zugriff Zugriffsrechte LDAP-Anbindung möglich Feingranulare Autorisierung auf Daten- und Funktionsbasis möglich Flexible Rechtedefinition über Benutzergruppen Nutzer Dialoge zur Administration in Arbeit 150 Klassen, 800 KB Source Code sd&m AG, 17.09.2004, Seite 15
Quasar-Architektur und Komponententechnologien Komponenten-Technologien CORBA: Herstellerunabhängige OMG Spezifikation von Architektur und Infrastruktur zur verteilten Verarbeitung von Anwendungen J2EE: Sun Standard zur Entwicklung komponentenbasierter, mehrschichtiger Geschäftsanwendungen.NET: Zusammenfassung von Software- Technologien von Microsoft für die verteilte Verarbeitung zwischen Systemen und Geräten Herstellerunabhängig Quasar Technikunabhängig: Trennung von Anwendung und Technik als tragendes Prinzip Konkrete Hilfestellungen bei der Konstruktion betrieblicher Informationssysteme, also der Komposition von fachlichen und technischen Komponenten zu einer Anwendung Referenzarchitekturen für Einbettung in Komponenten-Technologien, z.b. für EJB Quasar ist keine Konkurrenz zu Komponenten-Technologien, sondern hilft, konkrete Komponententechnologien effektiv einzusetzen, ohne sich davon abhängig zu machen Quasar konkretisiert Blue Prints von Komponententechnologien für betriebliche Informationssysteme sd&m AG, 17.09.2004, Seite 16
Quasar-Komponenten und Produkte Produkte für technische Dienste Komponententechnologien werden durch Produkte implementiert, z.b. J2EE durch IBM WebSphere und BEA Weblogic Produkte implementieren einzelne technische Dienste, z.b. TOPLink den Persistenz-Dienst Open-Source Projekte implementieren Komponententechnologien, z.b. JBOSS, und einzelne technische Dienste, z.b. hibernate Quasar-Komponenten Quasar-Komponenten komplettieren das Produktangebot für technische Dienste, zu denen noch keine Lösungen etabliert sind, z.b. QuasarViews Quasar-Komponenten erweitern wo notwendig die Flexibilität existierender Produkte, z.b. QuasarAuthorization Quasar-Komponenten lassen gemäß der Quasar- Architektur in Produkte integrieren, z.b. QuasarPersistence in J2EE Application Server Quasar-Komponenten sind keine Konkurrenz zu Produkten für technische Dienste, sondern komplettieren diese und lassen sich anhand der Quasar-Architektur mit diesen integrieren sd&m AG, 17.09.2004, Seite 17
Eine Auswahl von bedeutenden Entwicklungsprojekten Kunde Projekt System for Asset Management (SAM) Kernsystem zur Verwaltung von Portfolios und zur Unterstützung der Depotbankfunktion (53 Bearbeiterjahre) Großer Logistik- Dienstleiter Internationales Fährunternehmen Bayerisches Geologisches Landesamt Auftragsmanagementsystem Übergreifende Service-orientierte Anwendung für die kundengebundene Auftragsdatenverarbeitung (32 Bearbeiterjahre, 50 Mitarbeiter) Customer Oriented Advanced Service and Transport System Verwaltung von Produkten, Preisen, Buchung von Services, Ausstellen und Einlösen von Tickets (30 Bearbeiterjahre). Bodeninformationssystem (BIS) Bodeninformationssystem mit Raumbezug (GIS-Funktionalität) zur Erfüllung des Bodenschutzgesetzes (15 Bearbeiterjahre) Verkäuferlaptop (VKL) Ablösung des bisherigen Verkäuferlaptops für MB-Pkw mit mobiler Online- Anbindung (9,5 Bearbeiterjahre) Operative Risiken Anwendung zur Verwaltung und Bewertung von Operativen Risiken und tatsächlich aufgetretenen Schadensfällen (3 Bearbeiterjahre) sd&m AG, 17.09.2004, Seite 18
Kurzvorstellung sd&m sd&m Research ist unser Think-Tank Projekte Research Quasar-Architektur Integrationsprojekte Effizientes Projektmodell Projekte Technologische Trends SOA und MDA NetWeaver Mobility Ausbildung Designer School Specification School Projektleiter School Communities Business Intelligence Portale Enterprise Integration Komponenten Professionelle Implementierungen Open Source Wissensmanagement Kultur des Wissensaustausches Wissensmanager WM-Werkzeuge sd&m AG, 17.09.2004, Seite 19
... und das Ganze gibt es auch als Buch Aus dem Inhalt: Softwarearchitektur als Herausforderung Klassen und Schnittstellen Komponenten und Schnittstellen Softwarekategorien - wie findet man Komponenten Fehler und Ausnahmen - Rechte und Pflichten Spezifikation von Schnittstellen Softwarearchitekturen Anwendungskomponenten und Anwendungskern Pools, Persistenz und Transaktionen Architekturen grafischer Bedienoberflächen Über den Autor Prof. Dr. Johannes Siedersleben vertritt an der FH Rosenheim das Fachgebiet Software-Engineering und ist wissenschaftlicher Leiter von sd&m Research, der Forschungsabteilung von sd&m. Er studierte Mathematik mit Nebenfach Informatik in Karlsruhe und Grenoble. sd&m AG, 17.09.2004, Seite 20