Query Broker Pattern

Környezet

A Relational Database Access Layer használata, a logikai és a fizikai réteg szétválasztása. A ConcretePhysicalView-k ConcreteHierarchicalView-k szétválasztása.

Probléma

Hogyan kössük össze a fizikai és logikai réteget, ami alkalmas olvasásra és írásra is.

Befolyásoló tényezők

Megoldás

Használjunk Broker-t! A HierarchicalView osztályok képezik a kliens oldalt, a PhysicalView osztályok a szerver oldalt. Az igényeket aciklikus irányitott gráfok formájában kell megfogalmazni. Faillesztési algoritmus szükséges a legjobb egyezés megtalálásához. A QueryBroker állítja össze a PhysicalView-kat és szállítja az eredményt egy konténerben. A Broker és a QueryBroker között lesz egy lényeges eltérés: a QueryBroker több szervert használ, minden PhysicalView számára egy szerver.

Példa

Az alábbi ábra a lopikai és a fizikai rétegekhez tartozó aciklikus gráfok egymáshoz illesztését mutatja be.

Az előbbi faillesztéshez tartozó lekérdezés folyamata.

Következmények

Implementáció

Variációk

Az adatbázishívások QueryBroker-be történő ágyazásával a ConcretePhysicalView-k megkerülhetők. A fejlesztés előrehaladtával a ConcretePhysicalView egyenként átvehetik az adatbázishívásokat a QueryBroker-től.