pojęcie: architektura zorientowana na interfejsy

(tak­że pro­jek­to­wa­nie lub pro­gra­mo­wa­nie zorien­to­wa­ne na inter­fej­sy) wzo­rzec archi­tek­to­nicz­ny i styl pro­jek­to­wa­nia, któ­ry na eta­pie pro­jek­to­wa­nia archi­tek­tu­ry, defi­niu­je apli­ka­cję jako zbiór kom­po­nen­tów repre­zen­to­wa­nych wyłącz­nie przez ich inter­fej­sy, wywo­ła­nia pomię­dzy kom­po­nen­ta­mi mogą być wyko­ny­wa­ne tyl­ko poprzez te inter­fej­sy (na eta­pie pro­jek­to­wa­nia abs­trak­cyj­ne), wewnętrz­na struk­tu­ra kom­po­nen­tów (reali­za­cja inter­fej­sów) powsta­je jako osob­ny pro­jekt każ­de­go z nich (Steimann & Mayer, 2005).

Architektura ta, zasto­so­wa­na jako wzo­rzec, daje dużą modu­lar­ność apli­ka­cji, a tym samym łatwość jej utrzy­ma­nia i roz­wo­ju. Jednak samo podzie­le­nie apli­ka­cji na dowol­ne kom­po­nen­ty komu­ni­ku­ją­ce się za pomo­cą inter­fej­sów nie gwa­ran­tu­je małej zależ­no­ści kom­po­nen­tów i ich wyso­kiej spój­no­ści, czy­li dwóch klu­czo­wych cech archi­tek­tu­ry, któ­re powszech­nie uwa­ża się za klu­czo­we dla niskich kosz­tów utrzy­ma­nia. Konieczne jest tak­że ich dzie­dzi­no­we sepa­ro­wa­nie i spój­ność (patrz E.Ewans, Domanin-Driven Design, 2003).

Np. model HLD sys­te­mu infor­ma­tycz­ne­go orga­ni­za­cji jest taką archi­tek­tu­rą. Architektura opar­ta na inter­fej­sach sprzy­ja zle­ca­niu ich wytwo­rze­nia odręb­nym zespo­łom, dostaw­com opro­gra­mo­wa­nia. Przypomina to tro­chę sytu­ację, w któ­rej pro­du­cent tele­fo­nu komór­ko­we­go okre­śla inter­fejs prze­no­śnej łado­war­ki (układ pinów, ocze­ki­wa­ne napię­cie prą­du sta­łe­go, itp.), a zarów­no pro­du­cent, jak i stro­ny trze­cie two­rzą wła­sne łado­war­ki do tele­fo­nów komór­ko­wych, któ­re są zgod­ne z tą stan­dar­do­wą spe­cy­fi­ka­cją interfejsu.

Realizacja dużych sys­te­mów odby­wa się tu jako pro­jek­to­wa­nie zorien­to­wa­ne na kon­trakt”, tym kon­trak­tem jest spe­cy­fi­ka­cja inter­fej­su. Interfejs (jego spe­cy­fi­ka­cja) jest tu postrze­ga­ny jako umo­wa” – pomię­dzy dostaw­cą a użyt­kow­ni­kiem inter­fej­su. Jeśli ta umo­wa jest udo­ku­men­to­wa­na bar­dziej for­mal­nie jako spe­cy­fi­ka­cja opro­gra­mo­wa­nia, to jest to przy­kład pro­jek­to­wa­nia przez umowę.

Wzorzec koja­rzo­ny czę­sto z języ­kiem Java z uwa­gi na spe­cy­fi­kę tego języ­ka, jed­nak jest sto­so­wa­nie na eta­pie pro­jek­to­wa­nia opro­gra­mo­wa­nia (model PIM, Platform Independent Model) nie narzu­ca uży­cia tego języka. 

programowanie zorientowane na interfejsy, projektowanie zorientowane na interfejsy,