В даний час розробник корпоративних додатків відчуває тиск як з боку користувачів, так і з боку фахівців, коли мова заходить про користувальницьких інтерфейсів. В одному таборі знаходяться бізнес-підрозділи, що представляють користувачів. Вони хочуть, щоб їх застосування мали багатий користувальницький інтерфейс, що сприяє збільшенню продуктивності праці користувачів. Представники цієї групи вважають за краще, щоб все їх застосування вели себе як Microsoft Excel або інші подібні програми, що встановлюються на клієнтах. Вони бажають, щоб програми забезпечували їм миттєве час відгуку. За наявності кількох уявлень одних і тих же даних (наприклад таблиця і графік), і одне з них змінюється, вони хочуть, щоб і інше відображається уявлення миттєво відображало б зміни.
Представники ж IT-фахівців люблять чисту, сервер-засновану модель доставки. Визнаючи, що працювати користувачам з HTML менш зручно, ніж з рідним інтерфейсом операційної системи, вони вважають вартість установки, настройки і управління кодом на клієнтських машинах занадто високою, незважаючи на більш зручну роботу для користувачів, яку дає це рішення.
Так що ж робити бідним корпоративним розробникам? Його користувачі не хочуть втрачати продуктивність через многосекундних затримок відгуку від сервера, а групи IT-фахівців не хочуть повертатися до старих способів розгортання та керування кодом на клієнтських машинах. Як примирити ці, здавалося б, суперечать один одному вимоги таким чином, щоб обидва табори залишилися задоволені?
На щастя, існують технології, що дозволяють вам досягти зручності користувача при роботі з функціями, що перевищують можливості звичайного браузера, і при цьому не вимагають від вас ручної установки коду на клієнтських машинах. Додатки, що створюються за допомогою цих технологій, іноді називають додатками Web 2.0. У своїй статті, "Що таке Web 2.0? Конструктивні шаблони і бізнес-моделі наступного покоління ПО" (див. Ресурси), Тім О'Рейлі заявляє:
Ми вступаємо в безпрецедентний період інновацій в області користувальницького інтерфейсу, так як Web-розробники нарешті отримали можливість створювати Web-додатки, так само багаті функціонально, як і локальні PC-додатки.
Додатки Web 2.0 беруть все найкраще з обох світів: економічно ефективна сервер-заснована модель розгортання поєднується з високим зручністю роботи користувачів, в основному порівнянної з комфортністю роботи у встановлених на клієнті додатках.
Нижче перераховані різні технології, які ви можете вибрати для створення привабливого і зручною для користувачів середовища в сьогоднішніх додатках Java EE:
- Flex і OpenLaszlo
- IBM® Workplace ™ Managed Client і IBM Lotus® Expeditor
- Faces Client Components
- Ajax
- HTML
Flex і OpenLaszlo
Flex і OpenLaszlo - схожі декларативні походи до створення перевищують можливості браузерів інтерфейсів для додатків Java EE. Flex пропонується Adobe / Macromedia, а OpenLaszlo - ПЗ з відкритим вихідним кодом, спочатку створене Laszlo Systems Inc. В обох середовищах для проектування і створення призначеного для користувача інтерфейсу ви використовуєте унікальну, прив'язану до конкретної технології граматику на основі XML.
Наприклад, щоб використовувати кнопку у Flex, ви можете написати наступний код на MXML (Multimedia XML):
А в OpenLaszlo ви пишете наступне на LZX (LasZlo XML):
Хоча обидві технології багато в чому схожі, є і ключова відмінність - їм потрібна різна інфраструктура виконання. Щоб клієнт обмінявся даними з сервером, для Flex необхідний Flex Data Services Server, який встановлює зв'язок з клієнтом, які працюють в плагін Flash Player. Сервер в значній мірі служить посередником для будь-якого обміну даними між клієнтом і серверним компонентом програми.
В останній версії OpenLaszlo є деякі зміни в області виконання, які можуть зробити її більш привабливою для розробників. Одним із змін є те, що в Версії 3 з'явився режим розгортання SOLO, що виключає необхідність в Laszlo Presentation Server в деяких конфігураціях. Ще одне важливе вдосконалення - це середовище виконання клієнта. Новітній реліз, OpenLazlo 4 (в даний час бета-версія), дозволяє заснованим на Laszlo додаткам виконуватися без плагіна Adobe / Macromedia Flash Player. Багатьом компаніям, стурбованим тим, що їм доводиться використовувати пропріетарний плагін начебто Flash Player, це зміна припаде до смаку.
Як визначити, що краще для вашої організації? У разі Flex, ключовою перевагою є те, що ви маєте повну підтримку від Adobe / Macromedia, але ви понесете витрати на придбання ліцензії на Flex Data Services Server. Для деяких компаній вартість ліцензії не так важлива, як повна підтримка продукту. Додатків Adobe Flex 2 також потрібно плагін Flash Player V9. Незважаючи на те, що Flex може допомогти створити привабливу для користувача середу, його вартість, а також той факт, що йому потрібно плагін, може відлякати деякі компанії.
IBM Workplace Managed Client і Lotus Expeditor
І IBM Workplace Managed Client, і Lotus Expeditor побудовані на основі відкритого коду EclipseRPC. В основі технології EclipseRPC лежить робоче середовище інструментів розробки Eclipse, загальна платформа, керована і контрольована eclipse.org. Якщо відповідно до вашого бізнес-вимогами необхідні від'єднаний операції і ви можете встановлювати компоненти на клієнтській машині, Workplace Managed Client та / або Lotus Expeditor - найкращі технології для створення і розгортання додатків.
IBM Workplace Managed Client є компонентом сімейства продуктів IBM Workplace. Воно об'єднує різні сервіси для спільної роботи в одну інтегровану середу, або середу робочого столу. У ній є такі можливості як управління документообігом, робота з повідомленнями (в тому числі і миттєвими), Web-браузінг, прямий інтерфейс до Notes® 7, eLearning, підтримка team spaces, Web-конференції, а також функція activity explorer для відстеження потоків, пов'язаними з робочими завданнями. Lotus Expeditor надає розширену клієнтську платформу, що підтримує корпоративні додатки, транзакції, управління пристроями і Web-сервіси. Є багато причин вибрати Workplace Managed Client або Lotus Expeditor. Workplace Managed Client зазвичай є кращим вибором в тому випадку, якщо ваш додаток за своєю природою коллаборатівного. Якщо ж додаток більше призначено для роботи з транзакціями, зазвичай рекомендують Lotus Expeditor.
І Workplace Managed Client, і Lotus Expeditor дозволяють розробникам створювати розширені клієнтські програми, що встановлюються на клієнтській машині, а також додавати в них підтримку від'єднаний операцій. Оскільки додаток встановлюється на клієнті, клієнт може найбільш повним чином використовувати потужності робочої станції, на якій він працює, що дозволяє вам створювати привабливу і зручне середовище для користувачів. Загальна і для Workplace Managed Client, і для Lotus Expeditor основа Eclipse надає незалежну від ОС платформу, яка приховує від вас нюанси операційної системи, в той же час застосовуючи рідні служби ОС, де це можливо. Це дозволяє вам розробляти загальний основний Java-код, що виконується і в Linux ™, і в Windows ™, а в майбутньому і на Macintosh.
Щоб отримати максимальну вигоду від цієї технології, вам потрібно проектувати ваші застосування таким чином, щоб задіяти архітектуру плагінів Eclipse. Компоненти для користувача інтерфейсу створюються за допомогою віджетів SWT (Standard Widget Toolkit) або компонентів jFace. SWT - це набір віджетів і графічна бібліотека, інтегрована в рідну віконну систему, але з ОС-незалежним API, а jFace - інструментарій для користувача інтерфейсу, реалізований за допомогою SWT, який спрощує багато типові завдання з програмування користувальницького інтерфейсу. jFace не залежить від віконного менеджера ні в плані API, ні в плані реалізації, і призначається для роботи з SWT, не приховуючи останній. Кінцевим результатом є більш висока інтерактивність і зручність користувача, відчуття нагадують роботу зі знайомими користувачеві додатками операційної системи.
Нарешті, той факт, що заснованими на Workplace Managed Client або Lotus Expeditor додатками можна управляти через сервер, відрізняє їх від рідних Windows-додатків. Ця ключова можливість зводить до мінімуму, якщо повністю не ліквідує всі витрати на системне адміністрування, пов'язане з розміщеним на клієнтах кодом додатків. В результаті, підприємство, розгортає додаток отримує всі переваги володіння розгортається на сервері додатком Java EE, а користувач - зручне в користуванні, "заточене" під конкретну ОС і встановлюється на клієнті додаток; це виграшне рішення для більшості організацій.
Faces Client Components
JavaServer Faces (JSF) - це компонент Java EE 1.4, спочатку розробляється як JSR 127. Ключовою метою даної технології було знизити рівень кваліфікації Java-розробників, необхідний для розробки призначених для користувача інтерфейсів для своїх додатків Java EE. Так як JSF є робочим середовищем, в ній є багато готових можливостей, які в минулому розробникам доводилося програмувати вручну при створенні такого ж інтерфейсу за допомогою JavaServer Pages (JSPs).
Наприклад, припустимо, що у вас є великий набір результатів JDBC ™, який необхідно відобразити для користувача. Робоче середовище JSF надає віджет DataTable, який можна використовувати для відображення даних. Якщо ви вже створили користувальницький інтерфейс за допомогою простих JSP, вам доведеться керувати взаємодією користувача з таблицею і визначити, які рядки даних повинні виводитися користувачеві.
У JSF DataTable, коли користувач натискає Next, щоб відобразити наступні x рядків даних в таблиці, робоче середовище JSF буде обробляти запит Next, і вам нічого не потрібно кодувати самостійно. Поряд з тим, що JSF полегшує вам створення розширених HTML-заснованих користувальницьких інтерфейсів, JSF навмисно зроблено серверної технологією. Запит наступних x рядків даних йде від браузера на сервер, де код робочого середовища JSF обробляє його. JSF вимагає двосторонньої взаємодії з сервером.
Для поліпшення базових JSF-віджетів в IBM Rational® Application Developer V6 введені Faces Client Components. Faces Client Components - це розширення технології JavaServer Faces, що дозволяє вам виконувати деякі сервіси робочого середовища JSF на стороні клієнта. Наприклад, якщо ви використовували компонент DataGrid Faces в наведеному вище прикладі, відображення наступних x рядків даних не буде вимагати двостороннього взаємодії з сервером.
Використання Faces Client Components природним чином приведе до JSF-розробнику з Rational Application Developer. Щоб використовувати Faces Client Components, ви повинні створити сторінку Faces JSP і вибрати "Basic with client-side data caching (Базовий, з кешуванням даних на стороні клієнта)" в якості моделі. Потім, коли ви конструюєте призначений для користувача інтерфейс в Rational Application Developer, просто виберіть відповідні елементи управління UI з секції Faces Client Components палітри інструментів в Rational Application Developer.
Нарешті, на мою думку, зоряний час Ajax настав, коли Google випустив бета-версію свого заснованого на Ajax додатка Google Maps. Будь-яка людина, який раніше працював з картографічним Web-сайтом, швидко помітив перевагу програм Google над іншим подібними інтернет-сайтами. Поки нефахівці дивувалися і ворожили, як же Google зробив це, програмісти, які дивилися глибше, виявили там Ajax, і почали міркувати, як би і їм використовувати технології на його основі для поліпшення зручності користування і швидкості реакції власних додатків.
чистий HTML
Хоча багато розробників і вважають, що у всіх користувачів, як і у них самих, стоїть останній Firefox з десятьма найпопулярнішими плагінами, насправді на багатьох машинах для доступу в інтернет, як і раніше використовуються Netscape 3.x або Internet Explorer 4.x. Браузери цього рівня можуть застосовуватися з метою доступу до певної програми (вихідні коди якого втрачено і його не можна змінити), або ж вони можуть просто бути встановлені вдома у консервативного користувача, продовжує використовувати Internet Explorer 4.0, лише тому, що він дотримується принципу "працює - не чини "відносно оновлення браузера.
Хоча цілком очевидно, що HTML не може забезпечити такої зручності користувача, як будь-яка з перерахованих вище технологій, засновані на HTML інтерфейси в довгостроковій перспективі як і раніше будуть відігравати важливу роль. Ніяка інша технологія не дозволить додатком бути доступним для такого великого числа користувачів, як чистий HTML. В результаті багато додатків як і раніше будуть надавати такі інтерфейси ще багато років.
На закінчення
У загальному і цілому, основним напрямком в промисловості сьогодні є поліпшення зручності роботи користувача з серверними додатками. Ajax, хоча і ще не зовсім зрілий, вже набрав більших обертів, і багато підприємств, великі і малі, починають використовувати його у виробництві. Інші згадані в статті технології мають мало шанувальників, але на даний момент жодна з них ще не розкрутилася по справжньому.
Існують і інші технології для користувача інтерфейсу, як комерційні, так і вільні (наприклад Nexaweb, Backbase і JackBE), але в статті про них мова не йшла з метою стислості. Важливим є те, що не одна з цих технологій не є універсальною та всеохоплюючою, отже, жодна з них не підходить повністю в усіх ситуаціях. Кожна з перерахованих вище технологій має свої переваги і може бути хорошим вибором в залежності від обставин.
Так як же робити вибір? Для початківців немає нічого краще старого доброго HTML, якщо вибір технології мотивується максимальної користувача аудиторією. З іншого боку, якщо вам потрібні від'єднаний операції, і ви можете встановлювати ваш додаток на машини користувачів, найкращим вибором буде одна з альтернатив на основі EclipseRPC, Workplace Managed Client або Lotus Expeditor.
Якщо вам потрібно багатий користувальницький інтерфейс, що володіє точністю і надійністю Flash Player, можливо, буде виправданий вибір Flex або OpenLaszlo. Якщо ви створюєте додатки за допомогою JavaServer Faces, краще вдатися до Faces Client Components.
Нарешті, якщо ваша мета - просто заткнути дірки в існуючому HTML-інтерфейсі або розробити заснований на стандартах, що не вимагає плагінів користувальницький інтерфейс з функціональністю, краще ніж у браузерів, ваш вибір - Ajax. В даний момент "циклу ажіотажу", Ajax, здається, стає найпопулярнішою технологією Web 2.0, але я б не став списувати з рахунків інші технології - вони візьмуть своє, коли змужніють.
Ключем до правильного вибору є вимоги до додатка, якими слід керуватися при виборі технології створення призначеного для користувача інтерфейсу. Хоча ця рекомендація здається простою і очевидною, у багатьох випадках розробники роблять якраз все навпаки, що може призвести до багатьох проблем при реалізації і розгортання (що в свою чергу викликає значні затримки і ускладнення при розробці проекту). Не допускайте, щоб це відбувалося і з вами.