компонентна компютърна архитектура базирана на web services From Wikipedia, the free encyclopedia
Ориентираната към услуги архитектура (на английски: Service-oriented architecture – SOA) е начин за асемблиране на софтуерни приложения, инженеринг и бизнес процеси чрез свързване на софтуерни услуги. Програмистите разработват тези услуги използвайки традиционни езици като Java, C, C++, C#, Visual Basic, COBOL или PHP. Ориентираната към услуги архитектура представлява начин на дизайн на софтуер, при който услуги се предоставят на други компоненти, чрез портове за комуникация в мрежата. Основните принципи на Ориентираната към услуги архитектура са независими от конкретен доставчик, продукт или технология.[1] Услугата е малка част преодставяща функционалност, която може да се използва от разстояние, да се използва и да се обновява независимо от останалите.
Тази статия се нуждае от подобрение. Необходимо е: проверка на превода, източници на български език. Ако желаете да помогнете на Уикипедия, използвайте опцията редактиране в горното меню над статията, за да нанесете нужните корекции. |
Една услуга има четири свойства според една от многото дефиниции на SOA:[2]
Различни услуги могат да се използват заедно, за да се предостави функционалност на голямо софтуерно приложение.[4] Дефиницията на Ориентираната към услуги архитектура е модуларна програма още от 70-те години на миналия век. Ориентираната към услуги архитектура е свързана не толкова с правенето на модуларно приложение, колкото с как да съставим приложение чрез интеграция на отдалечени, отделно поддържащи се и отделно инсталирани компоненти. Това се предлага от технологии и стандарти, които правят комуникацията между отделните компоненти в мрежата лесна, особено в IP адресирана мрежа.
В Ориентираната към услуги архитектура (SOA), уеб услугите използват протоколи, които описват как те предават и трансформират (парсват) съобщения използващи описателни метаданни. Тези метаданни описват както функционалните характеристики на услугата, така и качествата на услугата. Целта е да се позволи на потребителите да комбинират големи парчета от функционалности, за да оформят нови приложения, съставени изцяло от вече съществуващи услуги, но комбинирайки ги по специален начин. Услугата предлага прост потребителски интерфейс на ползвателя и скрива излишната сложност, като за него работи като черна кутия. В същото време останалите ползватели могат да използват същите услуги независимо, без да знаят как са разработени вътрешно.[5]
Понятието „ориентирани към услуги“(service-orientation) цели малка свързаност(loose coupling) между услугите. SOA разделя функционалностите на отдалечени елементи, или услуги,[6] които разработчиците ги правят достъпни в мрежата за да позволят на ползвателите на услугите да ги комбинират и преизползват разработвайки приложенията. Тези услуги и техните ползватели(консуматори) комуникират един с друг като предават данни в добре структуриран и разпространен формат, или като координират активностите между две или повече услуги.[7]
През октомври 2009 е публикувана декларация за SOA. Декларират се шест основни стойности, които са показани както следва:[8]
SOA може да бъде продължение на започналото още преди време като концепция – разпределени изчислителни системи[6][9] и модуларно програмиране, през SOA, и до днешните практики като хибридни приложения(mashup)s, SaaS, and облачни услуги (което някои виждат като естествено продължние на SOA).[10]
Няма официални стандарти наложени от индустрията, свързани с точната композиция на Ориентираната към услуги архитектура, въпреки това много компании имат свои собствени принципи. Някои от тези[11][12][13][14] включват следното:
Всяка SOA може да играе една от следните три роли в изграждането на приложението:
Връзката между консуматор(ползвател)-доставчик се определя от договор на услуги(service contract), който има бизнес част, функционална част и техничека част.
Композитността на услугите има два големи архитектурни стилове, намиращи се на високо равнище: Хореография и оркестрация. Ниско ниво ентърпрайз шаблони за интеграция(Enterprise Integration Patterns), които не са свързани с точен архитектурен стил и продължават да са приложими и приемливи при SOA дизайна.[16][17][18]
Ориентираната към услуги архитектура може да бъде имплементирана чрез уеб услуги.[19] Това се прави, за да се направят функционалните градивни блокове на приложението достъпни чрез стандартни интернет протоколи, които са независими от конкретна платформа или програмен език. Тези услуги могат да се представят или като нови приложения, или като обвивки на вече съществуващи стари системи, правейки ги уеб активни.[20]
Имлементаторите често създават SOA използвайки стандартите за уеб услуги(като например SOAP) който набира голяма публична приемственост след предложението на версия 1.2 от W3C[21] (World Wide Web Consortium) през 2003. Тези стандарти (още реферирани като списък със спецификации на уеб услуги) също предоставят голяма оперативна съвместимост и предпазват от крайно обвързване с някой доставчик на софтуер. Разбира се SOA може да се имплементира използвайки всяка базирана на услуги технология, като например Jini, CORBA или REST.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.