New Atlanta Communications, LLC - MD ColdFusion User's Group

jellytrickInternet and Web Development

Nov 10, 2013 (3 years and 9 months ago)

144 views

BlueDragon 7.0


New Possibilities for
CFML Applications

Josh Adams

New Atlanta Confidential. |

1

© Copyright 1997
-
2007

About Me

Josh Adams

josh@newatlanta.com


(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. |

2

© Copyright 1997
-
2007

Your 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. |

3

© Copyright 1997
-
2007

Agenda

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. |

4

© Copyright 1997
-
2007

Introduction to New Atlanta

Web 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. |

5

© Copyright 1997
-
2007

New 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. |

6

© Copyright 1997
-
2007

Our Largest Deployment:

MySpace Surpasses Yahoo


Nov 2006

1.3+ billion!

145+ million!

40 billion!

New Atlanta Confidential. |

7

© Copyright 1997
-
2007

What BlueDragon Is & Does

CFML


ColdFusion

CFML is a coding language

CFML = ColdFusion Markup Language

ColdFusion is software

ColdFusion = Adobe's CFML application server / CFML engine

ColdFusion is Adobe's deployment platform for CFML applications

BlueDragon is software

BlueDragon = 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. |

8

© Copyright 1997
-
2007

BlueDragon Background

History

Oldest 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. |

9

© Copyright 1997
-
2007

Microsoft Partnership

New Atlanta is a Microsoft Gold Certified Partner

1 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. |

10

© Copyright 1997
-
2007

BEA licenses BlueDragon from New Atlanta

Special 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 Edition

Launched in April 2006

BEA Partnership

New Atlanta Confidential. |

11

© Copyright 1997
-
2007

BlueDragon Editions

BlueDragon J2EE

BlueDragon Server & Server JX

BlueDragon .NET

Standalone

(including "Free version")

Native J2EE

Any J2EE app server

Native .NET

No need to write ASP.NET.


Direct .NET
platform

advantages within your
CFML applications

New Atlanta Confidential. |

12

© Copyright 1997
-
2007

BlueDragon 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. |

13

© Copyright 1997
-
2007

BlueDragon 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. |

14

© Copyright 1997
-
2007

BlueDragon 7.0 Features

Non
-
CFML
-
related

Performance enhancements

Support for Java 5.0 and 6.0

Note: 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. |

15

© Copyright 1997
-
2007

BlueDragon 7.0 Features

New CFML Language Elements

CFTHREAD, CFJOIN, and related tags and functions

NULL keyword and IsNull() functions

New Atlanta Confidential. |

16

© Copyright 1997
-
2007

BlueDragon 7.0 Features

New CFML Enhancements

CACHEDUNTILCHANGE attribute for CFQUERY

Note: supported exclusively on BlueDragon .NET when used with
SQL Server 2005

BACKGROUND attribute for CFQUERY

TYPE attribute for CFCOMPONENT

Use 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. |

17

© Copyright 1997
-
2007

BlueDragon 7.0 Features

CFMX 6
-
level CFML Language Elements

CFCHART

New BlueDragon 7.0 features: CFCHARTLEGEND, CFCHARTTITLE,
CFCHARTIMAGE, and more!

New Atlanta Confidential. |

18

© Copyright 1997
-
2007

BlueDragon 7.0 Features

CFMX 7
-
level CFML Language Elements

Application.cfc

New BlueDragon 7.0 feature: onClientStart event handler

New BlueDragon 7.0 feature: onMissingTemplate event handler

CFDOCUMENT

New 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

CFTIMER

SOAP
-
related functions

Miscellaneous tag attributes, functions, and function
arguments

New Atlanta Confidential. |

19

© Copyright 1997
-
2007

CFMX 7 Features Not in BlueDragon 7.0

Event gateways

BD 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. |

20

© Copyright 1997
-
2007

"Scorpio" Features vs.

BlueDragon 7.0 Features

.NET Integration

Supported by BlueDragon .NET
natively
; BlueDragon .NET provides
true integration with .NET

It appears Scorpio uses Java
-
to
-
.NET bridge technology

CFIMAGE

Already 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. |

21

© Copyright 1997
-
2007

Multi
-
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. |

22

© Copyright 1997
-
2007

CFTHREAD Syntax

<cfthread>





[Your CFML goes here]




</cfthread>

New Atlanta Confidential. |

23

© Copyright 1997
-
2007

Single
-
threaded Code Execution

<cf_whatever>



<cf_whatever>



<cf_whatever>



<cf_whatever>



<cf_whatever>



<cf_whatever>



<cf_whatever>



<cf_whatever>



<cfwhatever>



New Atlanta Confidential. |

24

© Copyright 1997
-
2007

Multi
-
threaded Code Execution

<cf_whatever>







<cf_whatever>


<cfthread … >








<cf_whatever>







</cfthread>


<cf_whatever>





<cf_whatever>

New Atlanta Confidential. |

25

© Copyright 1997
-
2007

Thread 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. |

26

© Copyright 1997
-
2007

Joining a Thread

<cfthread name="Variables.myThread">




</cfthread>


<!
---

join Variables.myThread
---
>

<cfjoin thread="Variables.myThread">


<!
---

join Variables.myThread
---
>

<cfset ThreadJoin(Variables.myThread)>

New Atlanta Confidential. |

27

© Copyright 1997
-
2007

Checking for a Running Thread

<cfthread name="Variables.myThread">




</cfthread>


<cfif ThreadIsAlive(Variables.myThread)>


myThread is alive!

<cfelse>


myThread has stopped

</cfif>

New Atlanta Confidential. |

28

© Copyright 1997
-
2007

Thread Details: Accessing Data

You can pass data to a thread

Use attribute name/value pairs

You can access some variable scopes within a thread

Application scope

Server scope

New Atlanta Confidential. |

29

© Copyright 1997
-
2007

Passing 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. |

30

© Copyright 1997
-
2007

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. |

31

© Copyright 1997
-
2007

Thread Details: Returning Data

You can return data from a thread

Use the CFRETURN tag

Use output="true" in the CFTHREAD tag then generate output within
the thread

New Atlanta Confidential. |

32

© Copyright 1997
-
2007

Returning 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. |

33

© Copyright 1997
-
2007

Returning Data from a Thread

<cfset Variables.myVar = 12>

Name = "myVar"

Value = 12

Requested Page

Variables 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. |

34

© Copyright 1997
-
2007

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. |

35

© Copyright 1997
-
2007

Multi
-
Threaded CFML Demo

Traditional CFML: single
-
threaded CFML code

Single 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. |

36

© Copyright 1997
-
2007

Multi
-
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. |

37

© Copyright 1997
-
2007

BlueDragon 7.0 Demos

CFTHREAD and CFJOIN

Concurrent processing (stock ticker demo)

Asynchronous background thread (stock ticker demo)

"Fire
-
and
-
forget" (logging demo)

CFQUERY enhancements

BACKGROUND attribute (logging demo)

CACHEDUNTILCHANGE attribute (employee demo)

"null" keyword and IsNull function

Database null (employee demo)

CFC null (employee demo)

New Atlanta Confidential. |

38

© Copyright 1997
-
2007

BlueDragon 7.0 Demos (cont.)

CFC enhancements

Abstract CFCs and CFC interfaces (light source demo)

Application.cfc enhancements

onMissingTemplate() method (demo)

CFDOCUMENT enhancements

SRC attribute (web page demos)

PNG and JPEG output formats (web page demos)

CFCHART enhancements

CFCHARTRANGEMARKER, CFCHARTTITLE (demo)

CFCHARTLEGEND, CFCHARTIMAGE (demo)

New Atlanta Confidential. |

39

© Copyright 1997
-
2007

BlueDragon Future

Expect a minor release within a few months

64
-
bit Windows and Linux

Expect another major release by early 2008

Windows 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. |

40

© Copyright 1997
-
2007

Obtaining BlueDragon

Download from New Atlanta's website

New Atlanta Confidential. |

41

© Copyright 1997
-
2007

Using BlueDragon

BlueDragon Server

Trial, development/testing, and production: free and unlimited use
for an unlimited time period (subject to licensing restrictions)

All other versions

Trial: 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. |

42

© Copyright 1997
-
2007

Licensing 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. |

43

© Copyright 1997
-
2007

Q&A

Got questions? Ask away!

New Atlanta Confidential. |

44

© Copyright 1997
-
2007

Software 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. |

45

© Copyright 1997
-
2007

Afterparty

Brought to you this month by New Atlanta!

New Atlanta Confidential. |

46

© Copyright 1997
-
2007

Further Information

See New Atlanta's website

http://www.newatlanta.com


Contact me

josh@newatlanta.com

(678) 256
-
5395