Explaing ColdFusion in relation to J2EE

I just had to put together a small bit of info of how ColdFusion fits into the J2EE world ... something I'm terrible at explaining in words. So I put the below text together with some help from sources around the web and figured that it might be good to post here as well. I wasn't trying to sell it, just explained where it fitted ... what would you of added that I missed?ColdFusion and J2EE

What is J2EE?

J = Java; Java, an object orientated language which is typically compiled down to byte code. All source code is first written in plain text files ending with the .java extension. Those source files are then compiled into .class files which contains bytecodes the machine language of the Java Virtual Machine (Java VM). Bytecode is usually Machine (operating system) independant.

2 = Version number, though this has now been dropped; 2, is nothing more than a version number and is now dropped (though still used)

EE = Enterprise Edition; EE, Enterprise Edition, includes all the functionality of the Java languages and also features routines and subroutines designed specifically for servers and mainframes by extending the base Java API's. Example of some J2EE serves are JBoss, IBM WebSphere Application Server (WAS), and JRun (which ColdFusion initially deploys on).



What is ColdFusion

ColdFusion is deployed as a Java application on a standards-based Java 2 Enterprise Edition (J2EE) application server. This mean that ColdFusion applications leverage features of the J2EE architecture, such as support for multiple application instances and multiple-instance clustering. The ColdFusion architecture gives the developer the ability to use the power of Java application servers and any native objects like Enterprise JavaBeans (EJB).

The ability to integrate Java into ColdFusion provides all sorts of opportunities, including access to freely and commercially available Java libraries; features in the standard Java and J2EE libraries; and your own Java code. In some cases, this can mean access to functionality that's simply not available in ColdFusion.

e.g.user created java object

public class simpleMath { public int addNumbers(int val1, int val2){ return num1 + num2; }}

Using the object in ColdFusion

The result is: #result#