Построение компонентов Web Parts для Digital Dashboard

Настоящий документ описывает новые возможности, предоставляемые пакетом Digital Dashboard Resource Kit 2.0, а также содержит информацию о процессе разработки компонентов Web Part (DDB-компонент) – новых объектов электронных информационных панелей (digital dashboard), которые могут содержать любой веб-контент (web content).

Информация, изложенная в этом документе, предполагает, что вы имеете основательные знания в области Интернет-технологий, таких как HTML, XML и XSL, ActiveX®, а также языков написания сценариев.

 

Информационный документ

 

 

 

 

Дата публикации: Май 2000


Содержание

Введение. 1

Знакомство с Web Parts. 2

Компонент Digital Dashboard Services. 2

Digital Dashboard: терминология. 3

Web Part Schema (схема DDB-компонентов) 3

Свойства схемы.. 3

Перед тем как начать разработку DDB-компонентов. 6

Установка примера электронной панели для файловой системы Windows 2000. 6

Установка Web Part Builder 7

Построение простого DDB-компонента. 7

Создание DDB-компонента с помощью электронной панели. 8

Создание DDB-компонента с помощью Web Part Builder 8

Создание DDB-компонента со встроенным контентом. 8

Создание DDB-компонента со ссылками на контент. 11

Создание DDB-компонента с XML-контентом. 12

Построение 'правильного' DDB-компонента. 14

Построение информативного и настраиваемого DDB-компонента. 14

Единый стиль. 19

Изоляция DDB-компонента. 20

Создание переносимых DDB-компонентов. 22

Построение DDB-компонентов, используемых в режиме offline. 23

Как DDB-механизм интерпретирует DDB-компоненты.. 26

Архитектура электронной информационной панели. 29

Модуль хранения. 29

DDB-механизм. 30

Уровень представления. 30


Построение компонентов Web Parts для Digital Dashboard

Информационный документ

Дата публикации: Май 2000

Самую свежую информацию можно найти по адресу http://www.microsoft.com/solutions/km

Введение

Электронная информационная панель (digital dashboard, DDB) представляет собой настраиваемый информационный портал, который объединяет персональную, групповую, корпоративную и внешнюю информацию, а также предоставляет сотрудникам, работающим со знаниями (knowledge workers), доступ к инструментам групповой работы, который они могут осуществить всего лишь одним щелчком мыши. Выпустив Digital Dashboard Resource Kit 2.0, корпорация Microsoft дает своим партнерам и клиентам возможность разрабатывать электронные информационные панели (ЭИП) нового поколения, основанные на Интернет-стандартах.

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

Знакомство с Web Parts

Центром электронной информационной панели являются компоненты, называемые Web Part (в дальнейшем мы будем называть из DDB-компонентами). Web Part – это повторно используемый компонент, который содержит в себе некоторый веб-контент (XML или HTML-код или сценарии) и стандартную схему свойств (property schema), которая определяет каким образом этот компонент отображается на информационной панели. Структура DDB-компонентов предоставляет различные возможности по созданию его содержания – вы можете встроить объект в компонент, указать в нем адрес объекта в локальной сети предприятия или в Интернете, считать содержимое с корпоративного веб-узла или указать ссылку на XML-документы или XSL-файлы. Поскольку DDB-компоненты построены на основе единого стандарта, вы можете создавать библиотеки этих компонентов для построения электронных информационных панелей, а системные администраторы могут распространять компоненты, используя эти библиотеки.

Для того чтобы создавать DDB-компоненты, вам не нужно учиться чему-нибудь новому – вы легко можете создать простые компоненты с помощью инструментов, входящих в состав Digital Dashboard Resource Kit 2.0. Для разработки более сложных DDB-компонентов достаточно использовать дополнения (add-in) к Microsoft Visual InterDev®, также поставляемые с Digital Dashboard Resource Kit.

Компонент Digital Dashboard Services

Компонент Digital Dashboard Services Component – это клиентский компонент, который включается в состав каждой электронной информационной панели как скрытый объект. Именно он делает DDB-компоненты действительно повторно используемыми и простыми в разработке, так как предоставляет стандартную инфраструктуру, включающую следующие службы:

·         Part discovery — позволяет одним DDB-компонентам обнаруживать (или находить) другие компоненты на электронной информационной панели.

·         Notification — позволяет DDB-компонентам реагировать на внешние события, возникающие в электронной информационной панели или DDB-компонентах.

·         Session state management — позволяет DDB-компонентам обмениваться информацией и объектами.

·         State management — позволяет электронным панелям и компонентам управлять состоянием и сохранять это состояние между запусками.

·         Item retrieval — позволяет DDB-компонентам получать состояние элементов в модуле хранения (store module) и управлять этим состоянием.

Более подробную информацию о компоненте Digital Dashboard Services Component можно найти в документации, которая входит в состав Digital Dashboard Resource Kit.

Digital Dashboard: терминология

В этом разделе разъясняется значение терминов, которые используются в документации, входящей в состав Digital Dashboard Resource Kit 2.0.

Digital dashboard (электронная информационная панель): отображение набора DDB-компонентов (Web Part) на HTML-странице. Более подробную информацию о схеме электронной информационной панели (Dashboard schema) можно найти в документе "Dashboard Schema Reference" из Digital Dashboard Resource Kit.

Web Part (DDB-компонент): повторно используемый компонент, который содержит в себе некоторый веб-контент (XML или HTML-код или сценарии) и стандартную схему свойств (property schema), которая определяет каким образом этот компонент отображается на информационной панели.

Dashboard factory (DDB-механизм): кодовый механизм (ASP), который "собирает" DDB-компоненты в визуальное представление, необходимое для отображения на электронной информационной панели.

Digital dashboard application (DDB-приложение): электронная информационная панель плюс все поддерживаемые элементы, настраиваемые страницы и формы DDB-компонентов (Web Part forms).

Web Part Schema (схема DDB-компонентов)

Комплект Digital Dashboard Resource Kit предоставляет полную и удобную в использовании схему для DDB-компонентов, которую DDB-механизм интерпретирует одним и тем же способом. Все DDB-компоненты, определяемые с помощью этой схемы, принадлежат классу контента (content class) "urn:schemas-microsoft-com:office:Webpart:". Эта схема работает c Microsoft Exchange 2000 Server, SQL Server™ и файловой системой Windows 2000. Вы можете определять дополнительные свойства DDB-компонента, но DDB-механизм, используемый по умолчанию, не будет распознавать их, и они не будут являться элементами базового класса контента.

Свойства схемы

Свойства схемы (schema properties) определяют, как выглядит DDB-компонент, место, откуда он получает контент, как он выполняется, каким образом пользователь может изменять его свойства и т.д. Более подробную информацию о свойствах схемы можно найти в документе " Web Part Schema Reference".

Приведенные ниже таблицы содержат наименование и описание свойств, определенных в схеме DDB-компонентов. За исключением специально оговоренных случаев, все свойства принадлежат пространству имен "urn:schemas-microsoft-com:office:Webpart:". Колонка "Определен для пользователя" используется для указания, является ли данное свойство определенным для каждого пользователя. Свойства, которые не являются определенными для пользователя, являются свойствами метаданных, хранящихся на сервере. Электронная информационная панель может сохранять значения свойств, определенных для пользователя, поэтому для каждого пользователя значения этих свойств могут различаться. Более подробную информацию о том, как электронная панель сохраняет значения свойств, определенные для каждого пользователя, можно найти в разделе "Построение информативного и настраиваемого DDB-компонента".

Базовые свойства (Basic Properties)

Свойства, перечисленные в этой таблице, определяют базовые метаданные DDB-компонента.

Свойство

Определен для пользователя

Описание

Description

Нет

Описание DDB-компонента

LastModified

Да

Дата и время модификации DDB-компонента (GMT)

Title

Да

Заголовок DDB-компонента

Namespace

Нет

Пространство имен для DDB-компонента

Свойства вида (Appearance Properties)

Свойства, перечисленные в этой таблице, определяют, как именно DDB-компонент отображается на электронной информационной панели.

Свойство

Определен для пользователя

Описание

AllowMinimize

Нет

Определяет, может ли пользователь минимизировать DDB-компонент

AllowRemove

Нет

Определяет, может ли пользователь удалить DDB-компонент с панели

DetailLink

Нет

Ссылка (URL) на страницу DDB-компонента, которая чаще всего используется для его настройки

FrameState

Да

Определяет состояние кадра (frame) DDB-компонента: нормальное или минимизированное

HasFrame

Нет

Если это свойство имеет значение TRUE, то DDB-компонент будет содержать рамку с заголовком и кнопками

Height

Да

Определяет высоту DDB-компонента на панели

IsIncluded

Да

Определяет, является ли DDB-компонент включенным в панель

IsVisible

Да

Делает DDB-компонент видимым или невидимым

PartOrder

Да

Определяет порядок DDB-компонента относительно других в той же зоне

Width

Да

Определяет ширину DDB-компонента на панели

Zone

Да

Определяет зону на электронной панели, где располагаются DDB-компоненты.

Свойства контента (Content Properties)

Эти свойства определяют, откуда DDB-компонент получает свой контент, какую часть веб-страницы он отображает и тип контента.

Свойство

Определен для пользователя

Описание

Content

Нет

Встроенный контент (тело DDB-компонента)

ContentLink

Нет

Ссылка (URL) для использования вместо встроенного контента

ContentType

Нет

Определяет тип встроенного контента (HTML, VBScript, JavaScript, XML и т.д.)

Свойства выполнения (Execution Properties)

Свойства, указанные в этой таблице, определяют, как DDB-компонент выполняется на электронной информационной панели.

Свойство

Определен для пользователя

Описание

CacheBehavior

Нет

Определяет, когда и как DDB-механизм кэширует контент. Свойство может принимать одно из следующих значений: None, All Users, Each User

CacheTimeout

Нет

Определяет время, в течение которого DDB-механизм хранит кэшированные данные или результаты

CustomizationLink

Нет

Ссылка (URL) на страницу, которая позволяет пользователю настраивать порядок выполнения DDB-компонента

MasterPartLink

Нет

Ссылка (URL) на мастер-версию DDB-компонента

PartStorage

Да

Определяет элемент для хранения состояния DDB-компонента и информации о его настройках

RequiresIsolation

Нет

Определяет, нужно ли изолировать DDB-компонент в других компонентов

XSL

Нет

Встраивает XSL для использования его в контенте DDB-компонента перед его отображением на электронной панели

XSLLink

Нет

Ссылка (URL) на XSL для использования его в контенте DDB-компонента перед его отображением на электронной панели

Перед тем как начать разработку DDB-компонентов

Перед тем как приступить к созданию своего первого DDB-компонента, вы должны установить Web Part Builder – дополнение для Visual InterDev, включенное в состав комплекта Digital Dashboard Resource Kit, и пример электронной информационной панели, работающей с файловой системой Microsoft® Windows® 2000. Этот пример можно использовать в качестве платформы для создания и тестирования DDB-компонентов.

Установка примера электронной панели для файловой системы Windows 2000

Вы должны установить пример электронной информационной панели, работающей с файловой системой Windows 2000, на компьютер с Windows 2000, Internet Information Services (IIS) 5.0 и файловой системой NTFS.

Для установки примера выберите пункт Install the File System Sample Digital Dashboard на странице "Building Digital Dashboards" комплекта Digital Dashboard Resource Kit. Вы можете также  запустить на установку файл DDRK_FS.msi с CD-ROM. Программа-мастер установки проведет вас через все шаги установочного процесса.

Во время установки программа-мастер запросит у вас следующую информацию:

·         Имя каталога или виртуального корневого каталога (virtual root), в котором будут храниться пользовательские электронные информационные панели. Имя каталога по умолчанию – Dashboards.

·         Имя корневого веб-каталога (Web root), в котором будет храниться DDB-механизм. Имя каталога по умолчанию – Factory.

Установка Web Part Builder

Дополнение Web Part Builder требует наличия Microsoft Visual InterDev 98, работающего под управлением Windows 2000. Перед установкой Web Part Builder удостоверьтесь в том, что Visual InterDev не запущен.

Для того чтобы установить Web Part Builder, запустите программу Setup.exe, расположенную в каталоге "Builder" на компакт-диске Digital Dashboard Resource Kit. Программа-мастер установки проведет вас через все шаги установочного процесса.

После того, как вы установили Web Part Builder, вы должны подключиться к сайту электронной панели. Для этого:

1.     Запустите Visual InterDev, выберите File, а затем New Project.

2.     Выберите Digital Dashboard в качестве типа проекта.

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

После этого вы можете приступить к созданию DDB-компонентов.

Построение простого DDB-компонента

В этом разделе рассматривается процесс создания DDB-компонентов. Эти компоненты можно создавать двумя различными способами – непосредственно в самой электронной панели или с помощью дополнения Web Part Builder. Процесс создания компонента с помощью электронной панели так прост, что даже не очень подготовленный пользователь может создать простой DDB, который, например, отображает некоторый веб-узел.

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

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

Создание DDB-компонента с помощью электронной панели

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

1.     Щелкните в электронной информационной панели по ссылке Content, которая расположена в правом верхнем углу строки заголовка (title bar) электронной панели.

2.     На открывшейся странице Content, щелкните Create a new Web Part.

3.     На странице Properties forNew Part, определите свойства нового DDB-компонента.

4.     Щелкните OK для того, чтобы сохранить новый DDB-компонент.

Создание DDB-компонента с помощью Web Part Builder

Для того чтобы создать более сложный DDB-компонент, вам нужно использовать дополнение Web Part Builder. С его помощью вы сможете не только создать сам компонент, но и проверить, правильно ли он работает.

Для того чтобы создать DDB-компонент с Web Part Builder, вы должны выполнить следующее:

1.     В режиме "project view", щелкните правой кнопкой мыши каталог Dashboards и выберите пункт меню Add a Dashboard Folder.

2.     Введите имя и заголовок для каталога, в котором будет создаваться новая электронная панель.

3.     Щелкните правой кнопкой мыши на созданном каталоге и выберите пункт меню Add Web Part.

4.     Введите в появившемся диалоге Create Web Part имя и описание DDB-компонента, а затем укажите тип контента – HTML.

5.     Введите HTML-код для веб-страницы DDB-компонента.

6.     В меню File выберите пункт Save.

Для того чтобы посмотреть, как DDB-компонент будет отображаться на электронной панели, щелкните правой кнопкой мыши на созданном каталоге и выберите пункт меню View Dashboard.

Создание DDB-компонента со встроенным контентом

Для создания DDB-компонента со встроенным контентом (embedded content), вы должны использовать свойство Content в схеме DDB-компонента. Весь контент, который отображается компонентом, содержится в этом свойстве, – это может быть HTML-или XML-код, в также сценарий на языке VBScript или JavaScript.

Ниже приводится код для DDB-компонента, который отображает содержимое почтового каталога Inbox. Обратите внимание на то, что некоторые свойства, такие как ContentLink и DetailLink, не определены – они будут использовать значения, установленные по умолчанию.

<?xml version="1.0" ?>

<Part>

<Title>Inbox</Title>

<Description>The Outlook Inbox</Description>

<Zone>3</Zone>

<Content>

<![CDATA[

<OBJECT classid=clsid:0006F063-0000-0000-C000-000000000046 id=OVCtl1><PARAM NAME="View" VALUE=""><PARAM NAME="Folder" VALUE=""><PARAM NAME="Namespace" VALUE="MAPI"><PARAM NAME="Restriction" VALUE=""><PARAM NAME="DeferUpdate" VALUE="0"></OBJECT>

]]>

</Content>

<ContentType>0</ContentType>

<IsVisible>1</IsVisible>

<AllowRemove>1</AllowRemove>

<HasFrame>1</HasFrame>

<IsIncluded>1</IsIncluded>

<PartStorage />

</WebPart>

 

На приведенном рисунке вы может увидеть, как будет выглядеть этот DDB-компонент на электронной информационной панели.

Если DDB-компонент будет содержать не HTML-контент, вы должны в дополнение к свойству Content использовать и свойство ContentType – это позволит DDB-механизму правильно интерпретировать содержание DDB-компонента. В таблице приведены возможные значения свойства ContentType.

Значение

Тип контента

0

HTML

1

Сценарий на языке VBScript, запускаемый на сервере

2

Сценарий на языке JavaScript, запускаемый на сервере

3

XML-код, интерпретируемый в соответствии со значением свойства XSL или XSLLink

Если значение свойства ContentType не равно ни одному из приведенных в таблице, то DDB-механизм интерпретирует его как unknown; однако, если вы создаете специализированный DDB-компонент, вы можете модифицировать DDB-механизм, чтобы расширить список возможных значений этого свойства. Если вы не задали значение этого свойства, то будет использоваться значение по умолчанию – 0 или – HTML.

Если свойство Content содержит сценарий на языке VBScript или JavaScript, DDB-механизм должен иметь возможность "разрешить" сценарию создавать контент в самом механизме – для этого вы должны включить в сценарий функцию getContent.

Функция getContent имеет только один входной параметр – объект MSXML.DomDocument, который содержит информацию о свойствах DDB-компонента в XML-формате. Это позволяет сценарию получить доступ к таким свойствам, как PartStorage, для того чтобы определить любые присутствующие настройки инициализации компонента. Сценарий также имеет доступ к стандартным объектам – ASP Session, Application, Request и Response objects, чтобы получить параметры cookies, запросов или информацию о любом хранимом состоянии сессии (session state) или приложения (application state).

При обработке DDB-компонента, содержащего сценарии на VBScript или JavaScript, DDB-механизм добавляет в сценарий необходимые строки для вызова функции getContent и получения сгенерированного контента.

Ниже приведены примеры использования функции getContent в сценариях на языке JavaScript и VBScript:

JavaScript

function getContent(xmldomPart)
{
var sContent = new String();
//code to generate content into sContent
return sContent;
}

VBScript

Function getContent(xmldomPart)
Dim sContent
'code to generate content into sContent
getContent = sContent
End Function

Создание DDB-компонента со ссылками на контент

При создании DDB-компонента со ссылками на контент (linked content) вы должны использовать свойство ContentLink, чтобы добавить ссылку на источник веб-контента, который может быть HTML-кодом (значение по умолчанию), сценарием на VBScript, сценарием на JavaScript или XML-кодом. Чтобы DDB-механизм мог правильно интерпретировать этот контент, вы также должны использовать свойство ContentType. Более подробную информацию о свойстве ContentType можно найти в предыдущем разделе "Создание DDB-компонента со встроенным контентом".

Ниже приведен пример DDB-компонента, содержащего ссылку на контент, находящийся в Интернете, а также вид электронной информационной панели с этим компонентом.

<WebPart>
<Title>Linked Content Web Part</Title>
<Description>A Web Part that contains linked content.</Description>
<ContentType>0</ContentType>
<ContentLink>http://www.msn.com</ContentLink>
<RequiresIsolation>1</RequiresIsolation>
</WebPart>

По умолчанию, контент, на который указывает ссылка, читается непосредственно в страницу компонента и включается в объектную модель документа электронной панели. Однако в большинстве случаев, вы можете захотеть, чтобы DDB-компонент просто отображал окно с той веб-страницей, на которую вы задали ссылку. В этом случае вы должны установить значение свойства RequiresIsolation равным TRUE, чтобы поместить DDB-компонент в IFrame. Дополнительную информацию о свойстве RequiresIsolation можно найти в разделе "Построение 'правильного' DDB-компонента".

Создание DDB-компонента с XML-контентом

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

Properties

Description

ContentLink и XSL

Свойство ContentLink содержит ссылку на XML-документ, а свойство XSL – таблицу стилей, которую DDB-механизм использует для преобразования XML в HTML

ContentLink и XSLLink

Свойство ContentLink содержит ссылку на XSL-контент, а свойство XSLLink – ссылку на таблицу стилей, которую DDB-механизм использует для преобразования XML в HTML

Content и XSL

Свойство Content содержит встроенный XML-контент, а свойство XSL – таблицу стилей, которую DDB-механизм использует для преобразования XML в HTML

Content и XSLLink

Свойство Content содержит встроенный XML-контент, а свойство XSLLink – ссылку на таблицу стилей, которую DDB-механизм использует для преобразования XML в HTML

·         Примечание Если вы создаете DDB-компонент со встроенным XML-контентом или со ссылкой на него, вы должны установить значение свойства ContentType равное 3 – XML. Это нужно для того, чтобы DDB-механизм распознал содержание свойств Content или ContentLink как XML–код и правильно интерпретировал его.

Ниже приведен пример DDB-компонента, который содержит ссылку на XML-контент и ссылку на веб-узел с XSL-файлом, который будет использоваться DDB-механизмом для преобразования XML:

<WebPart>
<Title>XML Web Part</Title>
<Description>A Web Part that contains embedded XML and a link to a site containing XSL.</Description>
<ContentType>3</ContentType>
<ContentLink>http://www.msn.com/news.xml</ContentLink</ContentLink>
<XSLLink>http://www.msn.com/news.xsl</XSLLink>
</WebPart>

Использование XML в примерах электронных информационных панелей

Для примеров электронных панелей, содержащихся в Digital Dashboard Resource Kit 2.0, существуют лишь незначительные ограничения по преобразованию XML и XSL. Они сводятся к следующему.

·         В случае использования примера электронной информационной панели, работающей с файловой системой Windows 2000, DDB-компоненты, сохраняющие XML в свойства Content или возвращающие его из выполняющегося на сервере сценария на VBScript или JavaScript, должны использовать кодировку UTF-16.
В случае использования примера электронной информационной панели, работающей с SQL Server, DDB-компоненты, сохраняющие XML в свойства Content или возвращающие его из выполняющегося на сервере сценария на VBScript или JavaScript, должны использовать кодировку UTF-8.
Когда DDB-компоненты сохраняют XML в свойстве Content или возвращают его из выполняющегося на сервере сценария на VBScript или JavaScript, DDB-механизм временно сохраняет XML в строковой переменной на сервере, а затем инициализирует XMLDOM из этой переменной. Это означает, что, если вы используете одни из перечисленных методов для возврата XML, вы не можете задавать в нем тип перекодировки.

·         Если DDB-компонент возвращает XML-контент, используя для этого ссылку, заданную в свойстве ContentLink, вы обязательно должны установить значение свойства ContentType равное 3 –XML, иначе DDB-механизм не сможет правильно отобразить XML-контент. Если вы используете в DDB-компоненте свойство ContentLink, но не задаете правильное значение свойства ContentType, DDB-механизм будет временно преобразовывать XML-контент в строку, что, в свою очередь, приведет к появлению ошибки преобразования из-за неправильного использования кода UTF-16 (или UTF-8 в случае примера для SQL Server).

·         Вы не можете задавать тип перекодировки для DDB-компонентов, которые сохраняют XSL в свойстве XSL, так как DDB-механизм использует строку (string) для передачи XSL.

Построение 'правильного' DDB-компонента

В этом разделе приведены основные принципы построения 'правильного' DDB-компонента, а также обсуждаются пути применения этих принципов на практике. Итак, 'правильный' DDB-компонент:

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

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

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

·         Является переносимым (portable). Чтобы сделать DDB-компонент действительно повторно используемым, вы должны сделать его как можно более автономным. Он не должен зависеть от подключения к сети или от других компонентов на электронной панели и, прежде всего, его свойства должны соответствовать правилам схемы DDB-компонента.

·         Может использоваться автономно (в режиме offline). DDB-компонент должен правильно работать в автономном режиме (offline). Вы должны добавить текст, который должен будет выводиться в случае, когда связанный (linked) контент недоступен, в свойство Content.

Построение информативного и настраиваемого DDB-компонента

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

Прежде чем вы начнете разрабатывать DDB-компонент, подумайте о том, что именно нужно пользователям. Очень часто "хорошим" DDB-компонентом оказывается такой, который может настраиваться пользователями. Например, DDB-компонент, отображающий содержимое папки Outlook® должен иметь вид, который пользователь может настроить с помощью элемента управления Outlook View Control. Другим примером хорошего компонента может служить компонент, отображающий информацию об акциях (stock ticker) и настраиваемый таким образом, чтобы он выводил информацию только о выбранных пользователям акциях.

Настраиваемый DBB-компонент должен удовлетворять следующим трем условиям: он должен предоставлять пользователю способ для настройки; он должен где-то хранить информацию о своих настройках и иметь возможность извлечь эту информацию. Для того чтобы создать интерфейс, дающий пользователям возможность настройки DDB-компонента, вы должны использовать свойство CustomizationLink. Вы может хранить информацию о настройке на клиенте, на сервере или в самом DDB-компоненте, используя для этого свойство PartStorage.

Использование свойства CustomizationLink

Свойство CustomizationLink содержит ссылку (URL) на страницу, которая дает пользователям возможность настраивать DDB-компонент; кроме этого, вы можете встроить возможность настройки непосредственно внутрь компонента. Например, вы можете разместить небольшую кнопку Edit на строке заголовка DDB-компонента. Когда пользователь щелкнет эту кнопку, будет сформирована ссылка на страницу, которая предоставит возможность настройки компонента. Как правило, на странице настройки вам потребуется разместить кнопку Submit, нажатие на которую приведет к применению сделанных настроек и передаст управление электронной информационной панели. Для того чтобы вернуться назад на страницу, вы можете использовать метод window.history.back в сценарии на JavaScript или VBScript.

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

Использование свойства PartStorage

Наилучшим способом хранения информации о настройках DDB-компонента является использование свойства PartStorage, доступ к которому можно получить с помощью компонента Digital Dashboard Services Component. Более подробную информацию о Digital Dashboard Services Component можно найти в документации на этот компонент.

В приведенном ниже примере DDB-компонент Purchase Car сохраняет информацию об имени пользователя и его адресе, для того чтобы использовать их при следующем обращении этого пользователя к электронной информационной панели. DDB-компонент сохраняет эти значения в свойствах настройки, используя сервис State Management, который предоставляется Digital Dashboard Services Component. DDB-компонент определяет пространство имен (Namespace), имя и величину для каждого свойства. Впоследствии, компонент может получить эту информацию, используя коллекцию Properties.

Ниже приведен код компонента Purchase Car. Обратите внимание, что компонент использует строку ‘this_WPQ_Part’ для ссылки на себя самого. Более подробную информацию об использовании строки ‘_WPQ_Part’ можно найти в разделе “Part Discovery Service” документации, посвященной Digital Dashboard Services Component.

<TABLE border=0 cellPadding=1 cellSpacing=1 style="HEIGHT: 228px; WIDTH: 415px" width="75%">
 <TR>
 <TD>Name:</TD>
 <TD><INPUT id=txtName name=text1 style="HEIGHT: 22px; WIDTH: 278px"></TD></TR>
   …
</TABLE>
</P>
<INPUT id=load type=button value="Remember Me" LANGUAGE=javascript onclick="load_onclick();">
<INPUT id=save type=button value="Place Order" LANGUAGE=javascript onclick="save_onclick();">
<SCRIPT LANGUAGE=javascript>
function save_onclick() {
this_WPQ_Part.Properties ("urn:Custinfo#CustName", txtName.value, 0);
this_WPQ_Part.Properties ("urn:Custinfo#CustName ", txtAddress1.value, 0);
this_WPQ_Part.Properties ("urn:Custinfo#Address2", txtAddress2.value, 0);
this_WPQ_Part.Properties ("urn:Custinfo#City", txtCity.value, 0);
this_WPQ_Part.Properties ("urn:Custinfo#State", txtState.value, 0);
this_WPQ_Part.Properties ("urn:Custinfo#Zip", txtZip.value, 0);this_WPQ_Part.Save()
}
function load_onclick() {
txtName.value = this_WPQ_Part.Properties("CustName");
txtAddress1.value = this_WPQ_Part.Properties ("urn:Custinfo#Address1");
txtAddress2.value = this_WPQ_Part.Properties ("urn:Custinfo#Address2");
txtCity.value = this_WPQ_Part.Properties ("urn:Custinfo#City");
txtState.value = this_WPQ_Part.Properties ("urn:Custinfo#State");
txtZip.value = this_WPQ_Part.Properties ("urn:Custinfo#Zip");
}
</SCRIPT>

Использование cookie

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

Например, DDB-компонент, который выводит содержание папки Outlook с помощью элемента управления Outlook View Control, должен иметь возможность вывода содержания любой другой указанной пользователем папки. Для этого DDB-компонент должен иметь информацию о том, какая папка отображается и каким именно образом. Вы можете обеспечить эту возможность, используя клиентские cookie.

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

Для доступа к cookies можно использовать объектную модель документа (document object model, DOM), а именно – document.cookie.

Хотя использование клиентских cookies является самым простым способом для хранения и получения информации о настройках, сделанных пользователем, эти настройки связаны с клиентским компьютером – следовательно, пользователь не может воспользоваться ими, войдя в сеть с другого компьютера. Если ваш DDB-компонент содержит встроенный сценарий (script), который выполняется на сервере, то этот сценарий может получить доступ к cookies c помощью Internet Explorer, используя коллекцию Request.Cookies в ASP.

Cookie и неизолированный контент

Обычные веб-узлы используют cookie для идентификации клиента между запросами страниц. Когда клиент получает доступ к странице, она записывает cookie, ассоциированное с доменом веб-узла, которое указывает на то, что пользователь был идентифицирован. Когда пользователь обращается к другой странице этого же домена, Internet Explorer передает значение cookie в HTTP-заголовке, и сервер может определить, какой именно пользователь выполняет запрос.

Электронная информационная панель вносит в этот механизм некоторую особенность поскольку, если DDB-компонент не изолирован, то запрос контента приходит от сервера электронной панели, а не от клиентского компьютера.

Например, предположим, вы создали DDB-компонент, который отображает основную страницу веб-узла MSN (www.msn.com). Пользователи должны иметь возможность настраивать эту страницу, а Internet Explorer – определить, какой из пользователей обращается к этой странице. Чтобы эти условия были выполнены, необходимо следующее:

1.    Процесс начинается, когда пользователь обращается к электронной панели в первый раз. Internet Explorer посылает запрос URL Get серверу, на котором располагаются ASP-коды электронной панели. Эти коды не получают cookie от Internet Explorer, потому cookie, ассоциированные с этим сервером, еще не были записаны.

2.    DDB-механизм отображает DDB-компоненты, один из которых содержит в свойстве ContentLink ссылку на основную страницу веб-узла MSN. DDB-механизм делает запрос по этой ссылке, и, поскольку нет cookie, которые нужно передать серверу, то они с этим запросом не передаются.

3.    Т.к. DDB-механизм не передал в запросе ни одной cookie, то веб-узел MSN возвращает стандартный вид основной страницы.

4.    Для того чтобы настроить DDB-компонент, пользователь щелкает кнопку Customize на строке заголовка DDB-компонента. Гиперссылка, ассоциированная с этой кнопкой, указывает на URL, заданный в свойстве CustomizationLink, но DDB-механизм также добавляет два строковых параметра запроса (query string parameters): ReturnURL и PartNamespace. Параметр ReturnURL имеет значение dashboard.asp, а PartNamespace – значение, записанное в свойстве Namespace DDB-компонента. DDB-механизм добавляет эти параметры к любым существующим параметрам в строке запроса, определенным в свойстве CustomizationLink, или же к строке запроса, если никакие другие параметры не были заданы.

Примечание. Если результатом запроса по ссылке, заданной в ContentLink, является страница ввода пароля (login screen), то эта страница не будет содержать правильную информацию для параметров ReturnURL и PartNamespace. Чтобы исправить это, DDB-механизм ищет два идентификатора (без учета регистра) _OfficeDashReturnURL_ и _OfficeDashPartNamespace_ и заменяет их соответствующими значениями. Например, веб-узел, использующий окно ввода пароля, может вернуть HTML-код:

<form action="http://www.SomeService.com/login.asp?ReturnURL=_OfficeDashReturnURL_&Partnamespace=_OfficeDashPartNamespace_" method="POST">
<!-- Login form UI -->
</form>

5.    После того, как пользователь настроит основную страницу, узел выполняет перенаправление HHTP (HTTP redirect) с помощью вызова Response.Redirect в ASP-коде обратно и включает в него три строковых параметра запроса: Partnamespace, UserTicket и Expires.

·         Параметр Partnamespace может содержать то же значение, что и передавалось узлу, или узел может модифицировать его. Это значение будет использоваться для определения имени cookie, которое электронная панель запишет на клиентский компьютер, и это же cookie будет использоваться (передаваться на сервер) при последующих запросах контента.

·         Параметр UserTicket – это строковая переменная, которая может содержать любое значение, добавленное узлом. DDB-механизм не использует этот параметр. Значение этого параметра будет возвращаться на сервер в качестве значения cookie при последующих запросах контента, давая серверу возможность определить, кто именно выполняет этот запрос.

·         Параметр Expires – это строка, которая определяет время окончания срока действия cookie. Это время задается в том же формате, как и при задании аналогичного параметра в asp-коде или в сценарии – например, "December 31, 2001". Если этот параметр не был включен, то DDB-механизм не устанавливает для cookie дату окончания срока действия – это означает, что cookie будет удалена, когда пользователь закроет браузер.

6.    Когда браузер клиента получает этот запрос, он запрашивает URL перенаправления, которая содержит параметры запроса, перечисленные выше. После этого DDB-механизм получает эти параметры.

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

1.    если происходит обращение к ссылке, заданной в ContentLink

2.    и если есть любые cookie с именами, совпадающими с Currentwebpart.Namespace

3.    то в заголовке HTTP_COOKIE передается cookie c именем "UserTicket"

8.    Веб-узел MSN получает cookie с именем UserTicket и любые другие, которые клиентский сценарий DDB-компонента мог записать в том же пространстве имен. Веб-узел использует полученное значение для определения настроек персональной страницы пользователя.

Internet Explorer получает cookie и запоминает его для дальнейшего использования.

Единый стиль

'Правильный' DDB-компонент должен выглядеть так же, как и другие компоненты на электронной панели. Электронная панель определяет набор стилей, которые DDB-компонент должен наследовать, чтобы иметь 'одинаковый' с другими компонентами вид. Не рекомендуется использовать связанные или встроенные таблицы стилей (style sheet), которые содержат эти стили, поскольку они могут заменить собой стили всей электронной панели. В приведенной ниже таблице описаны классы стилей, определяемые электронной панелью.

Класс стиля (Style Class)

Описание

BODY

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

P

Форматирование текста, используемое по умолчанию

H1, H2, H3, H4, H5, H6

Заголовки в DDB-компоненте

TH

Ячейки заголовков в таблице

TH.Filled

Ячейки заголовков в таблице с фоновым цветом

TD

Ячейки таблицы в DDB-компоненте

TD.Filled

Ячейки таблицы c фоновым цветом

a:link

Гиперссылка

a:hover

Вид гиперссылки, когда на ней находится указатель мыши

a:active

Активированная гиперссылка

a:visited

"Отработанная" гиперссылка

LI

Элементы списка

INPUT

Элементы ввода

TEXTAREA

Области текста

SELECT

Выбранные элементы в выпадающем списке

OPTION

Варианты выбора

B, STRONG

Жирный текст (Bold)

I, EM

Курсив (Italic)

U

Текст с подчеркиванием (Underline)

Изоляция DDB-компонента

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

·         Функции в разных DDB-компонентах имеют одинаковые имена

·         Объекты в разных DDB-компонентах имеют одинаковые имена

·         Переменные в разных DDB-компонентах имеют одинаковые имена

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

Если вы создали DDB-компонент, который не является изолированным, то переменные и процедуры модульного уровня (module-level) этого компонента будут принадлежать той же странице, к которой принадлежат процедуры и переменные электронной панели. Переменные и процедуры самой электронной панели используют префикс ddv_ для того, чтобы уменьшить вероятность совпадения имен, поэтому будет не лишним, если для переменных и процедур разрабатываемого DDB-компонента вы тоже будете использовать уникальные префиксы, заменяя ими префикс “_WPQ_”, чтобы избежать конфликтов имен с другими неизолированными компонентами.

Не включайте в исходный код компонента теги <HTML>, <HEAD> или <BODY>, потому что страница, в которую будет включаться ваш компонент, тоже содержит их.

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

Использование фреймов

Для того чтобы полностью изолировать DDB-компонент от других компонентов электронной информационной панели, нужно использовать свойство RequiresIsolation – это приведет к тому, что компонент будет помещаться в IFrame. Запрос контента для изолированного компонента происходит асинхронно от остальных компонентов, расположенных на этой же странице, поэтому такая изоляция может быть удобной и в случае, когда связанный контент медленно загружается. Отрицательной стороной использования свойства RequiresIsolation является то, что компонент Digital Dashboard Services Component становится недоступным по соображениям безопасности.

Использование замены строк

Если вы не хотите изолировать DDB-компонент, но при этом стараетесь избежать конфликтов имен с элементами HTML-кода и функциями сценариев электронной панели, вы можете использовать службу уникальных глобальных идентификаторов (Globally Unique Identifier, GUID) электронной панели чтобы проверить уникальность имен функций и HTML-идентификаторов DDB-компонента.

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

Использование замены меток

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

Метка

Свойства

Замена

_WPID_

Content, ContentLink, CustomizationLink, DetailLink

Уникальный идентификатор экземпляра DDB-компонента. Формат может изменяться в зависимости от хранилища данных.

_WPQ_

Content

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

_DashboardID_

Content, ContentLink, CustomizationLink, DetailLink

Уникальный идентификатор электронной панели.

_LogonUser_

Content, ContentLink, MasterPartLink 

Величина, возвращаемая asp-функцией Request.ServerVariables("LOGON_USER"). Обычно содержит клиентское имя пользователя Windows 2000 (например,. "adventureworks\kimy") и может использоваться для идентификации пользователя в интранет.

Создание переносимых DDB-компонентов

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

·         Не создавайте DDB-компонент, который использует объектную модель документа конкретной электронной панели. Реализации электронных панелей могут сильно отличаться, и если вы "увяжете" DDB-компонент с объектной моделью документа какой-то конкретной электронной панели, то он, возможно, не будет правильно работать в другой.

·         Не создавайте зависимости между DDB-компонентами. Поскольку пользователи могут настраивать электронные панели, добавляя или удаляя DDB-компоненты, то создание DDB-компонента, функционирование которого зависит от других компонентов, не является правильным. Ваш DDB-компонент будет работать неправильно, если пользователь удалит с электронной панели тот компонент, от которого зависит работа вашего компонента. Для взаимодействия компонентов нужно использовать Digital Dashboard Services Component. Используя функции обнаружения и извещения, присутствующие в Digital Dashboard Services Component, DDB-компоненты могут взаимодействовать друг с другом, не завися при этом один от другого. В дополнение к этому, Digital Dashboard Services Component позволяет вам захватывать (capture) события в Internet Explorer без возникновения каких-либо конфликтов.

·         Используйте общие схемы для взаимодействия DDB-компонентов. Одной из важных особенностей электронной информационной панели является то, что DDB-компоненты могут "общаться" друг с другом, используя для этого один язык разделения данных. Например, DDB-компонент Contacts может совместно использовать информацию с DDB-компонентом Phone Book, но если первый компонент передаст имя Smith, John, а соответствующая запись во Phone Book будет иметь вид John Smith, то пользователь не сможет получить правильный номер телефона. Решить подобные проблемы можно с помощью общих схем. Exchange 2000 Server определяет несколько общих схем для использования данных групповой работы (collaborative data) таких как контакты, задачи, электронная почта и календарь, которые превосходно подходят для таких типов данных.

Построение DDB-компонентов, используемых в режиме offline

DDB-компонент должен правильно работать, если пользователь отключается от сети, то есть переходить в автономный режим работы. Если данные, с которыми работает DDB-компонент очень сложные, то он должен отображать лишь их малую часть. Если же данные нельзя использовать при работе в автономном режиме, то DDB-компонент должен предупредить пользователя о невозможности работы в автономном режиме.

Работа в автономном режиме

Добавьте в свойство Content текст, который будет выводиться в том случае, если контент DDB-компонента становится недоступен. Когда DDB-компонент выполняется, то DDB-механизм сначала проверяет значение свойства ContentLink. Если он не может получить контент по этой ссылке, то DDB-механизм проверяет значение свойства Content, и отображает контент, если он доступен. Если вы добавите в свойство Content текст This Web Part does not function when offline”, вы может выдать соответствующе предупреждение пользователю. Используя свойство Content, вы можете выводить более содержательную информацию, чем простой текст. Информацию о том, как это сделать, вы можете найти в разделе Создание DDB-компонента со встроенным контентом” этого документа.

Использование данных групповой работы в автономном режиме

Работая с Microsoft Outlook 2000, вы можете использовать в автономном режиме такие данные групповой работы, как дискуссии и содержание общих папок (public folder) – это можно сделать, используя интеграцию информации с элементом управления Outlook View Control. Например, Outlook View Control и общие папки Exchange Server Public Folders предоставляют простой способ создания библиотек документов.

Элемент управления Outlook View Control представляет собой ActiveX-элемент, который может использоваться на веб-странице. Если эта страница используется в Outlook, вы может использовать HTML-сценарии для управления объектной моделью Outlook с помощью Outlook View Control. Сам по себе элемент управления создает некую оболочку для выполняемого файла Outlook 2000, поэтому для просмотра веб-страниц, содержащих Outlook View Control, необходимо, чтобы на этом компьютере был установлен Outlook 2000.

При использовании в электронной информационной панели Outlook View Control предоставляет те же возможности, что и Outlook. Например, пользователь может открывать элементы и использовать привычные команды, связанные с правой кнопкой мыши. В дополнение к этому, Outlook View Control дает пользователям возможность сортировать данные, что облегчает поиск нужной информации.

Хотя Outlook View Control имеет большой набор методов и свойств, для  работы с ним достаточно трех параметров, перечисленных в таблице.

Selected Outlook View Control Parameters

Параметр

Назначение

Folder

Используется для указания пути к папке Outlook.
Например: “\\Public Folders\Favorites\Dashboard”

View

Устанавливает вид отображения.
Например: “By Conversation Topic”

Restriction

Позволяет использовать фильтр.
Например: "[Subject] = 'Cable'"

Примечание. Полная документация о Outlook View Control входит в состав комплекта Microsoft Outlook 2000 Team Folders Kit.

Использование данных бизнес-аналитики в автономном режиме

Вы можете встроить в DDB-компонент такие элементы, как Office Web Components – это позволит вам использовать данные бизнес-аналитики в автономном режиме. Компоненты Office Web Components представляют собой набор COM-компонентов для публикации на веб-сервере электронных таблиц, диаграмм и баз данных, обеспечивая возможность интерактивности, поддерживаемой Internet Explorer 4.01 и более поздними версиями. Веб-компоненты Office полностью программируемы, что позволяет создавать полнофункциональные интерактивные веб-решения. Эти элементы управления сохраняют данные на клиентском компьютере в XML-формате, и их можно использовать в автономном режиме.

Office 2000 включает четыре веб-компонента:

·         Элемент управления DataSource. Этот элемент управления никогда не отображается на веб-странице, но он обеспечивает подключение к источникам данных, которые используются другими элементами управления. Если посмотреть на код, сгенерированный Excel или другими программами, вы увидите работу этого компонента при подключении к базе данных или OLAP-кубу.

·         Компонент "Электронная таблица" (Spreadsheet Component). Этот компонент обеспечивает почти такую же функциональность, что и электронная таблица в Excel. Он бывает очень полезен при выполнении сложных расчетов, поскольку поддерживает большинство функций Excel.

·         Компонент "Сводная таблица" (Microsoft PivotTable® Component). Вы можете использовать этот компонент для подключения к источникам данных OLAP (таким как Microsoft OLAP Services) для того, чтобы обеспечить возможность динамического моделирования и анализа данных с помощью электронной информационной панели. На рисунке приведен пример использования компонента PivotTable, динамически подключенного к OLAP-кубу SQL Server 7.0. Обратите внимание на число доступных уровней вложения.

·         Компонент "Диаграмма" (Chart Component). Этот компонент представляет информацию в виде диаграмм, которые могут быть основаны на различном числе источников данных, давая пользователям возможность быстрой визуализации данных.

Более подробную информацию об использовании этих компонентов можно найти в книге Дэйва Стирнса (Dave Stearns) "Programming Microsoft® Office 2000 Web Components", выпущенной издательством Microsoft Press®.

Как DDB-механизм интерпретирует DDB-компоненты

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

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

1.    DDB-механизм проверяет значение свойства AutoUpdate.

2.    Если это значение равно 1 (что значит "всегда"), DDB-механизм проверяет значение свойства MasterPartLink. Если это значение не пустое, то DDB-механизм использует его для получения основного (master) DDB-компонента (мастер-компонент).

Примечание. Если эта операция завершается с ошибкой, то DDB-механизм использует последнюю найденную версию мастер-компонента.

Если свойство MasterPartLink не имеет значения (пустое), DDB-механизм использует текущий экземпляр DDB-компонента.

3.    Далее DDB-механизм проверяет, отличаются ли значения неопределяемых пользователем свойств DDB-компонента от аналогичных значений в мастер-компоненте. Если свойства различаются, DDB-механизм обновляет значения этих свойств, используя значения из мастер-компонента.

Этот процесс иллюстрируется следующей диаграммой.

После завершения процесса инициализации DDB-механизм получает контент для компонента и отображает его на электронной панели.

1.    DDB-механизм проверяет значение свойства RequiresIsolation. Если оно равно TRUE, то DDB-механизм отображает изолированный DDB-компонент.

2.    Если значение свойства RequiresIsolation равно FALSE, то DDB-механизм проверяет значение свойства ContentLink. Если это значение определено, то DDB-механизм использует ссылку для получения контента. Если значение свойства ContentLink не определено, то DDB-механизм считывает встроенный контент их свойства Content.

3.    Далее DDB-механизм проверяет значение свойства ContentType, для того, чтобы определить запускается ли контент на сервере. Если это так, то DDB-механизм выполняет контент как сценарий.

Примечание. Если это процесс завершается с ошибкой, то DDB-выдает стандартное сообщение об ошибке.

4.    После проверки значения свойства ContentType, DDB-механизм проверяет значение свойства XSLLink. Если это свойство имеет значение, то DDB-механизм считывает XSL по заданной ссылке. В противном случае (или если операция завершается с ошибкой) DDB-механизм проверяет и использует значение свойства XSL.

5.    DDB-механизм преобразует XML-контент в HTML.

6.    DDB-механизм выполняет необходимые преобразования идентификаторов и отображает DDB-компонент на электронной панели.

Этот процесс иллюстрируется следующей диаграммой.

Архитектура электронной информационной панели

Примеры электронных информационных панелей, входящие в состав Digital Dashboard Resource Kit 2.0, представляют собой трехуровневые веб-приложения, основанные на использовании технологии Distributed Authoring and Versioning (WebDAV) и языке XML. Архитектура электронных панелей включает:

-          уровень данных, который содержит WebDAV-хранилище DDB-компонентов, в качестве которого может использоваться Microsoft SQL Server, файловая система Windows 2000 или Microsoft Exchange 2000 Server;

-          средний уровень, который содержит модуль хранения и DDB-механизм, который работает под управлением Microsoft Internet Information Services (IIS);

-          уровень представления или электронную информационную панель, которая отображается на пользовательском компьютере.

Взаимодействие между модулем хранения и DDB-механизмом осуществляется при помощи протокола WebDAV, а между клиентом и DDB-механизмом – при помощи HTTP.

Следующие разделы содержат детальное описание каждого уровня.

Модуль хранения

Модуль хранения предоставляет основные интерфейсы программирования (API) операций ввода-вывода для электронной панели и DDB-компонентов, поддерживая всю логику работы и хранение информации о пользовательских настройках компонентов. Модуль хранения представляет собой сценарий, хранящийся в файле Store.vbs в каталоге примеров Digital Dashboard Resource Kit. Вы можете создать свои модули хранения, но при этом вы должны обеспечить правильную интерпретацию DDB-компонентов этими модулями.

Поскольку DDB-компоненты и электронные панели хранятся в XML-формате, они являются независимыми от места их хранения и, следовательно, могут храниться в файловой системе Windows® 2000, в Microsoft SQL Server™ или в веб-хранилище (Web Store) Microsoft Exchange 2000. Благодаря этому вы можете выбрать именно тот способ хранения, который больше всего удовлетворяет требованиям вашей организации. Ниже приведены преимущества каждого из типов модулей хранения:

·         Файловая система Windows 2000 постоянно доступна, проста в использовании и обеспечивает встроенную поддержку WebDAV.

·         SQL Server – это масштабируемый сервер приложений, который предоставляет возможности реляционного управления пользователями и DDB-компонентами. Комплект Digital Dashboard Resource Kit включает расширения для IIS, которые позволяют электронной панели использовать SQL Server в качестве службы хранения (Web Part Storage Service). Эти расширения устанавливаются при установке примера электронной панели для SQL Server.

·         Веб-хранилище Exchange интегрировано с Microsoft Office, поддерживает автономное (offline) использование и обеспечивает встроенную поддержку WebDAV и XML.

DDB-механизм

DDB-механизм обращается к модулю хранения для получения свойств всех DDB-компонентов и самой электронной панели, затем собирает их и отображает на клиенте. Когда пользователь обращается к электронной панели, DDB-механизм получает комбинированный XML-поток от DDB-компонентов, осуществляет преобразование XML в HTML и DHTML (используя для этого XSL-преобразование), а затем использует IIS для передачи преобразованного содержания в электронную панель.

Уровень представления

Электронная информационная панель является визуальным представлением WebDAV-каталога, содержащего DDB-компоненты. Уровень представления (представительский уровень) отображает DDB-компоненты и обеспечивает настройку во время их выполнения.


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

Этот документ предназначен для использования только в информационных целях. MICROSOFT НЕ ДАЕТ В ЭТОМ ДОКУМЕНТЕ НИКАКИХ ГАРАНТИЙ, ЯВНЫХ ИЛИ НЕЯВНЫХ.

© 1999 Microsoft Corporation. Все права защищены.

Microsoft, ActiveX, BackOffice, MSN, Outlook, PivotChart, PivotTable PowerPoint, Visual InterDev, Visual Studio, Windows и Windows NT являются зарегистрированными торговыми марками или торговым марками корпорации Microsoft в США и/или других странах.

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

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