Object-oriented Design

Download Report

Transcript Object-oriented Design

Архитектура на разпределени
системи
Software Engineering, 7th edition. Chapter 12
Slide 1
Цели




Да обясни предимствата и недостатъците на
различните архитектури за разпределени с-ми,
Да се обсъдят архитектурите клиент-сървър и
разпределени обекти
Да опише ORB (object request brokers) и
принципите определящи стандартите на CORBA
Да въведе равнопоставените архитектури (peerto-peer) и ориентираните към услуги с-ми като
нови модели на разпределената обработка.
Software Engineering, 7th edition. Chapter 12
Slide 2
Основни теми




Многопроцесорна архитектура
Клиент-сървър архитектура
Разпределени обекти
Между-организационни архитектури
Software Engineering, 7th edition. Chapter 12
Slide 3
Разпределени системи



Виртуално всички големи с-ми сега са
разпределени с-ми.
Обработката на информацията е
разпределена м/у много машини.
Инженерингът на разпределените с-ми е
много важен за компютърните с-ми на
предприятията.
Software Engineering, 7th edition. Chapter 12
Slide 4
Типове системи



Персонални системи, които не са разпределени и
са предназначени за персонален компютър или
работна станция
Вградени (еmbedded) с-ми, които се изпълняват
на единичен процесор или на интегрирана група
от процесори
Разпределени с-ми, при които софтуерът се
изпълнява на хлабаво свързани група процесори
свързани в мрежа.
Software Engineering, 7th edition. Chapter 12
Slide 5
Характеристики на РС

Поделяне на ресурси
•

Отвореност
•

Паралелна обработка за по-добра ефективност
Възможност за разширение(scalability)
•

Използване на хардуер и софтуер от различни
източници
Конкурентност
•

Поделят се софтуерни и хардуерни ресурси
Продуктивността се увеличава с добавката на нови
ресурси
Нечувствителност към грешки
•
Способността да продължи една операция след
настъпването на грешка
Software Engineering, 7th edition. Chapter 12
Slide 6
Недостатъци на РС

Сложност
•

Сигурност
•

По-податливи на външни атаки
Леснота за управление
•

Обикновено разпределените с-ми са по-сложни от
централизираните.
Нужни са повече усилия за управлението им
Непредсказуемост
•
Непредсказуеми отговори зависещи от организацията
на с-мата и на натоварването на мрежата
Software Engineering, 7th edition. Chapter 12
Slide 7
Архитектури на РС

Клиент-сървър
•

Разпределени услуги, които се искат от
клиентите. Сървърите, които доставят
услугите се държат и проектират различно от
клиентите, които ползват услугите
Разпределени обекти
•
Няма разлики м/у клиент и сървър. Всеки
обект в с-мата може да доставя на и да
ползва услуги от друго обекти.
Software Engineering, 7th edition. Chapter 12
Slide 8
Мидълуер



Софтуер, който управлява и поддържа различни
компоненти на разпределените с-ми. Всъщност,
той стои в средата на с-мата.
Обикновено е готова компонента, а не специално
разработен за случая софтуер.
Примери
•
•
•
Монитори за протичане на трансакциите;
Преобразователи на данни;
Комуникационни контролери;
Software Engineering, 7th edition. Chapter 12
Slide 9
Многопроцесорни архитектури




Най-простият модел
С-мата е съставена от множество процеси, които
могат (но не задължително) да се изпълняват от
различни процесори
Архитектурен модел на много с-ми за реално
време
Разпределението на процесите към процесора
може да е предопределено или да под
управлението на диспечер
Software Engineering, 7th edition. Chapter 12
Slide 10
Многопроцесорна с-ма за управление
на движението
Процесор
сензори
Процес за
управление
на сензорите
Процесор
движение
Процесор
светофари
Процес
дисплей
Процес
управл.
светофари
светофари
Сензори и камери
за контрол на движението
Операторски конзоли
Software Engineering, 7th edition. Chapter 12
Slide 11
Архитектура клиент-сървър




Приложението се моделира като набор от
услуги, предоставяни от сървъри, и набор
от клиенти ползващи тези услуги.
Клиентите познават сървърите, но не е
нужно сървърите да знаят за клиентите.
Клиентите и сървърите са логически
процеси.
Отношението м/у процесорите и
процесите не е задължително 1 : 1.
Software Engineering, 7th edition. Chapter 12
Slide 12
С-ма клиент-сървър
c3
c2
c4
c1 2
c1 1
s4
s1
c1
Serv er pro cess
c1 0
c5
s2
c6
c7
Client pro cess
s3
c9
c8
Software Engineering, 7th edition. Chapter 12
Slide 13
Компютри в C/S мрежа
c1
CC1
c2
CC2
c3 , c4
CC3
Netwo rk
s1 , s 2
Serv er
co mpu ter
s3 , s 4
SC2
SC1
c5 , c6, c7
c8 , c9
CC4
CC5
Client
co mpu ter
c1 0 , c1 1 , c1 2
CC6
Software Engineering, 7th edition. Chapter 12
Slide 14
Слоеста архитектура

Представителен слой
•

Слой на приложните обработките
•

Занимава се с представянето на резултатите
на потребителите и въвеждането на входните
данни.
Занимава с доставката на специфичните
функции на приложението, напр. в банкова сма това са откриване на сметка, закриване
на сметка и др.
Слой за управление на данните
•
Занимава с управление на ситемните бази от
данни.
Software Engineering, 7th edition. Chapter 12
Slide 15
Слоеве на приложението
Представителен слой
Слой на обработките
Слой за управление
на данните
Software Engineering, 7th edition. Chapter 12
Slide 16
Слаб и дебел клиент

Модел на слабия (thin) клиент
•

Цялата обработка и управление на данните
се извършва от сървъра. Клиентът е
отговорен само за представителния слой
Модел на дебелия (Fat) клиент
•
Сървърът е отговорен само за управлението
на данните. Софтуерът на клиента
осъществява логиката на приложението и
взаимодействието с потребителя.
Software Engineering, 7th edition. Chapter 12
Slide 17
Слаб и дебел клиент
Software Engineering, 7th edition. Chapter 12
Slide 18
Модел на слабия клиент

Използва се, когато се мигрира от
наследени с-ми към клиент-сървър
архитектура.
•

Наследената с-ма действа като сървър, а
графичният интерфейс се осъществява на
клиента
Основен недостатък е, че оставя тежките
обработки на сървърите и мрежата.
Software Engineering, 7th edition. Chapter 12
Slide 19
Модел на дебелия клиент



Обработките на приложението се
извършват от клиентския софтуер.
По-подходящ за нови C/S с-ми, в които се
знаят предварително възможностите на
клиентската с-ма.
По-сложен от слабия клиент, особено за
управление. Новите версии на
приложението трябва да инсталират на
всички клиенти.
Software Engineering, 7th edition. Chapter 12
Slide 20
ATM клиент-сървър с-ма
ATM
ATM
Сървър на сметките
Монитор
База на
на теле- клиентските
обработката сметки
ATM
ATM
Software Engineering, 7th edition. Chapter 12
Slide 21
Три-възлова архитектура (Threetier)



Всеки от слоевете може да се изпълнява
на отделен процесор
Позволява по-добра ефективност от
слабия клиент и е по-проста за
управление от дебелия клиент,
По-приспособима архитектура – с
увеличение на заявките може да се
увеличи броя на сървърите.
Software Engineering, 7th edition. Chapter 12
Slide 22
3-възлова C/S архитектура
Software Engineering, 7th edition. Chapter 12
Slide 23
Интернет банкираща система
Client
Client
HTTP interactio n
Database server
Web s erv er
SQL q u ery
Acco u nt service
p rov is ion
SQL
Cus tomer
acco un t
d atabase
Client
Client
Software Engineering, 7th edition. Chapter 12
Slide 24
Използване на C/S архитектурите
Архитектура
Приложение
Двувъзлова сма със слаб
клиент
Наследени приложения, където не е практично да се разделят
обработката и управлението на данните.
Приложения с интензивни изчисления (компилатори), при които
няма или почти липсва управление на данните.
Приложения с много данни (сърфиране и заявки) с много малка или
никаква обработка
Двувъзлова сма с дебел
клиент
Приложения, при които обработката се извършва с конфекционен
(напр. Microsoft Excel) софтуер на клиента.
Приложения с много изчисления в/у данните (напр. визуализация на
данните)..
Приложения с относително стабилна функционалност за крайния
потребител, използвани в среда с добре установено управление.
Три- или
многовъзлова
архитектура
Едромащабни приложения със стотици и хиляди клиенти.
Приложения, при които данните, както и софтуера са бързо
променящи се.
Приложения, при които се интегрират много източници.
Software Engineering, 7th edition. Chapter 12
Slide 25
Разпределени обекти




Тук няма разлика м/у клиенти и сървъри.
Всеки разпределен обект доставя услуги
на други обекти и получава услуги от
други обекти.
Комуникация м/у обектите се
осъществява от мидълуер с-ма наречена
Брокер на обектните заявки (object request
broker) или ORB.
Обаче, тази архитектура е по-сложна за
проектиране от клиент-сървър
архитектурата
Software Engineering, 7th edition. Chapter 12
Slide 26
Архитектура на разпределени
обекти
o1
o2
o3
o4
S (o 1)
S (o 2)
S (o 3)
S (o 4)
Object req u est brok er
o5
o6
S (o 5)
S (o 6)
Software Engineering, 7th edition. Chapter 12
Slide 27
Предимства на разпределените обекти




Позволява на системния проектант да
отложи решението за това, къде и как
трябва да се доставят услугите.
Много отворена с-ма, която позволява при
нужда да се добавят нови ресурси.
С-мата е гъвкава и разширяема.
Възможно е при нужда да се
преконфигурира с-мата динамично с
обекти мигриращи в мрежата.
Software Engineering, 7th edition. Chapter 12
Slide 28
Използване на разпределените обекти


Като логически модел позволява да се
структурира и организира с-мата. Може да се
мисли за функционалността на приложението
само с термините на услуги и комбинации от
услуги.
Като гъвкав подход за осъществяването на
клиент-сървър с-ма. Логическият модел е клиентсървър, но и клиентът и сървърът се реализират
като разпределени обекти, комуникиращи през
обща комуникационна структура.
Software Engineering, 7th edition. Chapter 12
Slide 29
С-ма за дейта майнинг (data
mining)
Database 1
In teg rator 1
Database 2
Rep ort gen .
Vis ualis er
In teg rator 2
Database 3
Disp lay
Software Engineering, 7th edition. Chapter 12
Slide 30
С-ма за дейта майнинг



За разлика от АТМ логическият модел е
не за осигуряване на услуги с с добре
определени услуги за управление на
данни.
Той позволява да се увеличава броя на
използваните бази от данни без да се
разруши с-мата.
Позволява да се откриват нови типове
отношения чрез добавянето на нови
интегриращи обекти.
Software Engineering, 7th edition. Chapter 12
Slide 31
CORBA


CORBA е международен стандарт за ORB –
мидълуер за управление на комуникацията м/у
разпределени обекти.
Той изисква 2 нива:
•
•
На логическо комуникационно ниво той позволява на
обектите от различни компютри да обменят данни и
управляваща информация.
На компонентно ниво, той дава основа за
разработване на съвместими компоненти.
Дефинирани са CORBA компонентни стандарти.
Software Engineering, 7th edition. Chapter 12
Slide 32
Структура на CORBA приложение
App lication
o bjects
Domain
facilities
Horizo ntal C ORBA
facilities
Object req u est brok er
CORBA services
Software Engineering, 7th edition. Chapter 12
Slide 33
Структура на приложението




Приложни обекти
Стандартни обекти, дефинирани от OMG,
за специфична област, напр.
застраховане.
Основни CORBA услуги като управление
на директории и сигурност.
Хоризонтални (т.е които пресичат
приложенията) като средства за
потребителски интерфейс.
Software Engineering, 7th edition. Chapter 12
Slide 34
CORBA стандарти

Модел на обект за приложни обекти
•



CORBA обектът е капсулирано състояние с добре
дефиниран, езиково неутрален интерфейс дефиниран
на IDL (interface definition language).
Обектен брокер, който управлява заявките за
услуги от обектите.
Набор от общи обектни услуги за използване от
много разпределени приложения
Набор от общи компоненти изградени в/у тези
услуги.
Software Engineering, 7th edition. Chapter 12
Slide 35
CORBA обекти




По принцип CORBA обектите са сравними
с обектите в C++ и Java.
Те ТРЯБВА да имат отделна дефиниция
на интерфейса, която се описва чрез общ
език (IDL), подобен на C++.
Има съответствие м/у IDL и програмните
езици (C++, Java, и др.)
Следователно обекти писани на различни
езици могат да комуникират помежду си.
Software Engineering, 7th edition. Chapter 12
Slide 36
Обектен брокер на заявки (ORB)



ORB осигурява комуникацията м/у
обектите. Той познава всички обекти в смата и техните интерфейси.
Като използва ORB, викащият обект
свързва един IDL стъб, който дефинира
интерфейса на извиквания обект.
Извикването на този стъб има за резултат
извикване на ORB, който след това извиква
искания обект чрез публикуван IDL скелет,
който свързва интерфейса с
осъществяването на услугата
Software Engineering, 7th edition. Chapter 12
Slide 37
Комуникация м/у обектите базирана
на ORB
o1
o2
S (o 1)
S (o 2)
IDL
st ub
IDL
sk el eto n
Object Requ es t Bro ker
Software Engineering, 7th edition. Chapter 12
Slide 38
Между-ORB комуникации




Обикновено ORB не са отделни програми, а
набор от обекти в библиотека, които се свързват
с приложението при неговата разработка.
ORB осъществяват комуникацията м/у обектите
на една и съща машина.
Много ORB могат да са на разположение и всеки
компютър в разпределена с-ма има свой
собствен ORB.
Между-ORB комуникациите се използват за
извикване на разпределени обекти.
Software Engineering, 7th edition. Chapter 12
Slide 39
Между-ORB комуникации
o1
o2
o3
o4
S (o 1)
S (o 2)
S (o 3)
S (o 4)
IDL
stub
IDL
sk eleto n
IDL
stub
IDL
sk eleto n
Object Requ es t Bro ker
Object Requ es t Bro ker
Netwo rk
Software Engineering, 7th edition. Chapter 12
Slide 40
CORBA услуги

Наименоване и преговори
•

Нотификация
•

Позволяват на обектите да откриват и да се
обръщат към други обекти в мрежата.
Позволяват на обектите да известят други
обекти са това, че е настъпило определено
събитие.
Трансакции
•
Поддържат се атомарни трансакции и ролбек
при неуспех.
Software Engineering, 7th edition. Chapter 12
Slide 41
Разпределени с-ми между
различни организации



Повечето разпределени с-ми са
осъществени на ниво организация по
съображения за сигурност и оперативност.
Прилагат се местни стандарти,
управление и работни процеси.
Разработват се нови модели, които да
поддържат разпределение м/у
организациите, където различните възли
са разположени в различни организации.
Software Engineering, 7th edition. Chapter 12
Slide 42
Равнопоставени (Peer-to-peer)
архитектури



Равнопоставените (p2p) с-ми са
децентрализирани с-ми, в които всеки компютър
в мрежата може да извършва всички операции.
Цялата с-ма е проектирана така, че да се
възползва от мощността на голям брой компютри
в мрежа.
Повечето p2p с-ми са от персонални компютри,
но все повече се увеличава използването на тази
технология от бизнеса.
Software Engineering, 7th edition. Chapter 12
Slide 43
P2p архитектурни модели

Архитектура на логическата мрежа
•
•

Архитектура на приложението
•

Децентрализирани архитектури;
Полу-централизирани архитектури;
Общата организация на компонентите
съставящи p2p приложение
Тук се съсредоточаваме в/у архитектурата
на мрежата
Software Engineering, 7th edition. Chapter 12
Slide 44
Децентрализирана p2p
архитектура
n4
n6
n8
n7
n2
n 13
n 12
n3
n 13
n9
n1
n 10
n 11
n5
Software Engineering, 7th edition. Chapter 12
Slide 45
Полу-нтрализирана p2p
архитектура
Discov ery
serv er
n4
n1
n3
n6
n5
n2
Software Engineering, 7th edition. Chapter 12
Slide 46
Ориентирани към услуги
архитектури


Основават се на понятието доставяни
отвън услуги (уеб услуги)
Уеб услугата е стандартен подход да се
направи една многократно използваема
компонента достъпна в уеб
пространството
•
Услуга за попълване на данъци поже да даде
поддръжка на потребителите да попълнят
данъчните си формуляри и да ги изпрати на
данъчната служба
Software Engineering, 7th edition. Chapter 12
Slide 47
Услуга изобщо


Действие или работа предоставена от
една страна на друга. Въпреки че
процесът може да е свързан с физически
продукт, работата е обикновено
неосезаема и нормално не води до
собственост на никой от посредниците.
Следователно доставянето на услугата е
независимо от приложението използващо
услугата
Software Engineering, 7th edition. Chapter 12
Slide 48
Уеб услуги
Регистър
на услуги
Публикува
Намира
Доставчик
Услуга
на услуги
Заявител
на услуги
Свързва се
Software Engineering, 7th edition. Chapter 12
Slide 49
Услуги и разпределени обекти







Независимост на доставчика
Публично обявяване на достъпните услуги
Скрито рън-тайм свързване с услугата
Опортюнистично изграждане на нови услуги чрез
композиция.
Плащане за използване на услугите
По-малки, компактни приложения
Реактивни и адаптивни приложения
Software Engineering, 7th edition. Chapter 12
Slide 50
Стандарти за услуги


Услугите основават на общоприети, XML
бзирани стандарти, така че да се доставят
на всякакви платформи и да се пишат на
всякакви програмни езици.
Основни стандарти:
•
•
•
SOAP - Simple Object Access Protocol;
WSDL - Web Services Description Language;
UDDI - Universal Description, Discovery and
Integration.
Software Engineering, 7th edition. Chapter 12
Slide 51
Сценарий за услуги


Една с-ма за информиране в колите доставя на
водачите информация за времето, пътните
условия, местни новини и др. Тя е свързана с
радиото на колата и се предава като сигнал на
специфичен радио канал.
Колата е снабдена с GPS приемник за да
определя местоположението си и според това смата има достъп до различни информационни
услуги, Информацията се предава на
определения от водача език.
Software Engineering, 7th edition. Chapter 12
Slide 52
Система за автомобили
Software Engineering, 7th edition. Chapter 12
Slide 53
Обобщение




Разпределените с-ми поддържат поделянето на
ресурси, отвореност, конкурентност,
разширяемост, толерантност към грешки,
прозрачност.
При клиент-сървър архитектурата сървърите
доставят услуги на програми работещи на
клиенти.
Потребителският интерфейс винаги работи на
клиента, управлението на данните – на сървъра.
Приложната функционалност може да се
реализира или от клиента или от сървъра.
При разпределените обекти няма разлика м/у
клиент и сървър.
Software Engineering, 7th edition. Chapter 12
Slide 54
Обобщение...

•
•

С-мите с разпределени обекти имат нужда от
мидълуер за да поддържа комуникацията м/у
обектите и да добавя и отстранява обекти.
CORBA стандартите са набор от стандарти за
мидълуера, които поддържат архитектурата с
разпределени обекти.
Равнопоставената архитектура е
децентрализирана архитектура без разлика м/у
клиент и сървър.
С-мите ориентирани кум услуги се създават чрез
свързване на софтуерни услуги от различни
доставчици.
Software Engineering, 7th edition. Chapter 12
Slide 55