Другой путь интегрировать Visual FoxPro в корпоративное приложение состоит в том, чтобы использовать его как один из компонентов, но не обязательно как главное приложение. В действительности, это можно рассматривать как back end для написания приложения, используя другой продукт. В этом случае, пользователь не видел бы непосредственно Visual FoxPro. Вместо этого, пользовательский интерфейс приложения был бы написан, используя инструменты другого приложения, а общение с Visual FoxPro будет происходить "на заднем плане" для чтения или манипуляции данными.

Visual FoxPro хорошо работает в этой роли, поскольку это позволяет сделать его механизм работы с данными, который обеспечивает быстрый доступ к данным в других приложениях. Кроме того, Visual FoxPro может создавать объекты и выполнять настройки доступные для других программ, включая созданные Вами пользовательские объекты.

Организация доступности данных Visual FoxPro из других программ

Один из способов воспользоваться преимуществами Visual FoxPro при создании корпоративного приложения - это использовать механизм работы с данными Visual FoxPro для хранения и управления данными. Это обеспечит высокоэффективное хранение и возможность выполнения запросов из других программам.

Программы могут подключаться к данным Visual FoxPro, используя Visual FoxPro OLE DB provider. Этот provider предоставляет механизму управления данными Visual FoxPro стандартные SQL команды Visual FoxPro.

Например, приложение может использовать Microsoft Excel как вычислительный инструмент для сложного анализа данных. Если данные, по которым предполагается выполнять расчет, очень изменчивы, то имеет смысл хранить их не в рабочем листе (worksheet), а в базе данных. В этом случае, рабочий лист может быть создан, используя Visual FoxPro OLE DB provider чтобы подключится к базе данных, извлечь необходимую информацию и отобразить ее в листе для последующей обработки.

Другим примером может являться приложение-киоск, такое как информационный стенд в аэропорту или центр соглашения. Вы могли бы создать информационный показ, используя мультимедийную авторскую программу. Но если некоторые данные в приложении изменяются достаточно часто, то было бы тяжело менять страницы в презентации. Вместо этого, программа презентации могла бы подключиться к базе данных Visual FoxPro, используя OLE DB provider и извлекать данные в процессе работы.

Для получения дополнительной информации, смотрите разделы помощи, посвященные "Visual FoxPro OLE DB provider".

Организация доступности объектов и команд Visual FoxPro из других программ

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

Например, Вы можете создать приложение в Microsoft Excel таким образом, чтобы данные хранились в базе данных Visual FoxPro. В дополнение к простому чтению и записи данных Microsoft Excel сможет вызывать команды Visual FoxPro для того, чтобы отобразить форму как диалоговое окно. Которое, в свою очередь, должно собрать данные для параметризированного представления.

Другой путь использования объектов Visual FoxPro это создание сервера автоматизации (Automation server). Это позволит Вам создать специфические объекты приложения, которые могут выполнить почти любую функцию из тех, что можно запрограммировать в Visual FoxPro для того, чтобы реализовать те преимущества, которые дает распределенный сервер.

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

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

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

Для получения дополнительной информации о создании пользовательских серверов автоматизации смотрите "Как: Создать Серверы Автоматизации" в "Разделение Информации и Использование OLE".

Создание хранилища данных (Data Warehouse), используя Visual FoxPro

В дополнение к созданию Вашего приложения в Visual FoxPro Вы можете использовать программу для создания и поддержания хранилища данных или версии Ваших данных, которая оптимизирована для формирования отчетов. Для того чтобы создать хранилище данных Вы должны сделать копию данных необходимых для формирования отчетов, а затем предоставить доступ к ним тем пользователям, котором они необходимы. Поддерживая эти данные отдельно от Ваших рабочих данных, Вы можете:

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

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

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

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

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

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

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

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

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

Использование Visual FoxPro как поисковой машины World Wide Web

Если Ваше корпоративное приложение предполагает создание World Wide Web сервера для Internet, Вы можете включить Visual FoxPro в приложение как поисковую машину. Это позволит Вам предоставить всю мощь Вашей базы данных Visual FoxPro для любого, кто имеет доступ к Вашему Web серверу через Internet или через интранет компании.

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

Понимание Visual FoxPro как поисковой машины Web

Чтобы использовать Visual FoxPro как информационный сервер для Web, Вам необходимы в основном следующие компоненты:

  • Существующий Web сервер с HTTP сервисом работающем под Microsoft Windows NT или Windows 2000 операционной системой.

  • Приложение Visual FoxPro, которое может быть запущено как сервер автоматизации (Automation server). Это приложение может быть запущено на любом сервере доступном для Web-сервера.

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

Обычная последовательность событий для применения поиска Visual FoxPro в Web заключается в следующем:

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

  2. Пользователь нажимает кнопку "Выполнить поиск". Данные из заполненной формы пересылаются на Web-сервер для обработки, наряду с именем Вашей Web-страницы приложения для поиска.

  3. Web-сервер запускает Ваше приложение, используя ISAPI (Internet Server API) протокол, передавая ему параметры, содержащие информацию для поиска.

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

  5. Web-сервер пересылает страницу с результатами поиска браузеру, который начал поиск.

  6. Браузер отображает результирующую страницу для пользователя.

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

Пример того, как использовать Visual FoxPro как поисковую машину Web, можно увидеть на примере Foxisapi.dll в директории Visual FoxPro ...\Samples\Servers\Foxisapi. Посмотрите файл Readme.txt в этой директории для получения более детальной информации о том, как запустить этот пример.

Смотрите также