Сервери додатків, мережеві технології
Винесення прикладної логіки в окремий рівень являє розробникам додаткову гнучкість в створенні розподілених інформаційних систем. Розміщення і виконання програм на стороні сервера знижує вимоги до апаратного забезпечення клієнтів і зменшує проблеми забезпечення сумісності в гетерогенної мережевому середовищі.
Сервер додатків - це сервісна програма, яка забезпечує доступ клієнтів до прикладних програм, що виконуються на сервері. Сервер додатків зазвичай виділяється як середня ланка (рис. 1) в трирівневої клієнт-серверній архітектурі (3-tier):
Модель "сервер додатків"
- Перший рівень, інтерфейсний, як правило, графічний (GUI).
- Середній рівень, здійсненний програмний код, розміщений зазвичай на виділеному сервері.
- Третій рівень, фоновий - бази даних. Сюди ж відносяться, успадковані кошти доступу до даних і управління транзакціями.
В мережевому середовищі сервер додатків є посередником між фронт-енд ами клієнтів і серверами баз даних.
- урізана по функціоналу клієнтська частина виходить менш вибагливою до ресурсів;
- для підтримки нових пристроїв потрібно адаптувати тільки фронт-енд, не зачіпаючи прикладну логіку;
- зміни в програмі (розширення функціональності, виправлення помилок і т. п.) виконуються на сервері додатків і поширюються на всіх клієнтів.
Клієнти можуть взаємодіяти з додатками через API сервера (Java-клієнт <—> контейнер сервлетів <—> сервлет). Велику гнучкість і універсальність представляє взаємодію через сторонні сервіси, в першу чергу - через веб-сервер.
Поняття сервера додатків традиційно пов'язують з платформою Java, вказуючи на те, що сервер Java-додатків являє реалізацію специфікації сервлетів, можливо у вигляді JSP, і ще деякі сервісні послуги, в першу чергу з'єднання з базою даних.
Але це щось більше і менше одночасно: сервер додатків надає середовище, в якому прикладні програми можуть працювати, незалежно від того, що і як саме вони роблять.
- Надає модель контейнера для додатків.
- Надає сервісні послуги для програм.
- Забезпечує управління додатками і / або представляє засоби їх розробки.
- Відповідає індустріальним специфікаціям і стандартам.
- Додамо сюди ж обслуговування веб-сторінок, через реальну затребуваність технологій на основі WWW.
реалізації
успадковані рішення
Сервери терміналів представляють середу для віддаленого виконання програм, в якості якої виступає сама операційна система. Доступ до них здійснюється за протоколами віддаленого управління (telnet, ssh, RDP, VNC і т. П.) З клієнтського ПЗ (емулятор терміналу, засоби управління віддаленим робочим столом і т.п.). Управління запущеною програмою виконується через емульований на клієнті призначений для користувача інтерфейс (текстовий або графічний) операційної системи. На серверній стороні взаємодія програм з ОС реалізується через системні виклики. Управління також здійснюється засобами операційної системи. Розробка може вестися на будь-якій мові, доступному в конкретній ОС.
Загальний шлюзовий інтерфейс (CGI) - технологія доступу до додатків через веб-сервер. Відмінності від сервера терміналів тут в тому, що призначений для користувача інтерфейс надається у вигляді веб-сторінок. Запити веб-клієнтів, звернені до програм, розміщених в виділеному каталозі (як правило cgi або cgi-bin) перенаправляються на їх вхід через стандартний потік введення (stdin). Результати виконання у вигляді гіпертексту додаток повертає веб-сервера через stdout.
Сервери Java-додатків
Платформа Java є індустріальним стандартом, що дозволяє створювати з уніфікованих компонентів інтероперабельні програмні рішення для самих різних систем, в яких може бути запущена віртуальна машина Java (JVM).
Концепція сервлет-контейнера дозволяє створювати як універсальні, так і спеціалізовані сервери додатків (наприклад, для мобільних сервісів).
Прикладом реалізації контейнера сервлетів є Apache TomCat, який використовується в таких серверах додатків як Apache Geronimo, JBoss, GlassFish, IBM WebSphere Application Server (WAS).
інші рішення
Компанія Microsoft представляє власні рішення для підтримки бізнес-логіки і сервісної інфраструктури на основі ОС Windows Server і технології .NET Framework. Основним засобом розробки є мова C #.
Мова python, який отримав популярність багато в чому завдяки Google, є основним засобом розробки для сервера веб-додатків Zope.
Для сценаріїв на мові PHP, широко використовується для створення веб-сайтів, компанія Zend Technologies (розробник самої мови PHP) створила сервер додатків Zend Server.
Сервери додатків: плюси і мінуси
переваги
Цілісність коду і даних
Розміщення бізнес-логіки на виділеному сервері або обмеженому числі серверних комп'ютерів гарантує доступ до оновленого і модернізованому ПО для всіх клієнтів. Це виключає ризик доступу і управління даними з застарілих і, можливо, несумісних програм.
Зміни в конфігурації прикладних програм, такі як, наприклад, зміна сервера баз даних, виконуються централізовано.
Централізовані кошти, через які постачальник послуг (сервіс-провайдер) може керувати доступом до даних і компонентів програми, дозволяють виконувати перевірку автентичності потенційно ненадійних клієнтів в середньому шарі і не зачіпати рівень бази даних.
Сервер додатків може вирішувати завдання балансування мережевого трафіку і розподілу навантаження між іншими фізичними серверами системи.
Загальна вартість володіння
Сукупність перерахованих вище переваг, а на додаток до них перерозподіл витрат на обладнання з клієнтської на серверну сторону, може привести до економії коштів для організації. Так само на зниженні загальної вартості володіння може відбитися практика оренди програмного забезпечення. Справедливості заради потрібно відзначити, що вартість самого серверного ПО, а також витрати на його впровадження і супровід можуть бути досить високими.
недоліки
Системи, побудовані на основі сервера додатків, мають один основний недолік, властивий всім централізованим рішенням - «падіння» сервера призведе до недоступності програм для всіх клієнтів. До того ж ефекту призведуть і неполадки в мережевому підключенні.
Ця проблема, в принципі, актуальна для будь-яких мережевих рішень, що використовують для передачі даних інфраструктуру публічних мереж.