Although ColdFusion 10 was released on May 15, 2012, there are still many developers who have not yet been exposed to the rich new feature set that it has to offer. With any server software, and particularly application server software, there are two major reasons developers and decision makers should consider updating to the latest versions of the software product: security and new features.
The first reason to update server software is security. Unfortunately, it is a fact of life that software support ends. With ColdFusion, the only currently supported versions under “core support” are versions 9 and 10. If you are still using ColdFusion 8 or below, be aware you probably aren’t going to be able to get a patch against the latest vulnerabilities. Many sites still use older versions of ColdFusion, just as many desktop users were slow to upgrade from Windows XP to Windows 7 and 8. But once a product reaches its software end of life, you are basically on your own. ColdFusion 10 makes patching those bugs even easier (See Benefits of Upgrading to ColdFusion 10 by Charles Koch).
The second reason to update your server software is to get the latest and greatest. ColdFusion 10 now offers more bells and whistles. From a developer’s perspective, I often look to these updates to see what can now be done with less effort. In short, developers ask the question: “how does the new update make our lives easier?” In the case of ColdFusion 10, we see many new features that are not only “cool” but also practical. Here is a high-level review of what new features can be found in ColdFusion 10:
WebSockets: What is a WebSocket? First, let’s talk about the most basic of web protocols, HTTP (HyperText Transfer Protocol). It is what we have all come to know and love when we enter an address into our browser bar. HTTP functions as a simple request-response protocol. In other words, your browser requests a page (like, I don’t know… maybe www.seguetech.com) and our servers respond back with a list of current blog topics. Unless you hit the refresh button in your browser, the page will remain static no matter what new content we write (and we write a lot of new content). We have compensated for the static nature of the web by using some client-side or browser-side techniques that allow the browser to make these requests in the background and when the response is received, we can tell the browser to generate a change to that page. A lot of the seemingly interactive web is built using some form of AJAX technique. But AJAX still relies heavily on the browser constantly requesting data, receiving responses, and then changing the page to reflect the response.
Enter in WebSockets. Instead of a lot waiting for responses, WebSockets allow for real-time data transfer to occur. AJAX can mimic real-time, but there is often still a lag while sending a request and waiting on a response. WebSockets deliver on the promise of a real-time web by giving us a protocol that is full-duplex within a single connection: you can send a request while simultaneously receiving data for something else. The protocol also reduces byte transmission overhead and latency, making for a much faster interaction. This enables, for example, development of a real-time chat server for your customer service center or a push notification server for your mobile devices. And ColdFusion 10 supports WebSockets out of the box!
Scheduler Enhancements: With ColdFusion, you have been able to schedule specific tasks to run at designated times. But if you have a long list of tasks that need to be scheduled, the schedule task page could get a bit cumbersome and overwhelming to use. Some people had to develop their own task-naming standards in order to find a single task in a haystack of many others.
With ColdFusion 10, grouping tasks has become a bit easier to manage and a lot more flexible in allowing creative scheduling. You can now group related tasks together and even make your tasks application specific.One of the most useful new features is the “Chained Task” in which you can tell tasks to run in a specific order, one after the other. You can also specify different actions at the start/end of a task or in case a scheduled task misfires or throws an error. Perhaps you want to run a task every weekday, but you have a list of Federal Holiday dates you want to skip. You can now provide a list of dates to exclude within that included range. You can also assign a scheduled task a priority number or tell it how many times you would like it to retry.
This captures just some of the important improvements in this new version. In part two of this blog series, I will discuss some of the support for modern technologies such as Apache Tomcat, HTML5, RESTful web services, and geolocation data. I will also briefly discuss some of the important improvements to the language in ColdFusion 10.
References / Useful Reading
- Security Enhancements: Benefits of Upgrading to ColdFusion 10 by Charles Koch
- HTML5 WebSockets in ColdFuson: HTML5 WebSockets and ColdFusion by Awdhesh Kumar, Adobe Engineer
- ColdFusion 10 Feature List: Charlie Arehart’s Ultimate List of 200+ New #ColdFusion 10 Features by Charlie Arehart. ColdFusion Troubleshooting Consultant