Based on the mas­ter the­sis from Andreas Martens su­per­vi­sed be me, we de­fi­ned an abs­tract 7-Layer-Software-Architecture. The idea be­hind this is to un­der­stand the map­ping of pos­si­ble com­pon­ents and li­bra­ries on­to the land­s­cape of soft­ware ar­chi­tec­tu­re. The 7-Layer-Software-Architecture is al­so a kind of check­list for none-functional is­su­es li­ke sta­te pro­pa­ga­ti­on and da­ta trans­for­ma­ti­on. Each en­ter­pri­se ap­p­li­ca­ti­on (and so its com­pon­ents) can be di­vi­ded lo­gi­cal­ly in­to this 7 lay­ers. Onto or bet­ween the­se lay­ers you can find li­bra­ries li­ke Hibernate (OR-Mapper bet­ween Domain Data mo­del and Abstract Data mo­del). Depending on the IT ar­chi­tec­tu­re the­se lay­ers get­ting map­ped in­to one or mo­re tiers.
For examp­le:
An en­ter­pri­se web ap­p­li­ca­ti­on can own three tiers (see CheatSheet at the bot­tom):

  1. the brow­ser which ren­ders the HTML pa­ges and the user can in­ter­act with
  2. an ap­p­li­ca­ti­on ser­ver which owns the Domain Logic (busi­ness lo­gic), and so al­so the Domain Data mo­del and the dia­log de­fi­ni­ti­ons with all its wid­gets
  3. the da­ta­ba­se ser­ver which stores da­ta in­to ta­bles and phy­si­cal­ly using bits and bytes on­to a hard disk

For a soft­ware ar­chi­tect, it is im­portant to ta­ke ca­re of the streams bet­ween lay­ers (and so tiers). There are four streams: Action (sen­ding, li­ke a button-click), Data (pre­sen­ta­ti­on and mo­di­fi­ca­ti­on), State (pre­sen­ta­ti­on and mo­di­fi­ca­ti­on) and Error (re­cei­ving).
For examp­le:
Between each lay­er, a soft­ware ar­chi­tect must check, if a va­li­da­ti­on, trans­for­ma­ti­on, pro­pa­ga­ti­on and ma­ny mo­re is nee­ded. If the­se flows are di­vi­ded by two tiers, the ar­chi­tect must al­so ta­ke ca­re of net­work trans­por­ta­ti­on, net­work se­cu­ri­ty and ma­ny ad­di­tio­nal is­su­es (for mo­re de­tails see CheatSheet).
The 7-Layer-Software-Architecture CheatSheet can be down­loa­ded he­re (V 1.3):


Schreibe einen Kommentar