Архитектура на разпределени системи

55
Software Engineering, 7th edition. Chapter 12 Slide 1 Архитектура на разпределени системи

Upload: pascale-blanchard

Post on 02-Jan-2016

56 views

Category:

Documents


7 download

DESCRIPTION

Архитектура на разпределени системи. Цели. Да обясни предимствата и недостатъците на различните архитектури за разпределени с-ми, Да се обсъдят архитектурите клиент-сървър и разпределени обекти Да опише ORB ( object request brokers) и принципите определящи стандартите на CORBA - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 1

Архитектура на разпределени системи

Page 2: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 2

Цели

Да обясни предимствата и недостатъците на различните архитектури за разпределени с-ми,

Да се обсъдят архитектурите клиент-сървър и разпределени обекти

Да опише ORB (object request brokers) и принципите определящи стандартите на CORBA

Да въведе равнопоставените архитектури (peer-to-peer) и ориентираните към услуги с-ми като нови модели на разпределената обработка.

Page 3: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 3

Основни теми

Многопроцесорна архитектура Клиент-сървър архитектура Разпределени обекти Между-организационни архитектури

Page 4: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 4

Разпределени системи

Виртуално всички големи с-ми сега са разпределени с-ми.

Обработката на информацията е разпределена м/у много машини.

Инженерингът на разпределените с-ми е много важен за компютърните с-ми на предприятията.

Page 5: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 5

Типове системи

Персонални системи, които не са разпределени и са предназначени за персонален компютър или работна станция

Вградени (еmbedded) с-ми, които се изпълняват на единичен процесор или на интегрирана група от процесори

Разпределени с-ми, при които софтуерът се изпълнява на хлабаво свързани група процесори свързани в мрежа.

Page 6: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 6

Характеристики на РС

Поделяне на ресурси• Поделят се софтуерни и хардуерни ресурси

Отвореност• Използване на хардуер и софтуер от различни

източници Конкурентност

• Паралелна обработка за по-добра ефективност Възможност за разширение(scalability)

• Продуктивността се увеличава с добавката на нови ресурси

Нечувствителност към грешки• Способността да продължи една операция след

настъпването на грешка

Page 7: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 7

Недостатъци на РС

Сложност• Обикновено разпределените с-ми са по-сложни от

централизираните. Сигурност

• По-податливи на външни атаки Леснота за управление

• Нужни са повече усилия за управлението им Непредсказуемост

• Непредсказуеми отговори зависещи от организацията на с-мата и на натоварването на мрежата

Page 8: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 8

Архитектури на РС

Клиент-сървър• Разпределени услуги, които се искат от

клиентите. Сървърите, които доставят услугите се държат и проектират различно от клиентите, които ползват услугите

Разпределени обекти• Няма разлики м/у клиент и сървър. Всеки

обект в с-мата може да доставя на и да ползва услуги от друго обекти.

Page 9: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 9

Мидълуер

Софтуер, който управлява и поддържа различни компоненти на разпределените с-ми. Всъщност, той стои в средата на с-мата.

Обикновено е готова компонента, а не специално разработен за случая софтуер.

Примери• Монитори за протичане на трансакциите;• Преобразователи на данни;• Комуникационни контролери;

Page 10: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 10

Многопроцесорни архитектури

Най-простият модел С-мата е съставена от множество процеси, които

могат (но не задължително) да се изпълняват от различни процесори

Архитектурен модел на много с-ми за реално време

Разпределението на процесите към процесора може да е предопределено или да под управлението на диспечер

Page 11: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 11

Многопроцесорна с-ма за управление на движението

светофари

Процесуправл.светофари

Процесорсветофари

Процесордвижение

Операторски конзолиСензори и камериза контрол на движението

Процесорсензори

Процес за управление

на сензоритеПроцесдисплей

Page 12: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 12

Архитектура клиент-сървър

Приложението се моделира като набор от услуги, предоставяни от сървъри, и набор от клиенти ползващи тези услуги.

Клиентите познават сървърите, но не е нужно сървърите да знаят за клиентите.

Клиентите и сървърите са логически процеси.

Отношението м/у процесорите и процесите не е задължително 1 : 1.

Page 13: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 13

С-ма клиент-сървър

s1

s2 s3

s4c1

c2 c3 c4

c5

c6c7 c8

c9

c10

c11

c12

Client process

Server process

Page 14: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 14

Компютри в C/S мрежа

Network

SC1SC2

CC1 CC2 CC3

CC5 CC6CC4

Servercomputer

Clientcomputer

s1, s2 s3, s4

c5, c6, c7

c1 c2 c3, c4

c8, c9 c10, c11, c12

Page 15: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 15

Слоеста архитектура

Представителен слой• Занимава се с представянето на резултатите

на потребителите и въвеждането на входните данни.

Слой на приложните обработките• Занимава с доставката на специфичните

функции на приложението, напр. в банкова с-ма това са откриване на сметка, закриване на сметка и др.

Слой за управление на данните• Занимава с управление на ситемните бази

от данни.

Page 16: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 16

Слоеве на приложението

Представителен слой

Слой на обработките

Слой за управлениена данните

Page 17: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 17

Слаб и дебел клиент

Модел на слабия (thin) клиент

• Цялата обработка и управление на данните се извършва от сървъра. Клиентът е отговорен само за представителния слой

Модел на дебелия (Fat) клиент• Сървърът е отговорен само за управлението

на данните. Софтуерът на клиента осъществява логиката на приложението и взаимодействието с потребителя.

Page 18: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 18

Слаб и дебел клиент

Thin-clientmodel

Fat-clientmodel Client

Client

Server

Data managementApplication processing

Presentation

Server

Data management

PresentationApplication processing

Page 19: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 19

Модел на слабия клиент

Използва се, когато се мигрира от наследени с-ми към клиент-сървър архитектура.• Наследената с-ма действа като сървър, а

графичният интерфейс се осъществява на клиента

Основен недостатък е, че оставя тежките обработки на сървърите и мрежата.

Page 20: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 20

Модел на дебелия клиент

Обработките на приложението се извършват от клиентския софтуер.

По-подходящ за нови C/S с-ми, в които се знаят предварително възможностите на клиентската с-ма.

По-сложен от слабия клиент, особено за управление. Новите версии на приложението трябва да инсталират на всички клиенти.

Page 21: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 21

ATM клиент-сървър с-ма

Сървър на сметките

База на клиентските

сметки

Мониторна теле-

обработката

ATM

ATM

ATM

ATM

Page 22: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 22

Три-възлова архитектура (Three-tier)

Всеки от слоевете може да се изпълнява на отделен процесор

Позволява по-добра ефективност от слабия клиент и е по-проста за управление от дебелия клиент,

По-приспособима архитектура – с увеличение на заявките може да се увеличи броя на сървърите.

Page 23: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 23

3-възлова C/S архитектура

Client

Server

Datamanagement

PresentationServer

Applicationprocessing

Page 24: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 24

Интернет банкираща система

Database server

Customeraccountdatabase

Web serverClient

Client

Account serviceprovision

SQLSQL query

HTTP interaction

Client

Client

Page 25: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 25

Използване на C/S архитектурите

Архитектура Приложение

Двувъзлова с-ма със слаб клиент

Наследени приложения, където не е практично да се разделят обработката и управлението на данните. Приложения с интензивни изчисления (компилатори), при които няма или почти липсва управление на данните. Приложения с много данни (сърфиране и заявки) с много малка или никаква обработка

Двувъзлова с-ма с дебел клиент

Приложения, при които обработката се извършва с конфекционен (напр. Microsoft Excel) софтуер на клиента. Приложения с много изчисления в/у данните (напр. визуализация на данните).. Приложения с относително стабилна функционалност за крайния потребител, използвани в среда с добре установено управление.

Три- или многовъзлова архитектура

Едромащабни приложения със стотици и хиляди клиенти. Приложения, при които данните, както и софтуера са бързо променящи се. Приложения, при които се интегрират много източници.

Page 26: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 26

Разпределени обекти

Тук няма разлика м/у клиенти и сървъри. Всеки разпределен обект доставя услуги

на други обекти и получава услуги от други обекти.

Комуникация м/у обектите се осъществява от мидълуер с-ма наречена Брокер на обектните заявки (object request broker) или ORB.

Обаче, тази архитектура е по-сложна за проектиране от клиент-сървър архитектурата

Page 27: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 27

Архитектура на разпределени обекти

Object request broker

o1 o2 o3 o4

o5 o6

S (o1) S (o2) S (o3) S (o4)

S (o5) S (o6)

Page 28: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 28

Предимства на разпределените обекти

Позволява на системния проектант да отложи решението за това, къде и как трябва да се доставят услугите.

Много отворена с-ма, която позволява при нужда да се добавят нови ресурси.

С-мата е гъвкава и разширяема. Възможно е при нужда да се

преконфигурира с-мата динамично с обекти мигриращи в мрежата.

Page 29: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 29

Използване на разпределените обекти

Като логически модел позволява да се структурира и организира с-мата. Може да се мисли за функционалността на приложението само с термините на услуги и комбинации от услуги.

Като гъвкав подход за осъществяването на клиент-сървър с-ма. Логическият модел е клиент-сървър, но и клиентът и сървърът се реализират като разпределени обекти, комуникиращи през обща комуникационна структура.

Page 30: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 30

С-ма за дейта майнинг (data mining)

Database 1

Database 2

Database 3

Integrator 1

Integrator 2

Visualiser

Display

Report gen.

Page 31: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 31

С-ма за дейта майнинг

За разлика от АТМ логическият модел е не за осигуряване на услуги с с добре определени услуги за управление на данни.

Той позволява да се увеличава броя на използваните бази от данни без да се разруши с-мата.

Позволява да се откриват нови типове отношения чрез добавянето на нови интегриращи обекти.

Page 32: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 32

CORBA

CORBA е международен стандарт за ORB – мидълуер за управление на комуникацията м/у разпределени обекти.

Той изисква 2 нива:• На логическо комуникационно ниво той позволява на

обектите от различни компютри да обменят данни и управляваща информация.

• На компонентно ниво, той дава основа за разработване на съвместими компоненти. Дефинирани са CORBA компонентни стандарти.

Page 33: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 33

Структура на CORBA приложение

CORBA services

Domainfacilities

Horizontal CORBAfacilities

Applicationobjects

Object request broker

Page 34: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 34

Структура на приложението

Приложни обекти Стандартни обекти, дефинирани от OMG,

за специфична област, напр. застраховане.

Основни CORBA услуги като управление на директории и сигурност.

Хоризонтални (т.е които пресичат приложенията) като средства за потребителски интерфейс.

Page 35: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 35

CORBA стандарти

Модел на обект за приложни обекти• CORBA обектът е капсулирано състояние с добре

дефиниран, езиково неутрален интерфейс дефиниран на IDL (interface definition language).

Обектен брокер, който управлява заявките за услуги от обектите.

Набор от общи обектни услуги за използване от много разпределени приложения

Набор от общи компоненти изградени в/у тези услуги.

Page 36: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 36

CORBA обекти

По принцип CORBA обектите са сравними с обектите в C++ и Java.

Те ТРЯБВА да имат отделна дефиниция на интерфейса, която се описва чрез общ език (IDL), подобен на C++.

Има съответствие м/у IDL и програмните езици (C++, Java, и др.)

Следователно обекти писани на различни езици могат да комуникират помежду си.

Page 37: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 37

Обектен брокер на заявки (ORB)

ORB осигурява комуникацията м/у обектите. Той познава всички обекти в с-мата и техните интерфейси.

Като използва ORB, викащият обект свързва един IDL стъб, който дефинира интерфейса на извиквания обект.

Извикването на този стъб има за резултат извикване на ORB, който след това извиква искания обект чрез публикуван IDL скелет, който свързва интерфейса с осъществяването на услугата

Page 38: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 38

Комуникация м/у обектите базирана на ORB

o1 o2

S (o1) S (o2)

IDLstub

IDLskeleton

Object Request Broker

Page 39: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 39

Между-ORB комуникации

Обикновено ORB не са отделни програми, а набор от обекти в библиотека, които се свързват с приложението при неговата разработка.

ORB осъществяват комуникацията м/у обектите на една и съща машина.

Много ORB могат да са на разположение и всеки компютър в разпределена с-ма има свой собствен ORB.

Между-ORB комуникациите се използват за извикване на разпределени обекти.

Page 40: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 40

Между-ORB комуникации

o1 o2

S (o1) S (o2)

IDLstub

IDLskeleton

Object Request Broker

o3 o4

S (o3) S (o4)

IDLstub

IDLskeleton

Object Request Broker

Network

Page 41: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 41

CORBA услуги

Наименоване и преговори• Позволяват на обектите да откриват и да се

обръщат към други обекти в мрежата. Нотификация

• Позволяват на обектите да известят други обекти са това, че е настъпило определено събитие.

Трансакции• Поддържат се атомарни трансакции и ролбек

при неуспех.

Page 42: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 42

Разпределени с-ми между различни организации

Повечето разпределени с-ми са осъществени на ниво организация по съображения за сигурност и оперативност.

Прилагат се местни стандарти, управление и работни процеси.

Разработват се нови модели, които да поддържат разпределение м/у организациите, където различните възли са разположени в различни организации.

Page 43: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 43

Равнопоставени (Peer-to-peer) архитектури

Равнопоставените (p2p) с-ми са децентрализирани с-ми, в които всеки компютър в мрежата може да извършва всички операции.

Цялата с-ма е проектирана така, че да се възползва от мощността на голям брой компютри в мрежа.

Повечето p2p с-ми са от персонални компютри, но все повече се увеличава използването на тази технология от бизнеса.

Page 44: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 44

P2p архитектурни модели

Архитектура на логическата мрежа• Децентрализирани архитектури;• Полу-централизирани архитектури;

Архитектура на приложението• Общата организация на компонентите

съставящи p2p приложение Тук се съсредоточаваме в/у

архитектурата на мрежата

Page 45: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 45

Децентрализирана p2p архитектура

n1

n2 n3

n4

n5

n6

n7

n8

n9 n10 n11

n12

n13

n13

Page 46: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 46

Полу-нтрализирана p2p архитектура

Discoveryserver

n1

n2

n3

n4

n5

n6

Page 47: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 47

Ориентирани към услуги архитектури

Основават се на понятието доставяни отвън услуги (уеб услуги)

Уеб услугата е стандартен подход да се направи една многократно използваема компонента достъпна в уеб пространството • Услуга за попълване на данъци поже да

даде поддръжка на потребителите да попълнят данъчните си формуляри и да ги изпрати на данъчната служба

Page 48: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 48

Услуга изобщо

Действие или работа предоставена от една страна на друга. Въпреки че процесът може да е свързан с физически продукт, работата е обикновено неосезаема и нормално не води до собственост на никой от посредниците.

Следователно доставянето на услугата е независимо от приложението използващо услугата

Page 49: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 49

Уеб услуги

Регистърна услуги

Заявителна услуги

Доставчикна услуги

Публикува

Свързва се

Намира

Услуга

Page 50: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 50

Услуги и разпределени обекти

Независимост на доставчика Публично обявяване на достъпните услуги Скрито рън-тайм свързване с услугата Опортюнистично изграждане на нови услуги чрез

композиция. Плащане за използване на услугите По-малки, компактни приложения Реактивни и адаптивни приложения

Page 51: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 51

Стандарти за услуги

Услугите основават на общоприети, XML бзирани стандарти, така че да се доставят на всякакви платформи и да се пишат на всякакви програмни езици.

Основни стандарти:• SOAP - Simple Object Access Protocol;• WSDL - Web Services Description Language;• UDDI - Universal Description, Discovery and

Integration.

Page 52: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 52

Сценарий за услуги

Една с-ма за информиране в колите доставя на водачите информация за времето, пътните условия, местни новини и др. Тя е свързана с радиото на колата и се предава като сигнал на специфичен радио канал.

Колата е снабдена с GPS приемник за да определя местоположението си и според това с-мата има достъп до различни информационни услуги, Информацията се предава на определения от водача език.

Page 53: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 53

Система за автомобили

User interface

Locator

Discovers carposition

Weatherinfo

Receives requestfrom user

Receiver

Receivesinformation stream

from services

Transmitter

Sends position andinformation request

to services

Radio

Translates digitalinfo stream toradio signal

In-car software system

Mobile Info Service

Facilitiesinfo

Translator

Roadlocator

Trafficinfo

Collates information

Road traffic info

commandgps coord

gpscoord gps coordgps coord

Languageinfo

Infostream

Service discovery

Finds availableservices

Page 54: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 54

Разпределените с-ми поддържат поделянето на ресурси, отвореност, конкурентност, разширяемост, толерантност към грешки, прозрачност.

При клиент-сървър архитектурата сървърите доставят услуги на програми работещи на клиенти.

Потребителският интерфейс винаги работи на клиента, управлението на данните – на сървъра. Приложната функционалност може да се реализира или от клиента или от сървъра.

При разпределените обекти няма разлика м/у клиент и сървър.

Обобщение

Page 55: Архитектура на разпределени системи

Software Engineering, 7th edition. Chapter 12 Slide 55

Обобщение...

С-мите с разпределени обекти имат нужда от мидълуер за да поддържа комуникацията м/у обектите и да добавя и отстранява обекти.

• CORBA стандартите са набор от стандарти за мидълуера, които поддържат архитектурата с разпределени обекти.

• Равнопоставената архитектура е децентрализирана архитектура без разлика м/у клиент и сървър.

С-мите ориентирани кум услуги се създават чрез свързване на софтуерни услуги от различни доставчици.