Architektura zorientowana na zasoby

W inżynierii oprogramowania architektura zorientowana na zasoby ( ROA ) jest stylem architektury oprogramowania i paradygmatem programowania wspomagającym projektowanie i tworzenie oprogramowania w postaci pracy w Internecie zasobów z interfejsami " RESTful " . Zasoby te to komponenty oprogramowania (dyskretne fragmenty kodu i/lub struktury danych ), które można ponownie wykorzystać do różnych celów. Zasady i wytyczne projektowe ROA są stosowane w fazach tworzenia oprogramowania i integracji systemu .

REST lub Representational State Transfer opisuje szereg ograniczeń architektonicznych, które ilustrują, jak powstał projekt sieci. Na przestrzeni czasu stworzono różne konkretne implementacje tych pomysłów, ale trudno było omówić styl architektoniczny REST bez zacierania granic między rzeczywistym oprogramowaniem a zasadami architektury, które za nim stoją.

W rozdziale 5 swojej pracy magisterskiej Roy Fielding dokumentuje, w jaki sposób sieć World Wide Web jest zaprojektowana tak, aby była ograniczona przez serię ograniczeń REST. Są one nadal dość abstrakcyjne i były interpretowane na różne sposoby przy projektowaniu nowych ram, systemów i stron internetowych. W przeszłości toczyły się gorące dyskusje na temat tego, czy RPC są RESTful.

Wytyczne do wyjaśnienia

Architektura zorientowana na zasoby, udokumentowana przez Leonarda Richardsona i Sama Ruby'ego w ich książce RESTful Web Services z 2007 roku , zawiera konkretne porady dotyczące konkretnych szczegółów technicznych. Nazwanie tych zbiorów wytycznych „Architektura zorientowana na zasoby” może umożliwić programistom omówienie korzyści płynących z architektury w kontekście ROA.

Niektóre wytyczne są już powszechnie stosowane w większych społecznościach REST, na przykład: aplikacja powinna ujawniać wiele identyfikatorów URI, po jednym dla każdego zasobu; oraz że przetwarzanie plików cookie reprezentujących identyfikatory w sesji po stronie serwera nie jest RESTful.

Istniejące ramy

Richardson i Ruby omawiają również wiele platform oprogramowania, które zapewniają niektóre lub wiele funkcji ROA. Należą do nich /db, Django , TurboGears , Flask , EverRest, JBoss RESTEasy, JBoss Seam , Spring , Apache Wink, Jersey , NetKernel , Recess, Ruby on Rails , Symfony , Yii2, Play Framework i API Platform.

Infrastruktura internetowa

Podczas gdy REST to zestaw wytycznych architektonicznych mających zastosowanie do różnych typów infrastruktur obliczeniowych, architektura zorientowana na zasoby (ROA) jest połączona tylko z siecią. Architektura ta jest zatem przydatna głównie dla firm, które uważają sieć za platformę obliczeniową/wydawniczą.

Wydaje się, że siła sieci tkwi głównie w jej zdolności do obniżania barier wejścia dla użytkowników, którzy mogą nie być dobrze wyszkoleni w korzystaniu z maszyn obliczeniowych. [ wątpliwe ] W związku z tym sieć poszerza zasięg rynkowy dla każdej firmy, która zdecyduje się opublikować część swoich treści w formacie elektronicznym. W sieci taka opublikowana treść jest uważana za zasób sieciowy .

Bibliografia