Тема 7

Технологія 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-технологію (технологію просування контенту).