Курс лекций. Для студентов специальностей 0924, 092401, 092402 Составитель
Вид материала | Курс лекций |
2.2Распределенная обработка информации на основе мигрирующих программ 2.2.2Технологии, основанные на использовании языков сценариев 2.2.3Технологии ActiveX |
- Курс лекций для студентов заочного факультета самара, 1339.16kb.
- Курс лекций для студентов идпо специальностей «Юриспруденция», 2986.57kb.
- Курс лекций для студентов идпо специальностей «Юриспруденция», 3911.79kb.
- Курс лекций для студентов специальностей 060800, 060500 всех форм обучения Бийск, 1144.22kb.
- Краткий конспект лекций Кемерово 2002 удк: 744 (075), 1231.26kb.
- Курс лекций Челябинск Издательский центр юургу 2009 ббк ю3(0 я7 Б484, 3170.08kb.
- А. А. Задоя микроэкономика курс лекций, 195.46kb.
- Тексты лекций для студентов заочной формы обучения всех специальностей москва 2001, 2466.08kb.
- Курс лекций дисциплины «Компьютерные технологии и сапр» для студентов специальностей, 1793.82kb.
- Курс лекций Тамбов 2008 Составитель: Шаталова О. А., преподаватель спецдисциплин тогоу, 1556.11kb.
2.2Распределенная обработка информации на основе мигрирующих программ
Одной из главных особенностей intranet-архитектуры является распределенная обработка информации на основе мигрирующих программ. Программа навигации, выполняемая на рабочей станции, может не только визуализировать Web-старницы и выполнять переходы к другим ресурсам, но и активизировать программы на сервере, а также интерпретировать и запускать на выполнение программы, относящиеся к Web-документу, которые передаются вместе с этим документом с сервера. Такой вид распределенной обработки информации позволяет сконцентрировать всю прикладную систему непосредственно на сервере.
Существует три основных вида программ, которые могут быть связаны с Web-документом и передаваться на рабочую станцию для выполнения:
- Java-аплеты, подготовленные и используемые по технологии Java;
- программы, написанные на языке сценариев " onclick="return false">
- программные компоненты ActiveX Controls, соответствующие технологии ActiveX. •
Наличие нескольких разновидностей мигрирующих программ объясняется их различными возможностями, а также конкуренцией между ведущими корпорациями в области программных и сетевых технологий — корпорациями Sun Microsystems, Netscape, Microsoft и другими.
2.2.1Java-технология
Технология Java была разработана компанией Sun Microsystems в начале 90-х годов в связи с возникновением острой необходимости в компьютерных программах, ориентированных на использование в сетевой среде и интеграцию с Web-сервисом. К таким программам изначально были предъявлены требования по мобильности, предполагающие независимость от аппаратных и операционных платформ, а также безопасность и надежность обработки информации.
В результате были разработаны язык программирования Java, а также целостная технология создания и использования мобильных программ, получившая название Java-технологии.
Язык Java является простым объектно-ориентированным языком программирования, построенным на основе языка C++, из которого убрали все лишнее и добавили новые возможности для обеспечения безопасности и надежности распределенных вычислений. Много полезных идей было заимствовано из языков Objective С и SmallTalk.
Для снижения сложности программирования и количества допускаемых ошибок в язык Java были внесены жесткая объектная ориентация описаний и строгая типизация данных. В этом языке нет данных, не входящих в объекты, и нет функций, не являющихся методами какого-либо объекта. Строгая типизация информационных элементов позволяет на стадии компиляции выявлять ошибки, связанные с несовместимостью типов данных.
Реализованный в языке модульный принцип построения программ и простота языка дают возможность не только быстро разрабатывать новые программы, но и применять элементы уже написанных и проверенных программ, а также эффективно модернизировать старые. Кроме того, в стандарт языка входит множество полезных библиотек, на основе которых можно строить вычислительные системы любой сложности. Этот стандартный набор постоянно пополняется новыми важными функциями.
Независимость от аппаратно-операционных платформ, а также безопасность и надежность обработки информации были достигнуты разработкой виртуального Java-процессора, предназначенного для выполнения Java-программ путем их интерпретации. Определены его архитектура, представление элементов данных и система команд.
Виртуальный Java-процессор обеспечивает среду для исполнения Java-программ. При этом любая Java-программа должна соответствовать спецификации этого абстрактного процессора, которая полностью определяет его машинно-независимую систему команд, типы обрабатываемых данных, а также регистры. Поэтому для возможности исполнения Java-программы виртуальным Java-процессором ее исходные тексты должны быть оттранслированы в высокоуровневые машинно-независимые коды этого абстрактного процессора, называемые байт-кодами.
Оттранслированные Java-программы, предназначенные для выполнения на рабочей станции в среде Web-навигатора, называют Java-аплетами или просто аплетами. По своей структуре каждый аплет представляет собой небольшую программку, в которой должно быть определено несколько обязательных функций. Аплет загружается по сети с сервера и выполняется в среде Web-навигатора (рис. Error: Reference source not found). Ссылки на аплеты располагаются в Web-документах, но непосредственно в состав Web-документов аплеты не входят. Они хранятся в отдельных файлах на сервере.
Независимость байт-кодов Java от аппаратно-операционных платформ достигается программной реализацией для каждой из этих платформ только виртуального Java-процессора, который и предназначен для интерпретации аплетов.
Байт-коды Java-программ обладают следующими особенностями:
- они могут не только легко интерпретироваться, но и эффективно компилироваться «на лету» непосредственно в машинные коды для любой современной аппаратной платформы;
- средняя длина команды в байт-кодах сокращена до минимума, что снизило сложность и объем Java-аплетов по сравнению с обычными исполняемыми программами;
- байт-коды каждой программы содержат избыточную информацию, которая позволяет проверить их на безопасность выполнения.
Под компиляцией «на лету» или, как ее еще называют, динамической компиляцией понимается компиляция аплетов в машинные коды рабочей станции, выполняемая сразу же после получения аплетов на этой рабочей станции с целью их выполнения как обычных исполняемых программ. Вместо виртуального процессора при динамической компиляции предполагается использование специализированного компилятора. Динамическая компиляция байт-кодов и их дальнейшее выполнение повышает быстродействие Java-аплетов, которое при их интерпретации ниже скорости выполнения обычных исполняемых программ. Однако без принятия дополнительных мер при использовании динамической компиляции может быть снижена безопасность обработки информации. Поэтому динамическая компиляция Java-аплетов в Web-навигаторах пока не используется.
Байт-коды разрабатывались так, чтобы максимально сократить среднюю длину команды. Java-процессор имеет минимум регистров, стековую архитектуру и часто использует косвенную адресацию. Поэтому большинство из команд занимает всего один байт, к которому добавляется при необходимости номер операнда. Кроме того, для обработки каждого типа данных Java-процессор имеет свой набор команд. В результате средняя длина Java-команды составляет всего 1,8 байта. Средняя длина команды для классических RISC-процессоров равна примерно 4 байтам.
Для высокой надежности и безопасности выполнения Java-аплетов предусмотрены две важные функции:
- проверка байт-кодов перед их выполнением на целостность и правильность инструкций;
- контроль и блокирование опасных действий в процессе интерпретации байт-кодов.
Первую функцию реализует загрузчик и верификатор байт-кодов, а вторую — диспетчер безопасности виртуального Java-процессора. Диспетчер безопасности запрещает аплетам осуществлять доступ к файлам и периферийным устройствам, а также выполнять системные функции, такие как распределение памяти.
Виртуальный Java-процессор обеспечивает выполнение и других функций, влияющих на надежность обработки информации, например, «сбор мусора», т. е. освобождение неиспользуемой оперативной памяти. Кроме того, язык Java содержит необходимые средства для корректной работы со всеми объектами и ресурсами в случае возникновения исключительных ситуаций.
Технологический цикл подготовки Java-аплетов тот же, что и для программ на других языках программирования. Отличием является лишь то, что при редактировании внешних связей требуемые компоненты могут доставляться по сети. Процесс выполнения аплетов существенно отличается от аналогичного процесса для обычных программ (рис. Error: Reference source not found).
Поскольку аплеты и другие части прикладной системы хранятся на сервере, то за счет централизации облегчается сопровождение и администрирование системы. Это в свою очередь гарантирует, что пользователь всегда будет использовать самые последние версии программ.
Следует отметить, что на языке Java могут создаваться не только аплеты, являющиеся мигрирующими программами, но и стационарные программные приложения. Однако для высокого быстродействия исходный текст таких программ следует компилировать не в байт-коды, а в машинно-зависимые коды, обеспечивающие высокую скорость исполнения.
В настоящее время существует достаточное количество инструментальных средств для разработки как Java-аплетов, так и Java-приложений. Среди них — Microsoft Visual J++, Symantec Cafe, Borland Jbuilder, Sun Microsystems Java Workshop и ряд других.
2.2.2Технологии, основанные на использовании языков сценариев
Параллельно с мощной Java-технологией появились технологии создания и применения мигрирующих программ, основанные на использовании языков сценариев. Наиболее важным отличием таких технологий от Java-технологии является покомандная интерпретация исходных текстов программ, исключающая необходимость их компиляции перед выполнением. Вспомним, что в Java-технологии мобильная Java-программа для возможности выполнения должна быть откомпилирована в байт-коды. Функция интерпретации мобильных программ, написанных на языке сценариев, возложена на Web-навигатор.
Языки сценариев часто называют еще языками скриптов (script — сценарий) или макроязыками. Их интерпретируемая природа упрощает отладку и создание составленных на них программ. К основным представителям языков сценариев, предназначенных для написания мигрирующих программ, относятся:
- язык " onclick="return false">
- язык VRML (Virtual Reality Modeling Language — язык моделирования виртуальной реальности), разработанный компанией Silicon Graphics.
Язык сценариев " onclick="return false">
" onclick="return false">
" onclick="return false">
Таблица 2.1- Сравнительные характеристики языков Java и " onclick="return false">
Java | " onclick="return false"> |
Программа для возможности выполнения на стороне клиента должна быть откомпилирована в байт-коды | Программа интерпретируется на стороне клиента в исходном виде |
Объектно-ориентирован. Аплеты образуют объектные классы с наследованием | Объектно-базирован. Отсутствуют классы и механизм наследования |
Аплеты вызываются из Web-страниц, но хранятся обособленно от Web-документов в отдельных файлах на сервере | Программы вызываются из Web-страниц и встроены непосредственно в Web-документы |
Типы данных и переменные должны быть предварительно объявлены | Типы данных и переменные не объявляются, а вводятся |
Статическое связывание. Объектные ссылки должны существовать на этапе компиляции | Динамическое связывание. Объектные ссылки проверяются во время выполнения |
Не может осуществлять запись в дисковую память и выполнять системные функции | Не может осуществлять запись в дисковую память и выполнять системные функции |
Команды " onclick="return false">
Как и для любой другой технологии или языка, используемых в компьютерной сети, обеспечение безопасности обработки информации является первоочередной задачей. " onclick="return false">
Быстрота создания программ, небольшие размеры программных модулей, удобный доступ ко всем внутренним функциям Web-навигатора, а также безопасность " onclick="return false">
К недостаткам технологии " onclick="return false">
Нужно отметить, что реализации языка " onclick="return false">
Язык сценариев VBScript (Visual Basic Scripting) от Microsoft во многом подобен " onclick="return false">
В отличие от макроязыков " onclick="return false">
2.2.3Технологии ActiveX
Под ActiveX понимается набор технологий от Microsoft, направленных на дополнение, интеграцию и унификацию существующих методов представления и обработки информации в компьютерных сетях, построенных по Web-архитектуре. Основная идея ActiveX-технологий заключается в использовании одинакового способа доступа ко всем информационным ресурсам сети (рис. Error: Reference source not found). В качестве основы такого унифицированного способа доступа выбрана Web-технология.
В соответствии с ActiveX Web-навигатор должен стать частью операционной системы. Более того, методы доступа к любой информации на собственном компьютере, на сервере локальной сети или в Internet должны быть совершенно одинаковы и прозрачны для пользователя. Данная концепция частично уже реализована в Web-навигаторе Microsoft Internet Explorer 4.0.
С точки зрения разработки мобильных программ набор технологий ActiveX с одной стороны выступает как альтернатива, а с другой — как существенное дополнение технологий Java и " onclick="return false">
ActiveX поддерживает следующие типы мобильных программ, которые могут быть связаны с Web-документом и передаваться на рабочую станцию для выполнения (рис. Error: Reference source not found):
- программные компоненты ActiveX Controls;
- аплеты Java;
- программы, написанные на языках сценариев " onclick="return false">
Технологии по созданию и использованию программных компонентов ActiveX Controls, а также программ, написанных на макроязыке VBScript, являются собственными разработками Microsoft.
На сервере для действенности технологий ActiveX должны функционировать общесистемные программные средства от Microsoft: операционная система Windows NT Server и Web-сервер IIS (Internet Information Server). Взаимодействие Web-сервера IIS с другими приложениями, например с системой управления базами данных (СУБД), обеспечивается за счет реализованных в нем интерфейсов ISAPI (Internet Server API) и CGI (Common Gateway Interface).
Программные компоненты ActiveX Controls представляют собой обычные исполняемые программы, которые могут загружаться с сервера для исполнения на рабочей станции. Как и при использовании Java-аплетов ссылки на эти программы располагаются в Web-документах. Непосредственно в состав Web-документов программные компоненты ActiveX Controls не входят. Они хранятся в отдельных файлах на сервере.
Компоненты ActiveX Controls отличаются от Java-аплетов следующими особенностями:
- программы ActiveX Controls включают исполняемый код, зависящий от аппаратно-операционной платформы; байт-коды же Java-аплетов являются машинно-независимыми;
- загруженные элементы ActiveX Controls остаются в клиентской системе, тогда как аплеты Java необходимо каждый раз загружать заново;
- поскольку программы ActiveX Controls не работают подобно Java-аплетам под контролем диспетчера безопасности, они могут получать доступ к дискам и выполнять другие функции, характерные для традиционных приложений.
Учитывая, что программы ActiveX Controls по сути являются обычными программными приложениями, то их разработка может осуществляться с помощью любого языка программирования. Могут быть использованы такие инструментальные системы, как Visual C++, Visual Basic, Delphi, Visual J++ и ряд других. Разработан и комплексный инструментальный пакет Microsoft ActiveX Development Kit (MADК).
Программные компоненты ActiveX Controls, а также программы, написанные на макроязыках " onclick="return false">
- создание высококачественных мультимедийных эффектов;
- открытие и редактирование электронных документов путем обращения к приложениям, поддерживающим стандарт OLE (Object Linking and Embedding — связывание и встраивание объектов), например, к приложениям Microsoft Office;
- обращения к операционной системе для оптимальной настройки параметров выполнения полученных с сервера программ.
Программы, написанные на макроязыках " onclick="return false">
В сравнении с технологией Java технология ActiveX Controls имеет как недостатки, так и преимущества.
Недостатки связаны прежде всего с более низким уровнем безопасности распределенной обработки информации. Программные компоненты ActiveX Controls, загруженные на клиентскую систему, могут обращаться к любой ее части подобно обычному приложению. Microsoft реализовала в рамках ActiveX доверительную защиту на основе цифровых сертификатов, которые обеспечивают подтверждение подлинности загруженных с сети программных компонентов. Однако подтверждение подлинности еще не означает подтверждение безопасности. Кроме того, схема доверительной защиты ActiveX может оказаться недейственной, когда пользователи загружают программные компоненты ActiveX Controls из Internet, особенно из неизвестных или сомнительных источников.
Вместе с тем программные компоненты ActiveX Controls, в отличие от Java-аплетов, позволяют реализовать функции, свойственные полномасштабным программным приложениям. Эта особенность для корпоративной сети является существенным преимуществом при условии принятия соответствующих мер безопасности, например, при разрешении загрузки программ ActiveX Controls только с серверов корпорации. Что же касается производительности, то поскольку Java является интерпретируемым языком, аплеты Java выполняются на виртуальной машине клиентской системы с меньшей скоростью, чем скомпилированные элементы ActiveX Controls. Но с другой стороны, аплеты Java очень компактны, поэтому загружаются быстро. Для загрузки же программ ActiveX Controls требуется большее время. Следует также учесть, что загруженные программы ActiveX Controls остаются в клиентской системе, тогда как все аплеты Java необходимо каждый раз загружать заново. Эта особенность с точки зрения безопасности является недостатком, так как нарушается централизация прикладной системы. Но с точки зрения производительности достигается преимущество перед Java-аплетами.
По независимости от аппаратных и операционных платформ ActiveX уступает Java-технологии. Несмотря на заявление компании Microsoft, что ActiveX обеспечивает открытую многоплатформенную поддержку операционных систем Macintosh, Windows и UNIX, технологии ActiveX лучше работают на платформах Microsoft Windows, поскольку разработаны преимущественно для использования функций, встроенных в эти операционные системы. Соответственно в полной мере ActiveX может использоваться в сетях, работающих под управлением операционных систем Microsoft Windows.