Опубликован: 04.07.2012 | Уровень: специалист | Доступ: платный
Лекция 1:

Введение. Структура веб-технологий

Лекция 1: 123 || Лекция 2 >

Клиентские сценарии и приложения

Как правило, Веб-приложение - приложение, в котором клиентом выступает браузер, а сервером - веб-сервер.

Рассмотрим типы программ, обеспечивающих работу Веб и использующих HTTP-протокол.

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

Результатом работы веб-приложения является веб-страница, отображаемая в окне браузера. При этом само веб-приложение может выполняться как на компьютере клиента, так и на компьютере сервера.

Рассмотрим подробнее обе схемы.

1. Программы, выполняющиеся на клиент-машине

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

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

2. Программы, выполняющиеся на сервере

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

Результаты своей работы программа оформляет в виде HTML-документа и передает их веб-серверу, а последний, в свою очередь, дополняет полученные данные HTTP-заголовком и передает их клиенту. Взаимодействие клиента и сервера в этом случае показано на рис. 1.2.

Взаимодействие клиента с программой, выполняющейся на сервере.

Рис. 1.2. Взаимодействие клиента с программой, выполняющейся на сервере.

3. Насыщенные интернет-приложения

Насыщенное интернет-приложение (Rich Internet application) - еще один подход, который заключается в использовании программных модулей, например Adobe Flash или Java-апплетов, для полной или частичной реализации пользовательского интерфейса, поскольку большинство браузеров поддерживает эти технологии (как правило, с помощью плагинов).

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

При использовании Java-апплетов в состав HTML-документа включается специальный дескриптор, описывающий расположение файла, содержащего код апплета, на сервере. После того как клиент получает HTML-код документа, включающего апплет, он генерирует дополнительный запрос серверу. После того как сервер пересылает клиенту код апплета, сам апплет запускается на выполнение. Взаимодействие между клиентом и сервером при получении апплета показано на рис. 1.3.

Передача клиенту Java-апплета.

Рис. 1.3. Передача клиенту Java-апплета.

При использовании насыщенных интернет-приложений приходится сталкиваться со следующими проблемами:

  • необходимость обеспечения безопасной среды выполнения ("песочница");
  • для исполнения кода должно быть разрешено исполнение сценариев;
  • потеря в производительности (т.к. выполяется на клиентской стороне);
  • требуется много времени на загрузку;

Для разработки насыщенных интернет-приложений используются пакеты Curl, Macromedia Flash, Adobe Flex, Microsoft Silverlight и др.

Серверные веб-приложения

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

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

Сценарий (скрипт, script) - программа, которая автоматизирует некоторую задачу, которую пользователь выполняет вручную используя интерфейсы программы.

Веб-сервисы

Веб-сервис (web service) - программная система, имеющая идентификатор URI, и общедоступные интерфейсы которой определены на языке XML. Описание этой программной системы может быть найдено другими приложениями, которые могут взаимодействовать с ней в соответствии с этим описанием посредством сообщений, основанных на XML, и передаваемых с помощью интернет-протоколов. Веб-сервис является единицей модульности при использовании сервис-ориентированной архитектуры приложения.

Сервис-ориентированная архитектура (SOA, service-oriented architecture) - модульный подход к разработке программного обеспечения, основанный на использовании сервисов со стандартизированными интерфейсами.

В основе SOA лежат принципы многократного использования функциональных элементов ИТ, унификации типовых операционных процессов. Компоненты программы могут быть распределены по разным узлам сети, и предлагаются как независимые и слабо связанные, заменяемые сервисы-приложения.

Интерфейс компонентов SОА-программы осуществляет инкапсуляцию деталей реализации конкретного компонента (ОС, языка программирования и т. п).

SOA хорошо зарекомендовала себя при построении крупных корпоративных программных систем. Целый ряд разработчиков и интеграторов предлагают инструменты и решения на основе SOA (например, платформы Microsoft .NET , IBM WebSphere, SAP NetWeaver, Diasoft и др.).

Веб-сервисы .NET имеют следующие достоинства:

  • Открытость стандартов. В веб-сервисах отсутствуют какие-либо скрытые или недоступные элементы. Каждый аспект технологии, от способа поиска веб-сервисы до ее описания и организации связи с ней, определен общедоступными стандартами.
  • Межплатформенность. Язык программирования, который позволяет создавать XML-документы и отправлять информацию посредством HTTP, позволяет взаимодействовать с любым веб-сервисом. Можно получать веб-услугу из системы, отличной от .NET.
  • Простота.
  • Поддержка сообщений на понятном человеку языке. Переход от двоичных стандартов, применяемых в СОМ и CORBA, к XML-тексту позволил упростить исправление ошибок и обеспечил возможность осуществлять взаимодействие с веб-сервисами по обычным каналам HTTP.

Облачные вычисления

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

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

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

При этом пользователю такой системы предоставляются услуги, которые можно разделить на следующие виды:

  • IaaS (Infrastructure-as-a-Service) - инфраструктура как сервис.
  • PaaS (Platform-as-a-Service) - платформа как сервис.
  • SaaS (Software-as-a-Service) - программное обеспечение как сервис.

Введение в Web 2.0.

Термин Web 2.0 используется для обозначения новых тенденций в использовании технологий WWW, направленных на расширение творческих возможностей пользователей, более безопасный обмен информацией и взаимодействие между ними.

При этом больший акцент делается на формирование веб-сообществ и социально-ориентированных сайтов таких как, например, блоги и видеоблоги, фолксономии, википедии и др.

Термин получил распространение после конференции по Web 2.0 Медиа в 2004 году с подачи Тима О'Рейли для выражения нового способа взаимодействия разработчиков ПО и конечных пользователей через Веб. Ключевой принцип идеологии Web 2.0 был сформулирован как: "Интернет - как платформа".

Правомерность термина оспаривают многие эксперты, в том числе Тим Бернерс-Ли, поскольку многие компоненты технологий Web 2.0 существовали еще с первых лет существования сети Веб.

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

Фактически Web 2.0 означает переход веб-сайтов от изолированных накопителей информации к взаимосвязанным программным платформам, воспринимаемым пользователями так как будто они испольняются локально на его компьютере.

Сайты Web 2.0 предоставляют для пользователей возможность:

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

Еще одна важная концепция Web 2.0 - "Архитектура участия", которая поощряет пользователей повышать ценность ПО, путем его использования.

В качестве ключевых для Web 2.0 рассматриваются следующие технологии:

  • Веб-сервисы - это программы, доступ к которым осуществляется через протокол HTTP, а обмен данными происходит в формате XML (или производном от него). Веб-сервис реализуется на серверах компании, её создавшей. В любой момент пользователю доступны самые свежие данные; Веб-сервисы являются платформо-независимыми, поскольку инструменты для работы с HTTP и XML есть в любом современном языке программирования.
  • AJAX. Использование Ajax стало наиболее популярно после того как Google начала активно использовать его при создании своих сайтов, таких как Gmail и Google Maps.
  • Веб-синдикация (на основе технологий RSS или Atom) - одновременное распространение информации в том числе аудио- и видео- на различные страницы или веб-сайты.
  • Веб mash-up - сервис, который полностью или частично использует в качестве источников информации другие сервисы, предоставляя пользователю новую функциональность для работы. Веб mash-up сервис может становиться также новым источником информации для других веб mash-up сервисов. Таким образом, образуется сеть зависимых друг от друга сервисов, интегрированных друг с другом.
  • Теги - ключевые слова, описывающие рассматриваемый объект, либо относящие его к какой-либо категории. Теги можно рассматривать как метки, которые присваиваются объекту, для определения его места среди других объектов.
  • Фолксономия - популярная классификация, практика совместной категоризации информации (ссылок, фото, видео клипов и др.) посредством произвольно выбираемых меток (тегов). Примеры использования фолксономии: Flickr, del.icio.us.
  • Социальное ПО - широкий диапазон ПО, предназначенного для обмена и совместного доступа к информации пользователей сети Веб.

К недостаткам Web 2.0 можно отнести следующие:

  1. Зависимость от наличия постоянного соединения;
  2. Зависимость работоспособности сайтов от решений сторонних компаний;
  3. Зависимость качества работы сервиса от качества работы многих других компаний;
  4. Недостаточные возможности существующей веб-инфраструктуры для выполнения сложных вычислительных задач в браузере;
  5. Уязвимость конфиденциальных данных, хранимых на сторонних серверах, при несанкционированном доступе.
Лекция 1: 123 || Лекция 2 >
Сергей Крупко
Сергей Крупко

Добрый день.

Я сейчас прохожу курс  повышения квалификации  - "Профессиональное веб-программирование". Мне нужно получить диплом по этому курсу. Я так полагаю нужно его оплатить чтобы получить диплом о повышении квалификации. Как мне оплатить этот курс?

 

Галина Башкирова
Галина Башкирова

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

Системный администратор информационно-коммуникационных» систем.
Мне нужно самой найти тему? или делать по высланным темам

 

Елена Кашникова
Елена Кашникова
Россия, братск