In my first part of this three-part series, I mentioned two reasons to consider updating to the latest version of ColdFusion: security and new features. Keeping any software up-to-date for security reasons is really a no brainer. So the major part of my focus has been the new features that are part of ColdFusion 10. In that previous post, I discussed WebSockets and scheduler enhancements. Today, I want to discuss some of ColdFusion 10’s other important new features, such as Apache Tomcat, Modern Technology Support, HTML5 Charts and Videos, and Web Services.
Apache Tomcat
Since the release of ColdFusion 6 (then named Macromedia ColdFusion MX version 6) back in May 2002, ColdFusion has been written on top of Java. Until version 10, Adobe bundled their own version of Java called JRun, but it was not updated often or widely supported outside of the ColdFusion community. At that time, because ColdFusion was built on top of Java, they allowed you to use other Java EE platforms such as JBoss and Tomcat. However, because JRun was becoming less popular than almost any alternative, Adobe decided to cease support for it and bundle ColdFusion with Apache Tomcat. The benefit for developers is simple: Tomcat has a large developer community, it is open source, and it is constantly being enhanced. All of this means that if there are new tools available to the Tomcat community, then ColdFusion developers will soon have access to those same tools and libraries.
Modern Technology Support
HTML5 Charts and Videos: While Flash and its Flash-rendering cousin Flex are not dead technologies, they are also not widely supported anymore. Companies that were once dependent on Flash for streaming video or games are now developing their products with HTML5 based technologies. To that end, Adobe has made some enhancements to their language that would make HTML5 supporters very happy, by introducing HTML5 chart and video support.
ColdFusion 10 can now build charts based on Canvas, SVG, or good old Flash. Those of us who have used the tag in the past need not worry that this new functionality will break our old charts, but realize that these enhancements will make charting a bit more accessible to more platforms going forward.
While web videos and Flash used to go hand-in-hand, Flash is not something widely supported on mobile. Even if some mobile devices can do Flash, web developers often choose to provide their videos in HTML5. With this in mind, Adobe now provides a built-in HTML5 video player, which will fall back to Flash when necessary.
Web Services: ColdFusion has had a pretty good history of being able to consume and create web services with its “remote” option in ColdFusion Components. Prior to ColdFusion 10, the only out-of-the-box protocol ColdFusion supported for web services was SOAP. With ColdFusion 10, SOAP has been upgraded to the 1.2 specification, as well as WSDL 2.0. It is a powerful protocol that comes with some overhead, especially since it uses XML as its output. Developers will want to use SOAP for larger projects, more reliable asynchronous processing, rigid specifications, and when they need stateful operations.
But for some, SOAP is almost too robust; A screwdriver is a more precise tool than a sledgehammer. Therefore depending on the job you want to accomplish, you want to be sure to use the right tool. For situations that need a more nimble or speedier protocol, developers have been turning to REST. REST (or RESTful) web services allow users to provide more easily defined and reduced overhead services. Instead of using the more bloated XML, a user can use JSON, which produces a reduced file size (See XML vs JSON Based Web Services: Which is the Best Choice? by Geoff Bender). ColdFusion 10 supports REST, so now users have some options with their web services. More information on ColdFusion is available in the reference section below.
In part three of this blog series, I will discuss the new geolocation support, some of the important improvements to the language, and predict when I believe we will know more about the next version of ColdFusion – “Splendor.”
References / Useful Reading
- Apache Tomcat in ColdFusion: What’s the deal with Tomcat in ColdFusion 10? by Rupesh Kumar, Adobe Engineering Manager
- RESTful Web Services: ColdFusion 10: RESTful WebServices in ColdFusion by Sagar Ganatra, Developer / Former Adobe Engineer
- XML vs JSON: See XML vs JSON Based Web Services: Which is the Best Choice? by Geoff Bender