Фуфаев - Разработка и эксплуатация удалённых БД (1084483), страница 45
Текст из файла (страница 45)
Только на сервере удавалось обеспечить поддержку сеансов работы и идентификацию пользователей, столь необходимые во всех приложениях электронной коммерции. Для реализации %еЬ-технологий использовались и классические языки, такие как Сн, и языки, специально ориентированные на %еЬ-среду, такие как АБР. Однако все они имели одну общую черту — конечный вывод документов производился в формате НТМЕ. Если учитывать общую скорость прогресса в компьютерной индустрии, то можно признать, что долгожитель НТМЬ, который достаточно долго использовался в сети Интернет, может в ближайшем будущем быть заменен новым языком ХМЕ.
Более того, международные стандарты по САЕК-технологиям уже ориентируются на этот язык форматирования документов. Система %еЬ-сервисов и обособленных клиентов нужна только для ресурсов с чрезвычайно сложной функциональностью. В общем случае %еЬ-сервисы принимают и передают информацию на языке ХМЕ. Этот язык, естественно, является открытым стандартом.
Также следует учитывать, что ХМЕ, как и его предшественник НТМ1., не зависит от платформы и операционной системы. Сочетание этих двух факторов позволяет разработчикам свободно создавать самые различные клиентские приложения, функционирующие на разных компьютерных платформах, 223 т.е. одному сервису может соответствовать несколько клиентских приложений. ХМ1-документы, пересылающиеся от сервера к клиенту и обратно, передаются по протоколу НТТР, который пропускается практически всеми брандмауэрами, что также прибавляет привлекательности идее %еЬ-сервисов. Следует отметить и тот факт, что %еЬ-сервисы являются самодокументируемыми, т. е, любое клиентское приложение может получить информацию о структуре сервиса, его функциональности и правилах вызова функций, поддерживаемых %еЬ-сервисом. %еЬ-сервисы способны передавать и получать информацию тремя способами: с применением методов ОЕТ и РОЯТ стандартного протокола НТТР или с помощью языка ВОАР, который является производным от ХМ1..
Первые два варианта разрешают использовать в качестве клиентского приложения стандартный броузер, но необходимо признать, что это далеко не идеальный вариант. Вопервых, с помощью броузера трудно организовать вызов всех функций достаточно сложного сервиса. Разработчику необходимо исследовать структуру сервиса заранее, т.е. перед тем как создавать %еЬ- страницы для доступа к нему, и в этом случае теряются преимущества самодокументируемости.
Во-вторых, следует помнить, что вывод информации все равно будет идти в «чистом» ХМ1., который броузер не сможет адекватно отобразить, Поэтому для работы с %еЬ- сервисами, обладающими достаточно серьезной функциональностью, удобно использовать язык ГОАР. 16.3. Среда разработки приложений Чена! Ваз!с.НЕТ Нища! Ваяс.1чЕТ вЂ” современная визуальная среда быстрой разработки %!пг!оч з-приложений, создания полнофункциональных профессиональных проектов на базе современной объектно-орентированой концепции. Конструирование пользовательского интерфейса в Н!зца! Ваз!с.НЕТ сведено к работе с мышью. Иногда требуется лишь добавить несколько строк кода, созданного мастером проекта.
Н!зца! Ваз1с.НЕТ вЂ” это достаточно простой, строго типизированный язык, с помощью которого легко строить объектноорентированные конструкции, проектировать графический пользовательский интерфейс (О131), работать с базами данных. Таким образом, Нища! Ваз1с.Ь!ЕТ, интегрированный с Сасйе, обеспечивает: ° простоту создания пользовательского интерфейса программы; ° возможность работы с %еЬ-сервисами; ° создание клиент-серверных приложений, включая работу через Интернет; ° поддержку ГОАР-протокола. 224 16.4. Многоплатформенный протокол передачи данных ЗОАР ГОАР-протокол — зто набор правил для приложений, которые могут вызывать работы с удаленными объектами. Где именно находятся эти удаленные объекты — в другом каталоге, где-то в корпоративной интрасети или в Интернете — для клиентских программ, использующих БОАР, абсолютно неважно.
БОАР основан на языке ХМЬ. Каждая передача информации между клиентом и сервером является отдельным ХМЬ-документом, который написан по правилам БОАР. Как известно, логическая структура каждого ХМЬ-документа определяется его РТО-блоком. Для БОАР заранее определены все возможные теги и типы данных, поэтому БОАР-документы не нуждаются в Г)ТГ)-блоках. За счет подобной унификации серверы и клиенты освобождаются от достаточно тяжелой процедуры синтаксического анализа приходящего документа с не определенным заранее набором тегов. БОАР-протокол — это слабосвязанный механизм, ориентированный на сообщения и предназначенный для удаленного вызова объектов по глобальным сетям. Рассмотрим принцип его работы. Зная ЫКЬ, клиент на языке описания сервиса ЯЭЬ (Вегасе Г)еаспрйоп Ьапяиаяе) запрашивает у сервера информацию о нем (предоставляемые методы, параметры и т.д.).
В ответ клиент получает ЯЭЬ-файл с необходимыми сведениями о том, какие услуги гметоды) ему будут предоставляться и как ими пользоваться. Обращения к объектам БД осуществляются с помощью НТТР- запросов и ответов. В запрос вкладывается ХМЬ-текст, состоящий из трех частей: ° пакет (евое)оре) БОАР, определяющий содержимое сообщения; ° заголовок БОАР, определяющий возможные заголовки сообщения; ° тело БОАР, содержащее информацию о запросе или ответе на запрос. Ответ приходит также в виде ХМЬ, содержащего результаты обработки запроса или код ошибки.
Новая версия Сасйе — СасЬе 5 — реализует ГОАР-протокол для всех поддерживаемых платформ. При этом не требуется использование промежуточных приложений сторонних компаний, все необходимые функции реализованы в виде системных классов БД Сасйе. В Сасйе БОАР-протокол предоставляет широкий спектр функций, который включает в себя: ° создание %еЬ-служб путем определения классов, содержа- щих%еЬ-методы, работы с удаленными системами. При этом ме- 225 тоды вызываются непосредственно в среде БД, что приводит к увеличению производительности системы за счет сокращения графика между клиентом и сервером; ° автоматическое создание и публикацию каталога доступных методов (%ЯН.).
Для создания %еЬ-службы и публикации каталога на сервере не требуется никаких дополнительных знаний о системе СасЬе. Реализация служб осуществляется на основе объектной модели СасЬе. При этом для создания службы необходимо определить класс„наследуемый от системного класса %БОАР.%еЬБегу(се. Методы, которые подлежат публикации на сервере, характеризуются параметром%еЬМе(Ьо((. Код, реализующий логику метода, как и код обыкновенного метода класса СасЬе, может быть реализован с использованием СасЬе ОЬ)ес( Бсп'р(, СасЬе Ваа(с или СасЬе Б Н.. Возможно использование сложных типов данных (встраиваемых объектов, коллекций, отношений и др.) в качестве аргументов и возвращаемого значения публикуемого метода.
При этом СасЬе автоматически создает необходимые объекты сложных типов данных при поступлении соответствующего запроса на сервер. Приведем пример %еЬ-службы с одним объектом: С1авз МуАрр.БГосхБегчъсе Ехсепс(з ЪБОАР.ХеЬБегчгсе ( Рагащесег ЯЕЕЧ1СЕНАМЕ = 'Муэсосхэегч1се'; Рагащегег ЕОСАТ1ОН = 'Ьсср://1оса1повг/свр/иаег'; Рагащесег ИАМЕЯРАСЕ = 'ЬГГр://Гещриг1.ого'> /// Метод возвращает пену на завтра С1аавмеГЬоб Гогесазс (ЯГосКИаще Ав ФЯТгьпд) Аз $1псеуег (ХеЬМегбос() // применяем генератор случайных чисел Яег ргъсе = Бпапоощ(1000) Оиьс ргьсе Кроме того, СасЬе автоматически генерирует тестовые СБР- страницы методов и СБР-страницу каталога, которые можно использовать для проверки правильной работы создаваемой службы. При этом СБР-страницы представляются в виде обыкновенных %еЬ-приложений, доступных для просмотра обычным броузером.
В СасЬе БОАР-сервер работает следующим образом: ° для каждого %еЬ-вегу(се создается новый СасИе-класс, который расширяется с помощью %БОАР.%еЬБегу(се; ° с помощью нового СасЬе-класса определяется один или более методов, соответствующих методам %еЬ-вегу(се, каждый из которых может быть определен ключевым словом %еЬМе(Ьо(( в 226 его описании. Можно также определить %еЬ-методы, которые возвращают массивы объектов, с помощью объявления запроса и добавления ключевого слова %еЬМегЬод в его описании; ° компилируется класс %еЬ-аегчсе, при этом компилятор СасЬе автоматически привязывает каталог с информацией, описываюгцей содержимое ГОАР-вегу)се, и строит эОАР-интерфейс для каждого %еЬ-метода.
ГОАР-интерфейс для %еЬ-метода является сгенерированным классом, который выполняет преобразование запроса ГОАР в специфический вызов %еЬ-метода, используя ХМЬ- технологию Сасйе; ° СасЬе автоматически создает %БР).-документ для каждого %еЬ-веглсе. %ЯЭ1.-документ является ХМ1.-документом. %бРЬ- документ создается с помощью %еЬ (НТТР)-сервера, использующего СИР.