Izolačná vrstva oddeľuje dva systémy, ktoré spolu musia komunikovať, hoci pracujú s odlišnými modelmi. Na hranici prekladá údaje, pojmy a volania do jazyka druhej strany. Nový komponent tak nemusí preberať historické názvy polí, protokoly ani firemné pravidlá legacy systému.
Čo vrstva prekladá
Preklad môže pokrývať viac než len dátové formáty. Systémy môžu rozdeliť zodpovednosti odlišne, používať rôzne identifikátory alebo sa nezhodujú v postupnosti pracovného postupu. Vrstva robí tieto rozdiely explicitnými na jednej hranici.
| Rozdiel | Legacy systém | Úloha vrstvy | Nový systém |
|---|---|---|---|
| Štruktúra údajov | Zdieľané alebo nepravidelné záznamy | Mapovať a overiť polia | Doménový model |
| Protokol | Súbor, front alebo staré API | Prispôsobiť prenos a chyby | Aktuálne rozhranie |
| Slovná zásoba | Historické názvy a kódy | Preložiť významy | Aktuálna terminológia |
| Pracovný postup | Viackroková legacy operácia | Koordinovať potrebné volania | Jedna definovaná funkcia |
Úlohou vrstvy je preklad medzi modelmi. Ak sa do nej postupne presunú nesúvisiace firemné pravidlá, prestane byť jasné, ktorý systém ich vlastní, a samotná vrstva sa stane ďalším legacy komponentom.
Ako podporuje postupnú výmenu
Vzor postupného nahrádzania často vyžaduje súbežnú prevádzku starého a nového systému. Presunutá funkcia môže stále potrebovať údaje alebo správanie, ktoré zostali v legacy aplikácii. Izolačná vrstva ich prepojí bez toho, aby nový komponent priamo volal interné časti starého systému.
Záleží aj na smere komunikácie. Nový komponent si môže pri volaní legacy systému chrániť vlastný model. Stará aplikácia môže pri volaní novej služby potrebovať iný adaptér. Spojenie oboch smerov do jedného nerozlíšeného rozhrania môže zakryť vlastníctvo údajov aj spôsob riešenia chýb.
Čo kontroluje audit
Audit legacy codebase sleduje rozhrania, ktoré musí vrstva zachovať, aj predpoklady, ktoré nesmú preniknúť do nového systému. Kontroluje najmä:
- Sémantické rozdiely. Polia alebo operácie s podobnými názvami, ale odlišným významom.
- Vlastníctvo stavu. Ktorý systém je počas súbežnej prevádzky smerodajný pre jednotlivé záznamy.
- Mapovanie zlyhaní. Ako sa na každej strane zobrazujú časové limity, chýbajúce údaje a čiastočná práca.
- Bezpečnostné hranice. Ktoré identity, povolenia a pravidlá overenia platia pre hovor.
- Plán vyradenia. Či vrstva zostane po migrácii alebo zmizne so starým systémom.
Tieto kontroly zabraňujú tomu, aby sa s hranicou prekladu zaobchádzalo ako s jednoduchým prevodníkom formátu, keď má aj operačný a doménový význam.
Prevádzkové dôsledky
Vrstva pridá komponent do cesty požiadavky alebo udalosti. Jeho protokoly a stopy musia spájať aktivitu v oboch systémoch. Opakované pokusy musia počítať s operáciami, ktorých opakovanie nie je bezpečné. Chyby mapovania údajov vyžadujú skôr viditeľnú cestu spracovania ako tichú náhradu.
Postupná výmena cez spoločné rozhranie vytvára podobnú hranicu v rámci jednej codebase. Izolačná vrstva zvyčajne sprostredkuje komunikáciu medzi samostatnými modelmi alebo podsystémami. Počas migrácie môžu fungovať spolu, ale riešia odlišné závislosti. Prvá technika umožňuje dvom implementáciám používať rovnakú zmluvu. Druhá chráni nový systém pred prenesením konceptov starého systému. Toto rozlíšenie pomáha v migračnom pláne určiť, ktorá hranica je dočasná, ktorá zostane súčasťou cieľovej architektúry a kedy možno staré spojenie odstrániť.