2.4.6. Перспективные идеи и средства для Internet
Естественно их много, поэтому для иллюстрации актуальности изучения подобных идей и средств остановимся на следующих четырех направлениях их развития.
Новые эффективные языковые средства:
языки программирования Web-приложений (Java, названный от кофе с острова Ява, Juice – от фруктового сока, TCL и другие);
средства быстрой разработки приложений Web на основе языков описания сценариев, например:
Java (SUN) + LiveWare (Netscape Communications) = JavaScript (Netscape). JavaScript входит в состав браузеров от Netscape и позволяет быстро включить в страницу Web, например, финансовый калькулятор или видеоклип;
VisualBasic Script (Microsoft), поддерживающий средства связывания и внедрения объектов (Object Linking and Embedding, OLE) – обмена и совместного использования данных приложениями посредством вставки объекта, созданного одним приложением, в документ, созданный другим приложением;
языки Web-дизайна (Dynamic HTML, XML, SGML, WML и другие), а также сопутствующие ему (Vector Markup Language, VML; Computer Graphics Metafile, CGM).
Уже интенсивно отрабатывается идея: сделать Web универсальным механизмом доступа к ресурсам Internet. Многие сервисы имеют свои домашние страницы в Web, что облегчает доступ к ним.
Серверы Web, доступные браузерам, это архитектура для следующей ступени развития средств удаленной обработки данных в системах клиент-сервер.
Дальше просматривается возможность процедуры запуска на Web-серверах больших ПС, которые вызваны работающими браузерами клиентов на станциях [38].
Рассмотрим некоторые основные идеи и особенности применения новых языковых средств программирования Web-приложений.
Java-технология (SUN Microsystems) разработана специально для «оживления» Web и использует распределенные малые приложения – апплеты (Applets) [5-7, 38]. Апплеты посылаются по Сети от серверов браузерам, имеющим встроенные Java-интерпретаторы. На месте апплеты выполняются встроенным в браузер загрузчиком класса апплетов. Значит, кроме документов у пользователя теперь появляется доступ к малым (быстрым) приложениям.
Язык Java (1995 г.) разработан в корпорации SUN Microsystems. Изначально считалось, что язык Java имеет серьезные средства защиты от хакеров и вирусов, отличается повышенной надежностью и безопасностью языковых конструкций по сравнению с языками С/С++, обеспечивает независимость от программно-аппаратной платформы.
Идея защиты сводится к запретам записи информации на диск и по адресам ОП с использованием адресной арифметики. Но сегодня этого явно недостаточно для построения надежно защищенной системы. К сожалению, существует масса способов внедрения в систему и без описанных действий. После выявления «дыр» в браузере Navigator компания Netscape предложила проверять IP-адреса, с которыми работает апплет на идентичность с IP-адресом HTTP-сервера, с которого апплет получен. Для реальной же защиты в программу-интерфейс придется вставить полноценный защитный экран (firewall) с возможностями конфигурирования TCP/UDP портов и анализа содержания пакетов, и то, как показывает практика, это не приводит к стопроцентной безопасности.
Приложения и апплеты Java перед выполнением проходят следующие 5 шагов последовательных преобразований.
Исходный текст с помощью специального конвертора Java Compiler транслируется в линеаризованный объектный код – байт-код Java.
Затем этот байт-код попадает в виртуальную машину Java (Virtual Java Machine, VJM), которая и привязывает его к конкретной платформе.
Далее код загружается посредством загрузчика Bytecode Loader.
После этого байт-код обрабатывается специальным верификатором Bytecode Verifier, так как при передаче по Сети возможны искажения и воздействия.
Если Bytecode Verifier дает положительный результат проверки, автоматически запускается интерпретатор байт-кода.
Узкими местами в плане безопасности являются шаги 4 и 5: насколько неуязвим сам Bytecode Verifier или насколько быстр интерпретатор VJM?
Интерпретатор работает крайне медленно. Но эта проблема частично решена с помощью процедуры пост-компиляции, когда специальные компиляторы just-in-time Application Accelerators for Java преобразуют байт-код в исполняемый код конкретной платформы (вместо медленной интерпретации).
Для упрощения использования апплетов в HTML был введен специальный тег APP, в котором указывается имя апплета и параметры его вызова. При этом обработка HTML-документа программой-интерфейсом браузера происходит так же, как и в случае встроенной в документ графики. Сначала запрашивается документ, анализируется его содержание, и если есть теги APP, подгружаются апплеты. После того, как все апплеты получены, они могут быть выполнены. Из этой схемы ясно, что программа-интерфейс является одновременно и интерпретатором байт-кода Java.
Используя библиотеку классов Java, можно разработать довольно эффектные мультимедийные страницы с движущейся графикой и звуком. Кроме этого, применение байт-кода позволяет организовать распределенные процедуры вычислений с использованием различных серверов, с которыми можно взаимодействовать по разным протоколам. Собственно возможность подключения новых протоколов обмена также декларируется, как одно из достоинств нового подхода. Но даже у неискушенного пользователя сразу возникает закономерный вопрос о безопасности компьютера, на котором запускается подобное приложение.
Еще одной интересной разработкой является язык сценариев управления просмотром гипертекстовых страниц JavaScript (1995 г.), разработанный в компании Netscape. Его прообразом еще до анонсирования Java был язык LiveWare. Появление в нем фреймов, многооконности, динамической загрузки страниц и ряда других расширений от компании Netscape явно показывали направление развития ее браузера Navigator (1994 г.), поскольку технология LiveWare по своей архитектуре очень напоминала Java. Та же возможность разработки приложений для сервера HTTP, мобильный код, исполняемый браузером Navigator. Но, кроме этого, в HTML страницы можно встраивать еще и исходные тексты программ. Последняя возможность превратила Navigator в самодостаточную среду программирования, которую можно использовать не только в Internet, но и в локальных системах. Используя JavaScript, можно организовать гибкий многооконный интерфейс с контекстной справочной системой и встроенной графикой, при этом многие вопросы проверки вводимых пользователем данных можно возложить на функции JavaScript. По своим функциональным возможностям JavaScript пока уступает Java. Можно организовать открытие нового окна, прокрутку текста, запрограммировать калькулятор, которых в Сети уже около двух десятков, проверку ввода, но не более того.
Отдельной интересной темой является объектно-ориентированный характер JavaScript. Язык JavaScript ориентирован на встроенные объекты браузеров компании Netscape (окна, формы, поля форм, элементы рабочих областей браузера и т.п.). Это сильно облегчает обучение программистов и позволяет сразу писать интересные и полезные программы. Но отсутствуют наследование свойств объектов и обмен данными между различными объектами, например двумя окнами браузера. Пока JavaScript сейчас – это просто язык сценариев просмотра HTML страниц.
Характерно, что при использовании обычных программ-интерфейсов (браузеров) Java-приложения могут быть использованы только в качестве API-модулей сервера или CGI-скриптов, что не выделяет их из общего набора других программ этого типа и ограничивает область применения Java-технологии. Она расширяется только в случае применения браузеров компании Netscape или HotJava (SUN Microsystems). Здесь уже возможно создать набор апплетов, которые будут выполняться при помощи этих программ на компьютере пользователя.
Кроме того, при использовании браузера HotJava и Java Development Kit можно расширить возможности самой программы-интерфейса за счет разработки новых модулей.
Juice-технология улучшена и более универсальна по сравнению с Java-технологией. Juice-технология опирается на объектно-ориентированный язык программирования (ООЯП) Oberon, разработанный Никлаусом Виртом (автором языков Pascal и Modula 2), по надежности и безопасности не уступающий Java. Его особенности:
запрет адресной арифметики;
строгая типизация;
модульная инкапсуляция – совмещение в одной записи ООЯП структур данных с процедурами и функциями, которые манипулируют полями данных этой записи, для получения нового типа данных – объекта. Инкапсуляция обеспечивает защиту по интерфейсу доступа к полям и методам. Доступ разрешен лишь к открытым полям и методам. Полная совокупность методов и тонкости их реализаций являются скрытыми. Объекты связывают в единое целое свои свойства и поведение;
динамический контроль типов;
как модульный и ООЯП, язык Oberon более прост, лаконичен и сбалансирован.
Juice-технология опирается на ОС Oberon, которая может быть установлена в качестве единственной или поверх любой другой ОС. Juice-технология основана на динамической (on-the-fly) кодогенерации по схеме Франца, имеющей следующие особенности.
Компилятор транслирует исходный текст на ООЯП Oberon в промежуточный код древовидной структуры (по типу семантического словаря), обеспечивающий плотность кода и сохраняющий информацию о структуре программы. Не теряется, как в случае линеаризованного байт-кода высокоуровневая информация о структуре программы, которая нужна для контроля целостности и последующей оптимизации кода.
Затем работает кодогенерирующий загрузчик (его размер около 100 К):
производится оптимизирующая генерация загружаемого кода, который называется Slim-binary Code;
специальный его блок обеспечивает информационную безопасность. Не надо анализировать потоки данных, проверять целостность инструкций, так как за все отвечает Juice-дерево;
выполняется загрузка полученного Juice-кода, медленная из-за оптимизирующей генерации.
TCL(тикл)-технология (SUN Microsystems) использует связку TCL/TK (Tool Command Language/Tool Kit).
TCL – удобный интерпретируемый язык сценариев, особенно эффективный при написании пользовательских интерфейсов приложений и далекий от ООЯП, он ближе к функциональным языкам. TK – средство для работы с библиотеками графических объектов интерфейса (виджетов). В отличие от ГИП Motif для среды UNIX TK обходится без конструкций языков С/С++.
Связка TCL/TK может работать в паре с Java, например, прототипировать сложные апплеты Java, склеивать фрагменты кода. Но TCL/TK мощен и сам по себе. Известны TCL/TK-программа Tetris, составляющая всего 500 строк кода, а также мощная система управления нефтяными платформами в РВ – около 0,5 млн. строк кода.
- Е.В. Нужнов Перспективные информационные технологии и среды Учебное пособие
- Часть 1. Информационные технологии, телекоммуникационные среды
- Таганрог
- Введение
- Предмет, цель, задачи и структура дисциплины
- Иметь представление:
- Структура дисциплины
- Модуль 1. Информационные технологии и среды, телекоммуникационные среды
- 1.1.2. Технические достижения, составляющие основу пит
- 1.1.3. Основные задачи информационно-технологических систем
- 1.1.4. Пит как процессы интеграции
- 1.1.5. Общие особенности пит
- 1.1.6. Эффективность применения пит
- 1.2. Информационные среды
- 1.2.1. Понятие информационной среды
- 1.2.2. Классификация информационных сред
- 1.2.3. Компоненты информационных сред
- 1.2.4. Порождение новых информационных сред
- 1.3. Контрольные вопросы
- Глава 2. Телекоммуникационные среды цели
- 2.1. Примеры телекоммуникационных систем и сред
- 2.1.1. Системы общего применения
- 2.1.2. Системы факсимильной связи
- 2.1.3. Системы электронной почты
- 2.1.4. Телеконференции
- 2.2. Обобщенная архитектура телекоммуникационных сред
- 2.3. Беспроводная передача информации
- 2.3.1. Беспроводная среда передачи информации
- 2.3.2. Реализация беспроводных систем
- 2.3.3. Спутниковые системы
- 2.3.4. Глобальные навигационные спутниковые системы
- 2.3.5. Технология широкополосного сигнала
- 2.3.6. Беспроводные локальные сети
- 2.3.7. Персональные сети и технология Bluetooth
- 2.4. Глобальное сообщество сетей Internet
- 2.4.1. Организация и особенности
- 2.4.2. Доступ в Internet
- 2.4.3. Услуги (сервисы) Internet и их ресурсы
- 2.4.4. Гипертекст в сетях
- 2.4.5. Среда World-Wide Web
- 2.4.6. Перспективные идеи и средства для Internet
- 2.4.7. Internet-телефон – программа Skype
- 2.4.8. Блоги и rss
- 2.4.9. Средства поиска информации в Internet
- 2.4.10. Электронная коммерция в Internet и WebMoney
- 2.4.11. Технология gprs
- 2.4.12. Развитие Internet
- 2.4.12. Протокол iPv6
- 2.4.13. Проект «Internet-2»
- 2.4.14. Другие примеры развития Internet
- 2.5. Контрольные вопросы
- Глоссарий к модулю 1
- Библиографический список
- Список сокращений
- Глава 1. Информационные технологии и среды 8
- Глава 2. Телекоммуникационные среды 21
- Часть 1. Информационные технологии, телекоммуникационные среды