Über uns

 

  

 
         

Die Anfänge

 

Die TeamWiSE GmbH wurde 1991 gegründet mit dem Ziel, maßgeschneiderte Entwicklungswerkzeuge und –methoden für solche Auftraggeber zu entwickeln, die das Potential von „custom-made“ für ihre eigenen Entwicklungsaktivitäten erkennen und erschließen möchten. Der Gründer und heutige Geschäftsführer, Diplom-Informatiker Harry Graave, konnte dazu auf seine langjährige Erfahrung als Entwicklungsleiter eines als Toolhersteller weltweit renommierten Softwarehauses zurückgreifen. Mittlerweile wird die TeamWiSE GmbH von 10 Mitarbeitern an zwei Geschäftstellen getragen.

 

Der Kern

  Von Anfang an lag als Voraussetzung für diese Entwicklungsvorhaben der Fokus sämtlicher Bestrebungen auf der Erarbeitung einer allgemeinen Architektur der mit den Werkzeugen zu entwickelnden Anwendungen, als auch auf der Einbindung eines aktiven Repositories als „Single point of control“. Nach ersten Projekten für Unternehmen aus den Bereichen Energieversorgung, Handel, Tourismus und Gesundheitswesen entwickelte sich bald die Gesamtproblematik eines Versicherungskonzerns zum Schwerpunkt der Aktivitäten.

 

Die Architektur und ihre Strategie

 

In engster Zusammenarbeit mit einer Fachhochschule für Informatik (bekannt für ihre Ausrichtung auf systemtechnische Kernkompetenzen) wurden die Grundlagen für eine allgemeine technische Anwendungsarchitektur (TAA) sowie für eine virtuelle Sichtweise auf die zentralen Entwicklungsdaten (DDB) erarbeitet. Diese beiden Kernpunkte zeichneten sich durch ein Höchstmaß an Unabhängigkeit von der systemtechnischen Marktentwicklung aus. So hat sich die Nachhaltigkeit der Architekturkonzepte bis heute durch ihre Aufnahmefähigkeit für sämtliche in dieser Zeit entstandenen Konzepte erwiesen, seien es Client-Server, Objektorientierung, SOA, Webportal, „fat-Client“ oder auch die altbewährten und immer wieder benötigten Mainframekomponenten im Online- und auch Batch-Betrieb. Auch bei der Unterstützung für unterschiedliche Implementierungswege der diversen Anwendungskomponenten erwies sich die Gesamtkonzeption als äußerst integrativ, indem so völlig unterschiedliche Programmiersprachen wie C++, COBOL, C#, Java oder Visual Basic bei einheitlichem Daten- und Kontrollfluss beliebig in einer Anwendung vermischt werden konnten, unterstützt und gesteuert durch TAA-eigene „Broker“. So kann jede Komponente einer Anwendung mit der für sie am besten geeigneten Entwicklungsplattform realisiert werden, wodurch Qualität, Effizienz und Verfügbarkeit optimiert werden können.

Daneben bewährte sich die Architektur bereits mehrmals beim spartenübergreifenden Zusammenspiel von Komponenten, bei der nahtlosen Einbindung von Komponenten Dritter, sowie bei der Zusammenlegung von Anwendungsbereichen aus unterschiedlichen Konzernunternehmen. Die Modularisierung sowie die breite Werkzeugunterstützung ermöglichen der Anwendungsentwicklung außerdem eine hohe Flexibilität und Reaktionsgeschwindigkeit bezogen auf Marktentwicklungen.

Im Grunde genommen verfolgen wir bereits seit 1992 (vier Jahre, bevor der Begriff erstmals geprägt wurde) in unseren Architekturkonzepten die SOA-Prinzipien von heute:

bullet

Komponenten einer Anwendung müssen in sich abgeschlossen und eigenständig nutzbar sein.

bullet

Komponenten müssen im Netzwerk (LAN oder WAN) verfügbar sein.

bullet

Jede Komponente muss eine veröffentlichte Schnittstelle besitzen. Zur Nutzung der Komponente muss die Schnittstellenbeschreibung ausreichen, Details über die Implementierung sind versteckt und brauchen nicht bekannt zu sein.

bullet

Die Funktionalität einer Komponente ist unabhängig von der Plattform. Die Komponente kann auf und von unterschiedlichen Plattformen (Betriebssysteme und Programmiersprachen) benutzt werden.

bullet

Alle Komponenten sind in einem zentralen Verzeichnis bekannt.

bullet

Die Komponenten werden erst zur Laufzeit der Anwendung gesucht und zur Verfügung gestellt. Zur Entwicklungszeit der Anwendung genügt das Vorhandensein der Schnittstellenbeschreibung.

In der obigen Aufstellung kann man für Komponente auch „Service“ lesen: dann passen die Grundlagen unserer TAA zu 100% zu der SOA-Definition. Mit den obigen Prinzipien erreichen wir mit unserer Architektur:

bullet

Eine Austauschbarkeit der Komponenten ohne Einfluss auf die Gesamtanwendung.

bullet

Die Chance, jede Komponente mit der Programmiersprache auf der Plattform zu realisieren, zu der die Funktionalität der Komponente am Besten passt, sowie die Möglichkeit, diese Entscheidung jederzeit revidieren und neue Programmiersprachen und Betriebssysteme im Anwendungssystem integrieren zu können.

bullet

Die Möglichkeit, durch Nutzung der formalen Schnittstellenbeschreibungen in Zusammenhang mit dem unternehmensweiten Datenmodell vorhandene Funktionalitäten leichter auffinden und damit wiederverwenden zu können.

bullet

Evolutionär entwickeln zu können: vereinzelte Komponenten können zunächst nur ein Skelett darstellen, und zu einem späteren Zeitpunkt mit Inhalt gefüllt werden. Damit kann ohne Anpassung der Anwendung diese nach und nach um Funktionalität erweitert werden.

Zur Unterstützung dieser Architektur entwickelten wir im Laufe der Jahre eine umfangreiche Middleware, sowie diverse Modelle und Werkzeuge für die Entwicklungsumgebung. Dadurch, dass die Entwicklungsumgebung auf einem zentralen Repository aufbaut, und die Laufzeitumgebung auf einer zentralen Middleware, entsteht an beiden Seiten ein enormes Potential. Für die Entwicklungsumgebung bedeutet dies unter anderem:

bullet

Ein besseres Zusammenspiel zwischen Fachabteilung und IT durch Überschneidungen in den Modellen auf dem gleichen Repository. Geschäfts- und IT-Ziele sind besser aufeinander abgestimmt.

bullet

Reduzierung der Komplexität, Erhöhung der Flexibilität. Geringere Aufwände für die Erstellung neuer Funktionalitäten. Eine schnellere Reaktion auf geänderte Anforderungen.

bullet

Die spartenübergreifende Nutzung von Entwicklungsdaten.

bullet

Weitreichende Analysemöglichkeiten über die gesamten statischen Definitionen aller Geschäftsprozesse und –daten.

bullet

Ein hochgradig automatisiertes und in allen Entwicklungsprozessen integriertes Konfigurationsmanagement.

Für die Laufzeitumgebung bewirkt das:

bullet

Eine einfache Anpassung an neue Varianten und Versionen der technischen Infrastruktur ohne Eingriff in die Anwendungen. Die Anwendungskomponenten konzentrieren sich ausschließlich auf fachliche Logik, nicht auf die Auseinandersetzung mit den technischen Erfordernissen der jeweiligen Plattform.

bullet

An zentraler Stelle können anwendungsübergreifend ohne Eingriffe in die Anwendungen Erweiterungen vorgenommen werden, um bspw. Prozessdaten zu sammeln und auszuwerten.

bullet

Ebenso können Daten zur Testauswertungen (Regressionstest, Testabdeckungsgrad, Performance) gesammelt und genutzt werden.

bullet

Technische Entscheidungen über die aktuell günstigste Ausführungsvariante können jederzeit neu bewertet und angepasst werden, wiederum ohne irgendwelche Änderungen in der Implementierung der Anwendungskomponenten.

Den maximalen Nutzen erzielt man mit den SOA-Überlegungen mit einem zentralen Repository, einer zentralen Middleware und dazu passenden Servicesystemen, die allesamt eine unternehmensweiten Architektur unterstützen.

 

Die Projekte und Produkte

 

  Aufgrund der Abkapselung der Entwicklungsaktivitäten von den technischen Randbedingungen konnten Aufgaben in Angriff genommen werden, die nur mit dieser eingebauten Zukunftssicherung zu rechtfertigen waren. Als erster Themenkomplex entstand eine weitgefasste Unterstützung der Geschäftprozess-orientierten Implementierung von Anwendungen durch dedizierte Modelle, Tools, Middleware und sonstige Laufzeitkomponenten. Es folgten nach und nach viele weitere Themen, wie Dokumentenmanagement, Test und Qualitätssicherung, Plausibilitäten, Konfigurationsmanagement und Produktmanagement. Im Laufe der Zeit entstanden für die Entwicklung von TAA- und DDB-nahen Infrastrukturkomponenten auch diverse hausinterne Metatools (wie Compiler, Generatoren, Klassenbibliotheken, Frameworks), mit denen Neu- und Weiterentwicklungen auch über die bestehenden Grundlagen hinaus mit höchster Effizienz möglich sind.

 

Copyright © 2007 TeamWiSE Gesellschaft für Softwaretechnik mbH