'

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

Понравилась презентация – покажи это...





Слайд 0

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


Слайд 1

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


Слайд 2

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


Слайд 3

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


Слайд 4

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


Слайд 5

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


Слайд 6

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


Слайд 7

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


Слайд 8

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


Слайд 9

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


Слайд 10

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


Слайд 11

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


Слайд 12

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


Слайд 13

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


Слайд 14

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


Слайд 15

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


Слайд 16

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


Слайд 17

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


Слайд 18

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


Слайд 19

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


Слайд 20

Отладка сценариев 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. 21


Слайд 21

Область применения 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, одной из популярных технологий, позволяющей сделать страницы более динамическими и обеспечить им дополнительный функционал. 22


Слайд 22

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


Слайд 23

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


Слайд 24

1. Внутри тэга <script>…</script> Задать операторы языка внутри тэга-контейнера <script>…</script>языка HTML. Браузеры, не поддерживающие какие-либо тэги HTML, их игнорируют, анализируя содержимое пропускаемых тэгов с точки зрения синтаксиса HTML. Это может приводить к ошибкам при отображении страницы. Поэтому операторы языка JavaScript помещаются в контейнер комментария <!-- … -->: <script type="text/javascript" language="javascript"> <! — операторы JavaScript //--> </script> Символы (//) перед закрывающим тэгом комментария --> являются оператором комментария JavaScript. Он необходим для правильной работы интерпретатора. Документ может содержать несколько тэгов <script>, расположенных в любом месте документа. Все они последовательно обрабатываются интерпретатором JavaScript по мере отображения частей документа в окне браузера. Поэтому рекомендуется размещать сценарии с глобальными функциями и переменными в разделе <head> документа. В этом случае все определения обрабатываются интерпретатором в начале загрузки документа и хранятся в памяти с первых моментов отображения документа в окне браузера. 25


Слайд 25

2. Указать файл с кодом JavaScript в параметре src тэга <script> Указать файл с кодом JavaScript в параметре src тэга <script>. В качестве значения параметра задается полный или относительный URL-адрес внешнего файла, содержащего программный код на языке JavaScript. Задание закрывающего тэга </script> обязательно, независимо от того, заданы или нет операторы внутри тэга. Связываемый внешний файл не должен содержать тэгов HTML и должен иметь расширение .js: <script type="text/javascript" language="javascript" src="http:www.mysite.ru/functions/jsfuncs.js"> операторы JavaScript </script> 26


Слайд 26

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


Слайд 27

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


Слайд 28

Пример задания функции и ее вызова в процессе формирования документа <head> <title>Demo</title> <script type="text/javascript" language="javascript"> <!-- //Скрыть сценарий от браузеров: не поддерживающих JavaScript function square(number) { return number * number;} //--> </script> </head> <body> <p>Начинается отображение страницы, в которую внедрен сценарий вычисления функции</p> <script type="text/javascript" language="javascript"> <!-- document.write("Значение, которое вычислялось, равно ", square(5), "."); //--> </script> <p> Теперь формирование страницы закончено.</p> </body> 29


Слайд 29

Пример явного вызова функции из сценария <head> <title>Demo</title> <script type="text/javascript" language="javascript"> <!-- //Скрыть сценарий от браузеров: не поддерживающих JavaScript function validate(form) { if(form.value >=18) { alert("Вы - совершеннолетний"); } else { alert ("Вы - несовершеннолетний"); } } //--> </script> </head> <body> <form name="form_l" action="HTMLPage.htm"> Ваш возраст: <input type="text" size="5" name="age" /> <hr/> <input type="button" value="Подтвердите" onclick="validate(this.form.age)"/> </form> </body> 30


Слайд 30

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


Слайд 31

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


Слайд 32

Клиентские сценарии 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 заметно сокращает сроки и стоимость разработки. 33


Слайд 33

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


Слайд 34

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


Слайд 35

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


Слайд 36

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


Слайд 37

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


Слайд 38

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


Слайд 39

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


Слайд 40

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


Слайд 41

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


Слайд 42

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


Слайд 43

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


Слайд 44

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


Слайд 45

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


Слайд 46

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


Слайд 47

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


Слайд 48

Пример вставки ActiveX-элемента в страницу <object id="myactx" width="32" heigth="32" classid="CLSID:12D3959D-5048-11D3-A272-8C0305C10000" codebase="http://somesite.ru/ActiveX/advert32.cab #version=l,0,0,0"> </object> 49


Слайд 49

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


Слайд 50

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


Слайд 51

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


Слайд 52

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


Слайд 53

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


Слайд 54

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


Слайд 55

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


Слайд 56

Способы организации активных web-серверов Для создания веб-приложений на стороне сервера используются разнообразные технологии и языки программирования 57 Название Лицензия Веб-сервер CGI Java свободная множество, в том числе свободных Perl свободная практически любой PHP свободная практически любой Python свободная практически любой Ruby свободная практически любой ISAPI ASP проприетарная специализированный ASP.NET проприетарная специализированный


Слайд 57

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


Слайд 58

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


Слайд 59

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


Слайд 60

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


Слайд 61

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


Слайд 62

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


Слайд 63

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


Слайд 64

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


Слайд 65

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


Слайд 66

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


Слайд 67

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


Слайд 68

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


Слайд 69

Версии 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. 70


Слайд 70

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


Слайд 71

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


Слайд 72

Примеры применения PHP На PHP написано множество приложений, которые широко используются на различных сайтах, форумах и блогах. Наиболее известные из них — Wordpress, Drupal, Joomla, MediaWiki, phpBB. 73


Слайд 73

Инструментарий разработки для PHP Для быстрой разработки приложений на PHP было создано множество фреймворков, наиболее популярными из которых являются Zend Framework, CakePHP, Symfony и CodeIgniter. 74 Название Лицензия Сайт 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/


Слайд 74

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


Слайд 75

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


Слайд 76

Портируемость 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 77


Слайд 77

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


Слайд 78

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


Слайд 79

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


Слайд 80

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


Слайд 81

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


Слайд 82

IDE для Ruby 83 Название Лицензия Платформы 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


Слайд 83

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


Слайд 84

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


Слайд 85

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


Слайд 86

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


Слайд 87

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


Слайд 88

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


Слайд 89

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


Слайд 90

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


Слайд 91

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


Слайд 92

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


Слайд 93

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


Слайд 94

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


Слайд 95

Пример ASP-страницы <HTML> <HEAD> <TITLE>Hello ASP World</TITLE> </HEAD> <BODY> <% Dim x For x=1 to 5 Response.Write("<FONT size=" & x) Response.Write(">Hello ASP World</FONT> <BR>") Next %> </BODY> </HTML> 96


Слайд 96

Обработка сценариев 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 возвращает ответ программному обеспечению, от которого поступил запрос. 97


Слайд 97

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


Слайд 98

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


Слайд 99

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


Слайд 100

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


Слайд 101

ASP.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 имеет преимущество в скорости по сравнению со скриптовыми технологиями, так как при первом обращении код компилируется и помещается в специальный кэш, и впоследствии только исполняется, не требуя затрат времени на парсинг, оптимизацию, и т. д. 102


Слайд 102

.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. 103


Слайд 103

CLR Единый язык среды исполнения (Common Language Runtime) обеспечивает единый набор сервисов для всех языков в ASP.NET. Наличие единого набора типов для всех языков дает преимущество при комбинировании ASP-сценариев с СОМ-обьектами. 104


Слайд 104

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


Слайд 105

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


Слайд 106

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


Слайд 107

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


Слайд 108

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


Слайд 109

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


Слайд 110

Средства разработки для .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). 111


Слайд 111

Пример пустой ASP.NET-страницы <%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>Untitled Page</title> </head> <body> <form id="form1" runat="server"> <div> </div> </form> </body> </html> 112


Слайд 112

Разделение дизайна и кода <%@ Page Language="VB" %>. Тег <% всегда предназначается для интерпретации 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. Таким образом, дизайн страницы может быть изменен не затрагивая кода страницы, что позволяет разделить ответственность за внешний вид и работу страницы между дизайнером и программистом. 113


Слайд 113

Обработка 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-страницы наличием серверных элементов управления, которые описываются специальными тегами. Каждому тегу элемента управления соответствует свой член класса страницы. 114


Слайд 114

Пример элемента управления ASP.NET Например, при добавлении на страницу компонента Label добавляется следующий код: <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> который преобразуется в Dim ctrl = New System.Web.UI.WebControls.Label() Основная задача объекта Page — посылка HTML-кода в выходной поток. Этот класс компилируется в библиотеку DLL, которая загружается в процесс web-сервера. Последующие запросы к странице также обрабатывает DLL, если исходный код страницы не меняется. 115


Слайд 115

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


Слайд 116

Принципы AJAX AJAX — не самостоятельная технология, а концепция использования нескольких смежных технологий. AJAX базируется на двух основных принципах: 1. использование технологии динамического обращения к серверу «на лету», без перезагрузки всей страницы полностью, например: с использованием XMLHttpRequest (основной объект); через динамическое создание дочерних фреймов; через динамическое создание тега <script>. 2. использование DHTML для динамического изменения содержания страницы; В качестве формата передачи данных обычно используются JSON или XML. 117


Слайд 117

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


Слайд 118

Недостатки использования AJAX Отсутствие интеграции со стандартными инструментами браузера . Динамически создаваемые страницы не регистрируются браузером в истории посещения страниц, поэтому не работает кнопка «Назад», предоставляющая пользователям возможность вернуться к просмотренным ранее страницам, но существуют скрипты, которые могут решить эту проблему. Другой недостаток изменения содержимого страницы при постоянном URL заключается в невозможности сохранения закладки на желаемый материал. Частично решить эти проблемы можно с помощью динамического изменения идентификатора фрагмента (части URL после #), что позволяют многие браузеры. Динамически загружаемое содержимое недоступно поисковикам (если не проверять запрос, обычный он или XMLHttpRequest) . Поисковые машины не могут выполнять JavaScript, поэтому разработчики должны позаботиться об альтернативных способах доступа к содержимому сайта. Старые методы учёта статистики сайтов становятся неактуальными. Многие сервисы статистики ведут учёт просмотров новых страниц сайта. Для сайтов, страницы которых широко используют AJAX, такая статистика теряет актуальность. 119


Слайд 119

Технологии создания «толстых» веб-приложений Microsoft Silverlight Adobe Flash 120


Слайд 120

Silverlight Microsoft Silverlight — это плагин для браузера, который позволяет запускать приложения, содержащие анимацию, векторную графику и аудио-видео ролики, что характерно для RIA (Rich Internet application). Silverlight реализован для ОС Windows 2000[3], Windows XP, Windows Server 2003, Windows Vista, Windows 7, Mac OS X 10.4, Mac OS X 10.5 и браузеров Internet Explorer 6.0/7.0/8.0, Mozilla Firefox 1.5/2.0/3 и Safari 3.1. В будущем также планируется поддержка Opera[4], мобильных устройств, начиная с Windows Mobile 6 и Symbian (Series 60), и, возможно, других платформ. 121


Слайд 121

Назначение Silverlight Silverlight был разработан чтобы работать с XAML и с языками Microsoft .NET. XAML используется для разметки страниц, использующих векторную графику и анимацию. Текст, содержащийся в Silverlight приложениях, доступен для поисковых систем, так как он не компилируется, а доступен в виде XAML. Silverlight также можно использовать для того, чтобы создавать гаджеты для Windows Sidebar в Windows Vista. 122


Слайд 122

Adobe Flash Adobe Flash (ранее Macromedia Flash) — мультимедийная платформа, используемая для создания векторной анимации и интерактивных приложений (в том числе, игр), а также для интеграции видеороликов в веб-страницы. Adobe Flash позволяет работать с векторной, растровой, ограниченно и с трёхмерной графикой, а также поддерживает двунаправленную потоковую трансляцию аудио и видео. Для КПК и других мобильных устройств выпущена специальная "облегчённая" версия платформы Flash Lite, чья функциональность ограничена в расчёте на возможности мобильных операционных систем и их аппаратных показателей. Flash использует язык программирования ActionScript, основанный на ECMAScript. 123


Слайд 123

Средства разработки для Flash В качестве основных средств разработки используются проприетарные пакеты Adobe Flash Professional и Adobe Flash Builder 4 (бывш. Adobe Flex Builder), позволяющие создавать интерактивные приложения. Flash-контент воспроизводится с помощью целого ряда программных средств, но доминирующее положение на рынке занимает официальный проприетарный Adobe Flash Player, распространяемый в качестве бесплатного плагина для большинства современных браузеров. Последней на сегодняшний день версией программы является Adobe Flash 10 (CS4), с версией языка ActionScript 3.0; последняя версия Flash Player — 10. 124


Слайд 124

Недостатки Silverlight и Flash Требовательность к ресурсам процессора. Недостаточная мощность компьютера может повлиять на производительность ОС в целом, либо привести к искажению результатов работы Flash-приложения, связанных с отображением анимации или подсчётом времени. не всегда есть возможность запустить приложение, либо она связана с некоторыми трудностями (например, необходимо установить плагин или обновить его до последней версии). Некоторые пользователи (или системные администраторы в рамках целой сети) отключают в настройках браузера возможность загружать контент, обрабатываемый плагинами или загружаемый во фреймах в целях информационной безопасности (в связи с возможной угрозой со стороны контента, например, перехват буфера обмена), экономии системных ресурсов, или для избавления от рекламы. 125


Слайд 125

Software as a Service Software as a service (SaaS) («Программное обеспечение как услуга»), или Software on Demand (SoD) («Программное обеспечение по требованию») — модель продажи программного обеспечения, при которой поставщик разрабатывает веб-приложение и самостоятельно управляет им, предоставляя заказчикам доступ к программному обеспечению через Интернет. Основное преимущество модели SaaS для потребителя состоит в отсутствии затрат, связанных с установкой, обновлением и поддержкой работоспособности оборудования и программного обеспечения, работающего на нём. 126


Слайд 126

Технологические особенности SaaS Приложение приспособлено для удаленного использования; Одним приложением пользуется несколько клиентов (приложение коммунально); Оплата взымается как ежемесячная абонентская плата или на основе объема транзакций; Поддержка приложения входит в состав оплаты; Модернизация приложения происходит плавно и прозрачно для клиентов. Обновления программного обеспечения устанавливаются централизованно на стороне провайдера SaaS. Таким образом, заказчикам не требуется устанавливать патчи и следить за обновлениями системы. 127


Слайд 127

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


Слайд 128

Выгода SaaS для заказчика Отсутствие необходимости установки ПО на рабочих местах пользователей — доступ к ПО осуществляется через обычный браузер; Радикальное сокращение затрат на развёртывание системы в организации. Это расходы на аренду помещения, организацию дата-центра, оплату труда сотрудников и т. д.; Сокращение затрат на техническую поддержку и обновление развернутых систем (вплоть до их полного отсутствия); Быстрота внедрения, обусловленная отсутствием затрат времени на развертывание системы; Понятный интерфейс — большинство сотрудников уже привыкли к использованию веб-сервисов; Ясность и предсказуемость платежей, защита инвестиций; Возможность получить более высокий уровень обслуживания ПО. 129


Слайд 129

Выгода SaaS для разработчиков Рост популярности веб-сервисов для конечных пользователей; Развитие веб-технологий, большие функциональные возможности веб-приложений и простота их реализации; Быстрые процессы внедрения и сравнительно низкие затраты ресурсов на обслуживание конкретного клиента; Лёгкое проникновение на глобальные рынки; Отсутствие проблем с нелицензионным распространением ПО; В отличие от классической модели, заказчик SaaS привязывается к разработчику — он не может отказаться от услуг разработчика и продолжать использовать систему. Таким образом, обеспечивается защита инвестиций разработчика в процесс продаж; В долгосрочном периоде доходы от SaaS могут оказаться выше прибыли, полученной от продажи лицензий и оказания технической поддержки (даже с учётом расходов на хостинг и управление приложениями). 130


Слайд 130

Область применимости SaaS Теоретически, любой платный веб-сервис можно подогнать под определение SaaS, однако на практике под этим термином обычно понимается программное обеспечение для бизнеса. Как правило, программное обеспечение по требованию позиционируется как более дешёвая и простая альтернатива внутренним информационным системам. В настоящее время практически во всех функциональных классах КИС (корпоративные информационные системы) можно найти системы, поддерживающие модель SaaS. Для некоторых функциональных классов КИС (например, CRM, HRM, ITSM и др.) концепция SaaS подходит особенно хорошо, и активно применяется на практике. 131


Слайд 131

Стоимость SaaS SaaS предоставляется заказчику в аренду и всегда предполагает периодическую оплату. В качестве единицы тарификации обычно используются пользователи (при предоставлении CRM) или же число записей в базе данных (при предоставлении HRM-системы), реже — какие-то другие функциональные характеристики (например, количество определённых операций или трафик). В некоторых случаях заказчикам предлагаются смешанные модели, в рамках которых могут дополнительно оплачиваться расширенные функции (например, заказчик может платить за пользователей и за расширенное хранилище данных). Контракт на аренду SaaS включает в себя не только оплату за использование ПО, но и оплату всех затрат, связанных с поддержкой его работоспособности, обновлением и защитой данных. Ряд поставщиков SaaS предлагает продвинутый вариант контракта на аренду — SLA (Service Level Agreement). В таких контрактах фиксируются параметры, связанные с работоспособностью ПО. Обычно это гарантии доступности ПО в процентах в течение года. Лучшие дата-центры способны гарантировать доступность ПО не менее 99,5 % времени за год. В том случае, если ПО не требует первоначальной адаптации под потребности заказчика, первоначальный платёж за ПО может отсутствовать в принципе. Это является важнейшим преимуществом модели SaaS над классическим лицензированием программного обеспечения, которое требует существенных начальных инвестиций на его закупку. Периодические арендные платежи можно сравнить со стоимостью технической поддержки — обычно они жёстко прописываются в договоре и потому являются предсказуемыми. Тем самым, обеспечивается защита инвестиций заказчика в используемый программный продукт. 132


Слайд 132

Факторы, способствующие продвижению SaaS Ключевым фактором, объясняющим экономическую целесообразность SaaS, является «эффект масштаба» — провайдер SaaS обслуживает множество клиентов и потому тратит меньшее количество ресурсов на управление каждой копией программного обеспечения. В конечном счёте, периодическая стоимость услуг для конечного заказчика становится ниже издержек, возникающих при использовании классической модели лицензирования. Другим ключевым фактором является уровень обслуживания SaaS. Провайдер SaaS способен предложить уровень обслуживания и поддержки ПО в работоспособном состоянии, недоступный для внутренних IT-отделов компаний. Это особенно ярко проявляется в случае использования провайдером контракта SLA. 133


Слайд 133

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


Слайд 134

Ограничивающие факторы для SaaS 2. Использование SaaS означает привязку заказчика к единственному разработчику, который размещает программное обеспечение на своей площадке, осуществляет его администрирование и поддержку. Данное обстоятельство может привести заказчиков к ряду проблем, связанных с возможной нестабильностью разработчика или каким-либо нарушениям договоров. С другой стороны, значение этого фактора преувеличивается, поскольку внедрение системы по классическому принципу содержит все вышеперечисленные риски, но переносит их на ИТ-подразделение заказчика. Следствием предыдущего тезиса является основной недостаток модели SaaS для разработчика — требования к уровню репутации и высокая стоимость входа на рынок. Чтобы предоставить конкурентную стоимость клиенту, разработчику требуется «эффект масштаба», а значит — уже образовавшийся пул других заказчиков. Именно поэтому многие поставщики SaaS являются неспециализированными игроками, и их основной деятельностью является продажа классических систем на основе лицензирования. 135


Слайд 135

Ограничивающие факторы для SaaS 3. Многие заказчики опасаются применять SaaS из-за соображений безопасности и возможной утечки информации со стороны поставщика этих услуг. Проблемы с безопасностью практически исключают использование концепции SaaS для критически важных систем, в которых обрабатывается конфиденциальная информация. С другой стороны, ответственность за утечку информации со стороны разработчика обычно регламентируется в соответствующих договорах, а вероятность такой утечки часто ниже, чем в случае использования внутренних систем. В том числе этому способствует недоступность программно-аппаратного комплекса, на котором развёрнута система, сотрудникам компании. В случае развёртывания SaaS в промышленных дата-центрах, обеспечивается существенно лучшая защита за счет использования более мощных и комплексных решений по информационной безопасности. 136


×

HTML:





Ссылка: