- •Л е к ц і ї
- •Л е к ц и я № 9
- •9. Телекомунікаційні процеси в кіс
- •9.1. Менеджерські телекомунікації в кіс
- •9.2. Мережі internet та intranet
- •9.3. Web-документи та cgi-інтерфейси
- •9.4. Рекомендації з побудови intranet-мережі організації
- •9.5. Мови підтримки web-додатків рнр та java
- •9.6. Web-сервер арасне
- •9.7. Сервер mysql
9.5. Мови підтримки web-додатків рнр та java
РНР - це скрипт-мова (scripting language), що вбудовується в НТМL, та інтерпретується і виконується на сервері. Початком мови вважається 1994 р., коли «Rasmus Lerdorf» вирішив розширити можливості своєї Home-page і написати невеликий движок для виконання найпростіших задач. Такий движок був розроблений до початку 1995 р. і називався «Personal Home Page Tools». До середини 1995 р. з'явилася друга версія - РНР/FІ Version 2. РНР/FІ компілювався усередину АРАСНЕ і використовував стандартний АРІ АРАСНЕ. Ці скрипти виявилися швидше аналогічних, тому що серверові не було необхідності породжувати новий процес. Згодом була добавлена підтримка безлічі баз даних (наприклад, МуSQL і ORACLE). Наприкінці 1997 р. «Zeev Suraski» і «Andiі Gutmans» переписали внутрішній движок, підвищивши швидкість виконання скриптів. У 1998 р. вийшла версія мови РНР 3. У 1999 р. вийшла чергова версія РНР 4 [38].
Нижче приведений приклад виводу простого повідомлення на НТМL-сторінку засобами мови РНР:
<html>
<head>
<title>Example</title>
</heard>
<body>
<?php echo "Привіт від скрипту РНР!!!"; ?>
</body>
</html>.
Результатом виконання скрипту буде текст: «Привіт від скрип-ту РНР!!!» на Web-сторінці.
Програма вбудовується в НТМL-сторінку за допомогою відкриваючих і закриваючих тегів (<?рhр?>).
Відмінність РНР від JavaScript полягає в тому, що РНР-скрипт виконується на сервері, клієнтові передається результат роботи, а код JavaScript повністю передається на клієнтську машину і тільки там виконується.
Синтаксис мови РНР дуже схожий на синтаксис С або Perl.
Перевага мови: працює як частина сервера, не витрачає час для запуску нового процесу додатка, що означає економію процесорного часу й оперативної пам'яті.
Недоліки мови:
• була орієнтована на створення невеликих скриптів;
• є мовою, яка інтерпретується, не може зрівнятися по продуктивності із мовою С, яка компілюється;
• не має великої бази готових модулів, як у Реrl
• відсутня підтримка сесій (session).
Java (розроблена JavaSoft - відділенням «Sun Microsystem») — це проста, об'єктно-орієнтована, надійна, захищена, архітектурно-незалежна, така, що може бути перенесена на інші платформи, така, що інтерпретується, високопродуктивна, багатопоточна, динамічна, мережна мова програмування. Вважається підмножиною мови С++.. Технологія розробки НТМL-документа дозволяє написати необхідну кількість Java-програм, відкомпілювати їх у мобільні коди і поставити посилання на ці коди в тілі НТМL-документа. Такі програми називають програмними агентами, або Java-аплетами (applets). Одержавши доступ до НТМL-документа, що містить посилання на аплети, клієнтська програма перегляду запитує в Web-сервера всі мобільні коди. У ході сеансу забезпечується підкачування через мережу на комп'ютер клієнта аплетів, що беруть на себе функції забезпечення гнучкої взаємодії клієнта і сервера.
Java - архітектурно незалежна система. Це означає, що програми, написані на Java, сумісні відразу з усіма платформами - від Intel х 86 до RISC-процесорів. При цьому непринципово, на якому RISC-процесорі працює система, тому що Java сумісна з PowerРС, DЕС Alpha і МІРS. Досягається такий результат за допомогою перетворення коду програми компілятором Java в об'єктний файл, що містить байт-коди, що є інструкціями для віртуальної Java-машини, реалізованої на всіх можливих програмно-апаратних платформах.
Віртуальна Java-машина являє собою середовище, в якій виконуються додатки, написані на Java. Інакше кажучи, це інтерпретатор згаданих вище кодових послідовностей. Байт-код додатка миттєво перетворюється в команди конкретних, процесорів, при цьому продуктивність порівняно з програмами С/С++ знижується ненабагато.
Java має властивість повної переносності. Це пов'язано не тільки з апаратною незалежністю, але і з тим, що рівень абстракції байт-кодів однаковий для всіх операційних систем.
Java - мережна мова. Віна оперує поняттями протоколу сервера, клієнта на базовому рівні (на відміну від інших мов програмування, які потребують у спеціальних бібліотеках мережних функцій). Така властивість Java дозволила за короткий термін створити величезну кількість мережних додатків. Саме Java уперше внесла поняття «реального часу» у WWW.
Нижче представлено приклад організації системи одержання й аналізу котирувань валют у режимі реального часу на основі Java.
Припустимо, що дані про котирування надходять на Web-сервер із системи типу Dow Jones Tolerate. Зрозуміло, що клієнт, один раз одержавши з такого сервера Web-документ, не стане кожні 15-20 секунд натискати на своєму браузері кнопку «Reload». Крім того, у такому документі може знаходитися велика кількість графічної інформації, доставка якої щораз по мережі неможлива через обмежену пропускну здатність каналу. Тут необхідна система, що дозволяє обновляти в режимі реального часу тільки частину екрана і здатна перемальовувати окремі графіки і таблиці. Усе це може зробити досить простим додаток на Java. При звертанні до Web-документа Web-браузер завантажує на комп'ютер клієнта Java-додаток, який відразу ж запитує в Java-сервера, що працює на Web-сервері, нові дані по котируваннях валют. По мережі передаються лише цифри обновлених котирувань, ніякі графічні і текстові дані в мережу не надходять. Далі, уже на комп'ютері клієнта, Java-додаток обробляє отриману інформацію та обновляє на екрані як цифрові, так і графічні показники котирувань, а також розраховує різні коефіцієнти й індикатори.
Таким чином, подібна розподілена інформаційна система з успіхом працює в режимі реального часу. І це лише невеликий приклад величезних можливостей, наданих Java.
Далі наведено коротку довідку про характеристики популярних (для невеликих промислових та комерційних об'єднань) в наш час серверів: Apache та MYSQL. Вони разом із мовою РНР є базовими інструментами розробки інтерактивних Web-засобів управління віддаленою інформацією.
