Bank 3-Tier, Prof. Knabe, 2005-04-22
Ein Beispiel, wie ein Softwaresystem für eine Bank gemäß der strengen
3-Schichten-Architektur aufgebaut ist.
Es besteht aus den Schichten:
ui User Interface
==============================
lg application LoGic
==============================
db DataBase access
Jede Schicht wird durch ein Paket realisiert.
Die Lg-Schicht und die Db-Schicht exportieren ihre Dienste als API.
Statt der noch leeren Ui-Schicht wird hier die Testtreiberschicht _lgTest
benutzt.
Die Db-Schicht setzt auf
JORA, dem Java Object Relational Adapter von
Konstantin Knizhnik auf, der auf eine In-memory HSQLDB-Datenbank zugreift.
Die Db-Schicht enthält darüberhinaus folgende weitere Features:
- zwecks austauschbarer Persistenz alle operativen Zugriffe auf die Persistenz
kanalisiert über das Interface Pool.
- eine eindeutige Kennung jeden Objekts durch eine Object IDentification
(OID) vom Typ Integer. Dafür muss jede persistente Klasse
der Lg-Schicht die abstrakte Klasse DbObject beerben.
Versionsgeschichte
- 2005-04-22 Testtreiber bank3tier.lg.TestLgKontoMock mit Mock-Implementierung von Pool für Test von LgKonto.ueberweisen()
- 2005-04-07 Austauschbare Persistenz über Interface Pool, Verwendung von HSQLDB statt Access.
- 2003-04-02 Aufbau einer TestSuite. Startklasse: bank3tier.TestAll
- 2002-04-11 Lg-Operationen erfassen() und ändern() parameterlos,
deshalb Attributwerte mittels get/set-Operationen verwalten.
Alle Operationen der Db-Schicht mit Namenspräfix 'db'.
- 2001-05-28 Verbesserte Transaktionsunterstützung durch Operation
DbObject.retrieve(). Getter für OID umbenannt nach getOid().
Applikationsspezifische Teile der DB-Schicht isoliert in
Klasse DbBankApplication.
- 2001-05-17 Verbesserte Diagnosehilfen (Warnungen) in JORA bei Problemen
in der Abbildung von Java-Typen in die Datenbanktypen.
- 2001-05-10 Berücksichtigung von Assoziationen