Програма за насърчаване на малките и средните предприятия



страница5/19
Дата25.08.2016
Размер1.47 Mb.
#7187
ТипПрограма
1   2   3   4   5   6   7   8   9   ...   19

3Клиент/сървър технологии


Терминът "клиент/сървър" за първи път се използва при свързване на персонални компютри в мрежа през 80-те години5. Действителният клиент/сървър модел започва да печели популярност в края на 80-те.

Терминът "клиент/сървър" описва взаимоотношенията между две компютърни програми, от които едната програма – клиент, прави заявка за услуга към другата програма – сървър, който изпълнява заявката (фиг. 5.). Въпреки, че клиент/сървър може да се използва от програми на един компютър, по-важна е идеята, реализирана в мрежа. В една мрежа моделът клиент/сървър предоставя удобен начин за свързване на програми, разпределени в нея (разпределени приложения).





  1. Общ вид на модела клиент/сървър

Клиент/сървърната обработка е логическото продължение на модулното програмиране6. Основната идея при модулното програмиране е разделяне на обемистия програмен код на отделни части (модули). По този начин се постига по-лесна разработка и по-добра поддръжка. При клиент/сървърната обработка тази идея се доразвива с това, че не е задължително тези отделни модули от кода да се изпълняват в едно и също пространство от паметта.

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


        • Предимства на клиент/сървър модела, наложили масовото му приложение


Клиент/сървър архитерктурата има за цел да предложи по-добри показатели, в сравнение с централизирания модел на големите приложения, по отношение на:

  • използваемост – потребителите лесно се научават да оперират, да въвеждат входни данни и да интерпретират резултатите от системата;

  • гъвкавост – системата лесно може да бъде модифицирана, за да бъде използвана от приложения или среди, различни от тези, за които е била първоначално проектирана;

  • взаимодействие – става значително по-лесно две или повече системи да обменят информация и да използват обменената информация;

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

3.1Клиент/сървър модел


Моделът клиент/сървър е основата на днешните разпределени системи. Той е отговор на ограниченията, типични за традиционния модел на централизирани ресурси, където главният компютър предоставя достъп до бази от данни чрез множество терминали. Клиент/сървър моделът е отговор и на архитектурата на файловите сървъри в локални мрежи, където системи комуникират с файл сървър, неразполагащ с мощен процесор.

Архитектурата клиент/сървър има три основни компонента: клиент, сървър и връзката помежду им.



Клиент: Клиентът е програмата, очакваща да получи услуга от друга програма (сървър). Той взаимодейства с потребителя чрез клавиатурата, дисплея или друго входно/изходно устройство. Клиентът няма директни отговорности към достъпа до данните. Той само изпраща заявки до сървъра и показва върнатите резултати на екрана. Ето защо клиентската машина може да бъде оптимизирана за своята работа. Например, тя няма да има нужда от голямо дисково пространство, за чиято сметка може да се подобрят възможностите на графичните устройства. Клиентската програма извършва следните действия:

  • управление на потребителския графичен интерфейс;

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

  • проверка на въведените от потребителя данни;

  • изпращане на заявките към сървъра;

  • визуализиране на получените данни;

  • други процедури (понякога изпълнява бизнес логиката).

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

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



Сървър: Сървърът удовлетворява заявките на клиентите, като изпълнява необходимите задачи. Той осъществява приемането на клиентските заявки, обработката им (извличане на данни от база данните, изменение на данните в базите, управление на интегритета на данните, обработка на данните) и връщането на отговорите с необходимата информация към клиентите. Понякога сървърите изпълняват и общи или по-специфични задачи на бизнес логиката.

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



Връзката между клиента и сървъра: Клиентът и сървърът могат да се изпълняват на един и същ компютър или на различни компютри, свързани в мрежа. Мрежата прави възможна отдалечената клиент/сървър комуникация.
        • Подмодели на клиент/сървър архитектурата7


Двуслоен клиент/сървър модел: Клиент/сървър архитектурата не винаги се ограничава до комуникацията с единствен сървър. Понякога клиентските заявки се разпределят между много сървъри. Но в най-честия случай, краят на клиент/сървър веригата е сървърът с базите данни, а клиентското приложение се грижи за логиката и графичния интерфейс (фиг. 6.).



  1. Двуслоен клиент/сървър модел

Трислоен клиент/сървър модел: Трислойната архитектура се появява, за да се преодолеят ограниченията на двуслойния модел. Тя добавя трети слой между потребителската среда и сървъра с базите данни. Съществуват множество от варианти за реализирането на междинния слой: контрол на изпълнението на транзакциите, сървъри за съобщения и сървъри за приложения. Средният слой може да извършва буфериране на клиентските заявки, изпълнение на приложения, операции с бази от данни. В добавка на това, средният слой може да разпределя по време и приоритет заявките. Клиентът може да остави заявката си на средния слой, който да извърши всичко необходимо по изпълнението и връщането на резултата (фиг. 7.). При много голям брой потребители, работещи с даден сървър, трислойният модел дава по-добри резултати от двуслойния.



  1. Трислоен клиент/сървър модел
        • "Дебели" и "тънки" клиенти


В зависимост от това, каква част от дейностите при работата на разпределеното приложение са възложени на клиентската програма, клиентите могат да бъдат класифицирани като "тънки" и "дебели". Това разпределение зависи от архитектурата на системата. До голяма степен определя нейните свойства. За онагледяване на идеята, ще разгледаме случая при широко разпространените системи с бази данни.
"Дебел" клиент: Архитектурата на система с "дебели" клиенти е показана на фиг. 8.8. Данните се разполагат на файловия сървър. Системата за управление на базата данни (СУБД) се разполага на всеки клиентски компютър (работна станция). Синхронизацията на четенето и записа се осъществява чрез файлови блокировки. При този вид достъп имаме ниско натоварване на процесора на файловия сървър за сметка на високо натоварване на мрежата, затруднено (дори невъзможно) централизирано управление и осигуряване на надеждност, достъпност и висока безопасност. Затова се прилага най-вече в локални приложения с ниска интензивност на обработка на данните.



  1. Архитектура с "дебели" клиенти

Цялата обработка на данните се извършва на компютъра, който е изпратил заявката за данни, т.е. клиентът осъществява представянето на данните, обработката на данните и голяма част от съхраняването на данните. Файловият сървър просто управлява операциите с файловете и е споделен с всеки от клиентите, свързани към сървъра. До голяма степен файловият сървър играе ролята на допълнителен твърд диск за всеки от клиентите. От сървъра към клиента се изпращат цели файлове за обработка. Тъй като повечето задачи за получаването на необходимите данни се осъществяват от клиента, то той се нарича "дебел" клиент.

Проблеми:



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

  • СУБД се изпълнява на клиентската машина и всеки клиент има правото да я използва. Така се получава, че има една база данни и много конкурентно работещи копия на СУБД (по една на всеки активен компютър). Клиентските компютри имат нужда от много ресурси;

  • Локалните копия на СУБД, инсталирани на клиентските компютри, трябва да управляват интегритета на споделената база данни, напр. клиентските СУБД трябва да се съобразяват със споделените семафори, проверките на интегритета и т.н. Ето защо програмистите трябва да бъдат достатъчно опитни да предвидят различните коварни ситуации, които могат да възникнат в среда на многопотребителски достъп до базата данни, а така също трябва да познават концепциите за конкурентност, възстановяване и защита на данните, и да ги реализират в техните приложения.


"По-тънък" клиент: Архитектурата на система с "по-тънки" клиенти е показана на фиг. 9.. Тя е двуслойна. СУБД се разполага на сървъра заедно с БД и осъществява достъпа до базата в монополен режим. Всички потребителски заявки се обработват централизирано. При тази технология се печели възможност за централизирано управление, осигуряване на надеждност, достъпност и безопасност, но за сметка на повишени изисквания към производителността на сървъра.



  1. Архитектура с "по-тънки" клиенти

Клиентът отговаря за управлението на потребителския интерфейс, контрола на въвежданите данни, обработката на данните, представянето на получените резултати, част от бизнес логиката. Сървърът на базата данни изпълнява съхранението на данните и управлението на достъпа (СУБД се изпълнява само на сървъра).

Предимства:



  • Клиентските компютри не трябва да бъдат толкова мощни, само сървърът на базата данни изисква адекватна изчислителна мощност за да обслужва базата. Следователно сървърът може да бъде настроен за оптимална обработка на данните;

  • Значително намаляване на трафика в мрежата, тъй като към клиента се изпращат само онези записи (вместо таблици), които отгоравят на изискваната заявка;

  • Подобрен интегритет на данните, тъй като операциите са изцяло централизирани;

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

  • Подобрена безопасност, тъй като по мрежата не се предават всички данни.

Недостатъци:

  • Производителността намалява с увеличаването на броя на свързаните клиенти;

  • Лицензионният характер намалява преносимостта.


"Най-тънък" клиент: Архитектурата на система с още "по-тънки" клиенти е показана на фиг. 10.. Реализиран е трислоен клиент/сървър модел. В допълнение на клиента и сървъра на базата данни е добавен още един сървърен слой.

Този допълнителен сървър може да бъде използван за различни цели. Така например често прилагана схема е приложните програми да се намират на допълнителния сървър (приложен сървър). Друга възможност е допълнителният сървър да поддържа локална база данни, като същевременно друг сървър поддържа базата данни на предприятието. При тази схема клиентът само предоставя потребителския интерфейс и осъществява много малко приложна обработка, с ограничено или без съхранение на данни. Често клиентският компютър има доста ограничени ресурси – понякога дори няма твърд диск.





  1. Архитектура с "най-тънки" клиенти

Предимства:

  • Мащабируемост – средният слой може да бъде използван за намаляване на натоварването върху сървъра на базата данни, чрез използване на монитор за обработка на транзакциите за намаляване на броя свързвания към сървъра, а така също може да бъдат добавени допълнителни приложни сървъри за разпределяне на обработката;

  • Технологична гъвкавост – улеснява се евентуалната замяна на СУБД – средният слой може да бъде преместен на различна платформа. Опростеният интерфейс за представяне на данните улеснява прилагането на нови интерфейси;

  • Намаляване на дългосрочните разходи – използването на готови компоненти или услуги при средния слой може да намали разходите, също така разходите могат да бъдат намалени чрез замяна на отделни модули от дадено приложение вместо смяната на цялото приложение;

  • По-добро съответствие на бизнес нуждите – за поддържането на специфични бизнес нужди могат да бъдат създавани нови модули, вместо да се създават по-общи завършени приложения;

  • Подобрено обслужване на потребителите – множеството интерфейси на различните клиенти могат да се използват за достъп до една и съща обработка;

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

Предизвикателства:

  • Високи краткосрочни разходи – представянето на резултатите трябва да бъде разделено от обработката на данните (изисква повече програмиране);

  • Инструменти, обучение и опит – в момента има недостиг на инструменти за разработка, програми за обучение и опитни специалисти в тази област;

  • Несъвместими стандарти – предложени са малко стандарти;

  • Недостиг на съвместими инструменти за крайния потребител – много от инструментите за крайните потребители, като електронни таблици и генератори на отчети, все още не работят с услугите, предоставяни от средния слой (мидълуера).
        • Mидълуер


Mидълуерът (на английски: middleware) е софтуер, който играе ролята на мост между операционната система или база данните от една страна и програмите от друга. Понякога се оприличава на лепило, което свързва клиент/сървърните приложения. Той представлява софтуер, който позволява на дадено приложение да взаимодейства с друг софтуер, без да трябва потребителят да разбира и да кодира необходимите операции от ниско ниво за постигане на взаимодействието.

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



Типове мидълуер:

  • Асинхронно викане на отдалечените процедури (Asynchronous Remote Procedure Calls – RPC) – клиентът извиква процедура, изпълнявана на отдалечен компютър, но не чака за отговора (докато отговорът бъде получен, клиентът осъществява други обработки). Обикновено връзката между клиента и сървъра е от типа "от точка до точка". Ако връзката се разпадне, то клиентът трябва наново да установи връзката и да изпрати заявката. Има висока мащабируемост, но лошо възстановяване, затова масово се замества от синхронното викане на отдалечени процедури;

  • Синхронно викане на отдалечените процедури (Synchronous RPC) – разпределена програма, която използва този тип мидълуер, може да изисква услуги, достъпни на различни компютри. Синхронното викане прави възможно осъществяването на механизма без да се предприема детайлно кодиране, каквото обикновено е необходимо при писането на RPC;

  • Публикуване/Абониране (Publish/Subscribe) – този тип мидълуер следи активността и изпраща информация към абонатите. Той е асинхронен – клиентите (абонатите) изпълняват други дейности между съобщенията от сървъра. Абонатите съобщават на публикуващия модул каква информация искат да получат и когато настъпи събитие, което съдържа такава информация, се изпраща съобщение към съответния абонат, който след това може да избере дали да получи информацията или не. Този тип мидълуер е много полезен за следене на ситуации, при които трябва да бъдат изпълнени определени действия при настъпване на конкретни събития;

  • Мидълуер на базата на съобщения (Message-Oriented Middleware – MOM) – той също е асинхронен. Изпращат се съобщения, които се събират и съхраняват докато не бъдат предприети съответните действия. През това време клиентът продължава с останалите обработки;

  • Брокер на обектни заявки (Object Request Broker – ORB) – този тип мидълуер прави възможно приложенията да изпращат обекти и да изискват услуги в обектно ориентираните системи. ORB брокерът проследява разположението на всички обекти и насочва заявката към изисквания обект;

  • SQL-базиран достъп до данните (SQL-oriented Data Access) – този тип мидълуер осъществява връзката между приложенията и сървърите за база данни. Една от основните задачи е осъществяването на превод от базовия SQL в SQL, специфичен за конкретната база данни.

Каталог: materials
materials -> Исторически преглед на възникването и развитието на ес
materials -> Съюз на математиците в българия-секция русе коледно математическо състезание – 12. 2006 г. 4 клас
materials -> Великденско математическо състезание 12. 04. 2008 г. 2 клас Времето за решаване е 120 минути
materials -> Съюз на математиците в българия-секция русе коледно математическо състезание – 09. 12. 2006г
materials -> Съюз на математиците в българия-секция русе коледно математическо състезание – 12. 2006 г. 8 клас
materials -> Великденско математическо състезание 12. 04. 2008г. 3 клас
materials -> К а т е д р а " информатика"
materials -> Зад. 2 Отг.: 5- 3т Зад. 3 Отг.: (=,-);(+,=);(+,=) по 1т., общо 3т. За
materials -> Іv клас От 1 до 5 зад по 3 точки, от 6 до 10 – по 5 и от 11 до 15 – по 7


Сподели с приятели:
1   2   3   4   5   6   7   8   9   ...   19




©obuch.info 2024
отнасят до администрацията

    Начална страница