What’s
New in ColdFusion MX
ColdFusion MX marks a major milestone
in the evolution of ColdFusion. Rebuilt from the
ground up on a completely standards-based architecture,
this latest release of ColdFusion introduces significant
benefits for existing applications and future
projects.
In addition to increasing performance and reliability,
ColdFusion MX applications can take advantage
of powerful new features, such as integrated support
for web services and XML, ColdFusion components
(CFCs), and Macromedia Flash Remoting. Moreover,
organizations can take advantage of the rich integration
capabilities exposed by the underlying J2EE platform
– all while leveraging the signature ease
of use and productivity of the CFML environment.
ColdFusion MX also provides significant new deployment
options for ColdFusion applications. ColdFusion
MX Enterprise now includes a full version of Macromedia
JRun, allowing you to take full advantage of the
innovative ColdFusion MX architecture by running
ColdFusion as a standard J2EE application within
a Java application server. ColdFusion MX Enterprise
can also be deployed on third-party application
servers such as IBM WebSphere®, Sun ONE Application
Server, and BEA WebLogic Server.
Deploying ColdFusion MX in the J2EE configuration
provides many benefits for developers and administrators,
including:
- Java integration. Deploy
hybrid applications that combine the power of
CFML with advanced Java technologies, such as
servlets and Enterprise JavaBeans.
- Application isolation. Increase
reliability by isolating ColdFusion applications
in individual processes running on the same
server.
- Deployment flexibility.
Create multiple, independent installations of
ColdFusion on a single server and configure
each according to application-specific or security
needs.
- Server optimization. Maximize
hardware resource utilization by load balancing
across concurrent ColdFusion processes.
- Clustering. Deliver high-availability
by leveraging load balancing and failover provided
within high-end Java application servers.
Enterprises who have invested in both ColdFusion
and J2EE, or organizations that want to increase
the security and reliability of their ColdFusion
infrastructure should strongly consider migrating
to ColdFusion MX for J2EE to take full advantage
of the new ColdFusion MX architecture
Planning Your ColdFusion MX Migration
Though Macromedia designed ColdFusion
MX to be compatible with previous releases, we
completely rebuilt the runtime engine and used
a significantly different underlying architecture.
Moreover, in ColdFusion MX, some language elements
were changed or deprecated to introduce greater
flexibility or to adhere to standards.
As a result, migrating your infrastructure and
existing applications requires more planning and
testing than previous upgrades. However, once
you have completely migrated your applications,
you can access a more powerful infrastructure
and feature set in ColdFusion than before.
The following process explains a high-level overview
for successfully migrating to ColdFusion MX:
- Gather information. Read
and apply the migration resources highlighted
in this overview, examine the target application
and deployment environment to identify areas
that will need attention.
- Configure a test environment.
As discussed below, the installation and configuration
options are different from previous releases.
In addition, configuring ColdFusion with your
web server, database, or security repository
may differ. Use your test environment to identify
and test the optimum configurations for your
applications’ requirements. As with all
testing environments, your test environment
should be as close to the final production environment
as possible.
- Analyze your applications.
The Code Compatibility Analyzer helps you identify
areas of your application that you will need
to modify due to deprecated features or syntax
changes. However, you should also perform functional
testing on each area of the application to identify
any problems caused by subtle changes in behavior
or configuration. In particular, pay attention
to the sections below and in Migrating
ColdFusion 5 Applications.
- Create a test specification.
Once you have identified areas that require
changes, develop a plan to modify code and test
the necessary changes.
- Implement and test changes.
Modify code as necessary and unit-test all changes.
After unit testing individual changes, test
the entire application. If your application
handles significant volume, load test and performance
tune your application as well . Deploy Updated
Code. Install ColdFusion MX in your production
environment and deploy the tested application.
This configuration should be as close to the
test environment as possible to ensure consistent
behavior.
- Capture knowledge. Document
and archive the migration plan, lessons learned,
and helpful hints or tips to use on future projects.
Key Migration Planning Tools
In addition to this document, Macromedia provides
several resources that can help you plan and accomplish
your migration to ColdFusion MX. For the most
comprehensive overview of these resources, be
sure to visit the Migrating
to ColdFusion MX area. See also the list of
reference URLs at the end of this document). Some
key resources are:
- The
ColdFusion MX Architecture White Paper describes
the architecture of the new server in detail.
Understanding the new product architecture prepares
you for potential migration issues for your
particular application or environment.
- The ColdFusion
MX LiveDocs: Migrating ColdFusion 5 Applications
is the most current version of the documentation,
available online. It provides an in-depth overview
of the technical changes in the ColdFusion server,
including a list of deprecated or changed tags
and functions.
- The ColdFusion Code Compatibility Analyzer
is a new utility that you can access within
ColdFusion Administrator. The Analyzer scans
applications, generates reports that identify
code that the ColdFusion MX version may affect,
and highlights syntax errors that you must address
during migration.
- In addition to these resources, you can access
a wealth of articles, TechNotes, and other resources
online through the ColdFusion
Support Center and ColdFusion
Development Center.
- Lastly, for complex migration projects, you
may wish to use Macromedia
Technical Support and Professional Services.
They can visit you on-site and help you plan
your migration.
Deprecated Features
In addition to minor changes in the language,
a few features available in ColdFusion Server
4.5 or 5 were deprecated in the ColdFusion MX
release. These include:
- SiteMinder. ColdFusion MX no longer includes
an OEM version of the Netegrity SiteMinder product.
As a result, you must modify applications that
use
cfauthenticate
and its associated tags. Instead, you must use
either the cflogin
framework, introduced with ColdFusion MX, or
a custom security framework. In addition, you
can no longer create multiple RDS or administrator
accounts with different access privileges. Lastly,
Macromedia redesigned Server Sandbox in ColdFusion
MX to take advantage of security services in
the underlying J2EE platform and to provide
a more easy-to-use interface.
- SNMP. ColdFusion MX no longer provides integrated
support for SNMP (Simple Network Management
Protocol). To monitor ColdFusion applications,
use the monitoring tools in ColdFusion administrator
or work with third-party monitoring solutions
such as Perfmon.
- Hardware Load Balancing. ColdFusion MX no
longer provides built-in integration with hardware
load balancing devices, such as Cisco LocalDirector.
For the latest information about methods for
using ColdFusion MX with popular hardware load
balancing devices, refer to the ColdFusion
Support Center TechNotes and the Migrating
to ColdFusion MX area.
- Dynamic Data Source Names (DSNs). ColdFusion
MX no longer supports dynamically creating database
connections within an application. You must
define all data source names in ColdFusion administrator
or (if you are using ColdFusion MX for J2EE)
in the underlying application server.
Differences in Installation and Configuration
There are several differences in the procedure
for installing and configuring ColdFusion MX compared
with previous releases of ColdFusion. Consider
these issues when planning your ColdFusion MX
deployment.
- Configuration Information. The format and
location of ColdFusion configuration information
have changed substantially from previous releases.
ColdFusion now stores the majority of information
in XML files instead of within the Windows registry
or the
cfregistry
file. As a result, you may need to modify custom
scripts that change configuration information
directly or applications that depend on reading
ColdFusion settings previously stored in the
registry.
- Built-in Web Server. In addition to integrating
with an existing web server, ColdFusion MX now
has a built-in web server. Use the built-in
web server for development purposes only. Do
not use it in a production environment. One
benefit in using the built-in web server is
that you can install ColdFusion MX so that it
uses the built-in web server and run another
version of ColdFusion on another web server,
for testing purposes.
- Migrating ColdFusion Settings. When upgrading
an existing ColdFusion server to ColdFusion
MX, the migration wizard can migrate most server
settings. However, it cannot migrate all server
settings automatically. In particular, you must
migrate the following settings manually:
- Tag Security. In ColdFusion MX you can
enable/disable tags from within the administrator.
However, the interface for configuring these
options has changed and the migration does
not transfer the options automatically.
- Data Sources. ColdFusion MX will migrate
data sources from ColdFusion 5. However,
due to differences between JDBC and ODBC,
as well as changes in default settings,
you may have to reconfigure select data
sources after the migration.
- Server Sandboxing. ColdFusion MX provides
sandboxing that is functionally similar
to previous releases; however, sandbox definitions
are not compatible with previous releases
and you must recreate them after you install
ColdFusion MX.
- CORBA. The migration wizard does not
migrate CORBA connector settings.
- ColdFusion MX Updater. With the ColdFusion
MX release, Macromedia introduced a new way
to deliver product updates—the Macromedia
ColdFusion MX Updater. The updater provides
a simple way to keep your ColdFusion installation
up to date with all of the latest approved security
fixes, bug fixes, and OEM updates. When installing
ColdFusion MX, be sure to download the latest
version of the updater and sign up so that we
can automatically notify you when we release
new versions.
- Configuring Server Security. Due to changes
in web server connectors, the method for securing
ColdFusion pages with native OS security has
changed. For instance, to use native Windows
security to control web page access, you must
configure IIS to check page access privileges
prior to forwarding the request to ColdFusion.
ColdFusion no longer performs this check automatically.
For further information, check the Migrating
to ColdFusion MX area.
Integrating with your Existing Infrastructure
There are several significant differences in the
way ColdFusion MX integrates with your IT infrastructure.
Note these differences in planning out your migration
and configuring test and production environments.
- Web server Integration. ColdFusion MX uses
a different set of web server connectors than
previous releases. As a result, pay attention
to the configuration procedures and settings
required for use with advanced configurations
(such as with virtual hosts) and operating system-level
security. Read instructions for configuring
the web server connectors in the documentation.
- Database Connectivity. ColdFusion MX no longer
uses ODBC and native drivers to connect to relational
databases. It relies instead on standards-based
JDBC drivers. Read the documentation to get
a list of supported databases and versions and
get instructions for using third-party JDBC
drivers with ColdFusion MX. Switching to JDBC
may also affect the way you connect to a database;
you may need to use trusted connections or connection
strings.
- Directory, e-mail, File Servers. While ColdFusion
MX has not significantly changed the protocol
tags, the underlying implementation has changed
for directory, e-mail, and file server integration.
As a result, you may need to modify applications
that rely on these tags, as there may be minor
behavioral changes.
Migrating Your Existing Applications
Before attempting to migrate your applications
to ColdFusion MX, set up a dedicated testing server
that will not affect applications in production.
As part of the migration effort, consider each
of the following:
- Language Compatibility. As discussed previously,
the majority of customers find that their existing
ColdFusion applications run without issue on
ColdFusion MX. However, minor language changes
may require you to modify some applications.
In particular, check on the following language
areas:
- ColdFusion MX is more strict than previous
releases, for instance, with reserved words
in CFML and SQL. Therefore, coding errors
that ColdFusion previously allowed may cause
ColdFusion MX to throw parsing errors. You
may need to rename some variable names to
account for new reserved words or illegal
characters.
- You can no longer use periods or dots
in variable names. ColdFusion now uses "."
as an operator to create a struct.
- Since the ColdFusion MX application now
runs within a Java virtual machine environment,
the performance or behavior of operations
that access native operating system functionality
may differ substantially.
For a complete list of changes to the language,
read Migrating
ColdFusion 5 Applications. In addition,
use the ColdFusion Compatibility Analyzer
to identify areas of applications that the
CFML language changes may affect.
- Extensions. Moving to a Java-based architecture
means that ColdFusion extensions behave significantly
different, particularly in performance and compatibility
of interfaces to native compiled code, such
as COM objects and C++ CFXs. On the other hand,
ColdFusion MX integrates better with Java objects,
including the ability to share session data
with JSPs/servlets and enhances performance
when calling Java objects.
- Application Security. As discussed previously,
ColdFusion MX no longer supports Netegrity SiteMinder
user security functions. Though porting applications
that use these tags requires you to rewrite
some code, the new
cflogin
tag provides a much simpler and more extensible
framework for implementing application security.
- Localization and Character Encoding. ColdFusion
MX now uses the UTF-8 character set as its default
encoding, which may affect applications that
frequently use characters in the 128-255 range.
In addition, ColdFusion MX enhances locale functions.
For more detail on these changes, read the documentation
as well as the online overview
of internationalization features in ColdFusion
MX.
- Macromedia Spectra Applications. You can migrate
applications built with Macromedia Spectra to
ColdFusion MX; however, you must upgrade the
underlying Spectra framework to version 1.5.2.
This update is available free to existing customers
from SpectraSource.
ColdFusion MX in a J2EE Environment
Customers migrating existing ColdFusion applications
to a J2EE environment have a few additional issues
to consider. The majority of the issues result
from different deployment configurations that
the J2EE architecture supports.
First, in a J2EE environment, you deploy most
applications to a “context root”,
which is a subdirectory of the top-level domain.
For instance, you may deploy your ColdFusion applications
to www.mydomain.com/cfusion instead of www.mydomain.com.
This may affect URLs that do not use relative
paths.
Second, changes in the directory structure of
the J2EE server environment may affect file system
references and other code that rely on absolute
paths.
Lastly, when deployed on a third-party J2EE server,
some ColdFusion functionality will depend on the
configuration or features of the underlying server,
such as the web server connector or database drivers.
Read the documentation
and release
notes for details.
Tuning and Managing ColdFusion MX
While results will vary by application,
benchmark tests performed with the Tack2++ application
suggest that many ColdFusion applications will
see significant performance gains when migrated
to ColdFusion MX, in some cases more than doubling
throughput under load. For information about these
benchmarks, consult the performance
briefs available on the Macromedia web site.
As with any server, to obtain optimum performance,
you must tune your environment to fit your application.
Changing the underlying architecture of ColdFusion
MX affects performance tuning in a few ways. To
ensure you obtain the optimum performance and
stability, consider the following factors:
- Java Runtime Environment.
ColdFusion relies on a Java virtual machine
as its core runtime environment. The default
installation of ColdFusion MX Server includes
version 1.3.1 of the Sun JDK, as this was the
optimum version available at the time of release.
However, future releases of the JDK or alternate
implementations may provide greater performance
and stability in some environments.
- Runtime Behavior. The behavior
of the ColdFusion application on a particular
platform varies, depending on how a platform
implements the Java runtime environment. For
instance, due to the way the Linux platform
implements Java threading, ColdFusion MX may
appear to spawn an excessive number of processes
when actually it is functioning properly. Read
more about specific operating system behavior
in the documentation and in the TechNotes.
- Some of the optimum operating system, web
server, and ColdFusion settings for maximizing
performance of ColdFusion applications have
changed. For the latest recommendations regarding
performance tuning, read the ColdFusion
Support Center and the Migrating
to ColdFusion MX area.
Additional Migration Resources
The information and resources in this document
give you migration information that should help
you in many situations. However, nothing substitutes
for live, hands-on assistance from a knowledgeable
professional. For customers with additional requirements,
Macromedia Services provides a variety of offerings
to meet these needs.
Macromedia Services are particularly crucial
for the following situations:
- Complex applications (such as heavy use of
COM/CFX, connectivity to multiple external systems,
and so forth.)
- High-volume or business/mission-critical
applications
- Applications with deadline pressure to run
on ColdFusion MX
- ISVs seeking to bring ColdFusion-based solutions
to the ColdFusion MX platform
- All applications migrating to ColdFusion
MX for J2EE
Product Support Offerings
Macromedia has customizable support plans
for all types of users, ranging from per-incident
support to direct access to a designated senior
support engineer. For more details on specific
programs, see www.macromedia.com/support/.
Professional Services Offerings
The Macromedia Professional Services
team has the skill and experience to make complex
migration projects run smoothly, and to improve
the overall architecture, performance, and reliability
of your applications. Offerings include:
- ColdFusion MX Migration Service
- Architecture Review
- Performance Analysis and Tuning
- Advanced Administration (MX and 5.x)
- Incident Resolution
Migrating Resources
|