{"id":94574,"date":"2020-09-18T19:42:57","date_gmt":"2020-09-18T17:42:57","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2"},"modified":"2020-09-18T19:42:57","modified_gmt":"2020-09-18T17:42:57","slug":"vybor-arhitekturnogo-stilya-chast-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","title":{"rendered":"Val av arkitekturtyp (del 2)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><b><i>Hej, Habr. I dag forts\u00e4tter jag serien av inl\u00e4gg som jag skrivit speciellt f\u00f6r starten av den nya kursomg\u00e5ngen. <noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\">\u00abSoftware Architect\u00bb<\/a><\/noindex>. <\/i><\/b><\/p>\n<p><\/p>\n<h2>Introduktion<\/h2>\n<p>\nValet av arkitekturtyp \u00e4r en av de grundl\u00e4ggande tekniska besluten vid uppbyggnaden av ett informationssystem. I denna artikelserie f\u00f6resl\u00e5r jag att vi g\u00e5r igenom de mest popul\u00e4ra arkitekturstilarna f\u00f6r applikationsutveckling och besvarar fr\u00e5gan om n\u00e4r vilken arkitekturtyp \u00e4r mest f\u00f6redragen. Under redog\u00f6relsen kommer jag att f\u00f6rs\u00f6ka dra en logisk kedja som f\u00f6rklarar utvecklingen av arkitekturstilar fr\u00e5n monoliter till mikrotj\u00e4nster. <\/p>\n<p>I <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/516880\/\">f\u00f6rra g\u00e5ngen<\/a><\/noindex> Vi har g\u00e5tt igenom monoliten och kommit fram till att monoliten har ett antal problem: storlek, koppling, distribution, skalbarhet, tillf\u00f6rlitlighet och styvhet. <\/p>\n<p>Denna g\u00e5ng f\u00f6resl\u00e5r jag att vi pratar om m\u00f6jligheterna att organisera systemet som en upps\u00e4ttning moduler\/bibliotek (komponentorienterad arkitektur) eller tj\u00e4nster (tj\u00e4nstorienterad arkitektur).<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><\/p>\n<h2>Komponentorienterad arkitektur<\/h2>\n<p>\nKomponentorienterad arkitektur inneb\u00e4r att systemet utf\u00f6rs i form av en upps\u00e4ttning komponenter som kan anv\u00e4ndas b\u00e5de i nuvarande och framtida projekt. Vid uppdelningen av systemet i komponenter beaktas: deras l\u00e4mplighet f\u00f6r \u00e5teranv\u00e4ndning, utbytbarhet, oberoende av kontext, utvidgbarhet, inkapsling och oberoende.<\/p>\n<p>Med korrekt anv\u00e4ndning av komponenter l\u00f6ses problemet med \"den stora klumpen av skr\u00e4p\" (stor storlek + h\u00f6g koppling), och dessa komponenter kan representera b\u00e5de enheter av byggnad (moduler, bibliotek) och enheter av distribution (tj\u00e4nster). Enheter av distribution avspeglas inte alltid i den k\u00f6rande processen: till exempel distribueras webbapplikationen och databasen tillsammans. <\/p>\n<p>Monoliter utvecklas oftast i form av en upps\u00e4ttning moduler. Denna metod leder till att oberoende utveckling s\u00e4kerst\u00e4lls, men problemen med oberoende skalning och distribution, fel tolerans och oberoende av den gemensamma teknologistacken kvarst\u00e5r. Det \u00e4r just d\u00e4rf\u00f6r modulen \u00e4r en delvis oberoende komponent.<\/p>\n<p>Det st\u00f6rsta problemet med en s\u00e5dan monolit \u00e4r att modulindelningen \u00e4r rent logisk och l\u00e4tt kan brytas av utvecklarna. Det kan uppst\u00e5 en k\u00e4rnmodul som gradvis f\u00f6rvandlas till skr\u00e4p, beroende p\u00e5 att beroendegrafen mellan modulerna v\u00e4xer och s\u00e5 vidare. F\u00f6r att undvika s\u00e5dana problem b\u00f6r utvecklingen utf\u00f6ras antingen av ett mycket moget team eller under ledning av en \"arkitekt\" som p\u00e5 heltid sysslar med kodgranskning och s\u00e4tter stopp f\u00f6r utvecklare som bryter den logiska strukturen. <\/p>\n<p>Den \"ideala\" monoliten best\u00e5r av en upps\u00e4ttning logiskt separerade moduler, var och en med sin egen databas.<\/p>\n<h2>Tj\u00e4nstorienterad arkitektur<\/h2>\n<p>\nOm man \u00e4nd\u00e5 planerar att organisera systemet som en upps\u00e4ttning tj\u00e4nster handlar det om tj\u00e4nstorienterad arkitektur. Dess principer \u00e4r: samverkan av anv\u00e4ndarcentrerade applikationer, \u00e5teranv\u00e4ndning av aff\u00e4rstj\u00e4nster, oberoende av teknikupps\u00e4ttningar och autonomi (oberoende evolution, skalbarhet och distribution).<\/p>\n<p>Tj\u00e4nstorienterad arkitektur (SOA = service oriented architecture) l\u00f6ser alla de angivna problemen med monoliten: vid \u00e4ndringar p\u00e5verkas endast en tj\u00e4nst, och ett tydligt definierat API uppr\u00e4tth\u00e5ller god inkapsling av komponenterna. <\/p>\n<p>Men allt \u00e4r inte s\u00e5 enkelt: SOA leder till uppkomsten av nya problem. Fj\u00e4rranrop \u00e4r dyrare \u00e4n lokala, och omf\u00f6rdelning av ansvar mellan komponenter har blivit avsev\u00e4rt dyrare.<\/p>\n<p>F\u00f6r \u00f6vrigt \u00e4r m\u00f6jligheten till oberoende distribution en mycket viktig funktion av en tj\u00e4nst. Om tj\u00e4nster m\u00e5ste distribueras tillsammans eller \u00e4nnu mer i en viss ordning kan systemet inte betraktas som tj\u00e4nstorienterat. I s\u00e5dana fall talar man om en distribuerad monolit (som anses vara en antipattern inte bara ur SOA:s perspektiv utan ocks\u00e5 ur mikrotj\u00e4nstarkitekturens synvinkel). <\/p>\n<p>Tj\u00e4nstorienterad arkitektur st\u00f6ds v\u00e4l av arkitekturcommunityt och leverant\u00f6rer. D\u00e4rmed finns det m\u00e5nga kurser och certifieringar, samt v\u00e4lutvecklade m\u00f6nster. Ett av dessa \u00e4r den inte ok\u00e4nda f\u00f6retags tj\u00e4nstebussen (ESB = enterprise service bus). ESB \u00e4r ett arv fr\u00e5n leverant\u00f6rer och beh\u00f6ver inte n\u00f6dv\u00e4ndigtvis anv\u00e4ndas inom SOA.<\/p>\n<p>Den st\u00f6rsta populariteten f\u00f6r tj\u00e4nsteorienterad arkitektur intr\u00e4ffade omkring 2008, efter vilket den b\u00f6rjade sjunka, och nedg\u00e5ngen blev betydligt mer kraftig efter att mikroservicerna d\u00f6k upp (runt 2015).<\/p>\n<h2>Slutsats<\/h2>\n<p>\nEfter att vi har diskuterat m\u00f6jligheterna att organisera informationssystem som tj\u00e4nster och moduler, f\u00f6resl\u00e5r jag att vi \u00e4ntligen g\u00e5r vidare till principerna f\u00f6r mikroservicarkitektur och l\u00e4gger s\u00e4rskild vikt vid skillnaden mellan mikroservicarkitektur och tj\u00e4nsteorienterad arkitektur i n\u00e4sta del.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/otus.pw\/rRLl\/\"><img decoding=\"async\" alt=\"Val av arkitekturtyp (del 2)\" src=\"\/wp-content\/uploads\/2020\/09\/d519b2419d13f1a7e03cc8064b83ab1f.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>K\u00e4lla: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/otus\/blog\/519456\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb. \u0412\u0432\u0435\u0434\u0435\u043d\u0438\u0435 \u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043e\u0434\u043d\u0438\u043c \u0438\u0437 \u043e\u0441\u043d\u043e\u0432\u043e\u043f\u043e\u043b\u0430\u0433\u0430\u044e\u0449\u0438\u0445 \u0442\u0435\u0445\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0445 \u0440\u0435\u0448\u0435\u043d\u0438\u0439 \u043f\u0440\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u0438 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u043e\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b. \u0412 \u044d\u0442\u043e\u0439 \u0441\u0435\u0440\u0438\u0438 \u0441\u0442\u0430\u0442\u0435\u0439 \u044f \u043f\u0440\u0435\u0434\u043b\u0430\u0433\u0430\u044e \u0440\u0430\u0437\u043e\u0431\u0440\u0430\u0442\u044c \u0441\u0430\u043c\u044b\u0435 \u043f\u043e\u043f\u0443\u043b\u044f\u0440\u043d\u044b\u0435 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0435 \u0441\u0442\u0438\u043b\u0438 \u043f\u043e\u0441\u0442\u0440\u043e\u0435\u043d\u0438\u044f \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0439 \u0438 \u043e\u0442\u0432\u0435\u0442\u0438\u0442\u044c \u043d\u0430 \u0432\u043e\u043f\u0440\u043e\u0441 \u043a\u043e\u0433\u0434\u0430 \u043a\u0430\u043a\u043e\u0439 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u044b\u0439 \u0441\u0442\u0438\u043b\u044c \u044f\u0432\u043b\u044f\u0435\u0442\u0441\u044f \u043d\u0430\u0438\u0431\u043e\u043b\u0435\u0435 \u043f\u0440\u0435\u0434\u043f\u043e\u0447\u0442\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c. [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":94575,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-94574","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.4 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 2) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-09-18T17:42:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-09-18T17:42:57+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Val av arkitekturstil (del 2) | ProHoster","description":"Hej, Habr. Idag forts\u00e4tter jag med serien av publikationer som jag har skrivit speciellt inf\u00f6r starten av den nya kursomg\u00e5ngen \"Software Architect\".","canonical_url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"sv_SE","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0412\u044b\u0431\u043e\u0440 \u0430\u0440\u0445\u0438\u0442\u0435\u043a\u0442\u0443\u0440\u043d\u043e\u0433\u043e \u0441\u0442\u0438\u043b\u044f (\u0447\u0430\u0441\u0442\u044c 2) | ProHoster","og:description":"\u041f\u0440\u0438\u0432\u0435\u0442, \u0425\u0430\u0431\u0440. \u0421\u0435\u0433\u043e\u0434\u043d\u044f \u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0430\u044e \u0441\u0435\u0440\u0438\u044e \u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u0439, \u043a\u043e\u0442\u043e\u0440\u0443\u044e \u043d\u0430\u043f\u0438\u0441\u0430\u043b \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u043e \u043a \u0441\u0442\u0430\u0440\u0442\u0443 \u043d\u043e\u0432\u043e\u0433\u043e \u043f\u043e\u0442\u043e\u043a\u0430 \u043a\u0443\u0440\u0441\u0430 \u00abSoftware Architect\u00bb.","og:url":"https:\/\/prohoster.info\/sv\/blog\/administrirovanie\/vybor-arhitekturnogo-stilya-chast-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-09-18T17:42:57+00:00","article:modified_time":"2020-09-18T17:42:57+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"94574","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 11:24:26","updated":"2022-10-03 07:40:49","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/94574","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=94574"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/94574\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media\/94575"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=94574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=94574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=94574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}