EVB - CORBA-Schnittstelle
Kontenschnittstelle
konto.idl
#include"buch_base.idl"
module buch
{
enum Konto_typ { aktiv,passiv,aufwand,ertrag };
interface Konto
{
Kontonr get_knr();
string get_beschreibung()
raises(databaseerr);
Betrag get_saldo()
raises(databaseerr);
Konto_typ get_ktyp()
raises(databaseerr);
};
};
Das allerwichtigste ist vorerst, daß wir von Konten den Saldo bzw. Endbetrag
abrufen können, der wie in der Datenbankschemabeschreibung angeben, berechnet wird.
Weitere Überlegungen
Hier wird gemutmaßt, wie eine größere Buchhaltung aussehen sollte:
Höchstwahrscheinlich wird es Standards (Facilities) dazu geben oder es werden welche entwickelt...
Bemerkungen zur Postgresimplementierung
Die Konten sollen zu jeder Zeit konsistent mit der Datenbank sein, was liegt
also näher, als die Daten jedesmal direkt aus der Datenbank zu holen.
Die Kontenobjekte werden durch einen POA mit folgender Politik realisiert:
- Retention_policy: NON_RETAIN
- (vgl. Core POA 11.3.7.5) Die Servants, also die C++-Objekte, die die CORBA-Objekte Implementieren, werden nach dem Aufruf nicht aktiv gehalten. Dies
verhindert die Inkonsistenzen durch Caching, allerdings zu dem Preis, das
bei jedem Aufruf die Daten neu aus der Datenbank geholt werden müssen.
- Request_processing_policy: USE_DEFAULT_SERVANT
- Die Kontennamen gehen in die IOR ein, die Daten werden nach den Kontennamen sowieso aus der Datenbank geholt, so haben wir nur einen Servant, der
alle Konten implementiert.
(vgl Core POA: 11.3.7.6)
- id_uniqueness_policy: MULTIPLE_ID
- Unser Servant bahandelt meherere IDs, nämlich alle.
(vgl. Core POA: 11.3.7.3)
- id_assignment_policy: USER_ID
- Die Objekt-Identitäten sollen die Kontonummeren sein, also müssen wir
sie selber festlegen.
(vgl. Core POA: 11.3.7.4)
- lifespan_policy: PERSISTENT
- Die Referenzen auf die Konten sollen mehrere Serverinkarnationen
überdauern.
(vgl. Core POA 11.3.7.2)
Die Konto-Objekte sind also zustandslos implementiert (vgl. NFS-Server!).
Wie in der POA-Spezufikation hingewiesen wird, macht also CORBA keine Probleme
bei der Skalierung.
Rudolf Weber
Informatik- und Netzwerkverein Ravensburg e.V