Welcome!

ColdFusion Authors: Maureen O'Gara, Hovhannes Avoyan, Yakov Fain, Pat Romanski, Liz McMillan

Related Topics: ColdFusion

ColdFusion: Article

ColdFusion and Crystal Enterprise Integrations

A primer

Consider Your Licensing
Licensing is, of course, a very serious matter with all software. However, it's especially important when integrating two different pieces of software. In this specific case, we need to consider the licensing aspect of Crystal Enterprise. There are three types of licensing you can use:

  1. Named User
  2. Concurrent User
  3. CPU
If you purchased Crystal Enterprise prior to January 1, 2005, and you own concurrent licenses for it, you can still purchase them. However, if you don't already own concurrent licenses, you can no longer buy them. Concurrent licensing was designed around the fact that two users of the same account are unlikely to be requesting data at the same time. Therefore, the serviceable ratio was approximately one concurrent user per 10 real users.

A named user is just that, one named user. There can only be one user per account and that user can only be logged in from one machine at any one time. CPU licensing licenses the servers per CPU. A CPU license needs to be purchased for every CPU on the machine. When installing a CPU license, you can consider it to be unlimited concurrent licensing. Setting up CPU licenses for performance is a bit of a trick. It can be done, but really needs to be done by someone who not only knows how Crystal Enterprise behaves, but also, after evaluating the reports, what needs to be delivered. Business Objects does have a document that explains all this but they will force you to sign an NDA to get it.

Crystal Enterprise has about 10-14 services that can be installed. The services are considered servers in their own right by Business Objects. The system is designed to be easily scaled outward depending on your growing needs. The trick is that if you purchase CPU licenses, you need to ensure you have enough to manage your scalability; last I checked they were approximately $60,000.00 USD. ColdFusionMX licensing on the other hand is fairly simple. You can purchase CFMX as standard or enterprise packages.

Standard edition gives you the standard CF Server, like you've always used. In its current version, it's a modified version of JRun 4 that drives only the CFMX tag set.

The Enterprise package yields not only the core server, but also a full version of JRun 4, multiple server instances, J2EE application server deployment, event gateways, enterprise server security, sourceless deployment, archive and deployment services, high-performance e-mail delivery, high-performance reporting and document generation, asynchronous processing, and server/instance clustering.

Deployment Strategies
When deploying a CFMX to Crystal Enterprise integration, I recommend seriously evaluating the needs of both environments. A Performance Analysis and Tuning engagement (PA&T) from Macromedia would be a good idea. The reason I recommend this is that integration will appear to stress your server.

The stress that you will see will be in relation to the communication between the two applications. It could be your network, connectivity, virus software, firewalls, a few other items, and or any combination of the previous. A major reason why people have said previously that it could not be done was due to these issues and not that the applications wouldn't talk to each other.

Actually, in its simplest, they don't really talk to each other. Crystal talks to itself. CFMX grabs the Crystal services and shakes it around and tells it what it's going to do... like a bully. The first key is that everything requires authentication. The second key is to know how to quiz Crystal Enterprise to give it what you want, after it's authenticated.

Agave and Seguaro
The results of this are two application prototypes: Agave and Seguaro. I've only mentioned my development of these prototypes to a handful of people, until now.

Agave was the original prototype that integrated ColdFusion 4.0 to a Crystal Enterprise 8.0 implementation. The goal was to re-create Crystal Enterprise's ePortfolio using ColdFusion. With my development of Agave, I can add/edit/delete users, folders, and groups. I can add users to groups and/or folders. I can modify a user's security in any combination thereof. More important, I can authenticate that user to deploy a report through Crystal Enterprise. Crystal Enterprise then gets to do what it does best: render and deliver the report. I stopped there with Agave; I had new aspirations with what I could do with this success. The testing stretched from CF 4.0 through CFMX 7 into Crystal Enterprise versions 8.0 through 11.0.

Seguaro was originally designed utilizing CFMX 6.0 and, later, 6.1. It's been integrated into Crystal Enterprise versions 8.5 through 11.0. My development of Seguaro was built using a homegrown MVC model. I started using CFCs in the testing and, later, in Web services. My intention was to use Flash to rebuild ePortfolio. Using ColdFusionMX I can back-end a Flash UI. Using Flash data grids and XML connectors (I actually put that stuff I learned at MAX2003 to use), I successfully replicated the same features I had developed in Agave.

There are still many features that have not yet been built. However, some of the functionality that have been built thus far are some functions utilizing Crystal Enterprise's RAS server to provide some ad hoc reporting, report scheduling, and report template manipulation. I have even been able to pull a report deployed by Crystal Enterprise and render it in Flash using FlashPaper (it's not exactly a recommended practice but it can be done).

See Figure 1

These two prototypes (Agave and Seguaro) are now the foundation I use when building most integrations. The reason is, as I consulted to provide this type of service, I learned that each integration is unique. As you all know, everyone has their own ideas about how each application should get implemented. It's amplified when you start integrating existing applications. Everyone has built applications differently. Thus each set of tools that needs to be deployed is deployed on an as-needed basis. The result is that I provide Agave and Seguaro licenses as part of the service I provide.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.