The Data Tier
Every organization has data in a wide variety of sources: databases, applications, XML files, Excel spreadsheets, EJBs, and so on. Crystal Enterprise provides unparalleled access to data in a wide variety of formats. Although data access was covered in Chapter 1, "Creating and Designing Basic Reports," several architectural concepts around this topic merit our attention. First, Crystal Enterprise 10 includes Crystal Business Views, which provide a level of abstraction above data sources, greatly simplifying report writing and data security. Second, you will explore some of the most common sources of data.
Crystal Business Views
Rather than connect directly to data sources, an organization can use Crystal Business Views to simplify data access. Using the Business Views (BV) Semantic layer speeds report development because the report developer bypasses several typical steps of report development: connecting to the data source, choosing tables, joining tables, and adding calculations. Instead, by choosing the BV, the report developer sees a complete set of fields logically organized around business problems and areas.
During development of a BV, a database administrator or subject matter expert with database skills chose the appropriate data sources and tables or other constructs, joined them together, selected the necessary fields, created any formulas or functions, and applied security at row and column levels against Crystal Enterprise User groups.
Architecturally, this can be seen as a separate layer between the processing services in the server tier and the data sources. BVs are not required to access data because direct connections to data sources remain. BVs are covered in greater detail in Chapter 18.
Data Source Types
Although available data sources were discussed in Chapter 1, a brief summary helps to understand some key architectural concepts when connecting to different types of data sources. The following few sections cover some of the most popular data sources in the enterprise computing environment.
Database Systems
Databases are the prototypical data source. There are several ways that the Server tier connects to databases. An ODBC connection uses an ODBC driver to communicate with the Database Management system (RDBMS), which returns the relevant data. Every machine hosting report processing services from the Crystal Enterprise Framework, namely Page Servers, Report Job Servers, and Report Application Servers, must have the requisite ODBC Data Source Names (DSN) configured. ODBC connections require special support on Unix-based machines, often in the form of an ODBC driver that must be purchased in addition to the operating system.
Using a direct connection to a database most often requires a database client application installed on any machines. Most RDBMSs that support native connections ship with their respective database client applications, which then must be installed on machines hosting Crystal Enterprise report processing services.
Application Data Sources
Crystal Enterprise offers a variety of Solution Kits that include application-specific integrations to provide data access to those applications. For instance, the SAP Solution Kit facilitates access to SAP's R/3 and Business Warehouse.
These Solution Kits represent a high level of integration, usually providing single-sign on so end users can use their application credentials to log on to Crystal Enterprise. They are also notable in that data access does not proceed directly from the Crystal Enterprise processing services or daemons to the application databases, but rather connects to the applications themselves, which subsequently manage queries and security and often data transformation to simplify data access. So application data sources present an additional level of abstraction from the underlying data source. These are covered in detail in Chapter 15, "Additional Data Sources for Crystal Reports."
Programmatic Data Sources
A data source might not be accessible in the correct format, or might require some transformative or conditional logic. In these cases a software developer can write a program using the appropriate logic, and then expose the resulting data to Crystal Enterprise. Crystal Enterprise supports connectivity to these programmatic, or Active, data sources. Typical programs would expose a JavaBean, ADO (COM), or ADO.NET data provider, which would be consumed by Crystal Enterprise.