Daniel Liebhart, Guido Schmutz, Marcel Lattmann, Markus Heinisch, Michael Könings, Mischa Kölliker, Perry Pakull, Peter Welkenbach Architecture Blueprints Ein Leitfaden zur Konstruktion von Softwaresystemen mit Java Spring,.NET, ADF, Forms und SOA ISBN-10: 3-446-41201-8 ISBN-13: 978-3-446-41201-9 Vorwort Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-41201-9 sowie im Buchhandel
Vorwort Zur zweiten Auflage Die zweite Auflage der Architecture Blueprints ist eine aktualisierte Überarbeitung der Ersten, die erst vor kurzem im Herbst 2006 erschienen ist. Die Überarbeitung hat sich aufgrund der großen Nachfrage ergeben, was uns sehr gefreut hat und wir danken allen Lesern und Leserinnen dafür. Wir haben die Gelegenheit genutzt, um neue Erfahrungen einfließen zu lassen und eine Reihe von Techniken und Technologien mit einzubeziehen, die inzwischen reif für die Praxis sind. Mit Marcel Lattmann hat ein erfahrener Architekt das Autorenteam bereichert. Die vorliegende Ausgabe ist vollständig überarbeitet worden. Die Architekturstandards für die Technologien Java Spring, Microsoft.NET, Oracle ADF, Oracle Forms und SOA wurden verfeinert und sind wie wir hoffen noch klarer und verständlicher dargestellt worden. Das einführende Kapitel Grundlegende Architekturkonzepte wurde von Mischa Kölliker zur besseren Lesbarkeit gestrafft und umgestellt und in die Bereiche Domain Layer, Persistence Layer und Presentation Layer aufgeteilt. Es beschreibt Pattern, Konzepte und Designkriterien, die in der Praxis für Enterprise Architekturen relevant sind. Der Review wurde von Guido Schmutz und Peter Welkenbach durchgeführt. Spring Framework Architecture Blueprint wurde von Guido Schmutz und Peter Welkenbach ergänzt, die inzwischen zu diesem Thema ein eigenes Buch mit den Titel Spring 2.0 im Einsatz geschrieben haben. Die wichtigste Ergänzung befasst sich mit dem Enterprise Middletier und seiner Realisierung. Mischa Kölliker hat den Review übernommen. Das Kapitel Microsoft.NET Architecture Blueprint wurde von Marcel Lattmann und Michael Könings komplett überarbeitet, um die neuen Technologien.NET 3.0 und AJAX und deren Einsatz in der Praxis darzustellen und einen Ausblick auf die technologische Entwicklung (LINQ und die nächste.net Version), die in naher Zukunft re- XI
Vorwort levant sein könnte, zu präsentieren. Das Kapitel wurde von Christoph Pletz, Meinrad Weiss und Markus Heinisch reviewed. Das Kapitel Oracle ADF Architecture Blueprint wurde von Markus Heinisch mit Beispielen angereichert und mit einer Beschreibung von JHeadstart, einer Technologie zur produktiven Generierung von einfachen Anwendungen, ergänzt. Perry Pakull war für den Review zuständig. Oracle Forms Architecture Blueprint hat Perry Pakull mit einem zusätzlichen Abschnitt zu Thema Oracle Forms Konzepte erweitert. Außerdem hat er die Einsatzbereiche, die Architektur und die verschiedenen Ausprägungen des Forms Clients verfeinert. Der Review wurde von Michael Könings und Daniel Liebhart durchgeführt. Das Kapitel SOA Blueprint wurde von Daniel Liebhart aufgrund der Tatsache, dass sowohl die Hersteller also auch viele Unternehmen sehr viel Neues realisiert haben, überarbeitet und erweitert. Neu sind die Bestandteile der einzelnen Ebenen einer SOA und der Abschnitt SOA und BPM. Außerdem wurde der SOA Blueprint verfeinert und die SOA Modelle der großen Hersteller skizziert. Das Review hat Markus Heinisch ausgeführt. An dieser Stelle danken die Autoren allen Personen, die in irgendeiner Weise einen Beitrag zur Überarbeitung dieses Buches geleistet haben. Neben den Reviewern waren das unter anderem Urban Lankes für die Initiative zur kompletten Überarbeitung, Patrick Spieler für die AJAX Vorlage, Urs Meier für die Weiterentwicklung der Grundlagen zum Microsoft.NET Architecture Blueprint, Anton Rasch für den Input zum Layering und Dirk Nachbar für den Input zum Sizing im Oracle Forms Architecture Blueprint, Michael Beer für die Reflektionen zum Einführungskapitel und dem SOA- Expertenrat und seinen Bloggern für die vielen Ideen und Inputs zum SOA Blueprint und schließlich unseren Kollegen, Kolleginnen, Freunden, Freundinnen, Angehörigen sowie dem Korrektor und den Verlagsmitarbeiterinnen für ihre Geduld. Basel, Bern, Frankfurt, München, Stuttgart und Zürich im April 2007 Daniel Liebhart, Guido Schmutz, Marcel Lattmann, Markus Heinisch, Michael Könings, Mischa Kölliker, Perry Pakull und Peter Welkenbach XII
Vorwort Vorwort der ersten Auflage Architecture Blueprints sind Anleitungen und Orientierungshilfen für den Bau von Individualsoftware. Dieses Buch definiert Architekturstandards für die Technologien Java Spring, Microsoft.NET, Oracle ADF, Oracle Forms und SOA. Wir haben dieses Buch geschrieben, weil es einem Bedürfnis entspricht, die Lücke zwischen den Vorstellungen der großen Hersteller und den theoretischen Ansätzen der reinen Lehre zu füllen. Wir leisten damit einen Beitrag, um die Qualität und Produktivität der Individualentwicklung zu erhöhen. Das Buch soll helfen, Softwaresysteme effizienter, qualitativ hoch stehend und kostengünstig zu erstellen, betreiben und beurteilen. Das Buch ist für IT-Professionals die Software entwickeln, für Architekten die Gesamtsysteme gestalten, für Manager und Projektleiter die den Einsatz verschiedener Technologien beurteilen und für Systemadministratoren die Anwendungen betreiben. Jede Technologie ist in einem einzelnen Kapitel beschrieben. Jedes dieser Kapitel kann für sich alleine gelesen werden. Der Leser und die Leserin finden in jedem Kapitel einen Architecture Blueprint, dessen Bestandteile (Building Blocks) erklärt werden. Zusätzlich haben wir unsere Erfahrungen beim Einsatz der jeweiligen Technologie reflektiert, als Do s und Dont s zusammengestellt und auf die Besonderheiten hingewiesen. Das einführende Kapitel Grundlegende Architekturkonzepte wurde von Guido Schmutz, Mischa Kölliker und Peter Welkenbach verfasst. Es beschreibt die konzeptionelle Basis der Architekturen, die in den nachfolgenden Kapiteln ausgeführt werden. Das Kapitel Spring Framework Architecture Blueprint wurde ebenfalls von Guido Schmutz, Mischa Kölliker und Peter Welkenbach verfasst. Sie stellen den Architekturstandard für das Java Spring Framework vor. Dieses Kapitel ist ausführlich gehalten, da die Vielfalt der möglichen Frameworks und Komponenten im Bereich Enterprise Applications mit Java einer genauen Betrachtung, Bewertung und Gewichtung bedürfen. Microsoft.NET Architecture Blueprint wurde von Michael Könings geschrieben. Es fasst das von Urs Meier, Christoph Pletz, Marcel Lattmann und Željko Savić entwickelte Enterprise Application Programming Framework zusammen und beschreibt, wie leistungsfähige betriebliche Anwendungen auf Basis der.net Plattform gestaltet werden. Oracle ADF Architecture Blueprint wurde von Markus Heinisch geschrieben. Er fasst die Einsatzgebiete, die Stärken und die Schwächen von Oracle ADF als Enterprise Framework zusammen. Besonders vertieft werden die Business Components, deren Layering und Anwendungsregeln. XIII
Vorwort Oracle Forms Architecture Blueprint hat Perry Pakull verfasst. Er zeigt auf, wie die traditionelle 4 GL Technologie Oracle Forms als produktives Werkzeug für die Realisierung moderner Multi-Tier Anwendungen eingesetzt werden kann. Unabhängig vom Hersteller Oracle werden Upgradeszenarien, Sizingregeln und Layeringprinzipien erläutert und vertieft. SOA Blueprint wurde von Daniel Liebhart geschrieben. Der SOA Blueprint zeigt ein herstellerunabhängiges, pragmatisches Architekturmodell auf. Die möglichen Skaleneffekte für ein Unternehmen, der Einfluss auf eine IT Organisation und die Stärken von SOA, in Bezug auf die Weiterverwendung bestehender Systeme, werden ausgeführt. Sämtliche Kapitel wurden im Teamwork von allen Autoren gemeinsam konzeptionell entwickelt, intensiv diskutiert, teilweise verworfen, komplett überarbeitet und mehrfach reviewed. An dieser Stelle danken die Autoren allen Personen, die in irgendeiner Weise einen Beitrag zum Entstehen dieses Buches geleistet haben. Der Firma Trivadis AG dafür, dass dieses Buch überhaupt möglich war. Anton Rasch und Dirk Jablonski für den Review des Kapitels Grundlegende Architekturkonzepte und des Kapitels Spring Framework Architecture Blueprint. Marcel Lattmann und Željko Savić für den Review des Kapitels Microsoft.NET Architecture Blueprint und im speziellen Željko Savić für die Mithilfe bei der Überarbeitung dieses Kapitels und Urs Meier für den reichhaltigen Input. Yves Caloz und Ulrich Vogel für den Review des Kapitels Oracle ADF Architecture Blueprint. Walter Müller und Stefan Jüssen für den Review des Kapitels Oracle Forms Architecture Blueprint und im speziellen Gudrun Pabst für das Migrationsszenario. Fernand Hänggi für den Review des Kapitels SOA Blueprint, Bettina Stucki für die Organisation unserer Workshops und schließlich unseren Partnern und Freunden für Ihre Nachsicht. Basel, Bern, Frankfurt, München, Stuttgart und Zürich im September 2006 Daniel Liebhart, Guido Schmutz, Markus Heinisch, Michael Könings, Mischa Kölliker, Perry Pakull und Peter Welkenbach XIV
Die Vorwort Autoren Die Autoren Daniel Liebhart (daniel.liebhart@trivadis.com) Daniel Liebhart verfügt über 20 Jahre Erfahrung in der IT und über 10 Jahre Erfahrung im Management von IT-Dienstleistungen und Produktentwicklung. Seine Branchenund Fachkenntnisse umfassen die Konzeption, Architektur, Realisierung und Betrieb komplexer und international betriebener Gesamtsysteme im Telekommunikations-, Finanzdienstleistungs-, Logistik- und Industriebereich. Daniel Liebhart ist leidenschaftlicher Informatiker, Träger mehrerer Auszeichnungen und Dozent für Softwarearchitektur und Wirtschaftsinformatik an der Hochschule für Technik in Zürich. Guido Schmutz (guido.schmutz@trivadis.com) Guido Schmutz ist seit über 20 Jahren als Software Entwickler, IT-Berater, Chef-Architekt, Trainer und Coach tätig. Als Leiter des Bereichs Application Development des Trivadis Technologie Center verfasst er viele Fachpublikationen, entwickelt er IT-Strategien, Kurse und TechnoCircles und tritt als Sprecher auf internationalen Konferenzen auf. Guido Schmutz ist für die Innovation, Konzeption und Realisierung zahlreicher DWH-, CRM-, CSM-, MIS- und EAI-Lösungen für internationale Finanzinstitute, Pharmakonzerne, öffentliche Verwaltungen und Logistikunternehmen verantwortlich. Seine Spezialgebiete sind Enterprise Architecture, Bitemporale Datenhaltung, Java Persistenz und das Spring Framework. Marcel Lattmann (marcel.lattmann@trivadis.com) Marcel Lattmann arbeitet als System Architekt, Senior Software Engineer und Hauptreferent im Bereich Microsoft Enterprise Solutions. Er ist spezialisiert auf die Konzeption, Beratung und Realisierung von CRM-, POS- und Forecasting-Lösungen für Finanzdienstleister, Pharmakonzerne und Industriebetriebe. Sein besonderes Interesse gilt dem Corporate Knowledge Engineering, der Architektur von Libraries und Frameworks und der Anwendung von Automated Software Testing and Verification Verfahren. Als Technology Owner Microsoft Application Development des Trivadis Technologie Center entwickelt er Kursunterlagen, Realisierungsszenarien und Consultingstrategien für Konzerne, IT Dienstleister und Engineering Teams. Markus Heinisch (markus.heinisch@trivadis.com) Markus Heinisch ist Projektleiter, Architekt und Senior Consultant mit Schwerpunkt Automobilindustrie, Halbleiterfertigung, Immobilienverwaltung und Verlagswesen. Er verfügt über langjährige Erfahrung in der Software Produktenwicklung und war als Chef-Architekt, Presales-Consultant und Manager für das Engineering und die Realisierung von Basiskomponenten einer umfangreichen DMS-Suite für den Weltmarkt verantwortlich. Seine technischen Schwerpunkte sind heute die Anwendungsentwicklung mit Oracle ADF, J2EE und modernen Web-Technologien. Markus Heinisch ist Referent und Kursautor im Bereich Java und XML und prüft neue Technologien und Produkte hinsichtlich ihrer Einsatzmöglichkeiten in Kundenprojekten. XV
Vorwort Die Autoren Michael Könings (michael.koenings@trivadis.com) Michael Könings arbeitet als Software Engineer, Architekt, Berater und Projektleiter für die Pharmaindustrie und für internationale Finanzdienstleister. Er verfügt als Diplom-Betriebswirt und Wirschaftsinformatiker über viele Jahre Erfahrung in der Konzeption, Entwicklung und im Betrieb von Management Informationssystemen. Er war lange als Kursautor, Trainer und Hauptreferent in den Bereichen Modellierung und Design von relationalen Datenbanken tätig. Die Entwicklungstools Oracle Forms, Reports, Designer hat er in zahlreichen Projekten eingesetzt. Michael Könings ist Spezialist für die Entwicklung von Enterprise Solutions basierend auf der Microsoft.NET Technologie und die Konzeption von Corporate Performance Management Systemen. Mischa Kölliker (mischa.koelliker@trivadis.com) Mischa Kölliker ist als Senior Architekt für die Konzeption, Gesamtarchitektur und Qualitätsicherung in Kundenprojekten im Finanz- und Telekommunikations-Sektor verantwortlich. Er verfügt über viele Jahre Erfahrung in der Realisierung und Projektleitung in der Software Produktenwicklung eines Telekommunikation Network Management Systems. Er hat high-end Softwarelösungen für einen sehr großen Anwenderkreis analysiert, spezifiziert, umgesetzt und betrieben. Mischa Kölliker setzt sich als Kursreferent und Autor von Fachpublikationen mit den Schwerpunkten Software- Entwicklung nach CMM Qualitäts-Standard, Java Security, Spring Framework, Performance Management und Data Warehouse Engineering auseinander. Perry Pakull (perry.pakull@trivadis.com) Perry Pakull arbeitet seit Jahren als Software Eningeer, Berater, Trainer und Senior Architekt im Bereich Oracle Application Development. Er hat 20 Jahre Erfahrung in der Entwicklung und Betreuung betrieblicher Anwendungssoftware. Die Entwicklungstools Oracle Forms, Reports, Designer setzt er seit über 10 Jahren in zahlreichen Projekten ein. Sein Spezialgebiet ist die Analyse und die Umsetzung von Businessprozessen für Pharmakonzerne, Automobilhersteller, Halbleiterproduzenten und Großhandelsketten. Sein aktueller technischer Schwerpunkt sind Web Applikationen im Oracle Forms und Oracle Java Umfeld, basierend auf der Oracle Application Server Technologie. Perry Pakull ist als Autor von Kursunterlagen, Kursreferent für die Themen PL/SQL, Oracle Portal und Oracle Application Server und als Projektverantwortlicher und Software Architekt für Produktionssteuerungs-, Warenwirtschafts- und Prozessleitsysteme tätig. Peter Welkenbach (peter.welkenbach@trivadis.com) Peter Welkenbach arbeitet als Berater, Senior Architekt und Trainer in den Bereichen Requirement Engineering, Objektorientierte Methodik, Software Engineering und Quality Management. Er hat über 20 Jahre Erfahrung in der Konzeption und Realisierung komplexer Informationssysteme für Finanzinstitute, Automobilhersteller und Pharmakonzerne. Er setzt sich seit 10 Jahren als Technologie-Evangelist mit der Java XVI
Technologie und dem Einsatz der entsprechenden Frameworks in Kundenprojekten auseinander. Sein aktueller technischer Schwerpunkt ist das Model Driven Software Development, UML, Aspect Oriented Programming, JSF, AJAX und Architecture Design Methodology. Peter Welkenbach ist Kursautor, Verfasser zahlreicher Publikationen und Sprecher auf der JAX und internationalen Oracle Konferenzen. Er setzt Spring seit dessen Erscheinen im Sommer 2003 in vielen Kundenprojekten ein. Die Autoren Vorwort XVII