30.06.2014 Aufrufe

TKeasy - Software Engineering Konferenzen

TKeasy - Software Engineering Konferenzen

TKeasy - Software Engineering Konferenzen

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>TKeasy</strong><br />

Schichtenarchitekturen und ihre Auswirkungen<br />

auf die objektorientierte Modellierung<br />

<strong>Software</strong> <strong>Engineering</strong> 2007, 27.-30.3.2007, Hamburg<br />

Ralf Degner, Frank Griffel


Überblick<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Das Projekt <strong>TKeasy</strong><br />

Technische Schichten und ihr Probleme<br />

Logische Schichten<br />

Trennung der Verantworlichkeiten – Schichten als Abstraktionen<br />

Objektorientierung ermöglichen<br />

2 © 2007 Techniker Krankenkasse


Das Projekt - <strong>TKeasy</strong><br />

●<br />

●<br />

●<br />

●<br />

●<br />

●<br />

Java basiertes unternehmensweites EDV-System<br />

Einheitliches Framework für alle Anwendungen des Unternehmens<br />

Eigenentwicklung von Application-Server und Persistenz-Dienst<br />

Auf SWING basierende GUI-Framework<br />

Einbindung der Altsysteme über Objektmapping und Services<br />

Ziel: durchgängiger Einsatz von OO-Methoden und Technologien<br />

<strong>TKeasy</strong> in Zahlen (ca. pro Tag):<br />

● Über 7000 parallele Clients<br />

● 1 Millionen Anwendungen<br />

● 150 Millionen erzeugte Geschäftsobjekte<br />

● 2 Milliarden Methodenzugriffe<br />

● 15 Millionen Großrechnertransaktionen (DB-System)<br />

3 © 2007 Techniker Krankenkasse


Technische Schichten (I)<br />

Ausrichtung von Schichten an technischen<br />

Grenzen => jede Schicht auf eigenem System<br />

Beispiel: Geschäftsobjekt Kunde<br />

Methoden des Kunden:<br />

● getName()<br />

● getAdresse()<br />

● getGeburtsdatum()<br />

● ...<br />

Client<br />

Geschäftsobjekte<br />

Datenbank<br />

CORBA/RMI/...<br />

JDBC/...<br />

Darstellung des Kunden erfordert viele<br />

Methodenzugriffe auf den Kunden.<br />

4 © 2007 Techniker Krankenkasse


Technische Schichten (II)<br />

Schlechte Performance durch viele „feine“ Zugriffe auf<br />

Geschäftsobjekte (BOs)<br />

Lösungsansatz: weniger Zugriffe durch andere Schneidung der<br />

Methoden, z.B. getStammdaten()<br />

Folgen:<br />

● Methode an Bedürfnissen eines Nutzers ausgerichtet<br />

● Unterschiedliche Klienten führen zu unterschiedlichen Methoden<br />

● Objekt konzentriert sich damit nicht auf „sein“ Geschäft<br />

● Keine klare Trennung der Verantwortlichkeiten der Schichten<br />

● Feingranulare Modellierung eingeschränkt<br />

5 © 2007 Techniker Krankenkasse


Logische Schichten<br />

Boundary – BOs - Persistenz<br />

Clients<br />

SWING<br />

WAN<br />

(SOA-)<br />

Messages<br />

Browser<br />

WAN<br />

aktiv<br />

Boundary GUI- Message- JSP-<br />

...<br />

Boundary Boundary Engine<br />

Geschäftslogik<br />

Buisness Objects<br />

Controller (transient)<br />

Entities (persistent)<br />

passiv<br />

Datenbanken<br />

Persistenz<br />

DB2<br />

LAN<br />

IMS<br />

6 © 2007 Techniker Krankenkasse


Logische Schichten<br />

●<br />

●<br />

●<br />

●<br />

Client hat Adapter (Boundary) in der VM der Geschäftsobjekte<br />

Feingranulare Zugriffe von Boundary auf BOs ohne Einschränkung<br />

Boundary nutzt BOs und beliefert Client nach dessen konkreten<br />

Bedürfnissen<br />

Boundary gehört logisch zur Schicht Präsentation<br />

=> Bedürfnisse des Clients optimal unterstützt ohne dadurch BO-<br />

Design zu beeinflussen<br />

=> Klare Trennung der Verantwortlichkeiten zwischen Geschäftslogik<br />

und Darstellung<br />

7 © 2007 Techniker Krankenkasse


Trennung der Verantwortlichkeiten –<br />

Schichten als Abstraktionen<br />

●<br />

●<br />

●<br />

Jede Schicht stellt eine Abstraktion von Aufgaben und<br />

Verantwortlichkeiten dar.<br />

„Jede kümmert sich um ihren Kram (und hält sich aus dem der<br />

anderen raus)“<br />

Schichten müssen hierfür „undurchlässig“ sein<br />

Fast jedes Projekt plant dies, kaum eines hält es durch.<br />

(automatisierte Prüfungen hilfreich)<br />

8 © 2007 Techniker Krankenkasse


Objektorientierung ermöglichen<br />

●<br />

●<br />

Schneidung der Schichten hat starken Einfluss auf die Freiheit OO<br />

einzusetzen<br />

Auch Frameworks für Security, Transaktionshandling und<br />

Persistenz beeinflussen OO-Modellierung stark<br />

(z.B. Einschränkung durch Laufzeit-Overhead)<br />

Wichtige Eigenschaften für vollwertiges OO in großen Systemen:<br />

● Feingranulare Modellierung<br />

● Vererbung<br />

● Exception-Handling<br />

● Generische Referenzen<br />

● Geschachtelte Transaktionen auf BOs<br />

● ...<br />

9 © 2007 Techniker Krankenkasse


Zusammenfassung<br />

●<br />

●<br />

●<br />

Wahl der Schichten hat starke Rückwirkung auf die OO-<br />

Modellierung<br />

Grenzen von logischen Schichten unabhängig von Systemgrenzen<br />

Schichten zur klaren Trennung von Verantwortlichkeiten<br />

10 © 2007 Techniker Krankenkasse


Vielen herzlichen Dank<br />

für Ihre Aufmerksamkeit<br />

Frank.Griffel@tk-online.de<br />

Ralf.Degner@tk-online.de

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!