Краткий обзор основных технологий разработки Веб приложений

Перечислим средства, необходимые при создании сайта.

HTML. Язык разметки гипертекстовых документов, которые передаются через Internet и отображаются браузером.

CSS. Язык описания стилей, определяющий вид отображения гипертекстового документа. Описываются типы шрифтов и другие дизайнерские атрибуты.

JavaScript, Flash. Предоставляют возможность для написания скриптов, выполняемых на стороне клиента.

Эти средства включены в состав любого браузера, лучшим из которых для разработки по – видимому является Mozilla Firefox.

PHP, Perl, Java. Используются для написания скриптов, выполняемых на стороне сервера

СУБД - сервер (например, MySQL). Программа, организующая работу с базами данных на сервере.

WEB-сервер (например, Apache). Программа, обрабатывающая запросы браузеров

Язык разметки гипертекста HTML

Язык разметки гипертекстовых документов HTML (HyperText Markup Language) содержал изначально только текст и гиперссылки. Гиперссылки позволяют реализовать навигацию и осуществлять переход к нужному документу или части документа. В настоящее время гипертекстовые документы содержат также графику и мультимедия. Опубликованные в Интернет гипертекстовые документы образуют единую систему - WWW. HTML - документы сохраняется на серверах и передается по запросам клиентам с использованием протокола HTTP. Более подробное описание языка приведено ниже.

Язык XML

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

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

Язык XML привлекает к себе много внимания со стороны разработчиков и пользователей Интернет. Появляются новые языки, созданные на основе XML, возникают Web-сервера, использующие эту технологию для организации хранящейся на них информации. Полные спецификации XML и связанных с ним языков доступны на официальной странице W3C - www.w3.org

Годом рождения XML можно считать 1998 год, когда спецификация языка была утверждена. А началось всё с появления в 1986 году языка SGML. Хотя понятие гипертекста было введено В.Бушем еще в 1945 году и, начиная с 60-х годов, стали появляться приложения, использующие гипертекстовые данные, всплеск активности вокруг этой технологии начался тогда, когда возникла реальная необходимость в механизме объединения множества информационных ресурсов, обеспечения возможности создания, просмотра текста. С помощью SGML можно описывать структурированные данные, организовывать информацию, содержащуюся в документах, представлять эту информацию в некотором стандартизованном формате. Язык SGML предназначен для создания других языков разметки, он определяет допустимый набор тэгов, их атрибуты и внутреннюю структуру документа. Контроль за правильностью использования дескрипторов осуществляется при помощи специального набора правил, называемых DTD- описаниями, которые используются программой клиента при разборе документа. Для каждого класса документов определяется свой набор правил, описывающих грамматику соответствующего языка разметки. Но в виду своей сложности, SGML использовался, в основном, для описания синтаксиса других языков, наиболее известным из которых является HTML.

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

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

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

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

<font color="red">rose</font>,

программа просмотра будет знать, каким цветом отобразить текст, содержащийся внутри тэгов <font></font> и, но ей абсолютно безразлично, в каком месте документа встретился этот тэг, в какие другие тэги заключен текущий фрагмент, существуют ли вложенные в него фрагменты, правильно ли построены отношения между объектами. Такое "безразличие" к структуре документа приводит к тому, что поиск или анализ информации внутри него ничем не будет отличаться от работы со сплошным, не разбитым на элементы текстовым файлом. А это, как известно, не самый эффективный способ работы с информацией.

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

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

Что такое XML?

Термин XML обозначает особую разновидность гипертекстовых документов. Чем же плохи обычные текстовые документы и что особенного есть в XML-документах?

В любом текстовом документе можно написать что угодно и как угодно, например, можно поставить между одними словами один пробел, а между другими - два пробела. Можно выделять абзац красной строкой из трех пробелов, а иногда оставлять пустую строчку между соседними абзацами. Можно написать заголовок документа в первой строке, а можно начать писать документ с фамилии автора. Но если документ необходимо опубликовать, то его придется переделывать - оформлять единообразным способом абзацы, выделять из общего повествования заголовок пустой строкой, между заголовком и первым абзацем указывать фамилию автора и краткую аннотацию и т.д. Одним словом возникнет необходимость оформить документ некоторым стандартным для данного издания способом. А если понадобится опубликовать этот документ в другом месте, понадобится снова что-то изменять и переделывать. Оказывается выход есть - на помощь придет XML!

Фактически XML - это способ разметки документов, предназначенный для формирования в документах какой-либо структуры и определения отношений между различными элементами этой структуры. Для создания такой разметки служат специальные инструкции, называемые тегами. Теги располагают между символами < и >. Благодаря наличию тегов становится возможной унифицированная автоматическая обработка и форматирование XML-документов. Благодаря XML удается также контролировать правильность данных, хранящихся в документах, а также установить единый стандарт на структуру документов, в которых могут содержаться произвольные данные. XML незаменим при построении сложных информационных систем, в которых очень важным является вопрос обмена информацией между различными потребителями. Благодаря XML можно избавиться от многих проблем, связанных с несовместимостью используемых различными компонентами.

Пример типичного XML-документа
<?xml version="1.0" encoding="windows-1251" ?> <!DOCTYPE InfoPacket SYSTEM "http://xml.prime-tass.ru/dtd/UIF.dtd"> <InfoPacket> <Source type="string">ПРАЙМ-ТАСС</Source> <Time type="datetime">08.05.2001 13:53:17</Time> <InfoItem> <Time type="datetime">17.04.2001 10:07:47</Time> <Title type="string"> Первый серийный самолет "Ту-214" производства КАПО совершил первый испытательный полет </Title> <Text> МОСКВА, 11 апреля. /ПРАЙМ-ТАСС/. Первый экземпляр самолета Ту-214, выпущенный в серийном исполнении на Казанском авиационно-производственном объединении /КАПО/, совершил первый испытательный полет. Об этом ПРАЙМ-ТАСС сообщили в Финансовой лизинговой компании /ФЛК/. </Text> <Text> Самолет изготовлен для хабаровской авиакомпании "Дальавиа" в рамках соглашения, заключенного в 2000 году между "Дальавиа" и ФЛК, предусматривающего передачу в лизинг двух Ту-214, производимых на КАПО. Ту-214 предназначен для перевозки 164 пассажиров на расстояние 7,2 тыс км на маршрутах Москва-Хабаровск, а также в Корею и Китай. </Text> <Text> Общие затраты на подготовку производства самолета составили 1,2 млрд руб. Из бюджета страны на эти цели было выделено всего 1,5 млн руб. Подготовка к производству велась за счет средств КАПО и бюджета Татарстана, а также полного освобождения предприятия от республиканского и местных налогов. Из республиканского бюджета на сертификацию самолета было выделено 97 млн руб, а также 275 млн руб для запуска механизма лизинга. </Text> <Text> Предварительная стоимость Ту-214 составляет 22-25 млн долл. </Text> </InfoItem>   </InfoPacket>  

Первые две строчки в этом примере должны присутствовать. Первая строчка означает, что данный документ является XML-документом, а вторая указывает на специальный ресурс http://xml.prime-tass.ru/dtd/UIF.dtd, в котором содержатся правила оформления данного XML-документа). Более подробную информацию по этим "волшебным словам" и не только можно получить на сайте http://www.w3.org.

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

Тег <InfoPacket> является самым главным тегом - корнем иерархической структуры и предназначен для хранения вложенных в него остальных тегов. Таким образом, он представляет собой своеобразный "конверт" или "обертку" - информационный пакет. В него вложены теги <Source>, <Time> и <InfoItem>. Тег <Source> содержит сведения об источнике информации, заключенной в данном информационном пакете ("адрес отправителя"). В теге <Time> указано время создания информационного пакета ("время заклеивания конверта"). И, наконец, в теге <InfoItem> находится собственно "письмо" - фактическое смысловое наполнение информационного пакета. Что же содержится в этом "письме"? В нем находятся теги <Time>, <Title> и <Text>. В теге <Time>, вложенном в тег <InfoItem> указано когда наше "письмо" было написано, т.е. время написания содержимого <InfoItem>. Не следует путать это время с моментом "заклеивания конверта" (созданием информационного пакета <InfoPacket>). Обычно сначала пишут "письмо", а потом "заклеивают конверт" с ним. Кстати, если получателей несколько, то придется "заклеить" несколько "конвертов" с одинаковыми копиями "письма". Или возможна ситуация, когда нужно положить в один конверт несколько "писем" для одного получателя. В этом случае придется поместить внутри тега <InfoPacket> несколько тегов <InfoItem>. Кроме тега <Time> в <InfoItem> вложен тег <Title>, в котором написан заголовок документа или "письма", если продолжить нашу аналогию. И, наконец, остался тег <Text>, который несколько раз встречается внутри тега <InfoItem>. Этот тег <Text> обозначает просто абзацы документа.

Осталось только сказать, что означают и для чего нужны записи, типа type="datetime" или type="string" внутри названий тегов <Source>, <Time> и <Title> и почему их нет в тегах <Text>. Такого рода записи в XML называются атрибутами тегов. В данном случае мы имеем один атрибут type, который принимает значения "datetime" и "string". Значения атрибутов в XML всегда заключаются в кавычки. Атрибут type нужен для того, чтобы точно указать как следует интерпретировать последовательность символов, заключенную внутри тега с этим атрибутом. Значение "datetime" означает, что значение тега нужно интерпретировать как дату и время, а значение "string" - как обычную строку. У тега <Text> атрибут type отсутствует, т.к. по смыслу этого тега и так ясно, что в этом теге содержится текстовая строка.

XML - это язык разметки, описывающий целый класс объектов данных, называемых XML- документами. Этот язык используется в качестве средства для описания грамматики других языков и контроля за правильностью составления документов. Т.е. сам по себе XML не содержит никаких тэгов, предназначенных для разметки, он просто определяет порядок их создания. Таким образом, если, например, мы считаем, что для обозначения элемента rose в документе необходимо использовать тэг <flower>;, то XML позволяет свободно использовать определяемый нами тэг и мы можем включать в документ фрагменты, подобные следующему:

<flower>rose</flower>

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

<conservatory><flower>rose</flower></conservatory>

Если мы хотим посадить туда еще несколько цветочков, то должны внести следующие изменения:

<conservatory><flower>rose</flower><flower>tulip</flower><flower>cactus</flower></conservatory>

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

Еще одним из очевидных достоинств XML является возможность использования его в качестве универсального языка запросов к хранилищам информации. Сегодня в глубинах W3C находится на рассмотрении рабочий вариант стандарта XML-QL(или XQL), который, возможно, в будущем составит серьезную конкуренцию SQL. Кроме того, XML-документы могут выступать в качестве уникального способа хранения данных, который включает в себя одновременно средства для разбора информации и представления ее на стороне клиента. В этой области одним из перспективных направлений является интеграция Java и XML - технологий, позволяющая использовать мощь обеих технологий при построении машинно-независимых приложений, использующих, кроме того, универсальный формат данных при обмене информации.

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

Также одним из достоинств XML является то, что программы-обработчики XML- документов не сложны и уже сегодня появились и свободно распространяются всевозможные программные продукты, предназначенные для работы с XML-документами. XML поддерживается сегодня в Microsoft Internet Explorer 4/0 и в бэта-версиях IE5. Было заявлено о его поддержке в последующих версиях Netscape Communicator, СУБД Oracle, DB-2, в приложениях MS-Office . Все это дает основания предполагать, что, скорее всего, в ближайшем будущем XML станет основным языком обмена информации для информационных систем, заменив собой, тем самым, HTML. На основе XML уже сегодня созданы такие известные специализированные языки разметки, как SMIL, CDF, MathML, XSL, и список рабочих проектов новых языков, находящихся на рассмотрении W3C, постоянно пополняется.

Наши рекомендации