Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Использование специализированных библиотек и встраиваемого SQL

№16

«Применение программных средств создания клиентских программ»

Приложения, функционирующие на стороне клиента, могут создаваться для каждого уровня трехуровневой модели MAPI

Разработка на уровне поставщиков услуг позволяет обеспечить унифицированный доступ клиентских приложений к дополнительным ресурсам, таким как адресные книги, хранящиеся, например, в базах данных; агентам передачи сообщений, позволяющим принимать и отправлять сообщения в почтовые системы, отличные от Exchange Server, например, систему РЕМАРТ, и хранилищам, позволяющим использовать для хранения и извлечения почтовых сообщений расширенные форматы файлов данных и специализированные системы хранения информации. При разработке приложений такого уровня должны применяться Win32 Software Development Kit (SDK) и компиляторы C/C++. В частности, все необходимые компоненты входят в состав пакета разработки Visual C/C++ 4.x Professional. При использовании компиляторов других производителей необходимо приобретение Win32 SDK. Разработка под Windows 3.1x требует наличия соответствующего компилятора и 16-битной версии MAPI SDK.

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

Наличие высокоуровневых интерфейсов OLE Messaging и OLE Scheduling позволяет использовать при создании приложений, способных использовать услуги электронной почты, как офисные пакеты, такие как Excel, Word, Access, так и средства разработки, поддерживающие стандарт OLE, например Visual Basic, Delphi или Visual J++.

Набор вызовов Simple MAPI может быть использован при создании прикладных программ, которым достаточно минимального набора функций электронной почты, на любых языках программирования, поддерживающих подключение динамических библиотек (DLL) или включение статических библиотек на этапе сборки (linking) исполняемого кода. В качестве примера таких средств разработки можно привести Visual Basic, Power Builder, Delphi, компиляторы C/C++ и FORTRAN различных производителей.

Интерфейс Common Messaging Calls (CMC) может применяться при разработке программ, которые будут переноситься на отличные от Windows платформы. По функциональности CMC соответствует уровню Simple MAPI и требует использования таких же систем разработки приложений.

Для написания прикладных программ, использующих все функциональные возможности MAPI, такие как асинхронная обработка событий, манипулирование почтовыми профилями, работа с электронными досками объявлений, поиск в каталоге, маршрутизация, расширенные свойства сообщений и т.д., должны применяться компиляторы C/C++ и Win32 SDK для платформ Windows 95 и NT или 16-битная версия MAPI SDK для Windows 3.1x. Хотя отдельные фрагменты полного набора интерфейсов могут вызываться и из приложений на Visual Basic или Delphi.

Разработка прикладных программ, расширяющих базовую функциональность, может выполняться с применением следующих средств:

  • электронного дизайнера форм клиента Exchange или электронного дизайнера Outlook, если предоставляемая ими функциональность достаточна для выполнения поставленной задачи. Поскольку в обеих системах используется язык программирования Visual Basic, поддерживающий механизм OLE, при помощи электронных форм можно удовлетворить большинство требований по созданию приложений коллективной работы, однако многие расширенные функции с их помощью не реализуются по причине ограниченных возможностей OLE Messaging и OLE Scheduling;
  • компиляторов C/C++ и Win32 SDK/MAPI SDK для создания расширений, дополняющих или заменяющих отдельные компоненты клиентской части и способных использовать в работе полный набор интерфейсов MAPI. Примером таких программ могут служить специализированный сервер электронных форм написанных на языке Java; обработчик входящих сообщений, использующий расширенный набор правил; дополнительная панель в окне клиентской программы, используемая для ускоренного просмотра сообщения.

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

  • каталог SAMAPPS на дистрибутиве сервера Exchange содержит примеры электронных форм;
  • Win32 SDK и MAPI SDK содержат примеры использования различных уровней интерфейса MAPI;
  • примеры электронных форм Outlook и программ, использующих MAPI, в том числе расширяющие базовую функциональность клиента Exchange, доступны в Internet на сервере фирмы Microsoft по адресу http://www.microsoft.com/Exchange в разделе Application Farm;
  • исходные тексты некоторых программ, входящих в Exchange Server 5.0 Resource Kit, также доступны для загрузки с WWW-сервера Microsoft.

Для создания расширений сервера и дополнительных шлюзов должен использоваться комплект разработчика BackOffice SDK, Win32 SDK и компиляторы C/C++, позволяющие создавать приложения для Windows NT. Дополнительно, может потребоваться комплект разработчика драйверов Windows NT, если программа расширения или шлюз должны обращаться к нестандартному оборудованию для приема или передачи данных. В качестве примеров использования средств разработки сервера, могут служить следующие программы, входящие в состав Exchange Server 5.0 Resource Kit или BackOffice SDK:

  • серверный агент почтового ящика, осуществляющий контроль и принудительную чистку почтовых ящиков пользователей;
  • библиотека расширения SMTP-коннектора, позволяющая описывать правила маршрутизации сообщений в текстовом файле и вести журнал результатов выполнения маршрутизации;
  • работающая модель шлюза во внешнюю почтовую систему, регистрирующую на сервере Exchange новый тип адресов;
  • обработчик события, возникающего при помещении нового сообщения в общую папку, выполняющий замещение реального имени автора именем Anonymous.

Особое положение среди средств разработки занимают активные серверные страницы (Active Server Pages или ASP). Они предназначены для организации доступа к серверу Exchange, клиентов, располагающих только броузером. ASP представляют собой набор интерпретируемых сервером IIS 3.0 сценариев, содержащих разметку HTML и программный код на языках VBScript и Javascript, который по желанию разработчика, может исполняться либо на сервере, либо на клиенте. Это позволяет в одном ASP-файле сочетать серверную и клиентскую логику. Та часть кода, которая исполняется на сервере, может использовать "родные" интерфейсы для общения с сервером Exchange и реализации как базовых, так и расширенных функций MAPI. При этом общение клиентской и серверной частей ASP-приложения происходит исключительно средствами протокола HTTP. За поддержание сессии между клиентской и серверной частями отвечает Internet Information Server.

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

  • руководство разработчика ASP, которое входит в состав документация по IIS 3.0;
  • набор активных серверных страниц, поставляемый вместе с Exchange Server 5.0. Входящие в набор файлы сценариев могут быть использованы в качестве примера и отправной точки для собственных разработок;
  • клиентские приложения Exchange, использующие ASP. Доступны для загрузки в Internet на сервере фирмы Microsoft по адресу http://www.microsoft.com/Exchange в разделе Application Farm

 

 

 

Каждая СУБД помимо интерактивной SQL-утилиты обязательно имеет библиотеку доступа и набор драйверов для различных операционных систем. Схема взаимодействия клиентского приложения с сервером базы данных в этом случае выглядит так:

 

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

  • DB_connect(char *имя_базы_данных, char *имя_пользователя, char *пароль) - устанавливает соединение с базой данной, возвращает указатель на структуру db, описывающую характеристики этого соединения
  • DB_exec(db, char *запрос) - выполнить запрос к базе данных, определяемой структурой db. Применяется для любых запросов кроме SELECT. Возвращает код выполнения запроса (0 - удачно, либо код ошибки)
  • DB_select(db, char *запрос) - выполнить запрос на извлечение данных (SELECT). Возвращает структуру result, содержащую результаты выполнения запроса (реляционное отношение).
  • DB_fetch(result) - извлечь следующую запись из структуры result.
  • DB_close(db) - закрыть соединение с базой данных.

Разумеется это минимальный набор функций для работы с базой данных. Обычно в библиотеке присутствуют также функции, позволяющие определить характеристики структуры result (число, порядок и имена столбцов, число строк, номер текущей строки), передвигаться по этой структуре не только вперед, но и назад (DB_next, DB_prev) и т.д.

На сервере происходит обратный процесс преобразования: сетевые пакеты -> функции библиотеки -> SQL-запросы, запросы обрабатываются, их результаты передаются клиенту.

Как видим, такой способ создания приложений чрезвычайно гибок, позволяет реализовать практически любое приложение, но в то же время имеет явные недостатки:

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

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

Некоторой модификацией данного способа является использование "встроенного" языка SQL. В этом случае в текст программы на языке третьего поколения включаются не вызовы библиотек, а непосредственно предложения SQL, которые предваряются ключевым выражением "EXEC SQL". Перед компиляцией в машинный код такая программа обрабатывается препроцессором, который транслирует смесь операторов "собственного" языка СУБД и операторов SQL в "чистый" исходный код. Затем коды SQL замещаются вызовами соответствующих процедур из библиотек исполняемых модулей, служащих для поддержки конкретного варианта СУБД.

Такой подход позволил несколько снизить степень привязанности к СУБД, например, при переключении прикладной программы на работу с другим сервером базы данных достаточно было заново обработать ее исходный текст новым препроцессором и перекомпилировать.

 

<== предыдущая лекция | следующая лекция ==>
Экология как наука | ODBC - открытый интерфейс к базам данных на платформе MS WIndows
Поделиться с друзьями:


Дата добавления: 2013-12-12; Просмотров: 447; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.012 сек.