Stefans Weblog

2006-01-20

Das Ende...

War schon spannend, einen der "Väter" des Springframework live zu sehen. Inhaltlich gab's zumindest für uns aber nichts neues. Interessant aber: deutlich über hundert Teilnehmer an der Session, gut über die Hälfte haben bereits von Spring gehört, aber nur eine Handvoll arbeitet bereits in Projekten damit! Wir sind also noch ganz vorne mit dabei...

Zum Schluss haben wir uns noch einen kurzen Ausflug in die Session "Web 2.0 mit Ruby on Rails" gegönnt. Extrem beeindruckend, wie performat man mit Rails entwickeln kann! Inklusive komfortabler AJAX-Unterstützung (Umsortieren einer tabellarischen Todo-Liste mittels *Drag and Drop* mit drei, vier Zeilen Code...). Und das gute: Die Architektur ist sofort einsichtig, man findet sich sofort zurecht. Schon spannend, was mit dynamischen Skriptsprachen und Metaprogrammierung alles erreichen kann. Vielleicht auch für uns nicht uninteressant, wenn's um die Entwicklung "typischer Database-Babysitting-Applications" geht. Aber es bleiben auch Fragen offen: Wie ausgereift ist Rails, wie gut funktioniert die Einbindung von Webservices, welcher Kunde ließe sich überzeugen, Rails einzusetzen?

2006-01-19

OOP 2006 - Der letzte Tag für Torsten und mich

Heute ist für Tosten und mich der letzte Tag auf der OOP 2006. Morgen geht es noch weiter mit Tutorials, die wir aber nicht belegt haben.

09:00 Uhr
Heute beginnt der Tag mit dem Vortrag "Eclipse Web Tools" von Jochen Krause. Jochen ist Commiter der WTP und kann aus erster Hand berichten. WTP gliedert sich in eine Tools Platform, den Web Standard Tools und den J2EE Standard Tools. Darüber hinaus gibt es noch sogenannte Technology Projects, eine Art "Incubator" für noch "experimentelle Projekte" ohne verbindliche Erfolgsaussage. Dazu gehört z.Zt. nur das JSF-Tooling-Projekt, dass in erster Linie von Oracle vorangetrieben wird. Es gibt auch zwei Technology Projects "EJB 3.0 Tooling" - eins von Oracle getrieben - die allerdings noch nicht zu den Web Tools gehören.

Gesamteindruck der WTP: eher durchwachsen. Man sieht deutlich, dass es als Platform für Third Party Entwicklung, nicht aber als Toolset für die "ernsthafte" Entwicklung von Projekten gedacht ist. (Auch wenn einige Komponenten schon richtig gut zu sein scheinen, wie z.B. der XSD-Editor.) Laut Aussage von Jochen Krause bauen aber immer mehr Eclipse-basierter Toolsets auf dem WTP auf, wie z.B. die IBM-Tools, die Tools von BEA oder auch Exadel.

11:15 Uhr
Keynote "Quo Vadis Microsoft?" von Dirk Primbs - wieder mal ein "Werbevortrag" eines großen Vendors. Fazit: .Net im fünften Jahr ist ein voller Erfolg und zieht sich von Handheld bis Serversystem, Windows 2003 verspricht ein großer Erfolg zu werden und mit MS Visual Studio 2005 wird bisher unerreichte Produktivität bei der Entwicklung möglich. Tatsächlich machen aber die hochintegrierten und durchgehend modellbasierten Ansätze - Stichworte Domänenspezifische Sprachen und Softwarefabriken - einen sehr vielversprechenden Anschein. Muss man im Auge behalten!

12:15 Uhr
Mittagessen und ein Spaziergang im Sonnenschein. Die frische Luft tut gut, wir tanken Energie für den Nachmittag.

13:40 Uhr
Björn Müller von der Software AG - ehemals Casabac - ist gerade mit seiner Präsentation von Casabac GUI Server durch. Eigentlich nichts neues - das Produkt gibt's schon seit einigen Jahren mit im wesentlichen gleichbleibender Funktionalität - ist aber jetzt aufgrund des allgemeinen AJAX-Hype richtig "in". Das OOP-Forum im Bereich der Ausstellung war auf jeden Fall sehr gut besucht.

13:45 Uhr
Sehr interessanter Vortrag von Prof. Johannes Siedersleben über "Die Crux großer und kleiner Software-Architekturen": Nichtfunktionale Anforderungen. Im ersten Teil berichtet er über weitestgehend bekannte Techniken der reaktiven Qualitätssicherung wie Unittests, automatisierte Builds (CruiseControl), Softwaremetriken und Codeanalysetools. Interessante Idee: Auswertungen dieser Art in einem Projekt Data Warehouse zu sammeln, um Änderungen verfolgen zu können. So haben Studenten von Siedersleben z.B. eine Tool basierend auf JUnit gebaut, dass Zeiten bei der Ausführung von JUnit-Tests mist. An sich nicht unbedingt hilfreich. Die Idee ist aber, die Zeiten über den Projektverlauf zu sammeln und so direkt auf Änderungen (Tests, die bisher 3 Sekunden dauerten, dauern "plötzlich" 30 Sekunden) aufmerksam zu werden. Inovativer waren die Ideen im zweiten Teil. Zunächst unterscheidet Siedersleben zwischen Anwendungsfunktionen (den fachlich geforderten Features), funktionalen Anforderungen (Logging, Persistenz, Exception Handling, GUI, ... - Dinge die man in ein System einbauen kann) und nichtfunktionalen Anforderungen (Performance, Robustheit, Erweiterbarkeit, ... - Dinge, die ein System auszeichnen, die man aber nicht als Feature "einbauen" kann). Die Idee ist dann, mit einem minimalen System, dass die Anwendungsfunktionen abdeckt, zu beginnen, und dann die funktionalen Anforderungen nach und nach einzubauen - und nicht alle wie z.Zt. üblich von Anfang an immer zu berücksichtigen. Dabei kann man dann nicht nichtfunktionalen Anforderungen kontinuierlich kontrollieren. Hier stellt sich dann die Frage, wie man Code transformieren oder anreichern kann, so dass sich hinsichtlich der Anwendungsfunktionen nicht ändert, aber neue funktionale Anforderungen bekommt. Möglichkeiten sind Codegenerierung, Aspektorientierung, Byte Code Enhancement und weiteres. Mich persönlich würde interessieren, welche Möglichkeiten hier die Konzepte der Metaprogrammierung - wie z.B. bei Ruby on Rails angewendet - dabei bieten könnten...

15:15 Uhr
"Impossible Design - Ultra-Large-Scale Systems" lautet der Titel der Keynote von Richard P. Gabriel von den Sun Laboratories. Ein extrem visionärer Vortrag, den ich zugegebenermaßen nicht wirklich verstanden habe. Man stelle sich ein System vor, so umfangreich wie z.B. die gesamte IT-Infrastruktur Deutschlands. Mit einer Lebenszeit von 25 bis 50 Jahren. Permanente Änderungen der Anforderungen und Funktionen. Umbauten ganzer Systemteilen im laufenden Betrieb? Wie kann so ein System überhaupt entstehen? Dafür müssen ganz neue Konzepte her. Viele Ideen stammen aus Beobachtung der Natur. Wie funktionieren Bioorganismen? Wie koordinieren sich Termitenstämme? Müssen Programme immer fehlerfrei sein? Braucht man nicht vielmehr Konzepte von tolerierbaren und nicht tolerierbaren Fehlern? Und vieles mehr, dass ich wie gesagt nicht wirklich verstanden habe. Überraschen war auf jeden Fall der Schluss: Viele Fragestellungen gelten nicht nur für Ultra-Large-Systeme, sondern auch für die Systeme, die wir heute entwickeln. Science Fiction und ein Blick auf die Zukunft der Softwareentwicklung?

16:45 Uhr
Schnell noch dieses Posting rausschicken und dann in den letzten Vortrag für heute: Jürgen Höller spricht über das Springframework. Neben Rod Johnson einer der Mitbegründer dieses wichtigen Open Source Projekts. Bin schon sehr gespannt...

2006-01-18

Mittwoch auf der OOP - Teil 2

12:00 Uhr
Torsten "schleift" mich in die Podiumsdiskussion "Wie sollte man heute Orchestrierung einsetzen?", der eigentlich erst um 18:15 Uhr starten sollte, aber kurzfristig verschoben werden musste. Entsprechend klein war die Teilnehmerzahl. Auf meine Frage, was denn die Top 3 Dinge wären, die notwendig sind für einen langfristigen Erfolg der SOA-Idee, war die Antwort:
- Die Herstellen müssen sich auf Interoparabilität einigen!
- Als Entwickler muss man zwischen Programmieren im kleinen (Service-Intern) und im Großen (Komposition von Services) trennen lernen. Dadurch muss eine Trennung von Prozessen und Daten durchgesetzt werden.
- Ganz wichtig: Es muss ein Umdenken beim Programmierparadigma stattfinden. Wir müssen (wieder) lernen, asynchron zu denken.
Überhaupt scheint Asynchronität ein grundlegendes Konzept für erfolgreiche SOA zu sein.

13:45 Uhr
Matthias Haendly von der SAP AG berichtet in der ersten Keynote über Enterprise Service Architecture bei SAP Netweaver. Viele Allgemeinplätze und nichts wirklich neues.

14:30 Uhr
Im Anschluss an die Keynote von Matthias Haendly folgt ein Highlight des Tages: Simon Singh, Author von "Fermat's Last Theorem" und "The Code Book", berichtet über "the Cipher Challenge", die er im Anhang zum Code Book gestartet hat. Das Buch habe ich seinerzeit mit großer Begeisterung gelesen - sehr empfehlenswert, wenn man sich über die Historie von Codeentwicklung und "Code-Knacken" interessiert - und ebenso begeistert war ich von der Keynote. Einfach mal was anderes auf dieser Konferenz.

15:20 Uhr
Im OOP-Forum - einem Vortragsbereich am Rande der Ausstellung für Vendor- und Aussteller-Vorträge - erzählt Eberhard Wolff von Saxonia über Möglichkeiten Produktivität und Qualität in Java EE Projekten zu verbessern. Eberhard ist einer der Vorreiter im Einsatz des Springframeworks in Deutschland - und natürlich ist er in seinem Vortrag auch auf Spring eingegangen. Kernaussage war aber, dass man bei Java EE zwischen Plattform und Programmiermodell unterscheiden muss. Die Plattform ist mittlerweilen fast alternativlos im Enterprise Umfeld, das ursprüngliche Programmiermodell hat aber Konkurenz bekommen mit Open Source Frameworks wie Hibernate, Spring, Tapestry u.s.w. Und diese sind mittlerweilen meist die bessere Wahl.

Übrigens plant Eberhard Wolff für die JAX 2006 eine Spring-Vortragsreihe. Durch aktiven Einsatz von Oliver-Arne haben wir gute Aussichten, dort mit einem Erfahrungsbericht aus unseren Projekten vertreten zu sein!

15:45 Uhr
Die Case Study "Praktische Umsetzung der Enterprise Architecture bei der BMW Group" stand für den Nachmittag auf dem Programm. Ein interessanter Vortrag über die Konflikte, die zwischen Unternehmensrichtlinien auf der einen Seite und den konkreten Anforderungen eines Projektes auf der anderen Seite entstehen können. Gelöst wurde das Problem durch Einführung eines Architektur-Boards aus Projekt-Chefarchitekt von BMW, Enterprise-Architekt von BMW und Chefarchitekt des Dienstleisters SoftLab.

16:45 Uhr
Letzter Vortrag für heute - mal wieder ein wenig auf Abwegen: "Software-Architekturen auf Basis vpn Eclipse RPC". Aber halt: In Hamburg entwickeln wir gerade unser erstes Projekt mit Eclipse RPC als Client-Plattform. Die Session von Frank Gerhardt und Bernd Kolb, beide Freiberufler, und Kai Tödter von der Siemens AG überzeugte mit tiefgehender Praxiserfahrung. Ich werde die Vortragsfolien nächste Woche direkt an die Kollegen in Hamburg weitergeben. Bestimmt sind hilfreiche Informationen dabei.

18:30 Uhr
Geschaft für heute. Jetzt noch schnell Emails checken und das Posting schreiben und rausschicken. Und dann haben wir hier "Feierabend".

Inhaltliche Abwege...

Heute morgen bin ich mal auf Abwegen:

09:00 Uhr
James D. Herbsleb von der Carnegie Mellon School of Computer Science berichtet ebenfalls über das Nutzen von Open Source, aber auch über den Einsatz von Open Source Mechanismen in Unternehmensumfeld. Wieder habe ich den Eindruck, dass dies gerade bei der Entwicklung von wiederverwendbaren Basisfunktionalitäten auch bei OPITZ CONSULTING interessant sein kann.

10:45 Uhr
"Hellsehen für Fortgeschrittene" mit Chris Rupp von der Sophist Group. Sehr interessanter und auch sehr unterhaltsamer Vortrag. Viele wichtige Erkenntnisse, die natürlich für alle Kollegen, die es mit der Erhebung von Anforderungen zu tun haben. Spannende Erkenntnis: Interview-Techniken sind oft eher ineffektiv. Alternativen kommen z.B. aus dem Bereich der Psychotherapie.

2006-01-17

Der Rest des Tages...

Hier noch kurz der Rest des zweiten OOP-Tages:

11:00 Uhr
Roel Staleman, Oracle, hält eine Keynote mit dem Titel "SOA & The Agile Enterprise"

Eine recht Marketing-lastige Darstellung des Produktportfolios von Oracle im SOA-Umfeld. Wieder wird der Lifecylcle in den Vordergrund gestellt: Development, Deployment, Compose Services, Secure Services, Manage Services ,Monitoring, Change. Für mich wichtige Aussagen:
Oracle ist Lead für Eclipse-JSF-Plugins.
Oracle ist Lead für Eclipse-EJB 3.0-Plugins.
Oracle macht Teile von ADF Faces Open Source und stellt sie Apache MyFaces zur Verfügung.
Oracle macht Teile von Toplink Open Source und läßt sie in Project Glassfish, der Referenzimplementierung von J2EE 1.5, einfließen.

12:15 Uhr
Johannes Siedersleben von T-System berichtet über komponentenbasierte Entwicklung im Vortrag "Den Tiger zähmen mit Komponenten und Kategorien"

14:00 Uhr
Elmar Groiss von BASF Agricultural Products und Torsten Osthus von Osthus@Business berichten über den "Einsatz einer Open Source basierten MDA-Entwicklungsplattfom in der BASF Pflanzenschutz Forschung". Interessant für OPITZ CONSULTING, weil wir für diese BASF-Abteilung auch schon tätig waren.

15:00 Uhr
Brian Behlendorf von CollabNet berichtet in der Keynote "Bringing Open Source Software Collaboration Practices and Principles to Corporate Environment" über Möglichkeiten, die Kultur von Open Source Projekten in Softwareentwicklungsfirmen zu übertragen, und die möglichen Nutzen für Usability. Ein sehr interessanter Vortrag, auch für OPITZ CONSULTING - insbesondere wenn wir über das Thema "Wiederverwendung von Lösungen und Komponenten" innerhalb unserer Gruppe nachdenken.

16:15 Uhr
Matthias Recknagel von Daimler Chrysler und Chris Rupp von Sophist berichten über Qualitätsmetriken für Anforderungen: Wie kann man Qualität von Anforderungsspezifikationen über Kriterien meßbar machen und damit auch den Nutzen von Anforderungsspezifikationen bewerten?

17:45 Uhr
Berthold Maier von Oracle und Hajo Normann von EDS berichten über SOA-Entwurfsmuster, die auf Erfahrungen aus einem gemeinsamen realen Projekt beruhen. Sehr interessant, aber aus meiner Sicht auch sehr speziell. (Verarbeitung großer XML-Dokumente mit umfangreichen Normalisierungs- und Validierungsschritten.) Wesentliches Design-Prinzip: Trenne sauber Verantwortlichkeiten und kapsle Dinge, die sich häufig ändern können, in separate Funktionalitäten. Interessant auch die durchweg positiven Erfahrungen bei dem Einsatz von Rule-Engines - nicht nur für Validierung, sondern auch bei der Durchführungn von Transformationen. Interessant auch eine Einschätzung der beiden: Sie vergleichen den aktuellen Stand der Dinge im SOA-Umfeld mit dem im J2EE-Umfeld in der Zeit um 2000 herum, als es noch keine J2EE-Patterns und -Antipatterns, Best Practices und Blueprints gab.

So. Genug für heute. Tschüss bis morgen...

IT-Stammtisch

Gerade ist der IT-Stammtisch der OOP 2006 zuende gegangen. War sehr lustig - besser als "7 Tage, 7 Köpfe". (Oder lag das nur am dritten Weißbier?) Jutta Eckstein, Frank Buschmann, Nikolai Josuttis, Markus Völter und Chris Rupp haben sich gegenseitig die Stichworte zugespielt. Alles modelgetrieben? Offshoring oder Outsourcen? SOA und was kommt dann? Na ja, halt all die aktuellen Buzzwords und Hype-Themen. Sehr amüsant.

Torsten schreibt übrigens auch gerade ein paar Postings für sein Blog. Siehe http://torstenwinterberg.blogspot.com/.

Scalable Software

Die erste Session für mich war heute der Vortrag "Patterns and Practices of Building Scalable Software" von Frank Buschmann. Hier hat man ganz deutlich gemerkt, dass Frank Buschmann durch seine Arbeit bei Siemens einen ganz anderen Blickwinkel auf Softwarearchitektur hat. Bei ihm geht es oft um z.B. Embedded Systeme wie Mobiltelefone, Technik im Auto oder Software im Computertomographen. Daher fällt bei ihm unter den Begriff "Skalierbarkeit" nicht nur die übliche "Up-Scalability" von betriebswirtschaftlichen Systemen hinsichtlich operativer, "fühlbarer" Funktionen (Performance, Datendurchsatz etc.), sondern auch "Down-Scalability" und Skalierbarkeit hinsichtlich funktionaler Anforderungen - ebenfalls "up" und "down". Funktionale oder fachliche Skalierbarkeit betrifft z.B. Software für Produktfamilien, die unterschiedlichen Funktionsumfang haben. Down-Scalability andereseits ist z.B. wichtig, wenn Software auf unterschiedlich leistungsfähigen Hardware-Plattformen laufen können muss. Im zweiten Teil des Vortrags hat Frank Buschmann über Lösungsmöglichkeiten für diese Art von Problemen gesprochen - natürlich in Form von Patterns. Aber auch MDA und AOP sind Möglichkeiten, um z.B. fachliche Skalierbarkeit zu erreichen.

Policy-Driven SOA

Am Montag habe Torsten und ich noch an der Night School "Policy-Driven SOA" teilgenommen, ebenfalls durchgefühft von Michael Herr und Mary Rodrick. Leider wurde viel von dem, was die beidem im Tutorial berichtet haben wiederholt. Zentral ist die Definition von Quality of Service durch Policies. Allerdings gibt es hier noch nicht viele Standards und auch noch viel Diskussionsbedarf darüber, was hier überhaupt geschehen soll. Als weiteres Problem wurde angeführt, dass übliche, UDDI 3.0 basierte Servicerepositories, das Verwalten von Policies nicht unterstützen und hier Erweiterungen nötig sind.

Programmierparadigmen für Global Economy

Die erste Keynote der OOP 2006 wurde Montag abend von Wolfgang Emmerich von Zühlke gehalten. Auch hier wurde SOA als das wichtige Paradigma für die Entwicklung von globalen Applikationen in der Zukunft herausgestellt. Die wesentliche Aussage war aber, dass das wesentliche Key-Feature für die Implementierung asynchrone Programmiermodelle sein müssen. Das Problem dabei ist, das bei allen aktuellen Programmiersprachen Asynchronität nicht in der Sprache selbst verankert ist. Als Beispiel, wie so etwas aussehen könnte, hat Wolfgang Emmerich die Programmiersprache C-Omega - eine experimentelle Sprache von Microsoft, basierend auf C# - vorgestellt. Als weiteres wichtiges Implementierungsmodell hat Wolfgang Emmerich Correlation Sets in BPEL aufgeführt.

SOA auf einen Blick

Das Vortragsprogramm hier auf der OOP ist sehr voll. Da finden sich kaum Pausen, in denen ich mal ein paar Notizen zu den Vorträgen ins Blog posten kann. Nachfolgend ein kurzer Bericht über das Montagstutorial SOA auf einen Blick von Michael Herr und Mary Rodrick von der SOP Group der Deutschen Post. Bei den nächsten Postings muss ich mich dringend kürzer fassen...

In ihrem ganztägigen Tutorial haben Michael Herr und Mary Rodrick von Ihren Erfahrungen bei Einführung und Einsatz von SOA bei der Deutschen Post World Net berichtet. SOA wird dort seit mittlerweilen sechs Jahren praktiziert. Entsprechend umfangreich war der Erfahrungsschatz der beiden. Allerdings merkt man auch sehr deutlich, das die Sicht auf die SOA-Welt durch die doch sehr komplexen Anforderungen eines global agierenden Unternehmen mit hunderttausenden von Mitarbeiten und tausenden von IT-Systemen geprägt ist. Einige Ansichten sind auch sehr extrem. Einige der wichtigsten Punkte (natürlich alles andere als vollständig):


  • Die Einführung von SOA ist zu großen Teilen eine Frage der Fachlichkeit. Wichtig ist, einige wenige Kernprozesse auszuwählen. Basierend auf diesen Prozessen muss eine Modellierung und Analyse von fachlichen Domänen geschehen. Mit Domäne ist hier ein Funktionsblock (nicht ein Domänenmodell im Sinne eines Datenmodells!) zu verstehen, der Funktionalitäten bereit stellt, die von den Prozessen benutzt werden. Aus
    diesen Domänen können dann Servicekandidaten abgeleitet werden. Diese Kandidaten müssen dann u.a. auf geeignte Granularität, vor allem aber auf hinreichende Stabilität untersucht werden. Letzters kann man z.B. durch die Simulation von
    Prozessänderungen prüfen. Wichtige Konsequenzen sind:


    • SOA kann man nicht kaufen.

    • Der Entwurf einer SOA muss letztendlich Top-Down geschehen.


  • Wichtig ist, dass eine Konsolidierung von Funktionsimplementierungen stattfinden muss. Es kann (logisch) immer nur einen Service Provider für einen Service geben. Redundante Implementierungen müssen abgelöst und durch eine Nutzung des "Highlanders" ersetzt werden. An dieser Stelle kommt Service Portfolio Management ins Spiel, und natürlich auch die Versionierung von Services, wenn sich die Anforderungen an der Service unterschiedlich entwickeln.

  • Ein weiterer, ganz zentraler Aspekt von SOA sind Quality-of-Service-Vereinbarungen und Policies, die für eine
    Service-Nutzung gelten sollen. Hierzu gibt es zwar erste Realisierungsansätze hinsichtlich der Syntax (z.B. WS Policy) aber kaum semantische Definitionen. Was bedeutet z.B. eine geforderte maximale Antwortzeit? Wie kann man die fachliche Qualität einer Response messen, die man als Antwort auf einen Service-Request erhält?

  • An vielen Stellen reichen die vorliegenden WS Standards noch nicht aus, um damit Real-World-SOA zu betreiben. Als Mediator bietet sich hier ein Enterprise Service Bus an, der z.B. WS-Extentions implementiert und etwa solche Themen wie Aushandeln und Einhalten von Policies sicherstellt. Als Standard scheint sich hier Java Buisness Integration (JBI) zu etablieren.


2006-01-16

OOP 2006

Hallo,

die OOP 2006 hat begonnen. Hier ein paar erste Eindrücke in Bildern. Der Text kommt (hoffentlich) in den nächsten Tagen.



Die Anreise, gegen halb Neun. Ziemlich kalt in München.



Michael Herr von der SOP Group der Deutschen Post World Net beim Workshop "SOA auf einen Blick". Leider ist mir kein gutes Foto von Mary Roderick, der zweiten Sprecherin, gelungen.



Torsten, voll konzentriert beim Vortrag...

2006-01-08

Hallo!

Hallo. Das ist mein erster Eintrag.