скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыДипломная работа: Технічне створення Web-додатків

Аплет кешується, тому при повторному використанні він завантажується швидко.

Аплет працює на порядок швидше, ніж JavaScript і має майже таку саму швидкість, як і мови програмування, що компілюються — наприклад С/C++.

Аплет може перенести більшу частину бізнес-логіки на сторону клієнта. Таким чином зменшується навантаження на сервер і це дає змогу створювати сервіси з великою кількістю користувачів при відносно невеликих серверних потужностях.

Аплети мають недоліки:

Аплет потребує віртуальної машини Java, яка по замовчуванню не присутня в деяких популярних ОС (наприклад Microsoft Windows XP).

Швидкість початку роботи Аплету залежить від швидкості запуску віртуальної машини Java.

Політика деяких компаній забороняє інсталяцію та використання віртуальної машини Java на службових комп’ютерах працівників.

Детальний аналіз цих недоліків та способи їх подолання наведені нижче.

1. Будь-яка розширена Web-технологія (крім базових HTML, CSS і т.п.) потребує підтримки в браузері. Для JavaScript необхідно мати відповідний двигунець, для Adobe Flash — Adobe Flash Player, для Microsoft Silverlight — платформу .NET, для Java Апплетів — віртуальну машину Java.

Порівняємо статистику [5] підтримки у користувачів вище названих технологій.

JavaScript — ~95%

Adobe Flash — ~90%

Microsoft Silverlight — ~10%

Java — ~80%

Як бачимо, Java підтримується у переважної більшості користувачів, а при сучасних швидкостях Інтернет завантажити і встановити віртуальну машину Java можна без особливих витрат часу.

Також віртуальна машина Java входить в комплект з програмами деяких розробників — OpenOffice.org, Oracle та інших.

2. Сучасні комп’ютери достатньо потужні, щоб користувач не помічав затримок із запуском віртуальної машини Java.

Комп’ютери 3-5 річної давнини все ще мають цю проблему, але їх кількість постійно зменшується.

Інші технології також створюють значне навантаження на комп’ютер, а JavaScript ще й має відносно низьку швидкодію.

3. З тією ж проблемою користувачі стикаються і при використанні інших Web-технологій. В залежності від політики компаній, забороненими можуть бути також Flash, Silverlight і навіть JavaScript. Тому ця проблема є недоліком не лише Java а й інших популярних web-технологій.

Розділ 3. Розробка альтернативного механізму доступу для Web 2.0


3.4 Класичний механізм взаємодії у Web

Браузер

Сервер

запит

відповідь

HTTP — протокол передачі даних, що використовується в комп'ютерних мережах, належить до протоколів моделі OSI 7-го програмного рівня.

Основним призначенням протоколу HTTP є передача веб-сторінок (текстових файлів з розміткою HTML), хоча за допомогою його можна передавати й інші файли, як пов'язані з веб-сторінками (зображення і додатки), так і не пов’язані з ними (у цьому HTTP конкурує з складнішим FTP).

HTTP припускає, що клієнтська програма — веб-браузер — здатна відображати гіпертекстові веб-сторінки і файли інших типів в зручній для користувача формі. Для правильного відображення HTTP дозволяє клієнтові дізнатися мову і кодування веб-сторінки і/або запитати версію сторінки в потрібних мові/кодуванні, використовуючи позначення із стандарту MIME.

Класичний механізм взаємодії у Web відбувається так: браузер генерує HTTP запит і відправляє його на сервер. Сервер оброблює запит і відправляє відповідь клієнту у вигляді готової HTML сторінки, яку браузер показує користувачу. Для кожного обміну даними між сервером та клієнтом потрібен окремий запит (перезавантаження сторінки).

Є два основні види запитів до сервера — GET та POST.

З початку GET був єдиним способом передачі даних від клієнта до сервера. Дані від клієнта до сервера передаються у вигляді параметрів адреси (наприклад — http://www.example.ua/file?p1=v1&p2=v2). Згідно стандарту HTTP запити типу GET вважаються «безпечними» — багаторазове повторення одного і того ж запиту призводить до одного і того ж результату (при умові, що сам ресурс не змінився за час між запитами). Це дозволяє кешувати відповіді на HTTP запити з типом GET.

За допомогою GET не можна передавати великі об’єми даних та файли (в браузерах, проксі-серверах та web-серверах є ліміти на довжину адреси, наприклад в браузерів Microsoft Internet Explorer це 1Кб).

Використання GET є небезпечним для відправлення поролів та іншої конфіденційної інформації — вона буде присутня в адресі у відкритому вигляд.

В 1996 з’явилася специфікація HTTP 1.0, що містила новий механізм запиту до сервера — POST. Дані від клієнта до сервера передаються в тілі запиту і, при необхідності, можуть бути зашифрованими. На відміну від запиту з типом GET, запити з типом POST вважаються «небезпечними» — багатократне повторення одних і тих же запитів з типом POST може давати різні результати.

Також за допомогою POST запиту можлива передача файлів від клієнта до сервера.

Існують також інші методи доступів, але вони мають специфічне застосування:

OPTIONS — повертає методи HTTP, які підтримуються сервером. Використовується для визначення можливостей Web-сервера.

HEAD — аналогічний методу GET, єдина різниця — у відповіді сервера відсутнє тіло. Використовується для отримання мета-даних, що задаються в заголовку відповіді, без відправлення всього вмісту.

PUT — завантажує вказаний ресурс на сервер.

DELETE — видаляє вказаний ресурс.

TRACE — повертає отриману відповідь так, що клієнт може побачити, що проміжні сервери додали чи модифікували в запиті.

CONNECT — використовується разом з proxy-сервером, які можуть динамічно переключатися в тунельний режим SSL.

Переваги класичного механізму доступу до Web — підтримка будь-яким HTTP клієнтом (браузером, роботом пошукової системи і т.п.).

Недоліки цього механізму — навіть при незначній зміні сторінки потрібно повністю завантажувати всю сторінку, що негативно впливає як на швидкості та комфорт при роботі з Web-програмою, так і на збільшення трафіку між сервером та клієнтом.

3.5 Взаємодія у Web за допомогою Ajax

В цьому механізмі доступу з’єднуючою ланкою між сервером та сторінкою є JavaScript-об’єкт XMLHttpRequest. В різних двигунцях та їх версіях він реалізований по різному тому потрібно використовувати спеціальну функцію, яка враховує всі можливі варіанти.

HTML

сторінка

Об’єкт

XMLHttpRequest

PHP

скрипт

При певних діях користувача (наприклад при активізації кнопки в складі користувацького інтерфейсу) браузер генерує запит і за допомогою JavaScript-об’єкта XMLHttpRequest відправляє його на сервер. При цьому метод доступу може бути GET або POST. Користувацький інтерфейс під час відправлення запиту і отримання відповіді не блокується і користувач може продовжувати виконувати певні дії, результатом яких можуть бути нові запити до сервера — Ajax підтримує декілька одночасних взаємодій сторінки з сервером. Користувацький інтерфейс виглядає і реагує на дії користувача як звичайна програма, що полегшує роботу з ним.

Сервер оброблює запит і відправляє браузеру відповідь у форматі XML, JSON або подібних. При цьому не відбувається генерації усієї сторінки (як у класичному механізмі доступу), тому час обробки запиту скорочується. Це дозволяє зменшити навантаження на сервер або збільшити кількість клієнтів, що можуть працювати одночасно.

Браузер, за допомогою JavaScript, обробляє отриману відповідь і модифікує сторінку без перезавантаження за допомогою DHTML.

Переваги цього механізму доступу — сторінка модифікується без повного перезавантаження, збільшується швидкість роботи з Web-програмою, зменшується трафік між сервером та клієнтом, метод роботи користувача з web-програмою є зручним.

Недоліки методу:

важкість у розробці та налагодженні через використання мови сценаріїв JavaScript, що має специфічне застосування тому вона мало пристосована до розробки багатих web-програм.

зміст сторінок, згенерованих за допомогою Ajax, не індексується пошуковими системами і сторінку не можна зберегти за допомогою браузера збережеться лише початкова сторінка та сценарії JavaScript.

на сторінку, згенеровану за допомогою Ajax, не можна поставити пряме посилання — при модифікації сторінка не змінює адреси.

Для подолання вказаних недоліків потрібно:

Обмежети використання мови сценаріїв JavaScript і використати технологію Java Апплетів. Повністю відмовитись від використання JavaScript не можна (це єдиний спосіб динамічної зміни сторінки, що, хоч і з недоліками, але функціонує в більшості сучасних браузерів) але якщо перенести більшу частину функціональних можливостей з сценарію JavaScript до Java Апплету і використовувати JavaScript лише для зв’язку HTML сторінки з Апплетом то складність розробки та налагодження такої системи буде на порядок нижча.

Створювати окремі статичні сторінки, що матимуть той самий вміст, що і динамічні сторінки, але їх зможуть прочитати та обробити пошукові системи а також переглянути ті користувачі, що використовують застарілі браузери або браузери із відключеними або заблокованими додатковими можливостями (JavaScript, Java, Flash і т.п.). Також ці статичні сторінки користувач може зберегти на свій комп’ютер для перегляду оффлайн або редагування за допомогою HTML-редакторів.

Створити спеціальний елемент користувацького інтерфейсу — «посилання на цю сторінку», що міститиме спеціально сформоване посилання, перейшовши за яким відкривається сторінка з таким самим вмістом, як і згенерована динамічно. Це потребує модифікації серверної частини (в більшості випадків ця модифікація є незначною), але подолання цього недоліку є дуже важливим для комфортної роботи з Web-сторіками, що побудовані динамічно.

Другий та третій пункти вже доволі широко використовується на сайтах, побудованих за допомогою концепції Web 2.0.

Спосіб, вказаний в першому пункті ще мало вивчений, тому майже не зустрічається на сайтах. Реалізація цього способу призведе до створення базового набору засобів, за допомогою якого розробники web-програм зможуть більш ефективно та з меншими витратами часу створювати web-програми, що матимуть багаті можливості та звичний для користувачів інтерфейс.

3.6 Альтернативна взаємодія у Web за допомогою Java Апплетів

Цей метод схожий на попередній, лише замість JavaScript-об’єкта XMLHttpRequest об’єкта використовується Java Апплет.

HTML

сторінка

Java

Applet

PHP

скрипт

Ця заміна на перший погляд може здатися незначною — JavaScript (за допомогою об’єкту XMLHttpRequest) та Java Апплет мають схожі можливості для створення запитів, передачі їх на сервер та обробки отриманої відповіді. Але Java Апплет має набагато ширші можливості для обробки отриманої інформації.

Також перевагою Апплетів над сценаріями JavaScript є їх значно вища швидкодія та значно менші проблеми з розробкою та налагодженням — для Java існують досить потужні інтегровані середовища розробки та налагодження. Вони містять можливості, які відсутні в програмах для розробки сценарії JavaScript (які в більшості є простими текстовими редакторами з підсвіткою синтаксису та мінімальними функціональними можливостями) :

·  вбудований налагоджувач;

·  інструменти для рефакторингу (повного або часткового перетворення внутрішньої структури програми при збереженні її зовнішньої поведінки);

·  проектування UML діаграм (графічний опис для об’єктного моделювання в сфері розробки програмного забезпечення);

·  система керування версіями (програмне забезпечення для полегшення роботи з інформацією, що часто змінюється, основне застосування — слідкування за розробкою програм)

·  колекція шаблонів коду та бібліотек, що дозволяють позбавитися рутинних операція при розробці Апплетів.

Для практичної реалізації цього методу взаємодії був розроблений базовий набір засобів (Framework). За допомогою нього була створена демонстраційна програма, що ілюструє основні можливості та переваги. За допомогою цієї web-програми було проаналізовано переваги та недоліки базового набору засобів.

Демонстраційна web-програма складається з таких елементів:

Java Апплет (AJavaX.class)

HTML сторінка (AJavaX.html)

PHP скрипт (AJavaX.php)

3.6.1 Java Апплет

Виконує роль зв’язкової ланки між сервером та сторінкою. Коли користувач активізує елементи керування користувацього інтерфейсу, за допомогою JavaScript викликаються відповідні функції Апплету, які генерують запит і відправляють його на сервер. Сервер відправляє відповідь Апплету, який оброблює його і за допомогою JavaScript команд модифікує сторінку без перезавантаження.

Java Апплет може обмінюватись даними лише з тим сервером, з якого він був завантажений. Але якщо створити відповідну серверну програму (за допомогою Java Server Pages або Servlets) то можливе з’єднання з будь-яким іншим сервером. Таким чином у Web-програмі можна використовувати Web-служби від інших розробників.

Для виклику функція Апплету з HTML-сторінки використовуються JavaScript-об’єкт document.applets[“AJavaX”], який автоматично створюється після завантаження Апплету з ім’ям AJavaX. Це працює в будь-якому браузерів, на відміну від JavaScript-об’єкта XMLHttpRequest

Для модифікації сторінки в Апплеті використовується клас JSObject з пакету netscape.javascript, який реалізує спосіб виклику методів JavaScript та перевірку властивостей JavaScript.

Якщо об’єкт JavaScript передається в Java, віртуальна машина створює Java-оболонку типу JSObject, коли JSObject передається в JavaScript, віртуальна машина знімає оболонку і розгортає об’єкт в об’єкт оригінального типу JavaScript.

Будь-які дані JavaScript, перенесені в Java, конвертуються в типи даних Java. Коли JSObject передається назад в JavaScript, оболонка з об’єкта знімається і він може використовуватись в коді JavaScript.

Перетворення типів від Java до JavaScript:

Java типи byte, char, short, int, long, float та double перетворюються в числа JavaScript

Java тип boolean перетворюється в boolean JavaScript

Java тип JSObject перетворюється у відповідний об’єкт JavaScript

Інші Java об’єкти перетворюються у об’єкти-надбудови JavaScript для доступу до полів та методів. Java-об’єкти можуть бути перетворені в рядок (викликається метод toString), число (метод floatValue), логічний тип (метод booleanValue) та псевдо-масиви JavaScript (які поводять себе так само, як і JavaScript масиви — як індекс використовується цілі числа, але вони влаштовані по іншому)

Перетворення типів від JavaScript до Java:

Об’єкти-надбудови для Java об’єктів перетворюються в об’єкти Java

Решта об’єктів перетворюється в JSObject

Рядки, числа і логічний тип перетворюється в Java об’єкти String, Float та Boolean

При ініціалізації Апплету створюється екземпляр об’єкта JSObject win, що є об’єктом-надбудовою до JavaScript об’єкту вікна браузера, та визначається адреса сторінки сервера, з якою буде відбуватися взаємодія.

При виклику функція send або get Апплету передається параметри — текст, що набраний у вікні редагування та пароль для шифрування/дешифрування тексту.

За допомогою методу libSendRequest формується запит, відправляється на сервер та отримується відповідь.

Отримані дані можна модифікувати чи оброблювати — тут можливості Java майже необмежені. Наприклад можна реалізувати криптостійке шифрування на клієнті і передавати на сервер дані в зашифрованому вигляді.

Для модифікації сторінки викликається метод libReturnValue, який дозволяє динамічно модифікувати вміст сторінки, виконавши спеціальний JavaScript код. Таким чином відбувається модифікація сторінки за допомогою конструкції:


win.eval("document.getElementById('"+id+"').innerHTML='"+value+"'")

Змінна id містить ідентифікатор обє’кту HTML, куди буде вставлений HTML код, що міститься в змінній value.

При потребі JavaScript для динамічної модифікації сторінки можна суттєво розширити, використавши вже існуючі напрацювання в технології Ajax, лише найважчі операції будуть виконуватися Java Апплетом.

3.6.2 HTML сторінка

HTML сторінка є основою інтерфейсу користувача. Сторінка містить прихований Java Applet (він має розміри 0х0 пікселів але він завантажується та нормально функціонує) та код JavaScipt, що викликає функції з Апплету при активізації користувачем елементів керування.

Аплет підключається до сторінки за допомогою конструкції:

<applet code="AJavaX.class" name="AJavaX" width="0" height="0" mayscript="mayscript">

Страницы: 1, 2, 3, 4, 5, 6


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.