Programming Microsoft Outlook and Microsoft Exchange, Second Edition (DV-MPS Programming)
The core of Exchange Server's collaborative technologies is a feature called public folders. Public folders are repositories for all kinds of information users will share. They can be accessed by many types of clients, using various protocols to communicate. Public folders can contain custom forms for contributing or reviewing information in the folder, and users can create custom views for organizing and filtering the information in the folder. The main features of public folders for developers are described in the following sections.
Public folders, just like the Exchange Server directory, are built on the Exchange Server object database, so they take advantage of its architecture and enjoy the same benefits:
- Flexible database schema
- Server-to-server, server-to-client, and filtered replication
Folder and Application Accessibility
Public folders in Outlook are arranged in a hierarchical tree view, as shown in Figure 3-12. As you can see, this arrangement makes it easy for users to scroll and find information. This hierarchy is actually a virtual view of public folder replicas in the Exchange Server system; users don't have to know on which server the public folders actually exist.
Figure 3-12 The hierarchical tree view of the Public Folder allows users to quickly find information.
Exchange Server can assign costs to different sites so that users connecting to a remote site with a public folder follow the least costly route to that site. This assignment of costs to remote connections for public folders is called public folder affinity. Figure 3-13 shows the administration interface for public folder affinity.
Figure 3-13 By setting the Public Folder Affinity option, users of your application will access one replica of the Public Folder database over another depending on their location on the network.
Public folders are not limited to holding only the data for an application; they also can hold any custom forms associated with the application. The availability of these forms makes your application easier to use by allowing users to go directly to a public folder to select the associated form rather than search for the form in a global forms list.
Security and Content Control
Inherent in public folders is security control. Public folder permissions can be set on three different scales:
- Global. Default permissions for everyone in the organization; default permissions for anonymous users
- Group. Permissions for a specific list of users
- Per user. Individual permissions for a particular folder
All of these permission levels can be combined for a particular folder or set of users. Assigning permissions is easy, as shown in Figure 3-14. Notice that the permissions tab supports predefined roles for users, which you can use to quickly set permissions for a folder.
Figure 3-14 Setting permissions for a public folder is easy.
In addition to having roles-based permissions, public folders have built-in moderation capabilities. A moderated public folder allows you to control what content is posted to a folder and who has permission to approve this content. Before any item is posted to a folder, the item is mailed to the selected moderators, who approve the content. You can quickly set up a moderated public folder in the folder properties.
Public folders support the e-mailing of items into a public folder, which makes information available to many users, cuts down on e-mail traffic, and saves disk space. Mailing-list server applications and distribution list applications can really take advantage of public folders. By default, the e-mail address of the public folder is hidden from the address book, but the public folder can be exposed in the address book so that users can browse for its e-mail address.
Internet Standards Support
As you've seen, significant economies can be achieved when information is stored in a central location rather than in individual mailboxes. By using Exchange Server public folders as the central location, organizations can expose information to any standard Internet client that supports the Network News Transfer Protocol (NNTP), the Internet Mail Access Protocol version 4 (IMAP4), or the Hypertext Transfer Protocol (HTTP). These Internet clients can post and read information securely from a public folder. More importantly, these protocols allow users who do not have Outlook on their machines to take advantage of the functionality of an Exchange Server public folder. For example, an organization can set up a customer service public folder that enables internal users to employ Outlook to view folder information and allows external users to choose from several clients, including Outlook, an NNTP newsreader such as Outlook Express, a standard web browser, or even an IMAP4 client such as Netscape Communicator. Exchange Server exposes its collaborative functionality to all of these clients. Let's take a look at some specific information on the Internet protocols supported in Exchange Server.
NNTP
NNTP is an internet standard that defines server-to-server replication of data in the form of articles. These articles exist in a hierarchy of newsgroups, which are similar to discussion folders in Exchange Server. Users can replicate the articles offline, plus the articles are presented in a threaded view so that users can view their history. Exchange Server supports both NNTP server-to-server replication and the ability of any standard NNTP client to read information in Exchange Server public folders. This allows any public folder in Exchange Server to be replicated to another NNTP server or read by an NNTP client. Organizations can use this feature to expose public folders and their information to their customers. Figure 3-15 shows an example of a newsreader using NNTP to access an Exchange Server public folder.
IMAP4
IMAP4 is an Internet standard that defines a way for clients to access messaging information on a server. Exchange Server is an IMAP4-compliant messaging server, so any standard IMAP4 client can access the messaging services of Exchange Server. Some of these services include sending and receiving e-mail, synchronizing e-mail to offline storage, and accessing public folders. Accessing public folders with IMAP4 extends the power of public folders to any standard IMAP4 client.
Figure 3-15 A public folder being viewed by Outlook Express, an NNTP newsreader. Exchange Server folders have built-in support for NNTP.
HTTP
HTTP is the primary protocol used to distribute information on the World Wide Web, that is, to transmit graphics and documents from a web server to a web browser. HTTP is a client-to-server protocol, meaning that a client running on the user's machine sends to a server a request for data, and the server receives the request and sends the relevant information back to the client. HTTP servers can do more than just send back simple data—scripts that access other back-end services on the network can run on the HTTP server. These services can be databases, collaboration servers such as Exchange Server, or custom-built applications.
One example of an application that uses the HTTP protocol to access Exchange Server information is Microsoft Outlook Web Access. Outlook Web Access is an application, which we discuss in Chapter 8, that allows any standard web browser to access the information stored inside an Exchange Server. Outlook Web Access is built using Microsoft Collaboration Data Objects (CDO). CDO, which we look at in detail in Chapter 11, is a set of COM objects that exposes the services of Exchange Server to any COM-based development tool. CDO is the object library for Outlook Web Access, and Internet Information Server (IIS)—especially Microsoft Active Server Pages (ASP), VBScript, and JScript—are the development tools. Figure 3-16 shows the architecture for Outlook Web Access.
Figure 3-16 The Microsoft Outlook Web Access architecture.
Active Server Pages allows you to write scripts using any standard ActiveX scripting language. With these scripts, which execute on IIS and return HTML to the web browser, you can build dynamic web applications that take advantage of objects on the web server. The following code listing shows a simple Active Server Pages application:
<HTML> <HEAD> <TITLE>Hello World!</TITLE> </HEAD> <BODY> <H1> Hello, I was created on <%= Now() %>.<P> <% Set BrowserControl = Server.CreateObject("MSWC.BrowserType") %> You're using <I> <%= BrowserControl.browser & " " & BrowserControl.Version & " " %> </I> as your web browser. <% set BrowserControl = Nothing %> </H1> </BODY> </HTML> |
If you browsed this web page using Microsoft Internet Explorer version 4, you would see the image in Figure 3-17. Notice that none of the script is sent back to the client, only the text, and that the date in the text is generated dynamically from the system date on the web server. The browser is also detected by using a component on the web server. Chapter 8 discusses the ASP object model and programming environment in more detail.
Figure 3-17 Results of browsing the ASP page using Internet Explorer.
By using Active Server Pages, Outlook Web Access can dynamically and securely create web pages based on the information and services in Exchange Server, such as a user's mailbox, calendar, and contacts; and messaging and calendaring services. You can access the same features in your application since the enabling technology for Outlook Web Access is the CDO library.