EVB
Left Up Right 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