bluedragon 7.0 new possibilities for cfml applications josh adams
TRANSCRIPT
BlueDragon 7.0New Possibilities for CFML Applications
BlueDragon 7.0New Possibilities for CFML Applications
Josh AdamsJosh Adams
New Atlanta Confidential. | 2© Copyright 1997-2007
About MeAbout Me
Josh [email protected]
(678) 256-5395
Developer Evangelist for BlueDragon at New Atlanta
CFML Developer
Past President of the Atlanta ColdFusion User Group, Inc. and general big fan of CFUGs and the CFML community!
New Atlanta Confidential. | 3© Copyright 1997-2007
Your QuestionsYour Questions
Please ask questions!Feel free to ask at any time during the presentation
I will address as many questions as possible
Due to time constraints some questions may go unanswered during the presentation
If I do not answer your question during the presentation, I will answer you as soon as possible
New Atlanta Confidential. | 4© Copyright 1997-2007
AgendaAgenda
Introduction to New Atlanta and BlueDragon
BlueDragon 7.0 Features
BlueDragon 7.0 Demos
BlueDragon Future
Obtaining, Using, and Licensing BlueDragon
Q&A
BlueDragon Server JX License Giveaway (Maybe)
Afterparty Information
Further Info
New Atlanta Confidential. | 5© Copyright 1997-2007
Introduction to New AtlantaWeb Application Server Technology
Experts
Introduction to New AtlantaWeb Application Server Technology
Experts
BlueDragon is our 3rd generation web application platform
1. FileMaker Web Companion (Lasso)
Web Publisher for FileMaker Pro databases
Built in 1995, sold to Apple in 1997
Over 10 Million licenses since initial release
2. ServletExec - Servlet/JSP Container
First servlet engine on the market for Microsoft IIS and Netscape Enterprise Server with Servlet 1.0 Specification support
Charter members of Servlet and JSP Expert Groups (Sun's JCP)
Tens of thousands of licenses since 1997
3. BlueDragon
CFML Runtime with native deployment and integration on J2EE and .NET platforms
New Atlanta has over 14,000 customers in 85+ countries
New Atlanta Confidential. | 6© Copyright 1997-2007
New Atlanta CustomersNew Atlanta Customers
Land's End
Over $1 billion in e-sales
Myspace.com
Over 110 million users
ESRI – ArcIMS: web-based GIS
ServletExec ships on ArcIMS CD
American Airlines
Worldwide reporting of safety incidents
Yahoo! Resumix
hotjobs.yahoo.com
New Atlanta Confidential. | 7© Copyright 1997-2007
Our Largest Deployment:MySpace Surpasses Yahoo – Nov
2006
Our Largest Deployment:MySpace Surpasses Yahoo – Nov
2006
1.3+ billion!
145+ million!
40 billion!
New Atlanta Confidential. | 8© Copyright 1997-2007
What BlueDragon Is & DoesWhat BlueDragon Is & Does
CFML ≠ ColdFusionCFML is a coding language
CFML = ColdFusion Markup Language
ColdFusion is softwareColdFusion = Adobe's CFML application server / CFML engine
ColdFusion is Adobe's deployment platform for CFML applications
BlueDragon is softwareBlueDragon = New Atlanta's CFML application server / CFML engine
BlueDragon is New Atlanta's deployment platform for CFML applications
You do not need ColdFusion to use BlueDragon!
New Atlanta Confidential. | 9© Copyright 1997-2007
BlueDragon BackgroundBlueDragon Background
HistoryOldest Java-based CFML application server: created in 1998 by a consultancy in Scotland
Available commercially for 5 years: purchased and productized by New Atlanta in 2002
Platform-agnostic for 2 years: .NET edition released in 2005
New Atlanta Confidential. | 10© Copyright 1997-2007
Microsoft PartnershipMicrosoft Partnership
New Atlanta is a Microsoft Gold Certified Partner1 of only approximately 150 ISV Gold Certified Partners
BlueDragon.NET is a Microsoft Certified Product (Windows 2003 Server)
BlueDragon.NET is a .NET Connected product
BlueDragon is a SQL Server 2005 Frontrunner
New Atlanta Confidential. | 11© Copyright 1997-2007
BEA licenses BlueDragon from New AtlantaSpecial BEA-only version
Rebranded as a BEA product: BlueDragon, BEA WebLogic Edition
Runs on any O/S BEA WebLogic Server 8.1 or later is available on
Supported directly by BEA's world-class support organization
Offered via BEA's download center
BlueDragon, BEA WebLogic EditionLaunched in April 2006
BEA PartnershipBEA Partnership
New Atlanta Confidential. | 12© Copyright 1997-2007
BlueDragon EditionsBlueDragon Editions
BlueDragon J2EE
BlueDragon Server & Server JX
BlueDragon .NET
Standalone(including "Free version")
Native J2EEAny J2EE app server
Native .NETNo need to write
ASP.NET.
Direct .NET platform advantages within your
CFML applications
New Atlanta Confidential. | 13© Copyright 1997-2007
BlueDragon FeaturesBlueDragon Features
See the "BlueDragon 7.0 CFML Enhancements" document on the New Atlanta website for full details!
Includes both information on new BlueDragon 7.0 enhancements and enhancements present in previous BlueDragon releases
Documents such long-existing BlueDragon CFML tags as CFIMAP, CFIMAGE, CFFORWARD, CFTHROTTLE, and CFZIP
Documents such long-existing BlueDragon CFML functions as Render(), QuerySort(), and ListRemoveDuplicates()
Documents long-existing CFC enhancements (serialization, duplication, more!)
Documents long-existing enhancements to numerous CFML tags and functions (new attributes/arguments and attribute/argument values)
New Atlanta Confidential. | 14© Copyright 1997-2007
BlueDragon 7.0 FeaturesBlueDragon 7.0 Features
For additional information, see the "What's New in BlueDragon 7.0" document on the New Atlanta website
All features in all editions unless noted
New Atlanta Confidential. | 15© Copyright 1997-2007
BlueDragon 7.0 FeaturesNon-CFML-related
BlueDragon 7.0 FeaturesNon-CFML-related
Performance enhancements
Support for Java 5.0 and 6.0Note: supported on all versions of BlueDragon that are Java-based
Support for MySQL 5.0, including stored procedures
Earlier versions of MySQL are also still supported
New Atlanta Confidential. | 16© Copyright 1997-2007
BlueDragon 7.0 FeaturesNew CFML Language Elements
BlueDragon 7.0 FeaturesNew CFML Language Elements
CFTHREAD, CFJOIN, and related tags and functions
NULL keyword and IsNull() functions
New Atlanta Confidential. | 17© Copyright 1997-2007
BlueDragon 7.0 FeaturesNew CFML EnhancementsBlueDragon 7.0 Features
New CFML Enhancements
CACHEDUNTILCHANGE attribute for CFQUERYNote: supported exclusively on BlueDragon .NET when used with SQL Server 2005
BACKGROUND attribute for CFQUERY
TYPE attribute for CFCOMPONENTUse of value "abstract" creates an abstract CFC
Use of value "interface" creates a CFC interface
Multiple language support in CFSEARCH
Word and PDF document support in CFSEARCH
New Atlanta Confidential. | 18© Copyright 1997-2007
BlueDragon 7.0 FeaturesCFMX 6-level CFML Language
Elements
BlueDragon 7.0 FeaturesCFMX 6-level CFML Language
Elements
CFCHARTNew BlueDragon 7.0 features: CFCHARTLEGEND, CFCHARTTITLE, CFCHARTIMAGE, and more!
New Atlanta Confidential. | 19© Copyright 1997-2007
BlueDragon 7.0 FeaturesCFMX 7-level CFML Language
Elements
BlueDragon 7.0 FeaturesCFMX 7-level CFML Language
Elements
Application.cfcNew BlueDragon 7.0 feature: onClientStart event handler
New BlueDragon 7.0 feature: onMissingTemplate event handler
CFDOCUMENTNew BlueDragon 7.0 feature: PNG and JPEG output formats
New BlueDragon 7.0 feature: multi-threaded on all editions
Note: not supported on BlueDragon Server
CFTIMERSOAP-related functionsMiscellaneous tag attributes, functions, and function arguments
New Atlanta Confidential. | 20© Copyright 1997-2007
CFMX 7 Features Not in BlueDragon 7.0
CFMX 7 Features Not in BlueDragon 7.0
Event gatewaysBD 7.0 has CFTHREAD which can accomplish many of the same tasks
Flash generation (Flash Paper, Flash Forms, Flash chart format)
Reporting services (Report Builder, CFREPORT)
New Atlanta Confidential. | 21© Copyright 1997-2007
"Scorpio" Features vs.BlueDragon 7.0 Features
"Scorpio" Features vs.BlueDragon 7.0 Features
.NET IntegrationSupported by BlueDragon .NET natively; BlueDragon .NET provides true integration with .NET
It appears Scorpio uses Java-to-.NET bridge technology
CFIMAGEAlready supported by BlueDragon (and has been for some time)
Scorpio enhancements do more than current CFIMAGE in BlueDragon; expect similar enhancements in a soon-to-follow BlueDragon release
New Atlanta Confidential. | 22© Copyright 1997-2007
Multi-threaded ProgrammingMulti-threaded Programming
Multi-threaded programming is the ability to have two or more threads executing at the same time
You're already doing multi-threaded programming!
Every request runs on a separate thread
Multiple requests run simultaneously
Now you have the ability to create your own threads that run concurrently with the request threads using CFTHREAD and its associated tags and functions!
New Atlanta Confidential. | 23© Copyright 1997-2007
CFTHREAD SyntaxCFTHREAD Syntax
<cfthread>…[Your CFML goes here]…
</cfthread>
New Atlanta Confidential. | 24© Copyright 1997-2007
Single-threaded Code ExecutionSingle-threaded Code Execution
<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cf_whatever>…<cfwhatever>…
New Atlanta Confidential. | 25© Copyright 1997-2007
Multi-threaded Code ExecutionMulti-threaded Code Execution
<cf_whatever>………<cf_whatever>
<cfthread … >……<cf_whatever>……
</cfthread>
<cf_whatever>……<cf_whatever>
New Atlanta Confidential. | 26© Copyright 1997-2007
Thread Details: Thread LifeThread Details: Thread Life
Thread lives for as long as it takes to execute the CFTHREAD body
CFTHREAD can outlive the request thread that created it or it can finish before the request thread is finished
Request thread can wait (as necessary) for a generated thread to finish
This is called "joining" the thread
Use the CFJOIN tag or the ThreadJoin() function
Request thread can check whether or not a thread is running
Use the ThreadIsAlive() function
New Atlanta Confidential. | 27© Copyright 1997-2007
Joining a ThreadJoining a Thread
<cfthread name="Variables.myThread">…
</cfthread>
<!--- join Variables.myThread ---><cfjoin thread="Variables.myThread">
<!--- join Variables.myThread ---><cfset ThreadJoin(Variables.myThread)>
New Atlanta Confidential. | 28© Copyright 1997-2007
Checking for a Running ThreadChecking for a Running Thread
<cfthread name="Variables.myThread">…
</cfthread>
<cfif ThreadIsAlive(Variables.myThread)> myThread is alive!<cfelse> myThread has stopped</cfif>
New Atlanta Confidential. | 29© Copyright 1997-2007
Thread Details: Accessing DataThread Details: Accessing Data
You can pass data to a threadUse attribute name/value pairs
You can access some variable scopes within a thread
Application scope
Server scope
New Atlanta Confidential. | 30© Copyright 1997-2007
Passing Data to a ThreadPassing Data to a Thread
<cfset application.dsn="myDatasource">
<cfthread firstName="John" lastName="Smith">
<cfquery datasource="#application.dsn#"> INSERT INTO Employees ( FirstName, LastName ) VALUES ( '#attributes.firstName#', '#attributes.lastName#' ) </cfquery>
</cfthread>
New Atlanta Confidential. | 31© Copyright 1997-2007
Accessing Shared Scopes in a Thread
Accessing Shared Scopes in a Thread
<cfapplication ... ><cfset Application.myValue = "thread">
<cfthread name="Variables.myThread"> <cfif Application.myValue EQ "thread"> <cfset Application.myValue = "request"> </cfif></cfthread>
<!--- join Variables.myThread ---><cfjoin thread="Variables.myThread">
<cfoutput> #Application.myValue#</cfoutput>
New Atlanta Confidential. | 32© Copyright 1997-2007
Thread Details: Returning DataThread Details: Returning Data
You can return data from a threadUse the CFRETURN tag
Use output="true" in the CFTHREAD tag then generate output within the thread
New Atlanta Confidential. | 33© Copyright 1997-2007
Returning Data from a ThreadReturning Data from a Thread
<cfthread name="Variables.myThread" output="true"> <h2>Running within myThread</h2> <cfreturn "Hello, World!"></cfthread>
<!--- join Variables.myThread ---><cfjoin thread="Variables.myThread">
<cfoutput> #Variables.myThread.generatedContent# #Variables.myThread.returnVariable#</cfoutput>
New Atlanta Confidential. | 34© Copyright 1997-2007
Returning Data from a ThreadReturning Data from a Thread
<cfset Variables.myVar = 12>
Name = "myVar"Value = 12
Requested PageVariables Scope
Threads
<cfthread name="Variables.myThr">
<cfjoin thread="Variables.myThr">
<cfoutput>#Variables.myThr.returnVariable#
</cfoutput>
<cf_whatever>
</cfthread>Name ="Variables.myThr"
<cfreturn "some string">
Name = "myThr"
Name = "returnVariable"Value = "some string"
New Atlanta Confidential. | 35© Copyright 1997-2007
More Thread-related Tags/Functions
More Thread-related Tags/Functions
GetAllThreads() – returns an array of thread variables representing all actively running threads created using CFTHREAD
ThreadRunningTime() – returns the amount of time in milliseconds that the thread has been running
ThreadStop() – halts execution of the specified thread
CFINTERRUPT/ThreadInterrupt() – "wakes up" a thread "sleeping" due to CFPAUSE tag
New Atlanta Confidential. | 36© Copyright 1997-2007
Multi-Threaded CFML DemoMulti-Threaded CFML Demo
Traditional CFML: single-threaded CFML codeSingle stock quote obtained via web service
4 stock quotes obtained via web service in series
BlueDragon 7.0 Feature: multi-threaded CFML code
4 stock quotes obtained via web service in parallel
New Atlanta Confidential. | 37© Copyright 1997-2007
Multi-Threaded CFML DemoMulti-Threaded CFML Demo
4 web service calls in single-threaded CFML code (in series)
4 web service calls in multi-threaded CFML code (in parallel)
KO BEAS MSFT RHAT
KO
MSFT
BEAS
RHAT
New Atlanta Confidential. | 38© Copyright 1997-2007
BlueDragon 7.0 DemosBlueDragon 7.0 Demos
CFTHREAD and CFJOINConcurrent processing (stock ticker demo)
Asynchronous background thread (stock ticker demo)
"Fire-and-forget" (logging demo)
CFQUERY enhancementsBACKGROUND attribute (logging demo)
CACHEDUNTILCHANGE attribute (employee demo)
"null" keyword and IsNull functionDatabase null (employee demo)
CFC null (employee demo)
New Atlanta Confidential. | 39© Copyright 1997-2007
BlueDragon 7.0 Demos (cont.)BlueDragon 7.0 Demos (cont.)
CFC enhancementsAbstract CFCs and CFC interfaces (light source demo)
Application.cfc enhancementsonMissingTemplate() method (demo)
CFDOCUMENT enhancementsSRC attribute (web page demos)
PNG and JPEG output formats (web page demos)
CFCHART enhancementsCFCHARTRANGEMARKER, CFCHARTTITLE (demo)
CFCHARTLEGEND, CFCHARTIMAGE (demo)
New Atlanta Confidential. | 40© Copyright 1997-2007
BlueDragon FutureBlueDragon Future
Expect a minor release within a few months64-bit Windows and Linux
Expect another major release by early 2008Windows Vista and IIS 7 integration
Direct AJAX integration
CFIMAGE enhancements
Administration and configuration enhancements
Features inspired by those in CFMX 8
We are investigating creation of a Visual Studio plug-in
New Atlanta Confidential. | 41© Copyright 1997-2007
Obtaining BlueDragonObtaining BlueDragon
Download from New Atlanta's website
New Atlanta Confidential. | 42© Copyright 1997-2007
Using BlueDragonUsing BlueDragon
BlueDragon ServerTrial, development/testing, and production: free and unlimited use for an unlimited time period (subject to licensing restrictions)
All other versionsTrial: free and unlimited use for 30 days
Development/testing
Localhost: free and unlimited use for an unlimited time period
External connections: valid license key required for unlimited use for an unlimited time period
Production: valid license key required for unlimited use for an unlimited time period
New Atlanta Confidential. | 43© Copyright 1997-2007
Licensing BlueDragonLicensing BlueDragon
Purchase license keys from New Atlanta's online store
See the TrueBlue Partner Program Overview on New Atlanta's website
Opportunities for integrated service providers
Create a custom installer for your app!
Opportunities for systems integrators
Opportunities for hosting companies
New Atlanta Confidential. | 44© Copyright 1997-2007
Q&AQ&A
Got questions? Ask away!
New Atlanta Confidential. | 45© Copyright 1997-2007
Software GiveawaySoftware Giveaway
Let's give away some software (if doing so is supported by attendance numbers)!
One winner will receive a NFR license for BlueDragon Server JX 7.0
New Atlanta Confidential. | 46© Copyright 1997-2007
AfterpartyAfterparty
Brought to you this month by New Atlanta!
New Atlanta Confidential. | 47© Copyright 1997-2007
Further InformationFurther Information
See New Atlanta's websitehttp://www.newatlanta.com
Contact [email protected]
(678) 256-5395