You are on page 1of 22

Клиенти со повеќе нишки

 Типичен пример: развивање на ВЕБ-


прелистувач како апликација со повеќе
нишки
◦ Штом главниот HTML код е преземен, може
да се активираат посебни нишки за грижа
преземање на другите делови
◦ Секоја нишка поставува различна TCP/IP врска
со серверот и ги повлекува податоците
◦Може да се постават врски со различни копии
на Веб сервер, кој овозможува паралелeн
пренос на податоци

1
Клиенти со повеќе нишки

2
Сервери со повеќе нишки (1)
Сервер со повеќенишки организиран во модел на диспечер/работник.

3
Сервери со повеќе нишки (2)
Модел Карактеристики
Нишки Паралелизам, блокирање системски
повици
Процес со една нишка Без паралелизам, блокирање
системски повици
Машина со конечна состојба Паралелизам, неблокирачки системски
повици

 Три начини за конструирање на сервер


 Модел на машина во конечна состојба:
◦Кога ќе дојде барање, едната и единствена нишка го испитува, и испраќа
порака на дискот
◦ Наместо да блокира, серверот ја снима состојбата на струјата барање во
табела и потоа оди и ја добива следната порака
Ако се работи за ново дело, таа работа се започнува
Ако се работи за одговор од дискот, се преземаат релевантните
информации од табелата и одговорот се испраќа до клиентот 4
Сервери: Општи прашања за
дизајнирање(1)
 Итеративен сервер
◦ Самиот сервер се справува со барање и, доколку е потребно, враќа одговор
на клиентот што бара
 Истовремен сервер
◦ Серверот го пренесува барањето во посебна или друг нишка процес, по
што веднаш го чека следниот дојдовнo барање (на пр. сервер со повеќе
нишки)
 Каде клиентите контактираат со серверот?
◦ Секој сервер слуша одредена крајна точка (порта)
◦ Крајните точки за добро познати услуги може да се доделат глобално
 Многу сервери не бараат однапред доделена крајна точка
◦ А) специјален демон ја следи моменталната крајна точка на секој од нив за
имплементирана услуга од заеднички сервер
◦ Б) „суперсервер“ ја слуша секоја крајна точка поврзана со специфична услуга и
вилушки процес за да се грижи за барањето

5
Сервери: Општи прашања за
дизајнирање(2)

а) Врзување клиент до сервер со помош на демон како во DCE


б) Врзување клиент до сервер со помош на суперсервер како во UNIX

6
Сервери: Општи прашања за
дизајнирање(3)
 Сервер без државјанство
◦ Не чува информации за состојбата на своите клиенти и може да ја
промени својата состојба без да мора да информира кој било клиент
◦ Пример: веб-сервер – одговара на дојдовно барање, и целосно го
заборава клиентот
 Државен сервер
◦ Дали одржува информации за своите клиенти(!)
◦ Пример: сервер за датотеки – одржува табела која содржи (клиент,
датотека) записи, што му овозможува на серверот да следи кои
клиентот моментално има дозвола за ажурирање на која датотека
 Серверот можеби ќе сака да води евиденција на клиентот
однесување за да може поефективно да одговори на него барања
◦ Колаче – мал дел од податоци што содржи специфични за клиентот
информации кои се од интерес за серверот и се транспарентно
складирани од прелистувачот на клиентот

7
Сервери за објекти и адаптер за
објекти

8
Сервери за објекти и адаптер за
објекти
 Објект сервер – сервер прилагоден
за поддршка на дистрибуирани објекти
 ◦ Објектниот сервер сам по себе не го
прави тоа обезбедуваат специфични
услуги – тие се имплементирани од
објектите кои престојуваат во
серверот
 Политика за активирање – одлука за
како да се повика некој предмет
 Адаптер за објекти (обвивка за
предмети) – механизам за групирање
објекти по полиса, т.е
имплементација на софтвер со
специфична политика за активирање
 Адаптерите се генерички – тие ги
предаде барањата за повикување на
почетен на објект од страна на серверот

9
Причина за миграционен код(1)
 Процесна миграција – целиот процес се преместува од еденa машина на друга
◦ Скапа и сложена задача
◦ Основната идеја е дека севкупните перформанси на системот можат да се подобрат
ако процесите се преместуваат од силно оптоварени на лесно натоварени машини
 Во современите дистрибуирани системи поважно е да минимизирајте ја
комуникацијата
◦ Пример: ако клиентската апликација треба да направи многу бази на податоци
операции кои вклучуваат големи количини на податоци, можеби е подобро да се
испрати дел од клиентската апликација на серверот и да се испратат само резултати
низ мрежата
◦ Пример: клиентите треба да пополнат формулари кои се последователно преведени
во серија операции на база на податоци – обработка на формуларот на страната на
клиентот и испраќање само на пополнетиот формулар до серверот го елиминираат
големиот број на мали пораки кои треба да ја преминат мрежата
 Ако кодот може да се движи помеѓу различни машини, станува можно динамично да
се конфигурираат дистрибуирани системи

10
Причина за миграционен код(2)
 Принципот на динамичко конфигурирање на клиент за комуникација
со сервер. Клиентот прво го презема потребниот софтвер, а потоа го
повикува серверот.

11
Модели за миграција на кодови(1)
 Процесот се состои од три сегменти:
◦ Код сегмент – делот што го содржи множеството инструкции што ја
сочинуваат програмата што се извршува
◦ Ресурсен сегмент – содржи референци за надворешни ресурси потребни
за процесот (на пр. датотеки, печатачи, уреди, друго процеси, итн.)
◦ Извршен сегмент – се користи за складирање на моменталната состојба на
извршување на процес (приватни податоци, стек, програмски бројач)
 Слаба подвижност
◦ Префрлете го само сегментот на кодот(!) – пренесена програма е секогаш
започнува од неговата почетна состојба (на пр. Java аплети)
◦ Бара само целната машина да може да го изврши тој код (пренослив код)
 Силна подвижност
◦ Може да се пренесе и сегментот за извршување
◦ Активен процес може да се запре, премести на друга машина,а потоа
продолжи со извршувањето таму каде што застанал
◦ Помоќен, но потешко за спроведување(!)
◦ Може да се поддржи со далечинско клонирање

12
Модели за миграција на кодови(2)
 Миграција иницирана од испраќачот
◦Миграцијата се иницира на машината каде
што е кодот моментално престојува или се
извршува (на пр.испраќање програми на
компјутерски сервер)
 Миграција иницирана од ресивер
◦Иницијативата за миграција на кодот е
преземена од страна на целна машина (на
пр. Java аплети)

13
Модели за миграција на кодови(3)

Алтернативи за миграција на кодот

14
Миграција и локални ресурси(1)
 Три типа на врзување процес-ресурс:
◦ Врзување со идентификатор – процес користи URL за да упати на одредена
веб-страница или FTP сервер со помош на тој сервер Интернет адреса
◦ Врзување по вредност – програмата се потпира на стандардни библиотеки и
таквите библиотеки секогаш треба да бидат локално достапни
◦ Врзување по тип – процес покажува дека му треба само ресурс од
специфичен тип (референци за локални уреди, како на пр монитори,
принтери итн.)
 Неприврзани ресурси – може лесно да се преместуваат помеѓу машини (на
пр. датотеки поврзани само со програмата што треба да се мигрира)
 Прицврстени ресурси (на пр. локални бази на податоци, комплетен веб
сајтови)
 Фиксни ресурси – врзани за одредена машина или околината и не може да се
премести

15
Миграција и локални ресурси(2)
Врзување од ресурси за машина
Неврзан Прицврстен Fixed
и
По MV (или GR) GR (или MV) GR
идентификатор CP (или MV,GR) GR (или CP) GR
По вредност RB (или GR, CP) RB (или GR, RB(илиGR)
По тип CP)

Дејства што треба да се преземат во однос нареференци за локални


ресурси при мигрирањекод на друга машина.
◦ GR – воспоставете глобална референца низ целиот систем
◦ MV – поместете го ресурсот
◦ CP – копирајте ја вредноста на ресурсот
◦ RB – Повторно поврзување на процесот на локално достапен ресур
16
Xетерогена Миграција

 Принципот на одржување на миграциски стек (машина-независна) за


поддршка на миграција на сегмент за извршување(силна подвижност) во
хетерогена средина
 Извршниот сегмент е многу зависен од платформатана кој се извршува
процесот – миграцијата може да потраеместо само кога ќе се повика
следната потпрограма
17
Софтверски агенти во
дистрибуирани системи
 Софтверски агент – автономен процес способен да реагира на,и иницирање промени во, неговата
околина, евентуално во соработка со корисници и други агенти
 Некои важни својства со кои различни типови на агенси можат да се разликуваат:
Имотот Заеднички засите агенти? Опис

Автономна Да Може да дејствува самостојно

Реактивни Да Навремено реагира на промените во неговата околина

Проактивни Да Иницира активности кои влијаат на неговата околина

Комуникативен Да Може да разменува информации со корисници и


другиагенти

Континуирано Не Има релативно долг животен век

Мобилен Не Може да мигрира од една локација на друга

Адаптивни Не Способни за учење

18
Агентна технологија (1)
 Општиот модел на платформа за агенти(Фондација за интелигентни физички
агенси – ФИПА)
◦ Агентите се регистрирани и работат под режимот наплатформа за агенти, која ги
обезбедува основните услугипотребни за секој мулти-агентен систем
◦ Менаџмент компонента – обезбедува погодности за креирање ибришење
агенти, но и за пребарување на тековната крајна точка заспецифичен агент (услуга
за именување преку која глобално единственидентификаторот е мапиран на
локалната комуникациска крајна точка)
◦ Услуга за локални директориуми – агентите можат да бараат какви други
агентина платформата имаат да понудат
◦ Агентот обезбедува описи на своите услуги во однос на атрибутотимиња,
заедно со вредноста специфична за тој агент („жолти страници“)
◦ Канал за комуникација на агентот (ACC) – се грижи за ситекомуникација помеѓу
различни платформи на агенти (разменапораки)

19
Агентна технологија (2)
 Општиот модел на платформа за агенти(Фондација за интелигентни физички агенси – ФИПА)

20
Јазик за комуникација на агентот(1)
Агентите комуницираат со помош на комуникација на ниво на апликацијапротокол - јазик за комуникација на агентот
(ACL)
 Примери на различни типови пораки во FIPA ACL
Целта на пораката Опис Содржина на пораката

ИНФОРМИРАЈ Информирајте дека дадениот Предлог


предлог е вистинит

ПРАШАЊЕ-АКО Прашајте дали дадениот предлог е Предлог


вистинит
ПРАШАЊЕ-РЕФ Барање за даден објект Изразување

CFP Побарајте предлог Специфики на предлогот

ПРЕДЛОЖИ Дајте предлог Предлог

ПРИФАТИ-ПРЕДЛОГ Кажете дека даден предлог е прифатен ИД на предлогот

ОТФРЛИ-ПРЕДЛОГ Кажете дека даден предлог е одбиен ИД на предлогот

БАРАЊЕ Побарајте да се изврши дејство Спецификација за акција

ПРЕТПЛАТЕТЕ СЕ Претплатете се на извор на Упатување на изворот


информации 21
Јазик за комуникација на агентот(2)
Поле Вредност
Цел ИНФОРМИРАЈ
Испраќач max@http://fanclub-beatrix.royalty-
spotters.nl:7239
Приемник elke@iiop://royalty-watcher.uk:5623
Јазик Пролог
Онтологија генеалогија
содржина женско (беатрикс), родител (беатрикс,
Џулијана, Бернхард)

 Едноставен пример на FIPA ACL порака испратена помеѓу двајца агенти


кои користат Prolog за изразување на генеалошки информации.

22

You might also like