The Server Tier: Overview of the BusinessObjects Enterprise Services


Now that it's clear that the functionality of individual BusinessObjects Enterprise servers is exposed through plug-ins, it's important to understand exactly what that functionality is. The BusinessObjects Enterprise servers are designed to register themselves with the BusinessObjects Enterprise Framework and provide one or more services that can be consumed by other servers or by the plug-ins described in the last section. The services offered by each of the servers is dependent on the type of task that the server is expected to perform.

The following list shows the servers that are delivered with BusinessObjects Enterprise. These servers can be thought of as core servers:

  • Central Management Server

  • Cache Server

  • Page Server

  • Report Application Server

  • Report Job Server

  • Program Job Server

  • Destination Job Server

  • List of Values Job Server

  • Event Server

  • File Repository Server

  • Web Intelligence Job Server

  • Web Intelligence Report Server

  • Web Component Adapter

These servers can be seen in the architecture diagram in Figure 25.3.

Figure 25.3. The core server architecture for BusinessObjects Enterprise.


With these servers in place, BusinessObjects Enterprise manages reporting and business intelligence content (such as Crystal Reports, OLAP Intelligence reports, Web Intelligence documents, Excel, Word, PDF, and PowerPoint documents) and offers rich customization services allowing organizations to deeply embed and integrate BusinessObjects Enterprise into their already established applications or Web services.

It's important to note that multiple instances of the same server operating in the BusinessObjects Enterprise Framework at the same time are fully supported. This provides a scalable, reliable, and fault-tolerant system.

Central Management Server

The Central Management Server (CMS) provides a number of the core services that the BusinessObjects Enterprise Framework uses. These services include allowing other servers to register with the framework, allowing users to be authenticated with the system, and providing a storage mechanism for maintaining the metadata about each object. The services provided by the CMS fit into four main categories:

  • Controlling access to content

  • Managing objects and scheduling

  • Managing servers

  • Managing system auditing

The CMS provides for the following:

  • System security

  • Object metadata storage

  • Object management

  • Object scheduling

  • Event handling

  • Name-server capabilities

  • Server clustering

  • License management

  • Auditing

System Security

The security service breaks security down into three main elements:

  • Authentication

  • Authorization

  • Aggregation

Authentication

BusinessObjects Enterprise provides mechanisms to allow for third-party authentication services to be used as the basis of user and group/role definition. The CMS interacts with these third-party authentication mechanisms by using the following authentication plug-ins, described earlier in the chapter:

  • BusinessObjects Enterprise security plug-in

  • Windows NT security plug-in

  • LDAP security plug-in

  • Windows Active Directory plug-in

  • Application authentication such as PeopleSoft or SAP

The Enterprise security plug-in enables organizations to define users and groups directly within BusinessObjects Enterprise and restrict use of an external source for those users. This is useful if an organization has chosen not to use an external security source or has not yet defined one. All authentication information is stored in BusinessObjects Enterprise and does not rely on an outside source to determine whether a user is valid.

The NT and Active Directory security plug-ins enable a customer to map any number of users and groups into BusinessObjects Enterprise. Although these two are separate plug-ins, they function in similar manner and so are discussed here together.

An administrator is required to go into the Central Management Console (see Chapter 27) or use an application written using the SDK and define the default NT or Active Directory (AD) domain as well as any user groups that might need to be mapped into BusinessObjects Enterprise. After this initial mapping is complete, BusinessObjects Enterprise will dynamically query for users within that group and establish those users as BusinessObjects Enterprise users. When a user logs on for the first time, the security service using the NT or AD security plug-in asks the NT or AD security database if this is a valid NT or AD user and whether the user belongs in any of the mapped groups. If the user is indeed a valid user, he will be granted access to BusinessObjects Enterprise. If at any time in the future that user is removed from that NT group, he will not be granted access to BusinessObjects Enterprise (and, hence, reports within the system) because the security service would be told that this user is no longer a valid NT user. There's no requirement for the administrator to manually inform BusinessObjects Enterprise that the user is no longer a valid NT user.

The LDAP security plug-in operates in a similar manner to the NT security plug-in; however, instead of talking to the operating system for a list of valid users or groups, this security plug-in communicates with a directory server using the LDAP protocol. BusinessObjects Enterprise does not require the LDAP schema in the directory server to be modified in any way for use with BusinessObjects Enterprise. This security plug-in provides default mappings for several directory servers, including

  • iPlanet Directory Server versions 5.1 and 5.2

  • Lotus Domino versions 5.0.12 and 6.0.2

  • IBM Secureway 5.1

  • Novell Directory Services eDirectory 8.7

  • Custom

When the BusinessObjects Enterprise solutions kits for PeopleSoft and SAP are installed, they provide additional authentication plug-ins for each system, respectively.

Users and groups are queried by leveraging attributes within the LDAP schema, such as InetOrgPerson, which is an attribute used by iPlanet Directory Server. If the directory server that is to be used with BusinessObjects Enterprise is not in the preceding list, it's also possible to create a custom mapping of LDAP attributes. The attributes that are used to define a group or user must be mapped to the LDAP security plug-in for these attributes to be used when querying for a user or a group.

Application-specific authentication plug-ins enable BusinessObjects Enterprise to validate a user's credentials against an ERP system such as SAP or PeopleSoft. Installing a BusinessObjects Enterprise Solution Kit installs the respective plug-in, which then appears next to the default authentication tabs in the Central Management Console. Each of these application-specific plug-ins requires configuration to enable BusinessObjects Enterprise to interact with the application, and require information on group mapping.

Authorization

After configuring BusinessObjects Enterprise with external users and groups, it's necessary to determine which objects within the system an end user has the authority to view. This central mechanism of controlled access to certain reports is a key component of the system. Setting up authorization rules or access control is straightforward after users and reports have been added to the system. Chapter 27 reviews how to apply access control on objects in the system.

Note

Authorization within BusinessObjects Enterprise is enforced through a strong inheritance model throughout the system. This enables you to set desired access levels at a root folder for a large group and have that setting be respected, regardless of how many new subfolders are created or objects are added to those folders (as well as any new users added to groups or subgroups).


Aggregation

BusinessObjects Enterprise can aggregate or group users in two ways, as Chapter 27 reviews in some detail. A group can be created directly in BusinessObjects Enterprise or it can be mapped from one of the external authentication sources. The grouping within BusinessObjects Enterprise is quite powerful because native and mapped groups can be used at the same time. If this method of user aggregation is implemented, a native group would contain a mapped group. The use of mapped groups simplifies administration: As users are added or removed from groups in the external systems, this will be automatically reflected in BusinessObjects Enterprise. It's also possible to create a hierarchy of groups to better organize the end users of the system.

Object Metadata Storage

Among other tasks, the CMS stores a repository of information about each object in the BusinessObjects Enterprise system. After this information is stored, it becomes available to other objects or servers within the system. This persistent data describes an object (such as a Crystal Report) and makes it possible to dynamically query the system and discover the properties of that object. This repository expanded in version 10 of Crystal Enterprise to include storage of objects used to design Crystal Reports as well as Business Views Objects (see Chapter 18, "Using a Semantic LayerBusiness Views and Universes").

This information is stored in a repository to enable scaling; to do otherwise would require dependence on the information being stored in memory on a physical servernot scalable. The CMS stores this information by writing it to a relational database. As the product matured through version 10 and now, XI, database querying capabilities were more fully leveraged than in previous versions, resulting in even faster request processing and enhanced scalability. However this changed functionality also requires that more attention be paid to database optimization.

The CMS service is able to access these databases by using ODBC or by a direct, also known as native, interface to the database. Because the CMS also provides auditing capability, the database compatibility is the same for the auditing database (you will consider the auditing capability later in this chapter). Although the BusinessObjects Enterprise system database and the audit database can be on the same or separate database servers, the actual databases are separate.

The following list shows databases supported by the CMS and how they are accessed by BusinessObjects Enterprise XI when the CMS is operating on Windows NT:

  • Direct IBM DB2 8.1 and 8.2.

  • Direct Oracle 9.2 and 10.1

  • Direct Sybase System 12.5

  • ODBC-MSDE

  • ODBC-MS SQL Server 2000

  • ODBC-MS SQL Server 7

The databases that the CMS can access on Unix are a subset of what is available on Windows. If the CMS is operating on Unix, it's able to use the following databases:

  • IBM DB2 8.1

  • IBM UDB DB2 8.2

  • Oracle 9.2

  • Oracle 10.1

  • Sybase ASE 12.5

All database connections for the CMS repository are done by a direct interface.

The default Windows-platform database that the CMS will use if one is not provided is the MSDE, a simple implementation of Microsoft's SQL Server. Because performance of the CMS database can dramatically affect system performance, MSDE is used to provide an organization a useful out-of-the-box experience. The repository is set up and configured without the need for interaction with a database administrator. If BusinessObjects Enterprise is initially configured to use the default repository database and the need arises to move the repository to a different database server, BusinessObjects Enterprise provides tools (the Central Configuration Manager) to easily migrate the data from one server to another.

Nameserver Capabilities

The CMS allows all other BusinessObjects Enterprise servers to register with the BusinessObjects Enterprise Framework. After each service has registered through the CMS, it is able to discover the other servers active within the framework and use any services it needs from those servers.

New BusinessObjects Enterprise services can be added to the system from either the Central Management Console or the Central Configuration Manager. The addition of these new services provides additional scalability and higher availability.

Object Management

One of the key benefits of BusinessObjects Enterprise is how it manages objects. After an object (such as a Crystal Report) is published to BusinessObjects Enterprise, the properties of that object are read and added to the repository. The object is then represented by metadata in the repository, which makes it possible for other services to interact with the object, and the object is formally considered a "managed object" by the system.

Managed objects facilitate simplified administration of an Enterprise Business Intelligence system and represent a principal benefit of BusinessObjects Enterprise. After an object is managed by the system, all of that object's properties become managed from a single access point. For instance, if a server needs access to an object, it asks the CMS for an ID to the object. Additionally, if you want to maintain a certain number of reports in the system, or only keep objects more recent than a certain date, this can be automated within the system. If you want to schedule a report, or organize similar reports into folders, or control access rights, or link reports, or change database properties of multiple reportsall of this and other similar actions are possible when you manage the objects within BusinessObjects Enterprise.

By having objects managed, a Web application developer can use BusinessObjects Enterprise to manage and provide access to all objects. Rather than requiring knowledge of object filenames or network share locations, or even which objects or reports are available at all, developers can simply query BusinessObjects Enterprise for the desired objectsperhaps those kept in a certain folder or of a certain type. Each time a user accesses the Web application, the content might be different, depending on the actual reports (objects) published by or scheduled into BusinessObjects Enterprise. Web developers are not required to make changes such as adding and maintaining reports. This can be done by a report developer or system administrator through delegated administration and provides a logical separation of tasks.

Managed objects can be categorized into folders, which themselves are managed objects. This categorization adds to the manageability of BusinessObjects Enterprise because content can be easily organized into something that is meaningful to end users. In addition to residing in a folder, BusinessObjects Enterprise XI introduced the concept of categories. Objects can be associated with one or more categories to further organize a collection of related objects that span multiple folders.

BusinessObjects Enterprise XI adds several new types of objects to the system, such as program objects and third-party objects such as Microsoft Word objects (please see "The Server Tier: Introduction to the BusinessObjects Enterprise Framework" earlier in this chapter for a complete list). The system database also includes a report component repository that simplifies access to corporate objects such as logos, images, disclaimers, and so on, and a rich semantic layer called Business Views.

If are not familiar with the database changes which occurred in Crystal Enterprise 10 and you were to look at the database directly, you would see that these additional capabilities have altered the database tables from previous versions of BusinessObjects Enterprise, and you now see four tables in the system database instead of the previous two. The two additional tables represent the report component repository. No additional tables were added between Crystal Enterprise 10 and BusinessObjects Enterprise XI.

For performance and security reasons, the vast majority of the information about objects is stored in a binary format in the database, making it unreadable to direct database access. Instead, the CMS provides access to database objects via the BOE SDK via a SQL-like query language. This system ensures authenticated and authorized access only; the application provides access to objects based on their authenticated identity only.

Object Scheduling

The scheduling service of the CMS makes it possible for objects such as Crystal Reports to be processed at a particular time or on a recurring basis. This service determines when a report object gets processed using the Report Job Server, or a program object gets processed using the Program Job Server. When a scheduled event occurs, the two main servers that interact with the object are the relevant Job Server and the Event Server. Additionally, an object package combines objects such as reports or programs for simplified scheduling.

When scheduling a job, the scheduling service gathers information from various objects before running. It needs information from the report object regarding how to connect to the database, the desired format to output the report to, where it might be delivered (such as an e-mail address), and which server is going to process it (if there are multiple Job Servers). An object can be scheduled to run at a particular date or time, on a recurring basis, or perhaps according to a custom calendar. This information is then stored in the system as a scheduled instance of the object. This is known as a ProcessingInfo object.

The ProcessingInfo object contains all the properties set on the report object when it was scheduled. It knows when the job will run as well as all the data-connection information and all the formatting and distribution settings.

A scheduled object can be made to be dependent on an event occurring within or outside the BusinessObjects Enterprise system before it will run. By using events with schedules, it's possible to provide meaningful control around when a schedule should actually run. If an object is due to run every day but the databases that it queries are updated sporadically, an event can be used to initiate the running of the scheduled job and eliminate unnecessary scheduled jobs or reports.

A notification capability is built in to provide the capability to send e-mail upon a scheduled job completion, either in the case of success or failure. Common use cases include an administrator receiving notification of a report processing failure, or an end-user group being notified of the latest quarterly results.

In some instances, batch scheduling can take place via a custom program. In these cases, report instances might be distributed to many users. The scheduling service makes this possible by allowing a job to be scheduled on behalf of another user. This is useful when an organization wants to configure its system to only show instances of objects to a user if she "owns" that instance. This is exposed in the BOE SDK in the ScheduleOnBehalfOf property of the SchedulingInfo object.

Event Handling

Events make it possible for users to ensure that scheduled jobs are processing only when external systems, like a database, are ready to be accessed. All events interface with the CMS Event service.

BusinessObjects Enterprise supports three types of events. The first event type is a scheduled event. The scheduled event allows an organization to create dependency chains when scheduling reports. This enables the user to determine the schedule of a report based on a preceding report successfully completing or failing. Users can easily configure scheduled event conditions such that if report 1 is successful, run report 2. If report 1 is not successful, run program object 3. This can continue so that a process flow is established.

Note

With the inclusion of Program Objects in version 10 of BusinessObjects Enterprise, it should become apparent that these scheduling daisy chains could now include workflow that reaches outside of the BusinessObjects Enterprise environment and could affect external systems or applications.


The next event type is a custom event. The custom event is sometimes also called a generic event in the predecessor to BusinessObjects Enterprise, known as Seagate Info. This event requires application developer interaction to trigger the event by using the TRigger() method via the BusinessObjects Enterprise SDK. This event type gives an organization a great deal of flexibility. Having an event that can be triggered by code makes it possible to have an external system determine when the event is triggered and the scheduled jobs that are dependent on it will run. A good example of this would be a database update trigger user event for BusinessObjects Enterprise.

The third type is a file-based event. These events are managed by the Event Server and are discussed later in the chapter.

Server Clustering

As a BusinessObjects Enterprise system grows and access to information that it contains becomes increasingly mission critical, it's important that the system be fault tolerant, ensuring that end users are always able to access their information.

The CMS can be clustered to provide load balancing and fault tolerance for the services that it provides. When two or more CMSs are clustered, they perform as an active-active collection of servers. By being active-active, they are sharing the workload and this translates into increased scalability and performance.

Auditing

The auditing capability introduced in Crystal Enterprise 10, simplifies gathering statistics on system performance and enables administrators to profile the usage of reports or system resources. Because the auditing database is separate from the CMS/system database, you must create the "blank" database and any necessary ODBC DSN first. From within the Central Configuration Manager (CCM) you then stop the CMS, click on the Specify Auditing Source icon (the fourth icon from the right in the toolbar), specify the database or DSN you want to use, and then restart the CMS, whereupon the CMS creates the auditing database structure and connection. On Unix platforms you take the same approach, except that you stop and start the CMS with the ccm.sh script and use the cmsdbsetup.sh script with the selectaudit option to specify the audit database, including the connection port (which is 6400 by default).

After the CMS starts and connects to the audit database, you can specify which items you want to audit. The administrator enables auditing of each of the following items by entering the Central Management Console (CMC), navigating to the Servers, choosing the particular server you want to affect, and then checking the appropriate boxes in the Auditing tab. Table 25.1 shows each server's auditing features. Note that the table does not include the Page Server; the Page Server's auditing occurs through the Cache Server, which takes reports from the Page Server and passes them to the appropriate viewer. Note also that although the Job Servers are treated as one, they must be specified on each server. Additionally, you must specify auditing on each instance of a server if multiple instances exist.

Table 25.1. Detailed Auditing Capabilities by Server

Server

Audit feature

CMS

Folder creation, deletion, modification

 

User logon (concurrent and named)

 

User password change, logon failure, logoff

 

Report or Program Job communication lost (that is, timeout on Program/Report JobServer)

Cache Server

Report view success/failure

RAS

Report open success/failure and which viewer was used

 

Report creation success/failure, and which viewer/application was used

 

Report save success/failure and which viewer/application was used

Event Server

Event registered, updated, or unregistered

 

Event triggered

Job Servers

Job success/failure, failure-retry state


Note that the CMS periodically broadcasts a request to all system services requesting audit information to be returned for writing to the database. The default is every five minutes. Your BusinessObjects Enterprise documentation describes several command-line flags to specify this and other audit-specific CMS parameters. You must specify the same command lines on all CMSs if clustered.

Web Component Server

The Web Component Server (WCS) which existed in previous versions of the product has been removed from the framework. However, it warrants a brief mention here. The WCS in Crystal Enterprise served as an application server to provide seamless integration of Enterprise content into any Web application. This integration was be hosted on a variety of Web servers and provided a robust scripting interface known as Crystal Server Pages that enables the creation of rich server-side Web applications.

At the time the product was introduced to the market many organizations already had licensed and installed Web servers, but did not possess an application server. Crystal Decisions found it necessary to provide this application server so that applications could be written against the SDK on any operating system platform. With the maturation and consolidation of the Web server market many of the functions that the WCS provided are now supplanted by the combination Web and application servers common in the marketplace, rendering the WCS application-serving capabilities unnecessary for most organizations.

However, the WCS did provide some capabilities in addition to CSP processing, and these functions, if desired in an installation, are now provided by the Web Component Adapter. In summary, the WCS capabilities include the following:

  • Processing of CSP

  • Report parameter prompting at report view time

  • Report database logon requests at report view time

  • Central Management Console server processing

  • Rendering of OLAP Intelligence reports

To provide these capabilities, should they be required by the use case, BusinessObjects Enterprise includes the Web Component Adapter (WCA) that provides all the above, except the processing of CSP pages.

BusinessObjects Enterprise XI no longer uses the WCS. This server has been deprecated, although the functionality of the service continues to be available via the .NET or Java SDK or via a Web Component Adapter as an intermediary to on of the BOE SDK.

A typical Unix installation, for example, uses a client application such as InfoView written in Java Server Pages (JSP), rather than in Crystal Server Pages (CSP). Therefore, it does not require the WCS to process CSP pages. Instead, it uses a Java application server to process the JSP against the Java version of the BusinessObjects Enterprise SDK. In such a scenario, should you require the functions listed above, a WCA installed on the application server will provide that application server functionality.

Using the .Net BOE SDK in a Microsoft .NET environment, application-processing functions are carried out by Microsoft Internet Information Services (IIS) Web server and the .Net Framework application serving capability, as well as the BusinessObjects Enterprise Primary Interop Assemblies.

Although CSP is not specifically deprecated in BusinessObjects Enterprise XI, it has indicated in the help files that CSP is to be fully deprecated in a future release. CSP in BusinessObjects Enterprise XI is supported via the WCA for backward compatibility.

Crystal Web Request(CWR)

A type of request that is not mentioned in the above paragraphs is a Crystal Web Request, or CWR. A CWR is a server-side request that is executed by the WCA working in tandem with the services BusinessObjects Enterprise to provide access to managed objects contained within the BusinessObjects Enterprise repository.

In the prior version of the product, support for URL-based requests to directly view an object such as a report was deprecated because the report viewing model changed to a Crystal Report viewing control within the Application tier. Certain legacy applications might still use .cwr requests, but this method is not recommended for new installations to ensure forward-compatibility.

Web Component Adapter

In the default configurations in either a Java or ASP.NET environment, the Web Component Adapter serves the purpose of providing the following functionality.

  • Processes CSP pages

  • Services Central Management Console requests

  • Handles viewrpt.cwr requests (legacy support)

The Web Component Adapter supports the following Java application servers:

  • BEA WebLogic 7.0(SP5), 8.1(SP2)

  • IBM WebSphere 5.0 (Fix-pack 2)

  • IBM WebSphere 5.1 (Fix-pack 4)

  • Tomcat 5.0.27

Job Servers (Report and Program)

The Job Servers process scheduled jobs. Job Servers are informed about the content that they process by loading a Job Server plug-in. This plug-in, like all other BusinessObjects Enterprise plug-ins, describes what capabilities it exposes to the service using it. In BusinessObjects Enterprise XI, there are four different Job Server plug-ins: one for Crystal Reports, one for Programs, another is for Web Intelligence documents and the fourth is for List of Values job server. When the system administrator adds a new Job Server to the BusinessObjects Enterprise system, he must choose which type of plug-in, and thus which type of Job Server it will be.

Report Job Server

The Report Job Server allows scheduled objects to access the necessary data source required, provides row-level data security services, and distributes the content to a location chosen by the user.

Essentially, the Job Server provides three main services to BusinessObjects Enterprise:

  • Database access

  • Distribution of objects

  • E-mail

Database Access

When a scheduled job is about to be processed by the Job Server, it gathers the appropriate information from the ProcessingInfo object mentioned earlier. This information includes database connection information and any filters or parameters required that determine what the final query is. After it has this, it opens the object and queries the database for the appropriate information. The data is retrieved, compressed, and stored back into the system as a report instance.

Distribution of Objects

It's the Job Server's responsibility to distribute the object to the destination set by the user scheduling the job. To do this, the distribution service interacts with the distribution plug-ins mentioned earlier and receives the information appropriate to each plug-in type. For example, if a user scheduled a job to be delivered by e-mail, the distribution service would get the To:, Cc:, subject, and body properties as well as the SMTP server that is configured for use with BusinessObjects Enterprise. Chapter 26, "Planning Considerations when Deploying BusinessObjects Enterprise," shows how to configure the distribution service.

This service enables a user to send a report outside the BusinessObjects Enterprise environment and deliver it to one of four destinations using the distribution plug-ins mentioned earlier.

Inbox As a Destination

New in BusinessObjects Enterprise XI is the ability to send objects to an user's Inbox within the BusinessObjects Enterprise system. When a job is scheduled and it is to be sent to a user's Inbox, the Job Server uses the appropriate methods to direct a copy or shortcut to the appropriate destination.

E-mail as a Destination

Crystal Enterprise supports SMTP as its e-mail distribution protocol. Virtually all Internet mail servers support SMTP, so it's easy for an organization to integrate BusinessObjects Enterprise into its mail system, regardless of platform. By supporting standards such as SMTP, organizations are not restricted in the e-mail server types that can be used with BusinessObjects Enterprise.

FTP Server as a Destination

Organizations send objects directly to an FTP server location so that it's available for other users or applications. This is useful for getting information that can be used offline by customers, partners, or suppliers. A report can also be scheduled to update information at an FTP location on a regular basis to drive another application or business process. For example, a report could be designed to provide a product pricing list, including dynamic calculations of discounts that vary by customer, and then deliver it automatically to an FTP folder on a customer's Web server. Another example might be a scheduled Crystal Report output to an XML document sent via FTP to an external server for a business partner's application to pick up.

Unmanaged Disk as a Destination

The unmanaged disk distribution service is used in the same fashion as the FTP server except that this service distributes the scheduled report to a disk location that is available on an organization's internal network. Building on the preceding example, an organization could have BusinessObjects Enterprise distribute a general pricing list to a location on disk and have this information populated on a purchase form or as a way of populating values into a Web service.

Printer as a Destination

Distributing reports to a printer available on the network is as simple as deciding which printer is to be used when the report is processed. Printing reports often is necessary when the information on the report needs to be shared with people who don't have access to a computer during analysis of that information. Situations such as team or board meetings often require that each member have a printed copy of the information to be covered.

Interacting with External Systems

Sometimes, it's necessary for a job to be intercepted before being run. Typically, organizations choose to do this so that information from an external entitlement database can be queried, and they can determine what data the user is allowed to view and modify the filter to reflect their restrictions. Prior to the introduction of Business Views, this primary technique for handling this requirement was achieved using a component called a processing extension. The processing extension is loaded by the Report Job Server during a schedule or by the Page Server or Report Application Server if being viewed. This extension allows for row-level security. Row-level security makes it possible for organizations to have content, such as a Crystal Report, shared by many users but the actual data that they see is targeted to them. It's also important to note that defining row-level security does not affect the content template but rather filters the view that the user sees based on the data that user has the right to see. There is no need to go into Crystal Reports and modify the report to affect which pages a user can see.

Note

With the inclusion of Business Views in Crystal Enterprise 10, it became possible to directly include external entitlement databases into Business Views and easily provide both column- and row-level security through that mechanism. This has become the preferred method for achieving row and column level security.


Processing extensions are just that, an extension of BusinessObjects Enterprise. Some examples of processing extensions are available for BusinessObjects Enterprise with the product.

Program Job Server

Much in the same way that the Report Job Server processes Crystal Reports, the Program Job Server processes programs. These programs consist of three types:

  • Executable

  • Java

  • Script

These objects are published to the BusinessObjects Enterprise Framework, scheduled to be run by the Program Job Server, and executed. The goals of the programs differ as organizations can write programs according to their needs. Although processing a report results in a report instance, processing a program results in only a record that the program was run. The results of the program will depend on the program itself. Some programs might do maintenance on the BusinessObjects Enterprise system and some programs might have functions totally unrelated to BusinessObjects Enterprisea powerful new capability to integrate BusinessObjects Enterprise functionality into an organization's workflow.

Destination Job Server

The Destination Job Server introduced with the XI version of BusinessObjects Enterprise is a slightly different type of Job Server. In contrast to the Report Job Server that can both process and send an object, the Destination Job Server does not process or execute the object. Instead, the Destination Job Server uses objects already in the system, such as a report instance, and delivers that object to a destination. The default, enabled destination on a Destination Job Server is BusinessObjects Enterprise Inbox. Additional destinations such as SMTP, FTP, or file can also be enabled.

List of Values Job Server

Also new with BusinessObjects Enterprise XI is the List of Values Job Server that handles the processing of lists which are exposed as parameter pick-lists. The List of Values Job Server is very similar in nature to the Report Job Server, but the purpose of the service is distinctly used for generating and displaying Lists of Values.

Web Intelligence Job Server

The Web Intelligence Job Server also introduced with the XI release is much like the Destination Job Server in that it does not execute requests itself. Instead, the Web Intelligence Job Server receives the scheduled request from the CMS and then passes the request to the Web Intelligence Report Server, which runs the report.

Page Server

The Page Server is responsible for delivering three key functions to the framework. The primary function is to generate pages for viewing reports. This capability is relevant for performance and the scalability of viewing reports because it only ever sends a single page of a report to the viewers. It does this by using a function known as Page on Demand. Other functions performed by the Page Server are refreshing a report's data using a feature known as on-demand viewing as well as the capability to export a report to another format for end-user download.

Page on Demand

The Page on Demand function of the Page Server receives a request to view a certain page of a report and then generates just enough information to have the report viewers display that page. As described previously, it's much more efficient in a multi-user or low bandwidth environment to have pages of a report rather than the entire report sent to the viewer. This feature not only ensures a positive user experience by getting them the view of the report they're after quickly, it also is important to administrators.

Page on Demand minimizes demand on network bandwidth. Each page of the report generated by the Page Server is approximately 2KB in size. A report is usually much larger than this, especially if it's many thousands of pages containing thousands, if not millions, of rows of data. It should now be apparent why Page on Demand is a useful feature. This service goes one step further by ensuring a positive user experience through a technology known as report streaming.

Report streaming builds on Page on Demand by determining which objects in the page might take longer to calculate than others and then delivering them to the viewer slightly behind objects that can be generated quickly. For example, the report might contain summaries or charts that require additional calculations to be performed before rendering for the end user who is viewing the report. Report streaming will ensure that the rest of the information, such as the details making up the chart or summaries, is sent to the user right away. The remaining portions of a report are sent as soon as they are calculated on the server. Report streaming is similar to the placeholder technologies that browsers use when loading images.

On-Demand Viewing

The Page Server allows a user to refresh the view of the report dynamically instead of scheduling the report. To take advantage of this service, users first must be granted the proper access level for the object that needs to be updated.

If a user has this access level, he has the capability to force the report to connect to the database upon his request. When the user refreshes the report, he will be prompted to enter any relevant information the report requires, such as database connection information or parameter values. Before enabling on-demand viewing for all users, the use of the system and size of reports must be taken into consideration. If many users are querying the database at the same time, are they asking for similar information? If so, the report could be run once and then shared among many users. What amount of data is expected to be returned or how long is the report expected to run? Often, a report might be too complex to enable all users in an organization to run it themselves. Based on the amount of time spent in the database, on the network, and in the report engine, a report can take several seconds, or even minutes, to complete. If this situation occurs, it makes sense to schedule any complex reports that spend a lot of time processing and allow that report to be shared among the users.

Exporting to Other Formats

The Page Server makes it possible for users to request to have the report presented to them in a format other than Crystal Reports. These formats are Crystal Reports, Microsoft Word, Microsoft Excel with formatting, Microsoft Excel data only, Adobe Acrobat, Rich Text Format, Editable Rich Text, text, or Comma Separated Value (CSV) format. The user can request these formats typically by selecting the Export button in the report viewers.

Row-Level Security

In the same manner as the Job Server, the Page Server is able to restrict information presented to users based on a row restriction set by a processing extension. The main difference here is the Page Server is providing this capability at view time rather than at schedule time. Each method has its benefits. If a report has a row restriction applied to it during scheduling, the amount of data being returned to the report is filtered during the query. This means that the report instance only contains data that is relevant to the user who scheduled it. Another method is to apply the row restriction at view time.

If restrictions are applied at view time, the report instance contains the data necessary for the report, regardless of who is viewing it. When a user requests the report, the Page Server communicates with the processing extension to determine the row restriction to be applied for the user viewing the report. The data is then dynamically filtered so that the user is seeing only the data that he is able to see.

Cache Server

The Cache Server is an integral component to the overall scalability of BusinessObjects Enterprise. It establishes a cache of report pages generated by the Page Server, which are called encapsulated page format (EPF) files, and promotes the sharing of this information. This is an important facet of the BusinessObjects Enterprise Framework because, instead of having the report page regenerated for each user who requests it, the Cache Server determines whether the page can be shared among users. If it can, it will return the cached page. The Cache Server receives these requests from the report viewer and when the request is received, it checks to see whether the page requested is available in cache. If it is, the page is returned to the report viewer to complete the request. If it is not, the request is sent to the Page Server to have it generated.

In the case that the Report Application Server serves the view request, caching occurs inside the Report Application Server itself, and the Cache Server does not interact with it. The Report Application Server would service view requests requiring interaction; for instance, when using the Interactive Viewer, the Report Application Service renders reports, as it has the additional capabilities that the Interactive Viewer requires.

Cache Management

The Cache Server is responsible for maintaining a cache of report pages generated by the Page Server on disk. When a request for a page is received, the Cache Server checks to see whether the page is available in its cache and whether it can be shared. If it is a sharable page, the server returns the page to the user. If the page cannot be shared, the request is sent to the Page Server to generate a new page.

Constraints

Sometimes, pages are not sharable. The Cache Server determines that a report page is not sharable if it meets one of these conditions:

  • Row-level security is being enforced If row-level security is being used, the page of information is valid only for the user who requested it; therefore, the Cache Server is unable to pass this page onto another user.

  • The query within the report has changed The query for the report can change if a user chooses to view a report and change the filter already previously defined or change a parameter value. When this occurs, the cached page is invalidated and must be regenerated.

Event Server

The Event Server provides a way for BusinessObjects Enterprise to monitor and use events that are occurring outside of its environment. It enables an organization to trigger the running of BusinessObjects Enterprise scheduled jobs dependent on external events.

The Event Server monitors the operating system for the existence or modification of a file. Using a file to trigger an event is a useful way of determining when an event is triggered because the generation of a file is a simple thing to achieve. For example, an organization might perform a nightly data warehouse update, and have the same program that does the database load create a file after finishing the load. Upon file creation or update, the event server then reports to the CMS that the required trigger is present, allowing the scheduled job to be processed.

File Repository Servers

The File Repository Server provides the BusinessObjects Enterprise Framework with two core services. The first is the capability to provide a centralized content storage facility, and the second is the capability to abstract the location of these objects from other services within the framework.

Centralized Storage of Content

BusinessObjects Enterprise provides two File Repository Servers (FRS). An input FRS is used to store any content that has been published to BusinessObjects Enterprise by the Publishing Wizard or from the content creation tools. When content is published to BusinessObjects Enterprise, the object is copied from the client to a location in the FRS. This location is set by the installation of BusinessObjects Enterprise but can be controlled by the administrator through modification of the FRS root directory. The objects are placed into unique folders on the server and are given unique names to ensure that there will not be any conflicts with other objects.

An output FRS is used to store the content generated by a scheduled job. The output server operates in the same manner as the input server by generating a unique name and location for each object.

Abstraction of Content Location

Now that the content is centrally stored and managed, the FRS abstracts the actual location of the objects from the other framework services. By using Uniform Resource Identifiers, or URIs, the framework sees a virtual "location" for the content. This makes it easy for services to request an object from the FRS without the need to ensure that it has access to the actual physical disk location. From a deployment and administration perspective, the job is much easier if objects are referred by URI. There is no need for complex network configurations, such as setting each service to run as a user account so they can access network shares.

However, this means that the system administrator must ensure that the account privileges of the FRS daemon or service include access to the disk location(s). This concept, of appropriate privileges for services, echoes throughout the entire system. The various services or daemons all interact with the operating system in different ways, and each requires the appropriate rights to function.

Report Application Server

The Report Application Server is a powerful add-on server to the BusinessObjects Enterprise Framework. It enables organizations to take their Web reporting a step or two further than the simple viewing of report content over the Web. The Report Application Server provides three new components for the framework: an alternative processing component for the report, a full object model for creating and modifying a Crystal Report, and a dedicated server for handling the creation and modification requests.

Note

Although BusinessObjects Enterprise includes the Report Application Server, appropriate licensing must be purchased to use the report modification and creation capabilities within the BusinessObjects Enterprise Framework. This license can be purchased in addition to BusinessObjects Enterprise licenses, or as part of a BusinessObjects Enterprise Premium bundle.


Crystal Report Modification and Creation Concepts

One of the main benefits of adding the Report Application Server to the BusinessObjects Enterprise Framework is that organizations can quickly and easily add Crystal Report creation and modification capabilities to their Web applications. The Report Application Server makes it possible to connect to a server-side data source, query for information, and then display that information, all within a zero-client Web viewer. By using any of the built-in clients that are delivered with the Report Application Server or using the object model to create a custom user interface, it's possible to provide ad hoc Crystal Report creation and modification to the system end usersand essentially provide self-service reporting.

Web Report Design

The Report Application Server can take the data returned as part of the previously mentioned ad hoc report query issued by an application user and allow her to begin to format the report. The user is able to modify the query in many ways to format it into a quality report. Many people, after seeing these capabilities within a Web browser, remark that the experience is similar to a Web-based version of Crystal Reports. The Report Application server enables the making of database connections, selecting and joining tables, choosing fields, grouping and summing, creating formulas and charts, and formatting fields and sections.

Interactive Report Viewing

In addition to the capabilities of the BusinessObjects Enterprise report viewer connected to the Page Server, a benefit of connecting to the Report Application Server from a report viewer is that it provides an object model that enables the report to be manipulated on the server. You can modify the viewer to provide a flexible viewing experience.

The viewer supports an event model that provides you with the information selected by the user in the viewer. This makes it easy for organizations using the Report Application Server to make closed loop systems.

This means that when the event model is used, a report can become much more interactive and drive more business value. For example, a retail organization uses BusinessObjects Enterprise to present its product catalog to its users. The reports are very useful and allow users to browse the catalog or drill in for more details on items. If the user wants to order something, he needs to navigate to another form to enter his order and he has to keep looking back to the catalog report to remember the part number he wants to order.

Using the event model of the Report Application Server this organization can, without changing its catalog report, enable the user to click on the item he wants right within the view of the catalog. This event captures the data that the user clicked on and enables the Web developer to populate the order screen with this information with no user interaction. If the report also displayed inventory counts, the report could be updated as soon as the user finished his transaction.

Rich Object Model

The Report Application Server provides a powerful object model (covered in detail in Chapters 33, "BusinessObjects EnterpriseCustomizing the Crystal Reports Viewers," and 34, "Crystal Report Modification and Creation APIs") that allows an organization to control any aspect of how a user performs an ad hoc query or formats it. In typical ad hoc tools the users are given the same tool and the organization deploying the tool has no say in how the user is able to perform her tasks.

Tip

The Report Application Server provides a significant level of report modification and interactive report viewing. However, using a combination of Report Application Server features and Web Intelligence functionality should be considered in order to provide the suitable end result.





Crystal Reports XI(c) Official Guide
Crystal Reports XI Official Guide
ISBN: 0672329174
EAN: 2147483647
Year: N/A
Pages: 365

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net