
- •Огляд архітектури “клієнт-сервер”
- •1.1.2 Клієнти та сервери локальних мереж.
- •1.1.3 Системна архітектура “клієнт-сервер”
- •1.1.4 Сервери баз даних
- •1.1.5 Принципи взаємодії між клієнтськими й серверними частинами
- •1.1.6 Переваги протоколів віддаленого виклику процедур
- •1.1.7 Типовий поділ функцій між клієнтами й серверами
- •1.1.8 Архітектури процесора бази даних.
- •1.2 Трирівнева архітектура “клієнт-сервер”
- •1.3 Intranet і архітектура “клієнт-сервер”
- •1.3.1 Дворівнева архітектура “клієнт-сервер”
- •1.3.2 Трирівнева архітектура “клієнт-сервер”
- •1.3.3. Програми розширення серверної частини
- •Список використаних джерел
Міністерство освіти і науки, молоді та спорту України
Національний університет «Львівська політехніка»
Інститут комп’ютерних наук та інформаційних технологій
Кафедра ICM
Доповідь
на тему:
«Архітектура WEB-систем»
з курсу «Інформаційні технології комп’ютерних мереж»
Виконав:
студент гр. СШІм-11
Самковський Т. Ю.
Прийняв:
доцент каф. ІСМ
Василюк А. С.
Львів – 2012
Оглавление
1. Огляд архітектури “КЛІЄНТ-СЕРВЕР” 8
Список використаних джерел 23
Спочатку World Wide Web (WWW) представлялася її творцям як «простір для обміну інформацією, в якому люди і комп'ютери можуть спілкуватися між собою» (див. Berners-Lee, T. WWW: Past, present, and future. Computer 29, 10 ( Oct. 1996), pp. 69-77). Тому перші Web-додатки являли собою примітивні файлові сервери, які повертали статичні HTML-сторінки запит їхнім клієнтам. Таким чином, Web починалася як документо-орієнтована мережу.
Наступним етапом розвитку Web стала поява поняття додатків, які базувалися на таких інтерфейсах, як CGI (або FastCGI), а в подальшому - на ISAPI. Common Gateway Interface (CGI) - це стандартний інтерфейс з серверами, що дозволяє виконувати серверні додатки, що викликаються через URL. Вхідний інформацією для таких додатків служило вміст HTTP-заголовка (і тіло запиту при використанні протоколу POST). CGI-додатки генерували HTML-код, який повертався браузеру. Основною проблемою CGI-додатків було те, що при кожному клієнтському запиті сервер виконував CGI-програму в реальному часі, завантажуючи її у окремий адресний простір.
Поява Internet Server API (ISAPI) дозволило не тільки вирішити проблеми продуктивності, які виникали з CGI-додатками, але і надати в розпорядження розробників більш багатий програмний інтерфейс. ISAPI DLL можна було асоціювати з розширеннями імен файлів через спеціальну мета-базу. Ці два механізми (CGI і ISAPI) послужили основою створення першого типу Web-додатків, в яких, в залежності від яких-небудь клієнтських дій, виконувався серверний код. Таким чином, стала можливою динамічна генерація вмісту Web-сторінок і наповнення Web перестало бути суто статичним.
Інтерфейс ISAPI - це особливість Microsoft Internet Information Server (про останній версії цього продукту ви можете прочитати в статті «Internet Information Services 6.0». ISAPI-додатки являють собою динамічні файли бібліотеки (DLL), які виконуються в адресному просторі Web-сервера. Біля інших Web-серверів через деякий час також з'явилася можливість виконувати додатки, реалізовані у вигляді бібліотек. У разі Web-серверів Netscape цей програмний інтерфейс називався NSAPI (Netscape Server API). Біля досить популярного Web-сервера Apache також є можливість виконувати Web-додатки, реалізовані у вигляді бібліотек; такі бібліотеки називаються Apache DSO (Dynamic Shared Objects).
Природно, що при використанні як CGI-, так і ISAPI-додатків розробники в основному вирішували одні й ті ж завдання, тому природним кроком стала поява нового, високорівневого інтерфейсу, який спростив завдання генерації HTML-коду, дозволив звертатися до компонентів і використовувати бази даних . Таким інтерфейсом стала об'єктна модель Active Server Pages (ASP), побудована на основі ISAPI-фільтра.
Основною ідеєю ASP з точки зору створення інтерфейсу додатку є те, що на Web-сторінці присутні фрагменти коду, який інтерпретується Web-сервером і замість якого користувач отримує результат виконання цих фрагментів коду.
Незабаром після появи ASP були створені й інші технології, що реалізують ідею розміщення всередині Web-сторінки коду, виконуваного Web-сервером. Найбільш відома з них на сьогоднішній день - технологія JSP (Java Server Pages), основною ідеєю якої є одноразова компіляція Java-коду (сервлету) при першому зверненні до нього, виконання методів цього сервлету і приміщення результатів виконання цих методів в набір даних, що відправляються в браузер.
Новітня версія технології Active Server Pages - ASP. NET, що є ключовою в архітектурі Microsoft. NET Framework. За допомогою ASP. NET можна створювати Web-додатки та Web-сервіси, які не тільки дозволяють реалізувати динамічну генерацію HTML-сторінок, але і інтегруються з серверними компонентами і можуть використовуватися для вирішення широкого кола бізнес-завдань, що виникають перед розробниками сучасних Web-додатків .
У загальному випадку клієнтом Web-сервера може бути не тільки персональний комп'ютер, оснащений звичайним Web-браузером. Одночасно з широким розповсюдженням мобільних пристроїв з'явилася і проблема надання Web-серверами даних, які можуть бути інтерпретовані цими пристроями. Оскільки мобільні пристрої мають характеристики, відмінними від характеристик персональних комп'ютерів (обмеженим розміром екрану, малим обсягом пам'яті, а нерідко і неможливістю відобразити що-небудь, крім кількох рядків чорно-білого тексту), для них існують і інші протоколи передачі даних (WAP - Wireless Access Protocol) і відповідні мови розмітки (WML - Wireless Markup Language, СHTML - Compact HTML і т.п.). При цьому виникає задача передачі даних на мобільний пристрій у відповідному форматі (і для цієї мети існують спеціальні сайти), або, що представляється більш зручним, відбувається впізнання типу пристрою в момент його звернення до сервера і перетворення вихідного документа (наприклад, у форматі XML) в формат, що потребується даного мобільному пристрою (наприклад, за допомогою XSLT-перетворення).
Іншим способом підтримки різних типів клієнтів є створення «розумних» серверних компонентів, які здатні генерувати різний код в залежності від типу клієнта. Такий підхід, зокрема, реалізований в Microsoft ASP. NET.
Іншим напрямком розвитку клієнтських частин Web-додатків стало розміщення деякої частини логіки додатка (такий як перевірка коректності даних, що вводяться) в самому Web-браузері. Зокрема, сучасні Web-браузери здатні інтерпретувати скриптові мови (VBScript, JavaScript), код на яких, як і ASP-код, впроваджується в Web-сторінку, але інтерпретується не Web-сервером, а браузером і відповідно виконується на клієнтському пристрої. Крім того, сучасні браузери здатні відображати і виконувати Java-аплети - спеціальні Java-додатки, які користувач отримує в складі Web-сторінки, а деякі з браузерів можуть також служити контейнерами для елементів управління ActiveX - виконуються в адресному просторі браузера спеціальних COM-серверів, також одержуваних у складі Web-сторінки. І в Java-аплет, і в елементах управління ActiveX можна реалізувати практично будь-яку функціональність.
Відзначимо, що з ростом обсягу використовуваних даних і числа відвідувачів Web-сайтів зростають і вимоги до надійності, продуктивності і масштабованості Web-додатків. Наступним етапом еволюції подібних додатків стало відділення бізнес-логіки, реалізованої в Web-додатку, а нерідко і сервісів обробки даних і реалізації транзакцій від його інтерфейсу. У цьому випадку в самому Web-додатку зазвичай залишається так звана презентаційна частина, а бізнес-логіка, обробка даних і реалізація транзакцій переносяться в сервер додатків у вигляді бізнес-об'єктів. В залежності від типу сервера додатків подібні бізнес-об'єкти можуть бути виконуються самостійно COM-серверами, CORBA-серверами, а також об'єктами COM +, що виконуються за допомогою служб компонентів Windows 2000, або об'єктами EJB (Enterprise Java Beans), виконуваними сервером додатків, що підтримує специфікацію J2EE (Java 2 Enterprise Edition). В якості механізму доступу до даних подібні об'єкти можуть використовувати OLE DB, ODBC, JDBC (це залежить від того, як реалізований бізнес-об'єкт).
Нерідко подібні бізнес-об'єкти надають доступ до даних корпоративних інформаційних систем або реалізують яку-небудь частину їх функціональності. Нерідко вони дозволяють, наприклад, інтегрувати Web-сайт з CRM-системами (CRM - Customer Relationship Management - програми для автоматизації та підвищення ефективності процесів, спрямованих на взаємовідносини з клієнтами, таких як обробка замовлень, маркетинг, обслуговування) або з ERP-системами ( ERP - Enterprise Resource Planning - програми для автоматизації управління внутрішньогосподарськими процесами підприємства, такими як виробництво, фінанси, постачання, управління персоналом та ін), зберігаючи в корпоративних системах відомості про відвідувачів сайту і надаючи потенційним клієнтам відомості про наявну продукції для здійснення замовлень.
Оскільки сучасний Internet - це не стільки засіб демонстрації присутності компанії на ринку або інструмент маркетингу, скільки інструмент ведення бізнесу, досить важливими стають завдання реалізації організації через Internet таких взаємовідносин з клієнтами, як продаж товарів і послуг. І тут досить важливими стають рішення для електронної комерції типу «підприємство-клієнт» (B2C - business-to-consumer). Не менш важливими стають і завдання інтеграції Web-додатків c даними і додатками партнерів з метою реалізації схеми «підприємство-підприємство» (B2B - business-to-business), що дозволяє укладати торговельні угоди між підприємствами, обмінюватися каталогами товарів, проводити аукціони, створювати електронні торгові майданчики.
Відзначимо, що, будучи складовою частиною подібного рішення, Web-сервер повинен вміти не тільки виконувати додатки і взаємодіяти з сервером додатків, але і використовувати сервіси інтеграції, сервіси управління програмами та даними, а також сервіси для розробників.
Наступним кроком еволюції Web-додатків, крім доступу до корпоративних даних і даними партнерів, стало отримання доступу до корпоративних додатків. Для вирішення цього завдання інтеграції Web-додатків з внутрішніми інформаційними системами підприємств і з додатками, що забезпечують взаємодію з клієнтами і партнерами, використовуються спеціальні рішення, звані корпоративними.
Нерідко частиною портального рішення є засоби управління інформаційним наповненням Web-сайту - адже обсяг даних, доступних користувачам за допомогою сайтів крупних компаній і порталів, зараз такий, що управління цими даними «вручну» не представляється можливим. Докладніше про управління інформаційним наповненням і засоби, за допомогою яких воно здійснюється, ви зможете прочитати в статті «Управління інформаційним наповненням Web-сайтів».
Рішення багатьох описаних вище завдань, що виникають при створенні сучасних Web-додатків, тепер починає покладатися на Web-сервіси - не залежні від платформи, об'єктної моделі і клієнта програмні компоненти, які можна викликати з клієнтських Web-додатків (а також з самих Web-сервісів ) через заснований на протоколі HTTP і мову XML протокол SOAP. Для опису Web-сервісів використовується XML-подібна мова WSDL, а для організації реєстрів Web-сервісів, в яких розробники і компанії можуть шукати необхідні їм сервіси, а також публікувати дані про свої сервісах - інтерфейс UDDI.
Огляд архітектури “клієнт-сервер”
Подібно до систем баз даних архітектура “клієнт-сервер” цікава й актуальна головним чином тому, що забезпечує просте й відносно дешеве рішення проблеми колективного доступу до баз даних у локальній мережі.
Використання архітектури “клієнт-сервер” може зацікавити у випадку, коли Ви відповідаєте за розробку програми, яка постійно звертається до даних у локальній мережі або до файлового сервера. До цього програмного забезпечення можуть звертатись декілька користувачів, а з часом й інші програми які будуть обробляти ці дані деяким чином.
Реальне поширення архітектури “клієнт-сервер” стало можливим завдяки розвитку й широкому впровадженню в практику концепції відкритих систем. Тому ми почнемо з короткого введення про них.
Основним змістом підходу відкритих систем є спрощення комплексування обчислювальних систем за рахунок міжнародної й національної стандартизації апаратних і програмних інтерфейсів. Головною причиною розвитку концепції відкритих систем – це перехід до використання локальних комп'ютерних мереж і ті проблеми комплексування апаратно-програмних засобів, які викликав цей перехід. У зв'язку з бурхливим розвитком технологій глобальних комунікацій відкриті системи здобувають ще більше значення й масштабність.
Ключовою фразою відкритих систем, спрямованої убік користувачів, є незалежність від конкретного постачальника. Орієнтуючись на продукцію компаній, що дотримуються стандартів відкритих систем, споживач, що здобуває будь-який продукт такої компанії, не попадає до неї в рабство. Він може продовжити нарощування потужності своєї системи шляхом придбання продуктів будь-якої іншої компанії, що дотримує стандарти. Причому це стосується як апаратних, так і програмних засобів.
Практичною опорою системних і прикладних програмних засобів відкритих систем є стандартизована операційна система. У цей час такою системою є UNIX. Фірмам-постачальникам різних варіантів ОС UNIX у результаті тривалої роботи вдалося прийти до угоди про основні стандарти цієї операційної системи. Зараз всі розповсюджені версії UNIX в основному сумісні по частині інтерфейсів, наданих прикладним (а в більшості випадків і системним) програмістам. Як здається, незважаючи на появу системи, що претендує на стандарт, Windows NT, саме UNIX залишиться основою відкритих систем у найближчі роки.
Технології й стандарти відкритих систем забезпечують реальну й перевірену практикою можливість виробництва системних і прикладних програмних засобів із властивостями мобільності (portability) та інтероперабельності (interoperability). Властивість мобільності означає порівняльну простоту переносу програмної системи в широкому спектрі апаратно-програмних засобів, що відповідають стандартам. Інтероперабельність означає спрощення комплексування нових програмних систем на основі використання готових компонентів із стандартними інтерфейсами.
Перевагою для користувачів є те, що вони можуть поступово заміняти компоненти системи на їх нові версії, не втрачаючи працездатності системи. Зокрема, у цьому криється рішення проблеми поступового нарощування обчислювальних, інформаційних й інших потужностей комп'ютерної системи.