I'll try to clarify them here...
Sourceless deployment: The ability to deploy a ColdFusion application to another ColdFusion server without source code.
J2EE deployment: The ability to create a WAR/EAR containing a ColdFusion application and the CF runtime which can then be deployed on any supported J2EE server.
They can be combined: a J2EE deployment can contain source or not, your choice. It can also contain a CF Admin or not, your choice. Without a CF Admin, your deployed application can still use the new CF Admin API to modify settings.
Sourceless deployment can be done from any edition to any edition - because the target deployment server already has a CF license. Sourceless deployment simply means compiling the CFML to Java bytecode and deployed the compiled files (the compile script compiles foobar.cfm to foobar.cfm in another directory - the target foobar.cfm file is really a .class file).
J2EE deployment can be done from any edition to any J2EE server and the licensing of the deployed app is either Developer Edition (no serial number) or Enterprie Edition (buy a license, use that serial number in the creation of the archive or via the deployed CF Admin or via custom code in the deployed app that uses the CF Admin API to set the serial number). The Standard Edition does not support J2EE deployment because, well, it's Standard Edition (Enterprise Edition is effectively equivalent to the old J2EE Edition).
There is an OEM program which lets you negotiate an appropriate license structure for application deployment.
Is there a cost involved if you want to move these sourceless deployments to management laptops. Can one get a 'free' cfmx 7 app server for a W2K/XP box.
Dominick, you can do sourceless deployment to *any* edition of CFMX 7 so as long as your hosting company is running CFMX 7, you can do a sourceless deploy.
What do you think about the following. Say you have three environments setup: development, testing/staging, production. Could you utilize these features to deploy a tested application to another server, resulting in one location to manage source code. I know it would require pushing changes from development all the way up, but isn't that how it's suppose to be? Perhaps this whole process could be automated? Just thinking here... sometimes it becomes a real PITA to manage all the environments, etc and synch them up (i know i know... follow the processes and this wouldn't be an issue).
Thoughts?
One scenario i'm imagining is i'd like to set up a filter within a compiled app that checks cgi.server_name, and if the domain is not the one that the application is licensed to, it throws an error message. What i wouldn't want to happen is that some enterprising fellow renders the compiled code to java source, digs around to find the domain filter, an easy search if you know the domain, and rewrites that single template in CF.
So the basic question is for us folks new to the world of compiled source code, what does compiling give you in terms of protecting your source code, particularly with CF, and if there are holes, are there ways to close them?
Thanks much, Nando
Bear in mind that it's pretty much impossible to create an uncrackable application. CF's encryption was pretty poor in the old days, compiling to Java bytecode is actually better protection out-of-the-box already.
Thanks, Ant
If you look in the detailed feature matrix (Flash Paper / PDF linked from the bottom of the Editions page), it says "Compiled Bytecode Applications (Sourceless Deploy)" is available in both Standard and Enterprise Edition.
Sourceless deployment is not an automated process. You manually run the cfcompile script and then you manually deploy the compiled .cfm / .cfc files to a new CF server.
You could have your ColdFusion application create and populate all the necessary database tables at first startup I suppose.
If you just want to ship a 'toy' database, you could use PointBase (the CFMX samples ship in an included PointBase database) on some platforms or Access on Windows.
We are a CF shop with our own SAAS apps. I have a prospective client that wants to host their website (and our applications) on their own servers. From what I can tell, the only reason that they want to do this is so that the IT guy can justify his salary (another discussion). He also used to be a web design teacher at a college, so the fear of him reselling our code is great (even with a legal agreement).
Anyhow, I would like to give them a J2EE option, that they could install in their Windows environment. Our applications use MySQL or MS SQL, and I have no problem giving him the databases. We don't really own enterprise, but I am OK with purchasing it if we need to.
So would this work?:
1. we get enterprise 2. we use our enterprise serial to create WAR/EAR files. 3.Customer installs our databases. 4. we use customers SQL logins to test the application remotely. 5. we create the war/ear files and send it to them. 6. we get paid and sleep easy.
Can it be done?
There's also Railo which has a free, unrestricted edition which should allow you to do a WAR deployment. Railo is about to release 3.1 as open source (currently 3.0 is available as both free and enterprise editions) via JBoss.org - that may be a "selling point" if the client doesn't like CF.


