Architektura (IT)

W informatyce , architektura wyznacza ogólną strukturę wrodzoną w komputerowym systemie , organizacja poszczególnych elementów systemu ( oprogramowania i / lub sprzętu komputerowego i / lub ludzkiego i / lub informacji ) oraz relacji pomiędzy elementami. Struktura ta jest następstwem zestawu strategicznych decyzji podjętych podczas projektowania całości lub części systemu informatycznego, poprzez wykonywanie dyscypliny techniczno-przemysłowej w sektorze IT, zwanej także architekturą , a której kierownik jest „ architektem IT ” .

Do tej pory struktura systemu komputerowego nie podlega żadnym standardom. Jeśli chodzi o oprogramowanie, to jest reprezentowana w formie grafiki, takich jak schematy blokowe , workflow diagramy (przepływ pracy w języku francuskim) lub entity-relationship diagramami . Diagram może odnosić się do oprogramowania, sprzętu, sieci komputerowej, grupy maszyn, podsystemu, a nawet wszystkich urządzeń komputerowych firmy lub instytucji.

Diagram architektoniczny to perspektywa zależna od punktu widzenia przyjętego przez jego autora, w zależności od elementów, które stara się podkreślić. Diagram celowo pomija pewne szczegóły, aby perspektywa była bardziej widoczna. Dla tego samego systemu może istnieć kilka diagramów architektury, takich jak: architektura informacji, architektura biznesowa, architektura aplikacji i architektura techniczna.

Etymologia

Architektura to słowo, które nie zawsze było bardzo popularne w informatyce: dowodem jest brak prac podejmujących tę tematykę przed latami 90.

Martin Fowler w swojej książce „ Wzorce architektury aplikacji korporacyjnych” (pochodzącej z 2003 r.) Stwierdza:

„Branża oprogramowania lśni w wypaczaniu słów, rozciągając je we wszystkich kierunkach, aż kończą się niezliczoną liczbą subtelnie sprzecznych znaczeń. Słowo architektura jest jednym z tych, które najbardziej ucierpiały na tym zjawisku. Kusi mnie, by powiedzieć, że architektura jest jednym z tych wysoko brzmiących słów, których używa się przede wszystkim do wskazania, że ​​mówimy o czymś ważnym. Ale będę pragmatyczny i nie pozwolę, aby mój cynizm kolidował z interesami mojej książki :-) ”

Historia

Efekt mody zaczął się dopiero w latach 80. i 90. XX wieku, kiedy termin „architektura” był nadal uważany za modne hasło . Zbiega się to z rozprzestrzenianiem się typów języków programowania i rozwojem mikrokomputerów.

Do tej pory liczba książek poświęconych architekturze IT prawie nie wzrosła, jak widać na niewielkiej liście książek cytowanych jako źródła.

Od 2000 roku, jeśli pewne standardy lub metody rozwoju zostały dostosowane do świata IT, w tej dziedzinie działalności nadal bardzo brakuje standardów i niezawodnych modeli.

W tym kontekście kursy architektury systemów komputerowych zostały opracowane w CNAM (National Conservatory of Arts and Crafts) (zobacz kilka ostatnich książek referencyjnych, takich jak „Architektura oprogramowania” lub „Architektura maszyn i systemów komputerowych”, datowanych od 2003 do 2011 dla najnowszych wydań).

Obecnie wiedza, jak zbudować (i odbudować po uszkodzeniu) system informatyczny (lub szerzej system informacyjny) stała się na tyle ogólnokrajową kwestią, że niektóre kraje nie są gotowe do przekazywania swojego know-how ... to kilka linków związanych z metody rozwoju w architekturze komputerów.

Do tej pory, firmy lub organizacji, która naprawdę zna architekturę swoich systemów informatycznych zdobi dla przetrwania główne ryzyko związane z XXI th  wieku, że szkoda, włamania lub kradzieży związanych z informacjami (straty niematerialne, które nie są objęte polis ubezpieczeniowych) oraz utratę dostępność systemów informatycznych (utrata zaufania klientów nie jest pokryta przez żadne towarzystwo ubezpieczeniowe!).

Na początku XXI -go  wieku, rozwiązania wymagają ISS a szczególnie odporność .

Perspektywy

W teorii systemów , o System to zbiór elementów i zbiór zasad, które w momencie oddania razem tworzą całość. Jednostka, która z kolei może być częścią kolekcji. Struktura systemu komputerowego - przedstawiona w formie graficznej - jest perspektywą i zależy od przyjętego punktu widzenia oraz elementów, które uwydatnia wykres. Dlatego może istnieć kilka diagramów architektury dla jednego systemu.

Architektura biznesowa

Architektura biznesowa opisuje aplikacje komputerowe , główne bazy danych systemu komputerowego instytucji lub firmy, sposoby wykorzystania tych elementów w ramach działalności instytucji oraz ich zgodność z ogólną organizacją instytucji. Widok biznesowy podkreśla elementy historyczne i wycofane z eksploatacji, interfejsy z elementami należącymi do stron trzecich, a także możliwości dodawania nowych elementów.

Diagram architektury biznesowej posłuży kierownictwu instytucji do wyboru sposobu tworzenia nowych elementów, a także pomoże inżynierom w tworzeniu produktów IT zgodnie z działalnością i ogólną organizacją instytucji. Umożliwi również poinformowanie współpracowników instytucji o jej ogólnej organizacji, celach, strategii oraz przepływie informacji w instytucji.

Architektura informacji

Architektura informacji dotyczy sposobu, w jaki informacje są organizowane i agregowane: porządek alfabetyczny, porządek chronologiczny, taksonomia. Sposoby dostępu do tych informacji, zrozumienie, jakie mają czytelnicy oraz sposób, w jaki postępują z nimi i wymieniają się nimi, a także organizacja bazy danych, która będzie zawierała informacje. Architektura oparta jest na trzech kluczowych osiach:

  1. kontekst: handlowy, polityczny i kulturowy, który otacza te informacje.
  2. rodzaj informacji: format danych , ilość i wszelkie istniejące struktury.
  3. ludzie: odbiorcy, zadania czytelników / pisarzy, ich przyzwyczajenia i doświadczenia.

Na stronach internetowych wielu zawierającego informacje, takie jak miejsca sprzedaży on-line , mediów, baz wiedzy lub encyklopedia internetowa jest pierwszym objęty architektury informacji.

Architektura oprogramowania

Architektura oprogramowania to spojrzenie na wewnętrzną organizację i podział oprogramowania na moduły. W oprogramowaniu wspólne cechy odnoszą się do interfejsów , to znaczy połączeń, które umożliwiają komunikację między modułami, jak również do cech sprzętu komputerowego i systemu operacyjnego, na którym będzie działać oprogramowanie, oraz do charakterystyki sieci komputerowej, która będzie użyty.

Diagram architektury oprogramowania opisuje charakter różnych modułów oprogramowania, obowiązki i funkcje każdego modułu, która maszyna będzie je uruchamiać i kiedy. Opisuje również charakter relacji między modułami. Czy będą wymieniać informacje? Czy jeden moduł pilotuje inny, wysyła informacje lub wysyła do niego prośby? W inżynierii komputerowej diagram architektury daje pierwszą serię odpowiedzi na temat przyszłego oprogramowania, przed rozpoczęciem prac programistycznych .

Architektura techniczna

Architektura techniczna to pogląd skupiony na logicznej organizacji platformy IT, czyli kluczowych środkach technicznych, które będą używane przez całe oprogramowanie aplikacyjne . Widok zawiera sprzęt komputerowy , oprogramowanie systemów , oprogramowanie warstwy pośredniej , a także sieci telekomunikacyjne i relacje między tymi różnymi elementami.

Dla firmy lub instytucji wybór architektury technicznej ma na celu maksymalizację możliwości wdrażania oprogramowania komercyjnego, a także tworzenia oprogramowania na zamówienie. Ma również na celu opłacalne wykorzystanie sprzętu i oprogramowania już nabytego przez instytucję.

W przypadku firmy lub instytucji zmieniającej architekturę techniczną, do planu architektury dołączony jest harmonogram i budżet operacji akwizycji, sprzedaży i migracji niezbędnych do dostosowania systemu informatycznego do planu.

Architektura sprzętowa

Słowo architektura sprzętowa jest czasami używane w odniesieniu do architektury zestawu instrukcji procesora. Architektura sprzętu obejmuje wszystkie ogólne cechy, projekt, wybór i organizację różnych urządzeń elektronicznych urządzeń komputerowych (komputery osobiste, serwery, asystenci, telefony komórkowe, konsole do gier itp.). Architektura jest funkcją typu urządzenia, klienta docelowego, przestrzeni adresowej - która jest funkcją liczby bitów użytych na adresy pamięci , systemu operacyjnego i docelowego języka programowania .

Architektura sprzętowa jest pierwszym elementem odpowiedzi na pytanie, jak zaprojektować przyszły komputer, poszukując wydajności przy jednoczesnym poszanowaniu ograniczeń związanych z kosztami, zużyciem energii i niezawodnością. Wybór architektury jest inspirowany rynkiem, w szczególności istniejącym oprogramowaniem aplikacyjnym, dla którego urządzenie jest przeznaczone. Projektowanie architektury sprzętowej wymaga znajomości szerokiego zakresu technologii związanych z kompilatorami , systemami operacyjnymi, układami logicznymi i izolacją.

Architektura zestawu instrukcji jest punktem styku sprzętu i oprogramowania komputerowego. W zależności od architektury zestaw instrukcji może być typu rejestr-pamięć - każda instrukcja może być wykonywana na zawartości adresu pamięci lub rejestru - lub typu load-store - wszystkie instrukcje są wykonywane na rejestry z wyjątkiem instrukcji ładowania i przechowywania, które kopiują informacje zi do określonego adresu pamięci.

Dyscyplina

Architektura to dyscyplina projektowania i teoretycznego rozwiązywania problemu komputerowego. Zadaniem architekta IT - osoby odpowiedzialnej za tworzenie architektury - jest zbadanie zakresu potrzeb klienta oraz dostępnych środków technologicznych. Zidentyfikuj kluczowe punkty wśród potrzeb klienta i przedstaw teoretyczne rozwiązanie, a następnie opisz je w sposób schematyczny w postaci diagramów.

Dla danego problemu zawsze istnieje kilka rozwiązań. Jednym z działań architekta IT jest przewidywanie jakości, wad i kosztów różnych możliwych rozwiązań oraz zaproponowanie tego, które najlepiej odpowiada potrzebom klienta, zgodnie z kluczowymi punktami, które zidentyfikował. W tym celu architekt IT opiera się na know-how - takim jak style i wzorce, jego doświadczenie i zalecenia dotyczące różnych możliwych rozwiązań.

Architektura wymaga dużo pracy komunikacyjnej z klientami, inżynierami, dostawcami i menedżerami. Głównym zadaniem komunikacji jest słuchanie potrzeb klientów i zaleceń inżynierów. Efektem pracy architekta IT są diagramy, harmonogramy, zalecenia i przykłady, które wyjaśniają co , dlaczego i jak rozwiązania.

Style i wzorce architektury oprogramowania

Te wzorce architektoniczne (w języku angielskim: wzorce projektowe ) są modelami odniesienia rozdzielczość aktualnych zagadnień architektonicznych. Są wykorzystywane jako inspiracja w wielu produktach komputerowych. Dziedzictwo szefa można rozpoznać po charakterystycznym stylu schematu architektury produktu.

W stylu filtrów i lamp szereg programów jest połączonych ze sobą lampami. Produkt wykonania programu jest przesyłany przez potok, gdzie posłuży jako surowiec do następnego programu i tak dalej. Dany program nie musi czekać na zakończenie zadania przez poprzedni i uruchamia się w momencie przesłania do niego informacji potokiem. Ten styl jest używany w architekturze wielu aplikacji do obróbki dźwięku i wideo.

W architekturze typu klient-serwer aplikacja komputerowa jest podzielona na dwa różne podsystemy przeznaczone do rezydowania na różnych komputerach. Oba podsystemy komunikują się za pomocą standardowych protokołów sieciowych .

Model-View-Controller wzór jest wzorem często wykorzystywane w architekturze oprogramowania graficznego interfejsu . Składa się z trzech elementów: modelu, widoku i kontrolera. Kontroler przejmuje operacje wykonywane przez użytkownika za pomocą myszki i klawiatury i przekształca je w komunikaty dla modelu i widoku. Model przechowuje informacje do przetworzenia i wysyła komunikaty do widoku, gdy się zmieni. Widok następnie odbiera komunikaty i wprowadza niezbędne modyfikacje w interfejsie graficznym.

W architekturze warstwowej komponenty są pogrupowane w podsystemy umieszczone jeden nad drugim. Każdy komponent danego podsystemu odnosi się tylko do komponentów podsystemów umieszczonych bezpośrednio powyżej lub poniżej.

W tak zwanym stylu architektury trójwarstwowej komponenty są pogrupowane w trzy warstwy, które odnoszą się odpowiednio do wyświetlania na interfejsie graficznym, logice i pamięci masowej bazy danych . Każda warstwa może znajdować się na innym komputerze.

SOA jest często postrzegana jako szefa. Często wiąże się to z koncepcją Enterprise Service Bus (w skrócie ESB), publicznej linii komunikacyjnej, do której na żądanie podłączani są różni dostawcy oprogramowania i odbiorcy usług.

W Antipatterns to modele referencyjne błędne odpowiedzi do problemów architektonicznych. Są to modele referencyjne uznane za nieskuteczne i niezalecane. Często są używane jako przykłady, aby podkreślić wady organizacyjne w systemie komputerowym. Spaghetti danie i gazownię są przykładami antipatterns .

Przykłady

Ramy projektowe IT (architektura)

Aby sprostać tym różnym potrzebom w zakresie opisu projektu komputerowego, pod koniec lat 80. XX wieku stało się jasne ( Zachman executive , 1987), że konieczne stało się opisanie ram projektowych w celu opisania koncepcji z różnych poglądów lub z różnych perspektyw.

Uwagi i odniesienia

  1. (en) Karl Eugen Kurbel, The Making of Information Systems: Software Engineering and Management in a Globalized World , Springer Verlag, 2008 ( ISBN  9783540792604 )
  2. (w) Martin Fowler, Wzorce architektury aplikacji korporacyjnej , Addison-Wesley, 2003 ( ISBN  9780321127426 )
  3. (in) Pass Perks i Tony Beveridge, do przewodnika po architekturze IT dla przedsiębiorstw , Springer, 2003 ( ISBN  9780387951324 )
  4. (w) Marc Lankhorst, Enterprise Architecture at Work: Modeling, Communication and Analysis , Springer Verlag, 2009 ( ISBN  9783642013096 )
  5. (w) Wei Ding Lin and Xia, Architektura informacji , Morgan & Claypool Publishers - 2009 ( ISBN  9781598299595 )
  6. (w) Louis Rosenfeld i Peter Morville , Architektura informacji dla sieci WWW , O'Reilly Media, Inc., 2002 ( ISBN  9780596000356 )
  7. (w) HJ Reekie & RJ McAdam, A Software Architecture Primer , Primer Software Architecture - 2006 ( ISBN  9780646458410 )
  8. Len Bass, Paul Clements & Rick Kazman, Architektura oprogramowania w praktyce , Addison-Wesley, 2003 ( ISBN  9780321154958 )
  9. (w) Andy Carmichael Developing business objects , CUP Archive, 1998 ( ISBN  9780521648257 )
  10. Daniel Minoli, Architektura przedsiębiorstwa od A do Z , CRC Press, 2008 ( ISBN  9780849385179 )
  11. (w) John L. Hennessy, David A. Patterson & Andrea C. Arpaci-Dusseau, Computer Architecture: A Quantitative approach has , Morgan Kaufmann, 2007 ( ISBN  9780123704900 )
  12. (en) Varma Vasudeva, architektura oprogramowania , Pearson Education India ( ISBN  9788131707494 )
  13. (PL) Frank F. Tsui & Orlando Karam, Podstawy inżynierii oprogramowania , Jones & Bartlett Publishers, 2006 ( ISBN  9780763735371 )
  14. (w) Michael Chonoles Jesse & James A. Schardt, UML 2 for Dummies , For Dummies, 2003 ( ISBN  9780764526145 )
  15. (w) Zoran Stojanovic i Ajantha Dahanayake, inżynieria systemów oprogramowania zorientowana na usługi: wyzwania i praktyki , Idea Group Inc (IGI), 2005 ( ISBN  9781591404279 )

Zobacz też

Powiązane artykuły

Linki zewnętrzne