Технологія
RICH INTERNET APPLICATIONS
Нині
у сфері створення Internet-прикладних програм визначилася тенденція до переходу
від стандартних технологій до платформ, які дозволяють запускати в середовищі
Web-браузера програми, які за зовнішнім виглядом і поведінкою не відрізняються
від настільних (desktop) програм. Такий вид програмних продуктів називають Rich
Internet Applications (RIA). Незважаючи на те, що деякі з технологій RIA
використовують досить давно (з кінця 90-х років), найбільшого поширення вони
набули останнім часом.
Зазвичай RIA прикладна програма:
·
передає
Web-клієнтові необхідну частину призначеного для користувача інтерфейсу,
залишаючи велику частину даних (ресурси програми, дані, тощо) на сервері;
·
запускається
у браузері й не вимагає установки додаткового програмно-го забезпечення;
·
запускається
локально в середовищі обчислювального процесу, в якому гарантовано безпеку,
названого «пісочниця» (sandbox).
· За
допомогою діаграми Венна (рис. 46) продемонстровано можливі області
застосування RIA як технології побудови програмних систем.
Рисунок 46 – Можливі
області застосування RIA як технології побудови програмних систем
Традиційні
Web-прикладні програми переважно працюють на сервері – у клієнтській
програмі-браузері (Internet Explorer, Firefox або Opera) відображається
контент, написаний мовою розмітки HTML. Згідно з цим підходом традиційні
Web-прикладні програми мають такі недоліки у процесі функціонування: мають
обмежений рівень інтерактивності; постійно взаємодіють із сервером – надсилають
на нього дані, отримують відповіді й завантажують нові сторінки.
У RIA значну частину функціонала
винесено у клієнтську частину, тобто низка функцій виконується на стороні
клієнта (у тому ж браузері, але з вико-ристанням плагинів і/або технології
Ajax), що дозволяє отримати прикладну програму, яка має такі переваги: працює
швидше за рахунок меншої кількості звертань до сервера і того, що немає
перевантажень сторінок; забезпечує близький до традиційних настільних
прикладних програм рівень інтерактив-ності та зручності інтерфейсу (наприклад,
drag&drop).
Розглянемо
архітектурні особливості побудови RIA–прикладних програм. Порівняння принципів
роботи Web-прикладної програми і RIA-прикладної програми (рис. 47).
Рисунок 47 – Принципи роботи традиційної Web-прикладної
програми і RIA-прикладної програми
Товстий
клієнт – це високопродуктивна інтерактивна прикладна
про-грама з багатим, призначеним для користувача, інтерфейсом, яка працює в
різних сценаріях незалежно від наявності Internet.
Зазвичай архітектуру розглядають за такими компонентами
(рис. 48):
·
рівень подання – відповідає за
взаємодію прикладної програми з користувачем, формує і перевіряє введені
користувачем дані;
·
рівень бізнес-логіки – охоплює
бізнес-потоки й логіку, які власне і керують прикладною програмою; також на
цьому рівні перебувають бізнес-сутності, тобто елементи, якими обмінюються
компоненти логіки;
·
рівень даних – містить моделі
та провайдери, які дозволяють отримувати дані.
Рисунок
48 – Архітектура товстого клієнта
Internet-прикладні програми RIA
виконуються в «пісочниці» браузера.
Архітектура Web-сервера має такі
компоненти (рис. 49):
·
рівень сервісів надає
інтерфейси для клієнтської частини для взаємодії
·
рівнем логіки;
·
рівень бізнес-логіки
ідентичний рівню логіки товстого клієнта;
·
рівень даних ідентичний рівню
даних товстого клієнта.
Рисунок
49 – Архітектура RIA-прикладної програми
Порівняння архітектури
програмного забезпечення за технологією товстого клієнта й архітектури
RIA-прикладної програми (табл. 3).
Таблиця
3 – Порівняння архітектури програмного забезпечення за
технологією товстого клієнта й архітектури RIA-прикладної програми
Архітектура |
|
Переваги |
|
Проблеми |
|
Товстий клієнт |
1. Може витрачати клієнтські ресурси; 2. інтерактивність, багатий
призначений для користувача функціонал; 3. висока здатність до реагування; 4. підтримка роботи без мережі. |
1.Вимагає
установки (Click Once, Windows Installer, Copy); 2.контроль
версій неефективний або відсутній; 3. залежність від платформи |
|
||
RIA |
1.Такий
самий багатий, призначений для користувача, інтерфейс, як і у технології
товстого клієнта; 2.
підтримка 3D і медіа високої якості; 3.
простий спосіб поширення; 4.
простий механізм контролю версій; 5.
крос-платформність і крос- браузерність. |
1. Невеликий розмір прикладних
програм; 2. обмеження щодо використання
клієнтських ресурсів; 3. вимагає встановленого плагіна для
браузера. |
|
Узагальнюючи,
зауважимо, що RIA-прикладні програми залучили:
від товстого клієнта:
1. надання користувачеві
інтерактивного інтерфейсу;
·
швидкий час відгуку інтерфейсу
без оновлення сторінки;
·
звичні засоби призначеного для
користувача інтерфейсу, зокрема drag&drop і можливість роботи в режимі
онлайн та офлайн;
2. від
Internet-прикладної програми:
·
швидке розгортання;
·
крос-платформність;
·
використання прогресивного
завантаження для отримання інформації і даних;
·
використання більшості
Internet-стандартів;
3. від засобів передачі
даних:
· інтерактивні аудіо- і
відеотехнології.
Розглянемо
технології створення RIA-прикладних програм, які використовують на сьогодні.
Технології
Adobe. Фірма Adobe послідовно просуває свої RIA-технології на основі
Flash-платформи і надає повний стек рішень та інстру-ментів для створення
візуальної та медійної складових, а також серверних рішень. Flash-плеєр
доступний на всіх основних платформах і в усіх основ-них браузерах. Окрім того,
наявна версія для мобільних пристроїв. Стек тех-нологій Adobe для створення
RIA-прикладних програм виглядає (рис. 50).
Adobe
Flash. Adobe Flash (раніше відома як Macromedia Flash) – мультимедійна
платформа, використовувана для створення векторної анімації та інтерактивних
прикладних програм (у тому числі, ігор), а також для інте - грації відеороликів
у Web-сторінки.
Adobe
Flash дозволяє працювати з векторною, растровою та обмежено з тривимірною
графікою, а також підтримує двонаправлену потокову трансляцію аудіо і відео.
Для кишенькових персональних комп’ютерів (КПК) й ін-ших мобільних пристроїв
випущена спеціальна полегшена версія платформи Flash Lite, функціональність
якої обмежена з погляду можливостей мобільних операційних систем і їх апаратних
характеристик.
Рисунок
50 – Стек технологій Adobe для створення RIA-прикладних
програм
Adobe
Flex. Adobe Flex також дозволяє розробляти прикладні програми на базі Flash-платформи,
але без використання часової шкали, замість якої пропонується мова розмітки
MXML, що дає можливість у декларативній формі задавати зміни станів і переходи
між ними. Adobe Flex призначено виключно для розробників, оскільки з його
допомогою створюють складні Internet-прикладні програми для бізнес-завдань і
для щоденного застосування. Уся розробка у Flex орієнтована на використання
готового набору розширюваних компонентів, що підходять майже для всіх завдань.
Таблиці стилів CSS дозволяє гнучко настроювати зовнішній вигляд як окремих
компонентів, так і всієї прикладної програми. Зв’язування даних допомагає
відображу-вати змінену інформацію фактично без єдиного рядка коду.
Flex-прикладна
програма може компілюватися на сервері (для цього буде потрібно mod_flex.so
або mod_flex.dll залежно від ОС і Web-сервера) або з IDE, або
безпосередньо з командного рядка за допомогою компілятора mxmlc (починаючи з
Flex 2). Як і у Flash, результатом є файл swf, виконуваний у Flash Player.
Принцип роботи Flex (рис. 51).
Flex
– це великий набір класів (Flex SDK), що містить багато
компонентів, які не увійшли у Flash. Позитивні якості Flex зумовлені його
специ-фікою, зокрема мовою MXML, наприклад, Flex-компоненти для побудови
графіків є зручними і виглядають дуже прийнятно для використання у стилі «як
є».
Рисунок
51 – Принцип роботи Flex
Adobe
Air. Adobe Air (Adobe Integrated Runtime) дозволяє запускати Web-прикладні
програми на основі як HTML, так і Flash-платформи з можливістю перегляду
PDF-документів на «робочому столі» персонального комп’ютера. Таким чином,
розробники Web-орієнтованого програмного забезпечення можуть створювати
настільні прикладні програми, використовуючи вже наявні типові шаблони
прикладних компонентів. Adobe AIR надає низку можливостей щодо інтеграції з
операційною системою: вікна, доступ до файлової системи, захищене локальне
сховище, локальну базу даних і технологію перетягання об’єктів (drag&drop).
AIR-прикладні програми можуть встановлюватися прямо з Internet. Архітектуру
платформи AIR (рис. 52).
Технологія Ajax. Ajax є
поєднанням технологій, в основі яких лежать мова JavaScript і об’єкт
XMLHttpRequest, завдяки чому прикладні програми можуть отримувати дані з
сервера і відображати їх без перезавантаження сторінки. Формально Ajax не є
RIA-технологією, оскільки не інтегрує в собі медіа можливостей, не має
стандартних засобів промальовування векторної графіки, а JavaScript по-різному
виконується в різних браузерах.
Ці проблеми намагаються
вирішити за допомогою Ajax-бібліотек, але вони ґрунтуються на гібридних
технологіях (наприклад, використання Flash для відео). Для подолання проблеми
крос-браузерності також знайдено рішення, але вона знову може виникнути у разі
виходу нових версій браузерів.
Рисунок
52 – Архітектура платформи AIR
Нині є безліч
Ajax-бібліотек, що мають свої особливості й сфери застосування, проте немає
єдиного стандарту, тому, переходячи з однієї бібліотеки на другу розробник
вимушений повторно вивчати документацію.
Використання
Ajax дозволяє суттєво збагатити традиційні Web-сторінки і зробити користування
ними дуже комфортним. Застосовувати Ajax, створюючи сайти-презентації та
Internet-прикладні програми, які максимально наближені до рівня настільних
прикладних програм, є недоцільним.
Основні
переваги технології Ajax такі:
·
наявна в будь-якому браузері;
·
проста в освоєнні;
·
швидкий цикл розробки;
·
розвинений інструментарій;
·
розвинене співтовариство.
Основні недоліки технології Ajax такі:
·
іноді наявна крос-браузерна
несумісність;
·
складно/дорого розробляти
великі прикладні програми;
·
складно налагоджувати, дорого
підтримувати;
·
низька продуктивність.
Технології
Microsoft. Корпорація Microsoft враховуючи актуальність RIA-технологій пропонує
розробникам низку засобів створення насичених Internet-прикладних програм.
ActiveX.
Технологія ActiveX – засіб, за допомогою якого Internet
Explorer (IE) використовує інші прикладні програми всередині себе,
завантажує Windows Media Player, Flash, Quicktime та інше прикладне програмне
забезпечення, яке може відтворювати файли, вбудовані у web-сторінки. Елементи
керування ActiveX активізуються, якщо клацнути по такому об’єкту на
web-сторінці, наприклад, WMV-файлу, щоб завантажити його для відображення у
вікні браузера IE.
Як
продукт Microsoft ActiveX була спеціально спроектована для роботи із системами
Windows, тому не підтримується іншими операційними системами, такими як Mac або
Linux.
Firefox
та інші крос-платформні браузери використовують систему «Програмний інтерфейс
модулів Netscape» (Netscape Plugin Application Program-ming Interface, NPAPI),
яка під’єднується та виконує функції, подібні до ActiveX.
Керівні
елементи ActiveX – еквівалент модулів NPAPI, проте ActiveX і технологія модулів
типу NPAPI відмінні. Наприклад, за допомогою надбудови ActiveX можна завдати
шкоди комп’ютеру, модулі NPAPI мають кращі функції безпеки, менше контролюють
web-сторінку, в яку вони вбудовані, та не можуть використовуватися у прикладних
програмах, відмінних від web-браузеру. ActiveX має ширше застосування для
великої кількості прикладних програм.
Як технологія для RIA технологія ActiveX має
низку суттєвих недоліків:
·
платформа тільки IE і Windows;
·
нетривіальна у розробці та
відладці;
·
великий період освоєння
технології;
·
є деякі проблеми з безпекою.
Основною перевагою
технології ActiveX для RIA є те, що вона дозволяє вбудовувати компоненти в
різні системи без додаткового програмування.
Технологія
WPF. Windows Presentation Foundation (WPF, кодова назва Avalon) – графічна
(презентаційна) підсистема у складі .NET Framework 3.0, що використовує мову
програмування XAML (Extensible Application Markup Language), яка дозволяє
створювати широкий спектр програмних мультимедіа інтерфейсів. Технологія WPF
разом з .NET Framework 3.0 працює у Windows Vista і Windows 7, а також їх можна
установити у Windows XP SP2 і Windows Server 2003 і 2008.
Технологічне
середовище у складі WPF і .NET Framework 3.0 призначено для користувача
інтерфейсу, містить нове ядро, яке має замінити GDI і GDI+, використовувані в
нинішній Windows-платформі. Технологія WPF є високорівневим
об’єктно-орієнтованим функціональним шаром (framework), що дозволяє створювати
2D- і 3D-інтерфейси, у майбутньому має об’єднати Windows і Web-розробку (в тому
числі, AJAX), для подання на інтерфейсі користувача використовує не GDI+, а
DirectX, підтримує теми і нестандартні для WinForms контроли, її продуктивність
вища, ніж у GDI+ за рахунок ви-користання відеокарти.
Технологія
Silverlight. Microsoft Silverlight надає графічну систему, схожу на Windows
Presentation Foundation, і об’єднує мультимедіа, графіку, анімацію та
інтерактивність в одній програмній платформі. Технологію було розроблено, щоб
працювати з мовою розмітки сторінок XAML, що використовує векторну графіку й
анімацію, а також із мовами Microsoft .NET. Текст, що міститься в
Silverlight-прикладних програмах, доступний для пошукових систем у вигляді
XAML, оскільки він не компілюється. Технологію Silverlight також можна
використовувати для того, щоб створювати widget для Windows Sidebar у
операційній системі Windows.
Технологія
Silverlight дозволяє створювати плагіни для браузера, що запускають прикладні
програми, які містять анімацію, векторну графіку та аудіо-, відеоролики, що
характерно для RIA. Версія Silverlight 2.0 додала підтримку для мов .NET й
інтеграцію з IDE, наступні версії (Silverlight 3, майбутня Silverlight 4)
матимуть більш потужні функціональні можливості.
Silverlight
підтримує відтворення WMV, WMA і MP3 для всіх підтримуваних браузерів, не
вимагаючи додаткових компонентів, зокрема Windows Media Player. Silverlight
дозволяє динамічно завантажувати XML-файли і використо-вувати програмний
інтерфейс для доступу до документів DOM для взаємодії з ними аналогічно до
Ajax; містить об’єкт Downloader, завдяки якому можна завантажувати скрипти,
медіафайли тощо, якщо це необхідно прикладній про-грамі. Починаючи з версії
2.0, логіка програми може бути описана будь-якою з мов .NET, включаючи
динамічні мови програмування Iron Ruby та Iron Python, які, у свою чергу,
виконуються в DLR (Dynamic Library Runtime), а не CLR.
Технології Oracle
(Sun). Розглянемо також RIA-технології компанії Sun Microsystems, яка
входить до складу Oracle Corporation.
Технологія
JavaFX. JavaFX – це платформа для створення RIA, які
можуть запускатися на персональних комп’ютерах і мобільних пристроях. Така
технологія дозволяє створювати прикладні програми для роботи з мульти-медійним
контентом, графічні інтерфейси користувача для бізнес-прикладних програм, ігри
для персональних комп’ютерів і мобільних пристроїв, насичені графікою,
мультимедіа web-сайти тощо.
Прикладна
програма JavaFX створюється за допомогою декларативної мови
програмування JavaFX Script, для розробки якої необхідно використовувати
JavaFX 1.0 SDK (Software Development Kit).
З
коду, написаного мовою JavaFX Script, можна звертатися до будь-яких
бібліотек Java, тому спільне використання мов Java і JavaFX
Script дозволяє вирішувати різноманітні завдання, наприклад, бізнес-логіка
прикладних програм може бути написана на Java, а графічний інтерфейс
користувача на JavaFX Script.
Прикладні
програми, написані мовою Java FX Script, можуть запускатися на комп’ютерах зі
встановленим середовищем виконання Java 1.5 і вище, нині їх виконання
підтримують наступні операційні системи: Windows, Mac OS x, GNU/Linux і
Solaris.
Інші
технології. Наявні інші технології створення RIA-прикладного програмного
забезпечення (рис. 53), однією з яких є Google Gears (модуль розширення для
браузеру), який дозволяє AJAX-прикладним програмам частково усунути
«пісочниці». Основні можливості Google Gears такі:
·
доступність ресурсів offline;
·
локальна SQLite база даних,
синхронізація даних із сервером;
·
асинхронні завдання;
·
вибір декількох файлів для
завантаження;
·
попередній перегляд у
реальному часі картинок;
·
наявність технології
drag&drop.
Рисунок
53 – Компоненти для створення RIA-прикладних
програм
Специфікація HTML 5.0,
що перебуває на стадії розробки, підтримує такі елементи RIA:
·
малювання 2D-картинок у
реальному часі;
·
контроль над програванням
медіафайлів;
·
зберігання даних у браузері;
·
використання технології
drag&drop;
·
роботу з мережею,
push-технологію (технологію просування контенту).