Опубликован: 18.09.2006 | Уровень: специалист | Доступ: свободно | ВУЗ: Московский государственный университет имени М.В.Ломоносова
Лекция 13:

Компонентные технологии разработки web-приложений

Аннотация: Рассматриваются основные элементы компонентных сред Java 2 Enterprise Edition и .NET. Показывается, как в рамках этих технологий решаются основные задачи построения распределенных Web-приложений.
Ключевые слова: компонентная технология, программное обеспечение, поддержка, расходы, Интернет, TCP/IP, HTTP, интерфейс, HTML, пользователь, ПО, Web-приложения, затраты, развертывание, расширяемый язык разметки XML, XML, идентификатор, дерево документа, элемент данных, тег, international standard, book, очередь, адрес, net, схема документа XML, dtd, кодировка, UTF-8, unified, resource, identifier, URI, дескрипторы развертывания, EJB, Заголовок документа, PDF, инструкция, CDATA, J2EE, bean, EJB-контейнер, компонентная среда, синхронизация состояний, Web-контейнер, J2SE, компонент, Java, приложение, сервер, архитектурный стиль, сервлет, JSP, Java RMI, JMS, RMI, классы исключений, серверный объект, P2P, JNDI, подпакет, string object, Unbind, поиск объектов, сервер каталогов, kanji, JTA, взаимная аутентификация, non-confidential, SAX, DOM, XSLT, StAX, ASP.NET, СУБД, ADO.NET, распределенные транзакции, Типовая, архитектура, конфигурационные файлы .NET, .NET Remoting, десериализация, зоны приложений, асинхронное взаимодействие, Active Directory

Web-приложения

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

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

Есть, тем не менее, фактор, который помогает значительно снизить расходы — широчайшее распространение Интернет. Если ваше программное обеспечение использует для связи между своими элементами базовые протоколы Интернет (TCP/IP и HTTP) и предоставляет пользовательский интерфейс с помощью HTML, который можно просматривать в любом браузере, то практически каждый его потенциальный пользователь не имеет технических препятствий для обращения к этому ПО. Не нужно распространять специальные клиентские компоненты, ставить клиентам специальное оборудование, не нужно тратить много времени и средств на обучение пользователей работе со специфическим интерфейсом, настройке связи с серверами и т.д. Интернет предоставляет готовую инфраструктуру для создания крупномасштабных программных систем, в рамках которых десятки тысяч компонентов могли бы работать совместно и миллионы пользователей могли бы пользоваться их услугами.

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

Другим важным фактором является распространение расширяемого языка разметки (Extensible Markup Language, XML) как практически универсального формата данных. XML предоставляет стандартную лексическую форму для представления текстовой информации различной структуры и стандартные же способы описания этой структуры. Многие аспекты создания и работы Web-приложений связаны с обменом разнообразно структурированными данными между отдельными компонентами или представлением информации об организации, свойствах и конфигурации системы, имеющей гибкую структуризацию. Использование XML позволяет решить часть возникающих здесь проблем.

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

Расширяемый язык разметки XML

Данный раздел содержит краткий обзор основных конструкций XML; для более глубокого изучения этого языка и связанных с ним технологий см. [1,2,3,4,5,6,7].

XML [3,4,5] является языком разметки: различные элементы данных в рамках XML-документов выделяются тегами — каждый элемент начинается с открывающего тега <tag> и заканчивается закрывающим </tag>. Здесь tagидентификатор тега, который обычно является английским словом или набором слов, разделяемых знаками ‘ - ’, которое(-ые) описывают назначение этого элемента данных. Элементы данных могут быть вложены друг в друга, образуя дерево документа. Кроме того, каждый элемент может иметь набор значений атрибутов, которые представляют собой строки, числа или логические значения. Значения атрибутов для данного элемента помещаются внутри его открывающего тега. Элемент данных, не имеющий вложенных подэлементов, может быть оформлен в виде конструкции <tag … />, т.е. не иметь отдельного закрывающего тега.

Ниже приведен пример описания информации о книге в виде XML:

<book
    title = "Pattern-Oriented Software Architecture, Volume 1: A System of Patterns"
    ISBN = "047195869"
    year = 1996
    hardcover = true
    pages = 476
    language = "English">
  <author>Frank Buschmann</author>
  <author>Regine Meunier</author>
  <author>Hans Rohnert</author>
  <author>Peter Sommerlad</author>
  <author>Michael Stal</author>
  <publisher 
      title = "John Wiley & Sons"
      address = "605 Third Avenue, New York, NY 10158-0012, USA" />
</book>

В этом примере тег <book>, представляющий описание книги, имеет вложенные теги <author> и <publisher>, представляющие ее авторов (таких тегов может быть несколько) и издателя. Он также имеет атрибуты title, ISBN, year, hardcover, pages и language (название книги, ее международный стандартный номер, т.е. International Standard Book Number или ISBN, плюс год издания, наличие твердой обложки, число страниц и язык). Тег <publisher>, в свою очередь, имеет атрибуты title и address (название и юридический адрес издательской организации).

Элементы XML-документа, называемые также сущностями, являются в некотором смысле аналогами значений структурных типов в .NET, а значения их атрибутов — аналогами соответствующих значений полей. При этом теги играют роль самих типов, а атрибуты и вложенные теги — роль их полей, имеющих, соответственно, примитивные и структурные типы. Расширяемым XML назван потому, что можно задать специальную структуру тегов и их атрибутов для некоторого вида документов. Эта структура описывается в отдельном документе, называемом схемой, который сам написан на специальном подмножестве XML, DTD ( Document Type Declaration, декларация типа документа ) [3,4,5] или XMLSchema [6].

XML-документ всегда начинается заголовком, описывающим версию XML, которой соответствует документ, и используемую кодировку. По умолчанию используется кодировка UTF-8.

Затем чаще всего идет описание типа документа, указывающее схему, которой он соответствует, и тег корневого элемента, содержащего все остальные элементы данного документа. Схема может задаваться в формате DTD или XMLSchema. Второй, хотя и является более новым, пока еще используется реже, потому что достаточно много документов определяется с помощью DTD и очень многие инструменты для обработки XML могут пользоваться этим форматом. Используемая схема определяется сразу двумя способами — при помощи строки, которая может служить ключом для поиска схемы на данной машине, и при помощи унифицированного идентификатора документа (Unified Resource Identifier, URI), содержащего ее описание и используемого в том случае, если ее не удалось найти локально.

Ниже приводится пример заголовка и описания типа документа для дескриптора развертывания EJB компонентов (см. подробности далее).

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.1 EJB 2.1//EN" 
     "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_2_1-1.dtd">
<sun-ejb-jar>
…
</sun-ejb-jar>

Другой пример показывает заголовок документа DocBook — основанного на XML формата для технической документации, которая может быть автоматически преобразована в HTML, PDF и другие документы с определенными для них правилами верстки.

<?xml version="1.0" encoding="windows-1251"?>
<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
"http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd">
<article>
…
</article>

Помимо элементов данных и заголовка с описанием типа документа, XML-документ может содержать комментарии, помещаемые в теги <!-- … -->, инструкции обработки вида <? processor-name … ?> (здесь processor-nameидентификатор обработчика, которому предназначена инструкция) и секции символьных данных CDATA, которые начинаются набором символов <![CDATA[, а заканчиваются с помощью ]]>. Внутри секций символьных данных могут быть любые символы, за исключением закрывающей комбинации. В остальных местах некоторые специальные символы должны быть представлены комбинациями символов в соответствии с таблицей 13.1.

Таблица 13.1. Представления специальных символов в XML
Символ Представление в XML
< &lt;
> &gt;
& &amp;
" &quot;
' &apos;

XML содержит много других конструкций, помимо уже перечисленных, но их рассмотрение выходит за рамки данного курса. Читатель, желающий узнать больше об этом языке и связанных с ним технологиях, может обратиться к [1,2,3,4,5,6,7].

Владислав Нагорный
Владислав Нагорный

Подскажите, пожалуйста, планируете ли вы возобновление программ высшего образования? Если да, есть ли какие-то примерные сроки?

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?