- Exploring the System Architecture
- Crystal Enterprise Architecture Overview
- Introduction to the Crystal Enterprise Framework
- Overview of the Crystal Enterprise Servers
- The Crystal Enterprise Architecture in Action
- Taking Advantage of the Crystal Enterprise Distributed Architecture
- Extending Crystal Enterprise
Introduction to the Crystal Enterprise Framework
The Crystal Enterprise Framework, the heart of Crystal Enterprise, provides a distributed mechanism that manages the interaction and communication of the Crystal Enterprise servers. Each Crystal Enterprise server uses the framework to describe the services it offers and to discover other servers that are registered with the framework. The framework treats each of the registered servers as equals, which makes it possible for one server to use the service of another Crystal Enterprise server directly.
As mentioned previously, the Crystal Enterprise Framework uses components known as plug-ins to represent each object type within Crystal Enterprise. These plug-ins contain all the relevant "knowledge" needed to handle an object within Crystal Enterprise, such as a Crystal Report or a user account, and determine how Crystal Enterprise should interact with it. When developing a custom application using Crystal Enterprise, it is the plug-ins that the SDK uses to call the services of Crystal Enterprise, not the servers themselves. Figure 3.2 demonstrates how the plug-in is used. The figure shows how a service, such as the customization capabilities provided by the Web Component Server, uses a plug-in such as the report plug-in to query for the report's properties. Notice that the service is able to communicate with the plug-in through the Crystal Enterprise SDK. In order for any service made available by the servers to be registered with the Crystal Enterprise Framework, they must use the SDK to retrieve the plug-in's properties. The Web Component Server section of this chapter introduces the customization services.
Figure 3.2 A plug-in is the way Crystal Enterprise exposes the services of a server on the framework.
The object types that are part of the Crystal Enterprise Framework can be classified in the following groups:
Administration plug-ins provide a way to manage the Crystal Enterprise servers. Each plug-in exposes control and configuration properties of a server within the Crystal Enterprise system so that an administrator can configure the behavior of each Crystal Enterprise server. These plug-ins also provide activity metrics for each server.
Authentication plug-ins provide a mechanism for Crystal Enterprise to interact with external security systems and treat these systems as native authentication sources. The authentication plug-ins provided with Crystal Enterprise are
These authentication types are discussed in more detail in the servers section of this chapter.
Content plug-ins describe the types of objects that end users (report viewers) would typically interact with, such as, but not limited to, a Crystal Report. The content types that are provided as part of Crystal Enterprise are
Crystal Analysis Professional
Rich Text Format
A distribution plug-in allows anyone who is scheduling an object such as a Crystal Report to be able to send that report outside the Crystal Enterprise environment. Hence the ability of ePortfolio (see Chapter 5, "Using the Crystal Enterprise Launchpad") to schedule reports to destinations such as e-mail. Distribution plug-ins that are provided with Crystal Enterprise are
Crystal Enterprise also provides the capability for a Crystal Report to be scheduled to a printer. The printer object is not exposed as a distribution object, but rather as a function of the Crystal Report content plug-in.
These plug-ins play a fundamental role in the Crystal Enterprise Framework by encapsulating and exposing the knowledge of the object type that they represent. The remainder of this chapter discusses how these plug-ins are used by the Crystal Enterprise servers within the Crystal Enterprise Framework. Chapter 13, "Extending Crystal Enterprise," reviews how an application developer can create objects in Crystal Enterprise using the application programming interfaces (the Crystal Enterprise SDK) exposed by these plug-ins.