Data storage and access

Exchange Server organizes data into stores , which can be either public or private. These information stores can contain folders to further organize the data. Folders inside the private information store include individual user's folders such as Inbox, Outbox, Contacts, and Tasks. Folders inside the public information store include those that are available to all members of an organization (for example, a Global Address List folder).

The connector for Exchange Server makes use of Exchange Server user folders, as well as the custom Event and Archive folders . The Event Store holds all of the events received by the Event Listener, and the Archive Store holds all of the archived events.

In an Exchange Server environment, user folders are accessed with either the Information Store Service or the Directory Service; these services are accessed with the Microsoft Mail API (MAPI) . The connector for Exchange Server uses the Collaboration Data Objects (CDO) library as a wrapper for MAPI. Figure 2 illustrates this topology.
Block diagram showing CDO library above MAPI, above Information Store Service and Directory service (same level), above User folders.

Figure 2. Using CDO to access user folders

Within Exchange Server, objects are organized into a tree structure , as shown in Figure 3.

Figure 3. Object Hierarchy within Exchange Server

The Session object is at the top of the hierarchy; you cannot access any other objects until you have successfully logged in with the Session object's Logon() method.

All of the Exchange Server folders in the public and private information stores are contained under the Session object, and can be directly accessed by CDO.

Within each folder are messages . Messages are the fundamental business entities in Exchange Server, and include objects such as MailItem , ContactItem, and AppointmentItem. The CDO library provides direct access to messages.

MailItem messages can have recipient objects. The CDO library does not provide direct access to recipient objects; you must access them through the parent message object.

Each message has multiple field objects that define its content. For example, a ContactItem message object has FirstName, LastName, and MailingAddress fields.

Copyright IBM Corp. 1997, 2003