Интернет-приложенияЛекция 4 презентация

Содержание

Понятие Интернет-приложения Web-приложение ‑ это web-система, позволяющая пользователям реализовать доступ к бизнес-логике через браузер. Web-система ‑ это система гипермедиа, поскольку ее ресурсы связаны между собой. Термин «web» означает, что

Слайд 1Интернет-приложения Лекция 4
Полубояров В.В.


Слайд 2Понятие Интернет-приложения
Web-приложение ‑ это web-система, позволяющая пользователям реализовать доступ к бизнес-логике

через браузер.
Web-система ‑ это система гипермедиа, поскольку ее ресурсы связаны между собой.
Термин «web» означает, что система рассматривается как набор узлов с перекрестными ссылками.


Слайд 3Кроссплатформенность веб-приложений
Логика веб-приложения распределена между сервером и клиентом, хранение данных осуществляется,

преимущественно, на сервере, обмен информацией происходит по сети. Одним из преимуществ такого подхода является тот факт, что клиенты не зависят от конкретной операционной системы пользователя, поэтому веб-приложения являются межплатформенными сервисами.
Преимущество Web-приложений заключается в том, что их клиентские части могут выполняться независимо от операционной системы данного клиента. Вместо того чтобы писать различные версии для Microsoft Windows, Mac OS X, GNU/Linux и других операционных систем, приложение создается один раз для произвольно выбранной платформы и на ней разворачивается.

Слайд 4Проблематика создания веб-приложений
Однако различная реализация HTML, CSS, DOM и других спецификаций

в браузерах может вызвать проблемы при разработке веб-приложений и последующей поддержке. Кроме того, возможность пользователя настраивать многие параметры браузера (например, размер шрифта, цвета, отключение поддержки сценариев) может препятствовать корректной работе приложения.

Слайд 5Типы Интернет-приложений
Web-приложения, которые работают на сервере, передавая через Интернет данные на

клиентские машины. Для их применения требуются Web-браузеры;
Web-сервисы, которые позволяют приложениям обрабатывать их данные на сервере. При этом передача подлежащих обработке данных на сервер и возврат результатов осуществляется через Интернет;
приложения с поддержкой Интернета ‑ автономные программы со встроенными механизмами, позволяющими их пользователям регистрироваться, получать обновления, а также предоставляющими доступ к справочной системе и другим вспомогательным службам через Интернет;
одноранговые приложения ‑ автономные программы, использующие Интернет для взаимодействия с другими программными продуктами этого же типа.

Слайд 6Архитектура системы
Под архитектурой системы понимается высокоуровневое представление архитектурно-значимых компонентов системы.
В

этом смысле компонент представляет собой отдельную сущность с открытым интерфейсом.
Архитектурно-значимые компоненты ‑ это те, которые входят в представление системы на самом высоком уровне. Обычно эти компоненты или их набор нельзя сгруппировать или объединить в пакет с другими аналогичными компонентами. Свойства отдельных компонентов будут зависеть от особенностей представления системы.

Слайд 7Архитектурный шаблон системы
Существует широкий спектр продуктов и технологий, которые могут быть

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

Слайд 8Архитектурные шаблоны web-приложений
Шаблон Thin Web Client (на основе "тонкого" Web-клиента).
Шаблон Thick

Web Client (на основе "толстого" Web-клиента).
Шаблон Web Delivery (на основе механизма Web-доставки.

Слайд 9Тонкий веб-клиент
Шаблон Thin Web Client (на основе "тонкого" Web-клиента) используется в

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


Слайд 10Толстый веб-клиент
Шаблон Thick Web Client (на основе "толстого" Web-клиента) предполагает, что

значительная часть бизнес-логики выполняется на клиентской машине. Обычно для выполнения бизнес-логики клиентом используется DHTML, аплеты Java или управляющие элементы ActiveX. Взаимодействие с сервером также происходит через протокол HTTP.


Слайд 11Веб-доставка
Шаблон Web Delivery (на основе механизма Web-доставки). При взаимодействии клиента и

сервера, кроме протокола HTTP, используются и другие протоколы, такие как IOOP (Internet Inter-Orb Protocol) и DCOM, которые могут применяться для поддержки системы распределенных объектов. В данном случае браузер функционирует как контейнерный модуль системы распределенных объектов

Слайд 12Виды web-серверов
Различают статические и активные серверы Web.
Если страницы сервера содержат

только статическую текстовую и мультимедийную информацию, а также гипертекстовые ссылки на другие страницы, то сервер называется статическим. Статический сервер Web не может служить основой для создания интерактивных приложений с доступом через Интернет, так как он не предусматривает никаких средств ввода и обработки запросов.
Если страницы web-сервера изменяют своё содержимое в зависимости от действий пользователя, то такие серверы называют активными.

Слайд 13Способы реализации клиентской активности
При разработке динамических web-сайтов в большинстве случаев целесообразно

разделять бизнес-логику между клиентом и сервером, чтобы добиться оптимальной производительности в условиях низкоскоростных каналов Интернета и лимитированных ресурсов Web-серверов.
Например, предварительную обработку введенных данных, отправляемых серверу, имеет смысл выполнять на стороне клиента. Это позволит исключить повторные передачи неправильно заполненных форм. Графическое представление результатов запроса также стоит выполнять на стороне клиента, что существенно сократит объем данных, передаваемых по сети.
Для реализации клиентской активности возможно применение сценариев JavaScript, VB Script, аплетов Java и элементов управления ActiveX.


Слайд 14Скрипты и плагины
Для написания пользовательских расширений могут использоваться как скрипты (в

терминологии некоторых программ «макросы»), так и плагины (независимые модули, написанные на компилируемых языках; в некоторых программах они могут называться «утилитами», «экспортёрами», «драйверами»).


Слайд 15Преимущества скриптов
Скриптовый язык предпочтительнее в случаях:
Если нужно обеспечить программируемость без риска

дестабилизировать систему. Так как, в отличие от плагинов, скрипты интерпретируются, а не компилируются, неправильно написанный скрипт выведет диагностическое сообщение, а не приведёт систему к краху;
Если важен выразительный код. Во-первых, чем сложнее система, тем больше кода приходится писать вручную. Во-вторых, в скриптовом языке может быть совсем другая концепция программирования, чем в основной программе — например, MMO-игра может быть монолитным однопоточным приложением, в то время как управляющие персонажами скрипты выполняются параллельно. В-третьих, скриптовый язык имеет собственный проблемно-ориентированный набор команд, и одна строка скрипта может делать то же, что несколько десятков строк на традиционном языке. Как следствие, на скриптовом языке может писать программист очень низкой квалификации — например, геймдизайнер своими руками, не полагаясь на программистов, может корректировать правила игры;
Если требуется кроссплатформенность. Пример - JavaScript — его исполняют браузеры под разными ОС.

Слайд 16Преимущества плагинов
У плагинов же есть три важных преимущества.
Готовые программы, оттранслированные в

машинный код, выполняются значительно быстрее скриптов, которые интерпретируются из исходного кода динамически при каждом исполнении. Поэтому скриптовые языки не применяются для написания программ, требующих оптимальности и быстроты исполнения. Но из-за простоты они часто применяются для написания небольших, одноразовых («проблемных») программ.
Полный доступ к любому аппаратному обеспечению или ресурсу ОС (в скриптовом языке для этого должен существовать написанный на машинном коде API). Плагины, работающие с аппаратным обеспечением, традиционно называют драйверами.
Если предполагается интенсивный обмен данными между основной программой и пользовательским расширением, для плагина его обеспечить проще.

Слайд 17Виды скриптовых языков
В плане быстродействия скриптовые языки можно разделить на языки

динамического разбора (JavaScript) и предварительно компилируемые (Perl). Языки динамического разбора считывают инструкции из файла программы минимально требующимися блоками, и исполняют эти блоки, не читая дальнейший код.
Предкомпилируемые языки транслируют программу в байт-код и затем исполняют его.
Некоторые скриптовые языки имеют возможность компиляции программы «на лету» в машинный код (например, JIT).

Слайд 18Понятие языка JavaScript
Язык программирования JavaScript представляет собой скриптовый язык и предназначен

для создания интерактивных HTML-документов.
Скри́птовый язык (язык сценариев) — язык программирования, разработанный для записи «сценариев», последовательностей операций, которые пользователь может выполнять на компьютере. Сценарии обычно интерпретируются, а не компилируются
JavaScript - объектно-ориентированный язык разработки встраиваемых приложений, выполняющихся как на стороне клиента, так и на стороне сервера. Синтаксис языка похож на синтаксис языка Java — поэтому его часто называют Java-подобным. Клиентские приложения выполняются браузером просмотра Web-документов на машине пользователя, серверные приложения выполняются на сервере.

Слайд 19Структура языка JavaScript
Структурно JavaScript можно представить в виде объединения трёх чётко

различимых друг от друга частей:
ядро (ECMAScript). Спецификация ECMAScript описывает типы данных, инструкции, ключевые и зарезервированные слова, операторы, объекты, регулярные выражения, не ограничивая авторов производных языков от расширения их новыми составляющими. JavaScript, JScript и ActionScript являются расширением стандарта ECMA-262.
объектная модель документа (Document Object Model или DOM),
объектная модель браузера (Browser Object Model или BOM).

Слайд 20Библиотеки JavaScript
Для обеспечения кросс-браузерности и высокого уровня абстракции при разработке веб-приложений

используются библиотеки JavaScript. Они представляют собой набор многократно используемых объектов и функций.
Среди известных JavaScript библиотек можно отметить Adobe life, Dojo Toolkit, Extjs, jQuery, Mootools, Prototype, Qooxdoo.

Слайд 21Отладка сценариев JavaScript
В JavaScript доступ к отладчикам становится важным при разработке

крупных нетривиальных программ, потому что в процессе разработки возникают разногласия с разными браузерами (в частности с DOM). Полезно иметь доступ к отладчику для каждого из браузеров, в которых будет работать веб-приложение. В настоящее время, Internet Explorer, Firefox, Safari, Google Chrome, а также Opera имеют отладчики сценариев.
Internet Explorer имеет три отладчика: Microsoft Visual Studio является самым полным из трёх, следом за ним следует Microsoft Script Editor (компонент Microsoft Office), и, наконец, свободный Microsoft Script Debugger, который гораздо более простой, чем два других. Бесплатный Microsoft Visual Web Developer Express предоставляет ограниченную версию с отладочной функцией JavaScript в Microsoft Visual Studio. В восьмой версии в IE вместе с инструментами для разработчиков появился встроенный отладчик.
В Opera также имеется собственный отладчик — Opera Dragonfly.
Разработку веб-приложений в Firefox можно отлаживать при помощи плагина Firebug или отладчика Venkman.
WebKit Web Inspector включает в себя отладчик JavaScript, в Safari от Apple.

Слайд 22Область применения JavaScript
JavaScript в данный момент полностью занимает нишу браузерных языков.
JavaScript

также находит применение в качестве скриптового языка доступа к объектам приложений. Платформа Mozilla (XUL/Gecko) использует JavaScript. Среди сторонних продуктов, например, Java, начиная с версии 6, содержит встроенный интерпретатор JavaScript на базе Rhino. Сценарии JavaScript поддерживаются в таких приложениях Adobe, как Adobe Photoshop, Adobe Dreamweaver, Adobe Illustrator или Adobe InDesign.
JavaScript используется и для написания прикладного ПО. Одним из примеров является Mozilla Firefox, 57 % исходного кода которого написано на JavaScript
JavaScript используется в AJAX, одной из популярных технологий, позволяющей сделать страницы более динамическими и обеспечить им дополнительный функционал.

Слайд 23Назначение клиентских сценариев JavaScript
Оперативная проверка достоверности заполняемых пользователем полей форм HTML

до передачи их на сервер. Сценарии JavaScript способны обрабатывать данные, введенные пользователями в полях форм, а также события, возникающие в процессе манипуляций пользователя с мышью, копировать в окно браузера другие страницы HTML или изменять содержимое уже загруженных страниц.
Создание динамических HTML-страниц совместно с каскадными таблицами стилей и объектной моделью документа.
Взаимодействие с пользователем при решении "локальных" задач, решаемых приложением JavaScript, встроенном в HTML-страницу. В частности, сценарии JavaScript широко применяются для создания различных визуальных эффектов. Например, изменение внешнего вида элементов управления, над которыми установлен курсор мыши, анимация графических изображений, создание звуковых эффектов и т. д. Механизм локальной памяти Cookie позволяет сценариям JavaScript сохранять на компьютере локальную информацию, введенную пользователем. Например, в Cookie может храниться список товаров из Интернет-магазина, отобранных для покупки.

Слайд 24Обработка сценариев JavaScript
Конструкции языка сценариев JavaScript встраиваются в страницы HTML и

исполняются (интерпретируются) под управлением браузера при загрузке страниц, а также при совершении пользователем определенных действий над объектами, расположенными в этих страницах.
Встроить сценарий JavaScript в HTML-страницу можно несколькими способами

Слайд 251. Внутри тэга …
Задать операторы языка внутри тэга-контейнера …языка HTML.
Браузеры,

не поддерживающие какие-либо тэги HTML, их игнорируют, анализируя содержимое пропускаемых тэгов с точки зрения синтаксиса HTML. Это может приводить к ошибкам при отображении страницы. Поэтому операторы языка JavaScript помещаются в контейнер комментария :

Символы (//) перед закрывающим тэгом комментария --> являются оператором комментария JavaScript. Он необходим для правильной работы интерпретатора. Документ может содержать несколько тэгов обязательно, независимо от того, заданы или нет операторы внутри тэга. Связываемый внешний файл не должен содержать тэгов HTML и должен иметь расширение .js:


Слайд 273. Использовать выражения JavaScript в качестве значений параметров тэгов HTML.
Эта процедура

аналогична процедуре встраивания числовых или символьных примитивов HTML. Элементы JavaScript также располагаются между амперсандом (&) и точкой с запятой (;), но должны заключаться в фигурные скобки { } и использоваться только в качестве значений параметров тэгов HTML. Нельзя использовать элементы JavaScript в тексте HTML. Они интерпретируются только тогда, когда расположены справа от параметра и задают его значение. Пусть определена переменная barwidth, и ей присвоено значение 75. Следующий тэг нарисует горизонтальную линию длиной в 75% от горизонтального размера окна браузера:




Слайд 284. Определить обработчик событий в тэге HTML
Для совместимости с языками сценариев

в некоторые тэги HTML были введены специальные параметры обработки возникающих событий. Значениями этих параметров могут быть операторы языка JavaScript. Обычно в качестве значения задается имя функции, которая вызывается, когда происходит соответствующее событие, определяемое параметром обработки события. Имя параметра начинается с приставки on, за которым следует имя самого события.
Например, параметр обработки события click будет иметь имя onClick. События в основном связаны с действиями, производимыми пользователем с элементами форм HTML. Поэтому чаще всего перехват и обработка событий задается в параметрах элементов форм, что позволяет проверить введенную информацию перед ее отправкой на обработку. Функция или процедура это именованная последовательность операторов, которая выполняет определенную задачу и может возвращать некоторое значение.
Функция в JavaScript определяется оператором function, имеющем следующий синтаксис:
function имя_функции ( [параметры] ) {
[операторы JavaScript]
[return значение]
}
Параметры, передаваемые функции, разделяются запятыми. Необязательный оператор return в теле функции (блок операторов, заключенный в фигурные скобки), определяет возвращаемое функцией значение.
Определение необходимых функций следует осуществлять в тэге , так как все определенные в нем операторы сценария интерпретируются до отображения страницы, и, таким образом, будут известны в процессе отображения всей страницы.


Слайд 29Пример задания функции и ее вызова в процессе формирования документа

Demo

language="javascript">




Начинается отображение страницы, в которую внедрен сценарий вычисления функции



Теперь формирование страницы закончено.





Слайд 30Пример явного вызова функции из сценария

Demo

браузеров: не поддерживающих JavaScript
function validate(form) {
if(form.value >=18) {
alert("Вы - совершеннолетний");
}
else {
alert ("Вы - несовершеннолетний");
}
}
//-->




Ваш возраст:





Слайд 31Поддержка браузерами
На сегодняшний день поддержку JavaScript обеспечивают современные версии всех наиболее

часто используемых браузеров. При этом в полной мере ядро языка поддерживается браузерами:
Mozilla Firefox версии 2 и выше,
Opera версии 9 и выше.
Объектная модель документа в настоящий момент имеет более ограниченную поддержку.

Слайд 32Безопасность

JavaScript позволяет потенциальным авторам вредоносного кода запускать его на любом компьютере

сети: для этого достаточно открыть на нём веб-страницу. Это обуславливает наличие двух принципиальных ограничений:
JavaScript-программы выполняются в песочнице, в которой они могут выполнять только ограниченный круг действий, а не задачи программирования общего назначения (например, создание файлов, работа с сокетами),
для JavaScript-кода применяется политика общего происхождения, в соответствии с которой скрипт, встроенный в страницу не может получить доступ к ряду свойств объектов другой страницы (в частности, к большинству свойств объекта document) при отличии в протоколе, хосте и номере порта этих страниц.
Помимо этого, разработчики браузеров вносят дополнительные ограничения в ответ на имеющие место злоупотребления. Так появился, в частности, запрет на открытие окна, размер одной стороны которого меньше ста пиксел

Слайд 33Клиентские сценарии JScript и VBScript
Браузер MSIE реализует собственную версию JavaScript, называемую

JScript.
Помимо JScript, браузер MSIE способен работать с языком клиентских сценариев VB Script, который представляет собой подмножество Microsoft Visual Basic и функционально равноценен языку JavaScript.
Преимуществом его применения для создания сценариев является возможность использования, с небольшими корректировками, ранее написанных процедур на языках Visual Basic и Visual Basic for Application.
VBScript используется для написания сценариев клиента (в этом случае браузер должен иметь встроенный интерпретатор этого языка), а также для написания сценариев на сервере (в этом случае сервер должен поддерживать язык VBScript). Для создания сценариев клиента используется набор объектов, аналогичный набору объектов JavaScript.
Применение VB Script для создания страниц Web-серверов, расположенных в Интернете, нецелесообразно, так как не все пользователи используют IE. Однако если технологии Интернета применяются в корпоративной интрасети и можно установить на компьютеры всех пользователей IE, то применение VBScript вместо JavaScript программистами VB заметно сокращает сроки и стоимость разработки.

Слайд 34Технология Java
Технология Java включает в себя язык программирования и платформу, для

обозначения которых используется одно название — Java.
Java – это объектно-ориентированный, распределенный, интерпретируемый, защищенный, архитектурно-независимый, переносимый, высокопроизводительный, многопоточный, динамический язык программирования высокого уровня.
Программа на языке Java транслируется компилятором в специальный байтовый код — Java bytecode, называемый также J-кодом, для выполнения которого требуется интерпретатор Java. Таким образом, язык Java является одновременно компилируемым и интерпретируемым. Интерпретатор Java - это приложение, предназначенное для конкретной аппаратно-программной платформы: PC-Windows, PC-Linux, Mac, UNIX-машины. J-код не зависит от платформы.
Это обеспечивает архитектурную независимость и переносимость программ на языке Java. Байтовый код Java можно рассматривать как набор машинных команд для некоторой виртуальной машины, реализуемой интерпретатором. Он может исполняться в любой среде, в которой выполняется виртуальная машина Java.

Слайд 35Классы Java
Основными единицами, из которых строится программа Java, являются классы. Классы

образуют иерархическую древовидную структуру, лежащую в основе объектно-ориентированной модели языка. Класс представляет собой совокупность данных и методов для их обработки. Метод в терминологии объектно-ориентированной модели является синонимом процедуры или функции. На базе уже существующего класса может быть определен новый класс, являющийся подклассом своего предшественника. Исходный класс является родительским классом или надклассом для своего подкласса. Подкласс наследует у родительского класса коллекцию данных и методов. Кроме них он может содержать собственные данные и методы.

Слайд 36Создание Java-программ
Класс определяет целый тип данных. Конкретный экземпляр этого типа называется

объектом. Написание Java-программы заключается в создании нового класса или совокупности связанных между собой классов, то есть в определении набора данных, описывающих решаемую задачу, и в конструировании методов, реализующих обработку этих данных. При этом для порождения новых классов может использоваться существующая базовая коллекция классов. Исходный текст на языке Java, составляющий описание класса, сохраняется в файле, имя которого имеет расширение JAVA. Этот файл компилируется в J-код и сохраняется в файле с тем же именем и расширением CLASS. Скомпилированные классы Java в виде J-кода могут храниться локально на компьютере или распределенно в сети и динамически загружаться выполняющимися приложениями по мере необходимости.

Слайд 37Платформа Java
Платформа Java состоит из виртуальной машины и интерфейса прикладного программирования

Java API.
Виртуальная машина предназначена для выполнения J-кода на различных платформах.
Интерфейс прикладного программирования Java представляет собой большую коллекцию классов в формате J-кода, сгруппированных по своему назначению в отдельные пакеты. Список имеющихся пакетов занимает несколько страниц текста, и каждый из пакетов содержит коллекцию классов. Для работы с такой сложной структурой используется специальная схема именования пакетов и классов, напоминающая доменную систему имен (DNS).
Например, имя java.iang определяет пакет, содержащий базовые классы самого языка Java. Имя java.iang.object определяет класс object внутри этого пакета.
Пакеты, имена которых начинаются со слова java, составляют основу интерфейса прикладного программирования и входят в состав любой платформы Java. Кроме основной части API существуют стандартные расширения для работы с трехмерной графикой, анимацией и т. д.

Слайд 38Инструменты создания Java-приложений
Для создания Java-программ необходим набор средств разработчика Java Development

Kit (JDK), включающий в себя базовую коллекцию классов, компилятор javac, отладчик jdb, виртуальную машину java для выполнения готовых приложений и программу просмотра аплетов appietviewer. Существуют варианты набора JDK от фирм Sun и Microsoft и, кроме того, визуальные средства разработки фирм Microsoft, IBM, Symantec.

Слайд 39Eclipse
Eclipse — свободный фреймворк для разработки модульных кроссплатформенных приложений. Разрабатывается и

поддерживается Eclipse Foundation.
Платформа Eclipse создана для построения интегрированных сред разработки (IDE). Она может использоваться для создания различных сквозных вычислительных решений для множества сред выполнения программ.
Eclipse — в первую очередь полноценная Java IDE, нацеленная на групповую разработку, снабжённая средствами для работы с системами контроля версий.
Второе назначение Eclipse — служить платформой для разработки новых расширений (чем и завоевал популярность — любой разработчик может расширить Eclipse своими модулями). Множество расширений дополняет Eclipse менеджерами для работы с базами данных, серверами приложений и др.

Слайд 40Использование аплетов Java для создания динамических HTML-документов
В среде Java существуют два

основных типа программ: приложения (application) и аплеты (applets).
Приложение — это самостоятельная программа, для выполнения которой требуется только наличие виртуальной машины Java.
Аплет — это программа, которая предназначена для выполнения в составе Web-браузера или специальной программы просмотра аплетов. Java-аплеты — это еще один метод создания динамических HTML-документов.
Аплет создается, компилируется и сохраняется на Web-сервере. В HTML-документ, публикуемый на сервере, при помощи специального тэга помещается ссылка на местоположение аплета. При получении документа с сервера браузер загружает аплет и начинает его выполнять. Такой подход к созданию динамических документов прямо противоположен подходу, который используется в программировании интерфейсов CGI: апплет выполняется на стороне клиента, а CGI-сценарий — на стороне сервера.
Аплеты Java, используются наряду с клиентскими сценариями для организации активности на стороне клиента. Аплеты Java применяются для организации визуальных и звуковых эффектов, а также ввода и предварительной обработки данных перед отправкой их на сервер, а также для представления полученных от сервера данных в графическом, табличном или каком-либо другом виде.

Слайд 41Безопасность аплетов
Аплеты выполняются под управлением браузера и не имеют доступа к

локальным ресурсам компьютера. Однако они способны взаимодействовать с расширениями сервера CGI и ISAPI, а также читать файлы с того Web-сервера, с которого они были загружены.
Аплет не может:
осуществлять операции чтения-записи в локальной файловой системе, то есть читать и изменять файлы, просматривать содержимое каталогов, создавать, удалять, переименовывать файлы и каталоги;
устанавливать сетевые соединения с другими компьютерами, кроме компьютера, с которого он был загружен;
запускать на выполнение другие программы на компьютере, на котором он выполняется;
использовать библиотеки других языков программирования,
изменять системные параметры.
Для проверки соблюдения правил безопасности существует специальный класс java.iang.SecurityManager. Экземпляр этого класса выполняется в составе виртуальной Java-машины браузера.


Слайд 42Технология ActiveX
Элементы управления ActiveX— это самостоятельные программные компоненты, которые можно использовать

в разрабатываемых приложениях для реализации необходимых функциональных возможностей.
Элементы управления ActiveX создаются с использованием технологии Component Object Model (COM — Компонентная объектная модель), разработанной фирмой Microsoft, и не являются самостоятельным приложением — они выполняются только в приложении, которое позволяет встраивать элементы управления ActiveX, являясь, тем самым, для них неким контейнером.


Слайд 43Контейнеры для элементов ActiveX
Элемент управления ActiveX представляет собой небольшую программу, которой

браузер выделяет на странице определенный участок прямоугольной формы. В пределах своего участка орган управления полностью отвечает за перерисовку экрана и взаимодействие с пользователем.
Не всякое приложение может быть контейнером для элементов управления ActiveX. Оно должно поддерживать технологию СОМ и предоставлять возможность манипулирования встраиваемыми компонентами. Многие приложения фирмы Microsoft позволяют широко использовать элементы управления ActiveX либо для расширения функциональных возможностей самого приложения, либо для быстрого создания новых приложений, использующих элементы управления ActiveX в качестве строительных блоков. К подобным приложениям можно отнести Microsoft Visual Basic, Microsoft Access, Microsoft Internet Explorer и некоторые другие.


Слайд 44Технология COM
Технология СОМ позволяет использовать объекты со своими свойствами, методами и

событиями, которые создаются не во время выполнения программы, написанной на каком-либо объектно-ориентированном языке программирования, а существуют в виде отдельных программных единиц, называемых компонентами. При включении подобного объекта-компонента в тело разрабатываемой программы он раскрывает свои свойства и методы, которые можно получать или устанавливать, а также выполнять.

Слайд 45Повторное использование ActiveX-элементов
Для реализации какой-нибудь функциональной возможности с помощью элемента управления

ActiveX, например отображения дерева каталогов, программист может разработать свой элемент управления ActiveX, а может воспользоваться одним из многочисленных элементов управления ActiveX, разработанных и распространяемых другими фирмами.

Слайд 46ActiveX на стороне клиента
Элементы управления ActiveX можно использовать как на стороне

сервера, так и на стороне клиента. В последнем случае их применяют для решения тех же задач, что и аплеты Java:
реализация полос прокрутки, раскрывающихся меню и других визуальных элементов управления, которые средствами HTML создать нельзя;
прием обработка и вывод данных от пользователя или серверного компонента, с последующим построением динамически меняющихся диаграмм,
решение оформительских задачи - например, покрытие выделенного им участка узором, плавным переходом цветов, движущимся текстом или изображением.
Дополнительно они предоставляют неограниченный доступ к ресурсам локального компьютера. Возможность доступа элементов управления ActiveX к локальным ресурсам компьютера имеет не только преимущества, но и недостатки.

Слайд 47Встраивание элементов управления ActiveX в страницу
Для встраивания в HTML-страницу внешних объектов

предназначен тэг , который является контейнером для тэгов , определяющих значения свойств включаемого объекта.
Любой устанавливаемый на компьютере элемент управления ActiveX регистрируется в системном реестре, куда заносится и там же хранится соответствующая информация. В разделе HKEY_CLASSES_ROOT/CLSID/ реестра хранятся уникальные идентификационные номера всех установленных на компьютере элементов управления ActiveX. В дальнейшем эта информация используется браузером Internet Explorer для обработки HTML-страниц, содержащих встроенные элементы управления ActiveX.


Слайд 48Встраивание элементов управления ActiveX в страницу
Для элементов управления ActiveX обязательно задание

параметра classid. Значением его является уникальный идентификационный номер встраиваемого элемента управления ActiveX. При загрузке страницы браузер проверяет, установлен ли элемент управления на компьютере пользователя, осуществляя его поиск в системном реестре по заданному идентификационному номеру. В случае отсутствия записи в реестре браузер автоматически начинает процедуру загрузки элемента управления ActiveX с сервера, URL-адрес которого указан в параметре codebase тэга .
Значение параметра classid представляет строку, определяющую встраиваемый объект, и для зарегистрированных элементов управления ActiveX задается в форме:
"clsid:ХХХХХХХХ-ХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХХХ"
Первая часть clsid: сообщает анализатору браузера, что вставляется элемент управления ActiveX. Вторая часть представляет собой уникальный идентификационный номер этого элемента.
В параметре codebase задается адрес компонента, по которому браузер может загрузить его на компьютере пользователя в случае отсутствия.

Слайд 49Пример вставки ActiveX-элемента в страницу




Слайд 50Версии элементов управления ActiveX
После адреса элемента управления задается его версия в

виде #version=a,b,c,d, где a и b представляют, соответственно, старшее и младшее слово максимально доступной на сервере версии элемента управления, а c и d — соответственно старшее и младшее слово минимально доступной на сервере версии элемента управления. Эти значения используются браузером в процессе принятия решения о загрузке элемента управления с сервера. Если на компьютере пользователя установлена более новая версия элемента управления, то загрузка не производится.
Значения, определяющие интервал доступных версий компонента могут быть все установлены равными "-1". В этом случае элемент управления загружается, если дата выпуска его версии на сервере позже даты его установки на компьютере пользователя.
Оптимальным способом вставки элементов управления ActiveX в HTML-страницу является использование визуальных редакторов.

Слайд 51Права доступа элементов управления ActiveX
Java-апплеты и элементы управления ActiveX разрабатываются с

учетом их безопасного применения. Стратегии безопасности для этих двух типов объектов различны. Если средства разработки Java-аплетов вообще не позволяют им обращаться к информации, расположенной на компьютере, то с элементами управления ActiveX дело обстоит немного сложнее. Последние используются не только в Web-приложениях, но и как строительные единицы при разработке обычных приложений. Поэтому ни одна среда разработки элементов управления ActiveX не накладывает ограничений на доступ к информации, хранящейся на компьютере, где используется этот элемент.
Файл с расширением .ocx, в котором содержится компонент системы ActiveX, получает управление практически так же, как и любой другой исполняемый файл в Windows, и обладает теми же правами - например, правом бесконтрольной записи на диск (эти права могут быть ограничены уровнем привилегий пользователя, запустившего данный компонент).

Слайд 52Установка элементов ActiveX
Поэтому ограничение доступа к информации элементу управления ActiveX достигается

совместным использованием системы безопасности браузера и мероприятиями, связанными с регистрацией и установкой элементов управления ActiveX на компьютере пользователя при загрузке HTML-страницы.
Если используемый на странице элемент управления ActiveX не установлен на компьютере пользователя, то браузер начнет процедуру загрузки и установки элемента управления на этом компьютере.

Слайд 53Технология цифровых сертификатов
Для обеспечения безопасности загрузки элементов управления ActiveX используется технология

цифровых сертификатов. Прежде чем загружать необходимые файлы, браузер проверит, снабжен ли элемент управления цифровой подписью, и если да, то в диалоговом окне отобразит содержимое цифровой подписи, если нет — предупредит пользователя о том, что будет загружаться элемент управления без цифровой подписи. Пользователь сам решает, стоит ли ему загружать данный элемент управления.

Слайд 54Получение цифровой подписи
Разработчик элемента управления ActiveX снабжает свой элемент цифровой подписью

следующим образом:
Разработчик получает соответствующий сертификат подлинности от организации, уполномоченной на это. Одной из таких организаций является VeriSign (http://digital.verisign.com/). Основная функция подобных организаций - проверить подлинность и правильность информации о фирме или индивидуальном программисте, желающих подписывать свои продукты.
После получения сертификата с помощью специального программного обеспечения, поставляемого разными фирмами, производитель программного продукта вставляет цифровую подпись в двоичный код распространяемого им программного обеспечения, например элемента управления ActiveX.
Действующая цифровая подпись гарантирует, что загружаемый элемент управления ActiveX произведен конкретной фирмой или лицом, и подтверждает, что он никем не был изменен со дня его подписания фирмой-производителем.
Чтобы получить цифровой сертификат и подписать свой элемент управления ActiveX, разработчик должен внести единовременный денежный взнос, а затем производить ежегодную плату.


Слайд 55Сравнение моделей безопасности ActiveX и Java-аплетов
Система ActiveX и реализованный в ней

механизм безопасности заметно удобнее использования языка Java. Отсутствие защитной оболочки виртуальной машины позволяет расширить функциональность компонентов ActiveX. Им доступен прямой и эффективный контроль над ресурсами компьютером, который невозможно реализовать Java-аплетами.
В случае разработки элементов управления ActiveX для веб-сервера их можно не подписывать. Эти модули не загружаются клиентами, а выполняются непосредственно на сервере.

Слайд 56Выбор способа реализации клиентской активности
Выбирая между серверной и клиентской активностью, а

также способами их реализации, необходимо учесть следующие факторы:
Кроссплатформенность – необходимо обеспечить совместимость решения с максимальным количеством компьютерных платформ.
Минимизация объема загружаемых клиентских программ.
Обеспечение безопасности информации, передаваемой клиентом на web-сервер.


Слайд 57Способы организации активных web-серверов
Для создания веб-приложений на стороне сервера используются разнообразные

технологии и языки программирования

Название Лицензия Веб-сервер

CGI
Java свободная множество, в том числе свободных
Perl свободная практически любой
PHP свободная практически любой
Python свободная практически любой
Ruby свободная практически любой
ISAPI
ASP проприетарная специализированный
ASP.NET проприетарная специализированный



Слайд 58CGI-интерфейс
CGI-интерфейс (Common Gateway Interface – Общий шлюзовой интерфейс) — одно из

первых решений, созданных для доставки динамической web-информации. CGI он до сих пор очень популярен на платформе UNIX. CGI-приложения — это программы, исполняемые на Web-сервере и обычно используемые для предоставления динамической Web-информации.
Аббревиатура CGI (Common Gateway Interface) обозначает часть Web-сервера, которая может взаимодействовать с другими программами, выполняющимися на этом же Web-узле, и в этом смысле является шлюзом (gateway - шлюз) для передачи данных, полученных от клиента, программам обработки, таким как СУБД, электронные таблицы, и др. CGI включает общую среду (набор переменных) и протоколы для взаимодействия с этими программами. Программы CGI пользуются этим интерфейсом для получения (через протокол HTTP) информации от пользователя, для ее обработки и отправки обратно в виде нового документа HTML, ссылки на существующий документ или на другой объект.

Слайд 59Программа CGI
Программа CGI ‑ это обычное консольное приложение, работающее в среде

операционной системы сервера Web и осуществляющее обмен данными через стандартные потоки ввода и вывода. Такое приложение загружается в оперативную память сервера и запускается только по явному запросу пользователя, когда к нему выполняется обращение из документа HTML. Окончив обработку запроса пользователя, программа CGI завершает свою работу и выгружается из памяти сервера.
Программа CGI работает на сервере как отдельный процесс. В рамках этого процесса она способна, в частности, обращаться к базам данных для выборки или обновления информации.

Слайд 60Языки создания CGI-приложений
Сам интерфейс разработан таким образом, чтобы можно было использовать

любой язык программирования, который может работать со стандартными устройствами ввода/вывода. Такими возможностями обладают даже скрипты для встроенных командных интерпретаторов операционных систем, поэтому в тех случаях, когда нет нужды в сложной функциональности, могут использоваться даже такие простые командные скрипты.
Все скрипты, как правило, помещают в каталог cgi-bin сервера, но это необязательно: скрипт может располагаться где угодно, но при этом большинство веб-серверов требуют специальной настройки.
В веб-сервере Apache, например, такая настройка может производиться при помощи общего файла настроек httpd.conf или с помощью файла .htaccess в том каталоге, где содержится этот скрипт. Также Apache позволяет запускать все скрипты, имеющие расширение .cgi.

Слайд 61Формирование динамических документов HTML с помощью CGI


Слайд 62Последовательность работы CGI
Получение Web-сервером информации от клиента-браузера. Для передачи данных Web-серверу

используются формы. Форма задается в HTML-документе при помощи тэгов
и состоит из набора полей ввода, отображаемых браузером в виде графических элементов управления: селекторных кнопок, опций, строк ввода текста, управляющих кнопок и т. д. Обычно одна из кнопок предназначена для завершения ввода. Когда пользователь заполнит всю форму, он нажимает эту кнопку, и данные из полей формы передаются программе CGI.
Анализ и обработка полученной информации. Данные, извлеченные из HTML-формы, передаются для обработки CGI-программе. Они не всегда могут быть обработаны CGI-программой самостоятельно. Например, они могут содержать запрос к базе данных. В этом случае CGI-программа на основании полученной информации формирует запрос к ядру СУБД, выполняющейся на том же или удаленном компьютере.
Создание нового HTML-документа и пересылка его браузеру. После обработки полученной информации CGI-программа создает динамический (виртуальный) HTML-документ, или формирует ссылку на уже существующий документ и передает результат браузеру.

Слайд 63Вывод CGI-программы
CGI-программа передает результат своей работы — HTML-документ — серверу, который

возвращает его клиенту. Шлюз осуществляет свой вывод в стандартный поток вывода. Этот вывод может представлять собой или документ, сгенерированный шлюзом, или инструкции серверу, где получить необходимый документ. При этом сервер не анализирует и не изменяет полученные данные, он может только дополнять их некоторыми заголовками, содержащими общую информацию (например, текущая дата и время) и информацию о самом себе (например, имя и версия сервера).

Слайд 64Ввод CGI-программы
В зависимости от метода данные формы передаются в CGI-программу или

через стандартный ввод (POST), или через переменную среды QUERY_STRING (GET). Помимо этих данных CGI-программе доступна и другая информация, поступившая от клиента в заголовках запроса или предоставленная Web-сервером.
Информация шлюзам передается в следующей форме:
 
имя=значение&имя1=значение1&..,
 
где имя- имя переменной (из оператора FORM, например), и значение - ее реальное значение.
В зависимости от метода, который используется для запроса, эта строка появляется или как часть URL (в случае метода GET), или как содержимое HTTP запроса (метод POST). В последнем случае, эта информация будет послана шлюзу в стандартный поток ввода.

Слайд 65Декодирование CGI-ввода
Данные формы поступают в CGI-программу в закодированном виде, поэтому в

качестве первого шага обработки CGI-сценарий должен выполнить декодирование полученной информации.
Таким образом, декодирование данных сводится к следующей последовательности манипуляций со строкой:
замена каждой группы %hh, состоящей из шестнадцатеричного ASCII-кода hh с префиксом %, на соответствующий ASCII-символ;
замена символов + пробелами;
выделение отдельных пар имя=значение, разделенных ограничителем &;
выделение из каждой пары имя— значение имени и значения соответствующего поля формы.

Слайд 66Perl
Perl — высокоуровневый интерпретируемый динамический язык программирования общего назначения.
Может быть использован

для создания абсолютно мобильных программ CGI. Интерпретаторы этого языка созданы практически для всех операционных систем. Этот язык высокого уровня содержит многие функции, упрощающие создание программ CGI.
Программа на языке Perl представляет собой последовательность операторов, которые интерпретатор языка выполняет при каждом запуске без преобразования исходного текста программы в выполняемый двоичный код. По этой причине CGI-программы называют также CGI-сценариями или CGI-скриптами.
Основной особенностью языка считаются его богатые возможности для работы с текстом, в том числе реализованные при помощи регулярных выражений.
Perl также знаменит огромной коллекцией дополнительных модулей CPAN.
Основной для разработчиков является версия Perl 5, однако на некоторых веб-серверах продолжают использоваться скрипты Perl4 из-за частичной обратной несовместимости. Фактически стандарт языка определяется реализацией интерпретатора. С 2000 года идет разработка новой (6-ой) версии языка. В отличие от предыдущих версий, разработчики планируют создать четко определенный стандарт языка. В настоящее время существуют экспериментальные компиляторы Perl 6.

Слайд 67PHP
Для динамического формирования документов HTML используется также технология PHP (Hypertext Preprocessor).

PHP часто еще называют препроцессором гипертекста (Hypertext Preprocessor). По сути PHP серверный (выполняющийся на стороне сервера) мультиплатформный язык описания сценариев, встраиваемый непосредственно в HTML-код.
Основными сферами применения данной технологии являются создание серверных приложений и интерфейсов к базам данных.
В настоящее время поддерживается подавляющим большинством хостинг-провайдеров. Входит в LAMP — распространённый набор для создания веб-сайтов (Linux, Apache, MySQL, PHP).

Слайд 68Архитектура PHP
PHP отличается наличием ядра и подключаемых модулей, «расширений»: для работы

с базами данных, сокетами, динамической графикой, криптографическими библиотеками, документами формата PDF и т. п.
Существуют сотни расширений, однако в стандартную поставку входит лишь несколько десятков хорошо зарекомендовавших себя. Интерпретатор PHP подключается к веб-серверу либо через модуль, созданный специально для этого сервера (например, для Apache или IIS), либо в качестве CGI-приложения. Кроме того, возможно использование PHP для создания клиентских GUI-приложений.

Слайд 69Механизм работы PHP
Приложения PHP встраиваются в документы HTML в качестве сценариев,

подобно сценариям JavaScript, однако, в отличие от JavaScript, сценарии PHP выполняются не пользовательским агентом, а специальной программой – проигрывателем сценариев PHP, которая является приложением CGI и запускается сервером. Пользовательский агент получает результат выполнения запрошенного им сценария и не может получить доступ к исходному коду самого сценария.
До того, как сервер пересылает опубликованный файл браузеру, его просматривает препроцессор-интерпретатор. Для этого файлы имеют специальное расширение .phtml или php3. Если страница содержит помимо HTML php-код, то он выполняется и результат отправляется браузеру.

Слайд 70Версии PHP
Разработчик – Zend Technologies
PHP 3.0 выпущен в 1998 г. В

настоящее время не используется;
PHP 4.0 выпущен в 2000 г., в дополнение к улучшению производительности, имел ещё несколько ключевых нововведений, таких как поддержка сессий, буферизация вывода, более безопасные способы обработки вводимой пользователем информации и несколько новых языковых конструкций. С 9.08.2008 поддержка версии PHP 4.x была прекращена;
PHP 5 выпущен в 2004 г. Введена поддержка языка разметки XML. Полностью переработаны функции ООП, которые стали во многом схожи с моделью, используемой в Java. Нововведения, однако, были сделаны с расчётом сохранить наибольшую совместимость с кодом на предыдущих версиях языка.
PHP 6 находится в стадии разработки с октября 2006.


Слайд 71Преимущества и недостатки PHP
Преимуществами PHP является бесплатность и кроссплатформенность. Недостаток –

плохая масштабируемость. PHP непригоден для использования в сложных проектах. Это связано со следующими особенностями:
падение производительности при обработке больших скриптов;
PHP – интерпретируемый язык и уступает по скорости работы компилируемым технологиям;
в php3 нет поддержки сессий, как, например, в ASP.

Слайд 72Недостатки PHP
Несогласованный синтаксис функций. PHP предоставляет разработчикам большое количество самых разнообразных

функций, которые попали в язык из расширений, создаваемых разными группами программистов. В результате синтаксис языка не согласован, например, часть функций для работы с массивами начинается с префикса array_, другая часть этим префиксом не обладает. Названия части строковых функций начинается с префикса str, другие функции таким префиксом не обладают. В тех же строковых функциях обрабатываемая строка может передаваться как в качестве первого, так и в качестве последнего аргумента, что требует постоянного обращения к документации.
Отсутствие обратной совместимости между версиями языка. Код, созданный для более ранних версий языка, зачастую не работает или работает некорректно с более поздними версиями языка.
Отсутствие поддержки Unicode в ядре языка. Поддержка Unicode-строк реализуется через расширение mbstring. При этом вместо стандартных функций работы со строками используются аналогичные функции, но с префиксом mb_. Сами строки не хранят информацию о своей кодировке, и её необходимо указывать вручную при вызове функций расширения mbstring.
Отсутствие многопоточности. В языке не предусмотрена возможность создания многопоточных приложений. Однако PHP распространен главным образом в области Web-разработки, где зачастую проблему многопоточности берет на себя веб-сервер.

Слайд 73Примеры применения PHP
На PHP написано множество приложений, которые широко используются на

различных сайтах, форумах и блогах. Наиболее известные из них — Wordpress, Drupal, Joomla, MediaWiki, phpBB.


Слайд 74Инструментарий разработки для PHP
Для быстрой разработки приложений на PHP было создано

множество фреймворков, наиболее популярными из которых являются Zend Framework, CakePHP, Symfony и CodeIgniter.

Название Лицензия Сайт
Eclipse PDT Freeware http://www.eclipse.org/pdt/
Zend Studio Shareware http://www.zend.com/products/zend_studio/
phpDesigner Shareware http://www.mpsoftware.eu/
PHP Expert
Editor Shareware +
бесплатно для
лиц проживающих
в СНГ http://www.phpexperteditor.com/
NetBeans IDE Freeware http://www.netbeans.org/
Delphi for PHP Trial http://www.codegear.com/products/delphi/php
NuSphere Trial http://www.nusphere.com/


Слайд 75Python
Python — высокоуровневый язык программирования общего назначения с акцентом на производительность

разработчика и читаемость кода. Синтаксис ядра Питона минималистичен. В то же время стандартная библиотека включает большой объём полезных функций.
Python поддерживает несколько парадигм программирования, в том числе структурное, объектно-ориентированное, функциональное. Основные архитектурные черты — динамическая типизация, автоматическое управление памятью, механизм обработки исключений, поддержка многопоточных вычислений и удобные высокоуровневые структуры данных. Код в Питоне организовывается в функции и классы, которые могут объединяться в модули (которые в свою очередь могут быть объединены в пакеты).

Слайд 76Интерпретатор Python
Эталонной реализацией Питона является интерпретатор CPython, поддерживающий большинство активно используемых

платформ. Он распространяется свободно под очень либеральной лицензией, позволяющей использовать его без ограничений в любых приложениях, включая проприетарные.
Есть реализации интерпретаторов для JVM (с возможностью компиляции), MSIL (с возможностью компиляции) и других.
Python — активно развивающийся язык программирования, новые версии (с добавлением/изменением языковых свойств) выходят примерно раз в два с половиной года. Вследствие этого и некоторых других причин на Python отсутствуют ANSI, ISO или другие официальные стандарты, их роль выполняет CPython.

Слайд 77Портируемость Python
Python портируем и работает почти на всех известных платформах —

от КПК до мейнфреймов. Существуют порты под Microsoft Windows, все варианты UNIX (включая FreeBSD и GNU/Linux), Plan 9, Mac OS и Mac OS X, Palm OS, OS/2, Amiga, AS/400 и даже OS/390, Symbian и Android.
При этом, в отличие от многих портируемых систем, для всех основных платформ Python имеет поддержку характерных для данной платформы технологий (например, Microsoft COM/DCOM). Более того, существует специальная версия Питона для виртуальной машины Java — Jython, что позволяет интерпретатору выполняться на любой системе, поддерживающей Java, при этом классы Java могут непосредственно использоваться из Питона и даже быть написанными на Питоне. Также несколько проектов обеспечивают интеграцию с платформой Microsoft .NET

Слайд 78Сравнение Python с другими языками
Наиболее часто Python сравнивают с Perl и

Ruby. Эти языки также являются интерпретируемыми и обладают примерно одинаковой скоростью выполнения программ. Как и Perl, Python может успешно применяться для написания скриптов (сценариев). Как и Ruby, Python является хорошо продуманной системой для ООП.

Слайд 79Быстродействие Python
Питон, как и многие другие интерпретируемые языки, не применяющие, например,

JIT-компиляторы, имеют общий недостаток — сравнительно невысокую скорость выполнения программ. Однако, в случае с Python этот недостаток компенсируется уменьшением времени разработки программы.
Сохранение байт-кода (файлы .pyc и .pyo) позволяет интерпретатору не тратить лишнее время на перекомпиляцию кода модулей при каждом запуске, в отличие, например, от языка Perl. Кроме того, существует специальная JIT-библиотека psyco, позволяющая ускорить выполнение программ (однако приводящая к увеличению потребления оперативной памяти). Эффективность psyco сильно зависит от архитектуры программы.

Слайд 80Технология JIT
Just-in-time compilation (JIT) (также известна как dynamic translation) — компиляция

«на лету» — это технология увеличения производительности программных систем, использующих байт-код, путём трансляции байт-кода в машинный код непосредственно во время работы программы. Таким образом достигается высокая скорость выполнения (сравнимая с компилируемыми языками) за счёт увеличения потребления памяти (для хранения результатов компиляции) и затрат времени на компиляцию. JIT базируется на двух более ранних идеях, касающихся среды исполнения: компиляции байт-кода и динамической компиляции.
В языках, компилирующихся в байт-код, таких как Lua, Perl, GNU CLISP или Java, исходный код транслируется в одно из промежуточных представлений, известное как байт-код. Байт-код не является машинным кодом какого-либо компьютера и может портироваться на различные компьютерные архитектуры. Байт-код интерпретируется (исполняется) виртуальной машиной.
JIT используется в реализациях Java, Microsoft .NET. Языки Perl, Python и подобные имеют ограниченные или неполные JIT.

Слайд 81Ruby
Ruby — динамический, интерпретируемый язык высокого уровня для объектно-ориентированного программирования. Язык

обладает независимой от операционной системы реализацией многопоточности, строгой динамической типизацией, сборщиком мусора и другими возможностями.
Кроссплатформенная реализация интерпретатора языка является полностью свободной.


Слайд 82Интерпретаторы Ruby
Для Ruby существуют несколько реализаций: официальный интерпретатор, написанный на Си,

JRuby — реализация для Java, интерпретатор для платформы .NET IronRuby (находится в стадии разработки) и т.п.
Официальный интерпретатор портирован под большинство платформ, включая Unix, Microsoft Windows (в том числе Windows CE), DOS, Mac OS X, OS/2, Amiga, BeOS, Syllable, Acorn RISC OS и другие.

Слайд 83IDE для Ruby
Название Лицензия Платформы
ActiveState Komodo IDE Проприетарная GNU/Linux, Mac OS X, Solaris, Windows
Arachno Ruby

IDE Проприетарная Win 2000/XP, GNU/Linux http://www.ruby-ide.com
Aptana (RadRails+RDT) CPL Java
Eclipse + RDT CPL Java
FreeRIDE Ruby License Windows, OS X, POSIX
RubyMine Проприетарная Java
KDevelop GNU GPL Linux
Mondrian Ruby IDE MIT Ruby (+ FOX toolkit)
NetBeans IDE CDDL Java
RDE Ruby License Windows
Ruby in steel Проприетарная Visual Studio 2005
Xcode 3.1 Проприетарная Mac OS X 10.5

Слайд 84Недостатки языка и интерпретатора
Невысокая скорость работы. Ruby 1.8 является одним из

самых медленных из используемых в практике веб-разработки языков программирования. Эта проблема решена в Ruby Core 1.9 и в JRuby. Быстродействие других альтернативных реализаций языка также несколько лучше чем у Ruby 1.8.
Отсутствие поддержки потоков операционной системы (для Unix-подобных операционных систем есть поддержка процессов ОС), есть в версии 1.9.
Отсутствие встроенной поддержки Юникода (возможна работа с использованием дополнительных библиотек, есть в версии 1.9).
Отсутствие компиляции в байткод.
Новая ветка, Ruby 1.9, использующая для интерпретации опкода новую виртуальную машину YARV устраняет эти недостатки. Однако в новой версии произошли значительные изменения в синтаксисе языка, обратная совместимость нарушена, поэтому полный переход на неё в настоящее время затруднен.

Слайд 85Ruby on Rails
Ruby on Rails — объектно-ориентированный программный каркас для создания

веб-приложений, написанный на языке программирования Ruby. Ruby on Rails предоставляет архитектурный образец Model-View-Controller (модель-представление-контроллер) для веб-приложений, а также обеспечивает их интеграцию с веб-сервером и сервером базы данных.
Предоставляет однородную среду для разработки динамических AJAX-интерфейсов, с обработкой запросов и выдачи данных в контроллерах, отражения предметной области в базе данных.
Ruby on Rails является открытым программным обеспечением и распространяется под лицензией MIT.

Слайд 86ISAPI
Если Web-сервер создан на базе Microsoft Internet Information Server, вместо программ

CGI можно использовать приложения ISAPI, реализованные в виде библиотек динамической загрузки DLL, что позволяет повысить производительность и масштабируемость.
ISAPI также реализован в модуле mod_isapi.dll для Apache for Win32, так что серверные веб-приложения, написанные для Microsoft IIS, могут работать и с сервером Apache.
Приложения ISAPI условно делятся на расширения ISAPI и фильтры ISAPI. В чистом виде ISAPI в настоящее время не используются, но являются основой для других веб-технологий.

Слайд 87Проблемы производительности CGI-приложений
Каждый раз, когда удаленный пользователь обращается к расширению CGI,

на web-сервере запускается программа, которая выполняется как отдельный процесс, причем в собственном адресном пространстве. На запуск процесса требуется время, и если количество обращений к CGI-приложению велико, то программы CGI могут полностью загрузить сервер. В результате увеличится время реакции сервера.


Слайд 88Повышение эффективности использования серверных ресурсов при помощи расширений ISAPI
Расширения ISAPI выполняют

те же функции, что и программы CGI: обычно они применяются для обработки клиентских запросов и возвращения ответа в формате HTML.
Для повышения производительности в некоторых Web-серверах (в частности, IIS) используется другой способ создания расширений. Расширение создается как библиотека динамической загрузки DLL с использованием программного интерфейса ISAPI (Internet Server API).
Когда такое расширение активизируется в первый раз, оно загружается в адресное пространство процесса Web-сервера и начинает свою работу. В памяти всегда находится только одна копия соответствующей библиотеки DLL, поэтому при одновременном обращении к расширению ISAPI нескольких пользователей системные ресурсы расходуются более экономно, и, кроме того, не тратится время на дополнительные загрузки расширения.
ISAPI-расширения явно указываются в URL-адресе, отправляемом на IIS-сервер: Например: http://localhost/sayhelloisapi/sayhelloisapi.dll


Слайд 89Функционирование ISAPI-расширений


Слайд 90Проблематика создания приложений ISAPI
Программирование приложений ISAPI представляет собой более сложную задачу,

нежели создание программ CGI. Поскольку такие приложения всегда работают в мультизадачном режиме, необходимо обеспечить синхронизацию доступа к критичным ресурсам. Ошибки в приложениях ISAPI могут привести к аварийной остановке сервера Web, а вот при использовании программ CGI это маловероятно.
Сервер IIS 4.0 и старше позволяет загружать программы ISAPI в отдельное адресное пространство. Эта возможность, замедляющая работу сервера, обычно используется для отладки новых программ. Аварийное завершение программы ISAPI, загруженной в отдельное адресное пространство не приводит к полной остановке Web-сервера.
В результате расширения ISAPI работают быстрее по сравнению с программами CGI, поскольку для программ CGI для каждого пользователя приходится запускать отдельный процесс.
Однако приложения ISAPI приходится отлаживать намного тщательнее, чем программы CGI. Так как приложение ISAPI работает в адресном пространстве Web-сервера, ошибка в приложении ISAPI способна вызвать аварийное завершение работы Web-сервера.

Слайд 91Фильтры ISAPI
Фильтры ISAPI, так же как и расширения ISAPI, реализованы в

виде библиотек динамической загрузки DLL и способны контролировать весь поток данных между браузером и Web-сервером на уровне протокола HTTP.

Слайд 92Функционирование ISAPI-фильтров


Слайд 93Применение ISAPI-фильтров
ISAPI-фильтры никогда не вызываются явно — IIS-сервер обращается к ним

в ответ на определенные события в процессе выполнения запроса:
на завершение обработки сервером предоставленных клиентом заголовков;
на завершение сервером процедуры аутентификации клиента;
на сопоставление сервером логического URL-адреса физическому;
до начала пересылки «сырых» данных от клиента на сервер;
на завершение пересылки «сырых» данных от клиента, но до начала их обработки на сервере;
на регистрацию информации сервером в журнале;
на завершение сеанса.
Благодаря этому их можно применять для решения таких задач, как динамическая перекодировка и шифрование данных, создание дополнительных процедур аутентификации пользователей, сбор статистической информации об использовании ресурсов сервера и т. д.


Слайд 94Active Server Pages (ASP)
ASP не является языком программирования — это лишь

технология предварительной обработки, позволяющая подключать программные модули во время процесса формирования веб-страницы. Относительная популярность ASP основана на простоте используемых языков сценариев (VBScript или JScript) и возможности использования внешних COM-компонентов.
Технология ASP получила своё развитие в виде ASP.NET — новой технологии создания веб-приложений, основанной на платформе Microsoft .NET.

Слайд 95Файл ASP
Файл Active Server Pages (ASP) представляет собой текстовый файл с

расширением «.asp». Этот файл может содержать текстовые данные, тэги языка HTML и серверные сценарии.
Обработка этого файла происходит последовательно, от начала и до конца, при этом выполняются все содержащиеся в нем команды сценария, после чего файл отправляется в браузер в виде веб-страницы.
Когда пользователь обращается к странице ASP, Web-сервер вызывает веб-сервер расширение ASP для обработки указанного в запросе файла, которое интерпретирует расположенный в ней сценарий. При этом анализируются параметры, переданные этой странице. Далее страница модифицируется (или создается заново), а затем отправляется обратно пользователю.

Слайд 96Пример ASP-страницы


Hello ASP World


ASP World
")
Next
%>




Слайд 97Обработка сценариев ASP
На страницах ASP допускается использование любого языка сценариев, для

которого был установлен COM-совместимый обработчик сценариев.
Обработчик сценариев — это программа, которая обрабатывает команды, записанные на определенном языке. В состав ASP входят обработчики сценариев VBScript и JScript, но имеется дополнительная возможность установки обработчиков для языков PERL, REXX и Python, которые могут быть получены от независимых разработчиков.
Обработчик сценариев представляет собой расширение ISAPI, которое физически является динамически подключаемой библиотекой ASP.DLL. ASP.DLL просматривает файлы .asp на предмет наличия тэгов, обозначающих внедренный код для выполнения на сервере. ASP.DLL передает код сценария в Windows Script Host (WSH). WSH выполняет этот код и возвращает ответ файлу ASP.DLL, который, в свою очередь, передает IIS результат выполнения сценария и содержимое самого файла ASP. IIS возвращает ответ программному обеспечению, от которого поступил запрос.

Слайд 98Механизм обработки запроса на ASP-страницу


Слайд 99Преимущества ASP
Средствами технологии ASP можно создавать интерактивные Web-страницы, не используя расширения

CGI или ISAPI, что позволяет в ряде случаев полностью избежать или максимально сократить программирование на VB или Perl. Активные страницы ASP выполняют обработку данных, введенных пользователями при помощи форм, обращаясь при необходимости к базам данных или другим активным объектам.
ASP поддерживает технологию работы со сценариями Windows Script Components. Она позволяет поместить все сценарные процедуры, выполняющие бизнес-логику, в COM-компоненты. Эти компоненты допускают повторное использование, и могут работать как в web-приложениях, так и в других программах, построенных по технологии COM.
Серверный сценарий, встроенный в страницу ASP, способен обращаться к базам данных через вызов методов интерфейса ActiveX Data Objects (ADO) — простую и понятную процедуру. Если возникнет необходимость реализовать собственную бизнес-логику, имеется возможность создания новых объектов СОМ или использования объектов СОМ сторонних разработчиков.

Слайд 100Безопасность ASP
Пользователь не может каким-либо образом получить содержимое страницы ASP, так

как Web-сервер отправляет ему не саму страницу, а результат ее интерпретации. Таким образом, логика работы страницы скрыта от пользователей.
ASP поддерживает служебную программу шифрования сценариев, поставляемую с MicrosoftVisual Basic Scripting Edition (VBScript) и Microsoft® JScript 5.0. Имеется возможность шифровать как клиентские, так и серверные сценарии, в результате чего тексты сценариев будут отображаться бессмысленной последовательностью ASCII-символов. Зашифрованные сценарии расшифровываются обработчиком сценариев во время их выполнения, поэтому нет необходимости в использовании отдельной программы расшифровки. Несмотря на то, что это не является полностью безопасным решением, технология не позволяет большинству обычных пользователей скопировать или просмотреть сценарий.


Слайд 101Недостатки ASP
отсутствие гибкой, мощной и масштабируемой среды программирования.
необходимость размещать команды сценария

в HTML. Кроме снижения производительности из-за смены контекста при каждом входе и выходе из раздела сценария, смешанный код в «сыром» HTML усложняет деление на представление и само приложение.
Поддержка ASP компанией Microsoft прекращена.

Слайд 102ASP.NET
ASP.NET – это среда, работающая на Internet Information Server (IIS), упрощающая

написание кода для создания динамических веб-страниц.
ASP.NET — технология создания веб-приложений и веб-сервисов от компании Майкрософт. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP. На данный момент последней версией этой технологии является ASP.NET 4.0b.
Microsoft полностью перестроила ASP.NET, основываясь на Common Language Runtime (CLR), который является основой всех приложений Microsoft .NET. Разработчики могут писать код для ASP.NET, используя практически любые языки программирования, в том числе, и входящие в комплект .NET Framework(C#, Visual Basic.NET, и JScript .NET). ASP.NET имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д.

Слайд 103.NET Framework
.NET Framework — архитектура, облегчающая проектирование традиционных и Web-приложений. В

ASP.NET вместо интерпретации исходной страницы при каждом обращении клиента страница компилируется, преобразуясь в формат промежуточного языка MSIL (Microsoft Intermediate Language) лишь при первом обращении. После компиляции страницы в MSIL JiT-компилятор (Just-In-Time compiler) преобразует MSIL в машинный код.
Инфраструктура MS.NET состоит из операционной системы Windows 2003.2008, серверных корпоративных продуктов, XML-сервисов и платформы разработки .NET Framework.

Слайд 104CLR
Единый язык среды исполнения (Common Language Runtime) обеспечивает единый набор сервисов

для всех языков в ASP.NET. Наличие единого набора типов для всех языков дает преимущество при комбинировании ASP-сценариев с СОМ-обьектами.

Слайд 105Достоинства платформы .NET
Единая программная модель. В отличие от существующего подхода, когда

одни функции ОС доступны через процедуры динамически подключаемых библиотек (DLL), а другие — через СОМ-объекты, весь прикладной сервис представлен общей объектно-ориентированной программной моделью.

Слайд 106Достоинства платформы .NET
Отсутствие проблем с версиями. При традиционном программировании для Windows

существует проблема совместимости версий. Она возникает, когда компоненты, устанавливаемые для нового приложения, заменяют компоненты старого приложения. Архитектура .NET Framework позволяет изолировать прикладные компоненты, так что приложение всегда загружает компоненты, с которыми оно разрабатывалось и тестировалось.

Слайд 107Достоинства платформы .NET
Упрощение разработки, развертывания и удаления. Компоненты .NET Framework (их

называют просто типами) не связаны с реестром. Установка приложений .NET Framework сводится к копированию файлов в нужные каталоги, а их удаление – к удалению файлов.

Слайд 108Достоинства платформы .NET
Кроссплатформенность. При компиляции кода для .NET Framework компилятор генерирует

код на языке CIR (common intermediate language), а не традиционный код, состоящий из процессорных команд. При исполнении CLR транслирует CIL в команды процессора. Поскольку трансляция выполняется в период выполнения, генерируются команды конкретного процессора. Это значит, что можно запускать приложение для .NET Framework на любой машине, где работает версия CLR и FCL: с архитектурой x86, IA64, AMD64 и т. д.

Слайд 109Достоинства платформы .NET
Интеграция языков программирования. СОМ позволяет разным языкам взаимодействовать. .NET

Framework позволяет разным языкам интегрироваться, т. е. одному языку использовать типы, созданные на других языках. Например, CLR позволяет создать на C++ класс, производный от класса, реализованного на Visual Basic. CLR делает возможным интеграцию языков, так как она определяет общую систему типов (Common Type System, CTS), которую должны использовать все языки, ориентированные на CLR. Общеязыковая спецификация (Common Language Specification, CLS) определяет правила, которым должны следовать разработчики компиляторов, чтобы их языки интегрировались с другими.

Слайд 110Преимущества ASP.NET перед ASP
Компилируемый код выполняется быстрее, большинство ошибок выявляется ещё

на стадии разработки
Значительно улучшенная обработка ошибок времени выполнения, с использованием блоков try..catch
Пользовательские элементы управления позволяют выделять часто используемые шаблоны, такие как меню сайта
Использование метафор, уже применяющихся в Windows-приложениях, например, таких как элементы управления и события
Расширяемый набор элементов управления и библиотек классов позволяет быстрее разрабатывать приложения
ASP.NET опирается на многоязыковые возможности .NET, что позволяет писать код страниц на VB.NET, Delphi.NET, Visual C#, J# и т. д.
Возможность кэширования всей страницы или её части для увеличения производительности
Возможность кэширования данных, используемых на странице
Возможность разделения визуальной части и бизнес-логики по разным файлам («code behind»)
Расширяемая модель обработки запросов
Расширенная событийная модель
Расширяемая модель серверных элементов управления
Наличие master-страниц для задания шаблонов оформления страниц
Встроенная поддержка AJAX

Слайд 111Средства разработки для .NET
Среда MS Visual Studio .NET включает средства управления

проектами, редактор исходного текста, конструкторы пользовательского интерфейса, помощники, компиляторы, компоновщики, инструменты, утилиты, документацию и отладчики. Существует также бесплатный программный продукт Visual Web Developer.
Microsoft Expression Studio 3 - пакет графических программ компании Майкрософт, предназначенных для разработчиков и дизайнеров.
.NET Framework SDK. Он распространяется бесплатно и включает компиляторы всех языков, набор утилит и документацию. С помощью этого SDK можно создавать приложения для .NET Framework без Visual Studio .NET. Потребуется лишь редактор текстов и средство управления проектами.
Embarcadero CodeGear (Inprise/Borland Delphi).

Слайд 112Пример пустой ASP.NET-страницы


"-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">



Untitled Page











Слайд 113Разделение дизайна и кода
.
Тег

для интерпретации ASP-кода. Директива Page всегда присутствует на странице aspx. Ее атрибут Language — это указание, что в скриптах данной страницы будет использоваться VB.net, а могли бы C#, C++.net или J#. CodeFile — имя файла с отделенным кодом (code-behind). Inherits — класс, определенный в том файле, от которого наследуется класс страницы.
Одновременно будет создан и файл Default.aspx.vb. ASP.NET использует технологию разделения кода. Сама форма находится в файле Default.aspx, а файле Default.aspx.vb находится класс страницы на языке vb.net. Таким образом, дизайн страницы может быть изменен не затрагивая кода страницы, что позволяет разделить ответственность за внешний вид и работу страницы между дизайнером и программистом.

Слайд 114Обработка ASP.NET-страницы
При установке .NET, в соответствующих директориях C:\WINDOWS\Microsoft.NET\Framework\ помещается файл aspnet_isapi.dll.

Это — ISAPI-расширение, предназначенное для:
получения запросов, адресованных ASP .NET-приложениям (*.aspx *.asmx и т.д.),
для создания рабочих процессов aspnet_wp.exe, обрабатывающих запросы.
IIS или встроенный в Visual Studio Cassini используют это расширение для обработки обращений к страницам с расширением aspx.
Этот модуль разбирает содержимое страниц aspx вместе с файлом отделенного кода и генерирует класс на языке страницы с объектом Page. Страница aspx отличается от обычной HTML-страницы наличием серверных элементов управления, которые описываются специальными тегами. Каждому тегу элемента управления соответствует свой член класса страницы.


Слайд 115Пример элемента управления ASP.NET
Например, при добавлении на страницу компонента Label добавляется

следующий код:

который преобразуется в
Dim ctrl = New System.Web.UI.WebControls.Label()
Основная задача объекта Page — посылка HTML-кода в выходной поток. Этот класс компилируется в библиотеку DLL, которая загружается в процесс web-сервера. Последующие запросы к странице также обрабатывает DLL, если исходный код страницы не меняется.


Слайд 116Технология AJAX
AJAX (от англ. Asynchronous Javascript and XML — «асинхронный JavaScript

и XML») — подход к построению интерактивных пользовательских интерфейсов веб-приложений, заключающийся в «фоновом» обмене данными браузера с веб-сервером. В результате, при обновлении данных веб-страница не перезагружается полностью и веб-приложения становятся более быстрыми и удобными.


Слайд 117Принципы AJAX
AJAX — не самостоятельная технология, а концепция использования нескольких смежных

технологий. AJAX базируется на двух основных принципах:
1. использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например:
с использованием XMLHttpRequest (основной объект);
через динамическое создание дочерних фреймов;
через динамическое создание тега

Обратная связь

Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое ThePresentation.ru?

Это сайт презентаций, докладов, проектов, шаблонов в формате PowerPoint. Мы помогаем школьникам, студентам, учителям, преподавателям хранить и обмениваться учебными материалами с другими пользователями.


Для правообладателей

Яндекс.Метрика