7‑Layer-Software-Architecture

Based on the mas­ter the­sis from Andre­as Mar­tens super­vi­sed be me, we defi­ned an abs­tract 7‑Layer-Software-Architecture. The idea behind this is to under­stand the map­ping of pos­si­ble com­pon­ents and libra­ries onto the land­s­cape of soft­ware archi­tec­tu­re. The 7‑Layer-Software-Architecture is also a kind of check­list for none-functional issu­es like sta­te pro­pa­ga­ti­on and data trans­for­ma­ti­on. Each enter­pri­se app­li­ca­ti­on (and so its com­pon­ents) can be divi­ded logi­cal­ly into this 7 lay­ers. Onto or bet­ween the­se lay­ers you can find libra­ries like Hiber­na­te (OR-Mapper bet­ween Domain Data model and Abs­tract Data model). Depen­ding on the IT archi­tec­tu­re the­se lay­ers get­ting map­ped into one or more tiers.
For examp­le:
An enter­pri­se web app­li­ca­ti­on can own three tiers (see Cheat­S­heet at the bottom):

  1. the brow­ser which ren­ders the HTML pages and the user can inter­act with
  2. an app­li­ca­ti­on ser­ver which owns the Domain Logic (busi­ness logic), and so also the Domain Data model and the dia­log defi­ni­ti­ons with all its widgets
  3. the data­ba­se ser­ver which stores data into tables and phy­si­cal­ly using bits and bytes onto a hard disk

For a soft­ware archi­tect, it is important to take care of the streams bet­ween lay­ers (and so tiers). The­re are four streams: Action (sen­ding, like a button-click), Data (pre­sen­ta­ti­on and modi­fi­ca­ti­on), Sta­te (pre­sen­ta­ti­on and modi­fi­ca­ti­on) and Error (recei­ving).
For example:
Bet­ween each lay­er, a soft­ware archi­tect must check, if a vali­da­ti­on, trans­for­ma­ti­on, pro­pa­ga­ti­on and many more is nee­ded. If the­se flows are divi­ded by two tiers, the archi­tect must also take care of net­work trans­por­ta­ti­on, net­work secu­ri­ty and many addi­tio­nal issu­es (for more details see CheatSheet).
The 7‑Layer-Software-Architecture Cheat­S­heet can be down­loa­ded here (V 1.3):

0

Schreibe einen Kommentar


Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.