Register Here
  Call For Papers
  Hotel Info
  Power Panels
Untitled Document
2018 Platinum Sponsor

2018 Gold Sponsor

2018 Keynote Sponsor

2018 Tech Sponsor

2018 Pavilion Sponsor

2018 Partners

2018 Exhibitors

Untitled Document
2018 Media Sponsors

Untitled Document
2017 West
Premium Sponsors



Untitled Document
2017 West
Keynote Sponsor

Untitled Document
2017 West Exhibitors


Untitled Document
2017 West JETRO ×
Six Prefectures
of Japan
Pavilion Exhibitors

Untitled Document
2017 West Media Sponsors

Untitled Document
2017 East
Premium Sponsors





Untitled Document
2017 East Exhibitors

Untitled Document
2017 East Media Sponsors

Untitled Document
  Think Big – Now Think Even Bigger
  Join Us at Internet of Things at Cloud Expo, November 11-13,
at the Javits Center!

The Internet of Things (IoT) is the most profound change in personal and enterprise IT since the creation of the Worldwide Web more than 20 years ago.

All major researchers estimate there will be tens of billions devices - computers, smartphones, tablets, and sensors - connected to the Internet by 2020. This number will continue to grow at a rapid pace for the next several decades.

With major technology companies and startups seriously embracing IoT strategies, now is the perfect time to attend Internet of Things at Cloud Expo in New York City. Learn what is going on, contribute to the discussions, and ensure that your enterprise is as "IoT-Ready" as it can be!

Delegates to Internet of Things at Cloud Expo will be able to attend eight separate, information-packed tracks:

  • Enterprise Cloud
  • Digital Transformation
  • The API Enterprise | Mobility & Security
  • DevOps | Containers & Microservices
  • Cognitive Computing | AI, ML, DL
  • Big Data | Analytics
  • IoT | IIoT | Smart Cities
  • Hot Topics | FinTech | WebRTC

There are 120 breakout sessions in all, with Keynotes, General Sessions, and Power Panels adding to three days of incredibly rich presentations and content.

We'll see you in New York!

Day 3 Keynote at @ThingsExpo | Chris Matthieu, CTO of Octoblu
In his keynote at @ThingsExpo, Chris Matthieu, Director of IoT Engineering at Citrix and co-founder and CTO of Octoblu, focused on building an IoT platform and company. He provided a behind-the-scenes look at Octoblu's platform, business, and pivots along the way (including the Citrix acquisition of Octoblu).
  Themes & Topics to Be Discussed

Consumer IoT
• Wearables
• Smart Appliances
• Smart Cars
• Smartphones 2.0
• Automation
• Smart Travel
• Personal Fitness
• Health Care
• Personalized Marketing
• Customized Shopping
• Personal Finance
• The Digital Divide
• Mobile Cash & Markets
• Games & The IoT
• The Future of Education
• Virtual Reality

Enterprise IoT
• The Business Case for
x IoT
• Smart Grids
• Smart Cities
• Smart Transportation
• The Smart Home
• M2M
• Authentication/Security
• Wiring the IoT
• The Internet of
x Everything
• Digital Transformation
x of Enterprise IT
• Agriculture
• Transportation
• Manufacturing
• Local & State
x Government
• Federal Government

IoT Developers | WebRTC Summit
• Eclipse Foundation
• Cloud Foundry
• Linux Containers
• Node-Red
• Open Source Hardware
• Ajax and the IoT
• Leveraging SOA
• Multi-Cloud IoT
• Evolving Standards
• WebSockets
• Security & Privacy
x Protocols
• GPS & Proximity
x Services
• Bluetooth/RFID/etc
• Nest Labs

The Top Keynotes, the Best Sessions, a Rock Star Faculty and the Most Qualified Delegates of ANY Internet of Things Event!

The future of computing lies in these things. As computing takes a much more active role in our lives it will at the same time become much more invisible. Internet of Things Expo will address the challenges in getting from where we are today to this future.
The high-energy event is a must-attend for senior technologists from CEOs on down – including CIOs, CTOs, directors of infrastructure, VPs of technology, IT directors and managers, network and storage managers, network engineers, enterprise architects, and communications and networking specialists.

@ThingsExpo Power Panel | The World's Many IoTs: Which Are the Most Important?
The Internet of Things is clearly many things: data collection and analytics, wearables, Smart Grids and Smart Cities, the Industrial Internet, and more. Cool platforms like Arduino, Raspberry Pi, Intel's Galileo and Edison, and a diverse world of sensors are making the IoT a great toy box for developers in all these areas. In this Power Panel at @ThingsExpo, panelists discussed what things are the most important, which will have the most profound effect on the world, and what should we expect to see over the next couple of years.
Benefits of Attending the Three-Day Technical Program
  LEARNexactly why Internet of Things is relevant today from an economic, business and technology standpoint.
  HEAR first-hand from industry experts the common issues and requirements for creating a platform for the Internet of Things.
  SEE what new tools and approaches the Internet of Things requires.
  DISCOVER how to drive a distributed approach to the Internet of Things, where applications move to the data.
  FIND OUThow the vast volumes of new data produced by the Internet of Things provides a valuable new source of business insight through advanced analytical techniques.
  MASTER how the ongoing development of smart cities, cars, and houses will enhance connectivity infrastructure.
Lunch Power Panel | Microservices & IoT- Moderated by Jason Bloomberg
In this Power Panel at @DevOpsSummit, moderated by Jason Bloomberg, president of Intellyx, panelists Roberto Medrano, Executive Vice President at Akana; Lori MacVittie, Evangelist for F5 Networks; and Troy Topnik, ActiveState's Technical Product Manager; and Otis Gospodnetic, founder of Sematext; peeled away the buzz and discuss the important architectural principles behind implementing IoT solutions for the enterprise. As remote IoT devices and sensors become increasingly intelligent, they become part of our distributed cloud environment, and we must architect and code accordingly. At the very least, you'll have no problem filling in your buzzword bingo cards.

Undocumented ColdFusion MX 1.0
Undocumented ColdFusion MX 1.0

Discovering undocumented features in your favorite application is always something of a thrill. This is especially true when those features expose little nuggets of functionality that you can leverage in your own code. And so, as promised in my last column, I'm going to introduce you to the factory, a set of internal ColdFusion MX services exposed via Java objects and APIs.

The Factory
When most of us think of ColdFusion we instinctively think of CFML, the ColdFusion Markup Language. This is understandable: after all, it's CFML that we spend most of our time with.

But ColdFusion is actually much more. It's also a collection of application services and runtime services, and has to be. When you build a dynamic SQL query statement something must process that and build the query. When you execute queries something needs to track that information in order to display debug output. When you use <CFCHART> an entire charting engine must be present to execute your request. The list goes on and on.

ColdFusion 5 (and earlier) never exposed these core services. They were built into ColdFusion and were for the most part inaccessible. ColdFusion MX changes this quite a bit. Built on underlying Java code and Java openness, CFMX includes all sorts of services that perform all sorts of processing (starting with the examples I just mentioned).

For example, consider debugging. Ever since ColdFusion 1.0 days, debug output has been appended to the bottom of generated pages. CFMX still generates the same debug output, but it also offers a new DHTML-based dockable debug screen (which is much easier to use). If you've ever dug around in the ColdFusion directory structure, you'd have found a directory named debug (under CFMX's WEB-INF directory). In it are three CFM files:

  • classic.cfm: ColdFusion code that emulates classic ColdFusion debug output, appended to the bottom of each page
  • dockable.cfm: ColdFusion code that generates the new DHTML-based debugging
  • dreamweaver.cfm: Used by Dreamweaver MX to obtain debug content for displaying in Dreamweaver's own Debug tab

In other words, unlike CF5 and earlier, CFMX doesn't automatically append debug information to pages. Rather, it collects that information and exposes it via APIs so that regular CFML code can be used to render it as needed. The debugging appended to the bottom of your generated code is placed there by CFML code that emulates the behavior of earlier versions of ColdFusion. You could create your own debug output formats (modeled on the ones in the debug directory) and then save them in this directory so that the ColdFusion Administrator could see them and make them available as debugging formats.

And talking about the ColdFusion Administrator, it too is good old CFML. How does it get to validate datasources, set SMTP servers, and more? Answer: it uses APIs exposed by ColdFusion and makes calls to them.

Which brings us back to the factory and integrated services. The factory is a set of objects that expose all sorts of integrated services. It's used by the just-mentioned debug pages, as well as by the ColdFusion Administrator. You can use it too.

A Visit to the Factory
Intrigued? You should be. This starts to be lots of fun very quickly. The factory is a set of Java objects, so interaction with it is via the <CF OBJECT> tag (or the CreateObject() function if using <CFSCRIPT>). Look at this code:


<!--- Access factory --->

This <CFOBJECT> creates a local object (a ColdFusion object) named factory that can then be used to access factory services. You can execute the foregoing line of code as is. It will work (in CFMX, not in earlier versions), but won't actually do anything with the instantiated object. To see what's inside the factory, you can simply <CFDUMP> the object like this:


<!--- Access factory --->
<!--- Dump factory contents --->
<CFDUMP VAR="#factory#">

Execute this code and you'll see a dump of a complex nested structure containing objects, methods, and more. Everything you see on your screen is accessible to you (if you can work out what they do, what parameters they expect, and what assumptions they make - hey, that's what makes this fun!).

Accessing Factory Services
Now that you know how to access the factory, the next thing is to learn how to access specific services. Look at the top-level objects in the previous <CFDUMP>. You'll see names like DataSourceService and DebuggingService. To access any particular service just use the appropriate get method. For example, the getDataSourceService() method returns the DataSourceService, and getDebuggingService() returns the DebuggingService. To access the DebuggingService you could do the following:


<!--- Get "factory" --->
<!--- Get datasource service --->
<CFSET dsService=factory.

dsService then provides access to the DataSourceService itself. You can <CF DUMP VAR="#disservice#"> to see what it contains (it'll be a subset of the prior <CFDUMP>).

Using the Datasource Service
For our first example we'll use the datasource service. Suppose you want to programmatically validate that a datasource was valid. There's no CFML function to do this, but it must be doable. After all, the ColdFusion Administrator does it! Well, it is indeed doable, using the factory (just as the ColdFusion Administrator does).

Listing 1 is an example I used last month when discussing UDFs, and as promised, the following is the explanation of how it works.

VerifyDSN() does just that: you pass it the name of a datasource and it'll return true if that datasource can be verified (as usable) or false if not. VerifyDSN() accepts one required parameter - the name of the datasource to be verified. Let's walk through the code together.

The function and required argument are defined using <CFFUNCTION> and <CFARGUMENT>. (These were explained in the August column [Vol. 4, issue 8]).

Next, two local variables are defined: dsService will contain the datasource service object, and result is the return value (which is initialized to true - kind of innocent until proved guilty).

Then a try/catch block is defined. One of the things you'll learn very quickly about the methods exposed by the factory is that they don't throw pretty error messages or let you know when you messed up passing an argument. You need to use them exactly as intended or they will throw error messages. More on this in a moment.

Next comes the factory access code I showed you earlier.

The actual DSN validation is performed by the verifyDatasource() method, which takes the name of a datasource as a parameter and returns true if it can be validated and false if not. Whatever verifyDatasource() returns is saved to the result variable.

verifyDatasource() requires that a valid datasource name be provided; if the name doesn't exist, an error will be thrown. There are methods that return a list of datasources, so the function could first have done that and checked the name to see if it was valid, but why bother? We already trap errors with try/catch handling. If verify Datasource() throws any error at all (including an error because the specified datasource didn't exist), we'll just treat it as a false, which is exactly what the <CFCATCH> block does.

And finally, <CFRETURN> returns result, which will be true if the datasource can be validated, or false if not (either because the validation failed or because an error was thrown).

VerifyDSN() can now be used just like any other function:



If you do indeed want to obtain a list of datasources, the getDatasources() method can help. Listing 2 is an example.

This time getDatasources() is used to obtain a full datasource list. This method returns a complex structure, the top level of which contains the datasource names, and beneath are complete datasource details. As all we want are the names, the StructKeyToArray() function is used to return an array containing the top-level key names - in other words, an array of datasource names. The names are then dumped in a simple HTML unordered list.

Using the Debugging Service
Of particular interest is the debugging service, the service used by the debugging engine in ColdFusion. This is what drives the debug templates referred to previously.

The debugging service doesn't generate any output. Rather, it keeps all information that may be of use in debugging in a query in memory. The code in the debug templates extracts data from that query and presents it as needed. And if that code can access the query, well, so can you.

A function I've always wanted was one that could return the exact SQL statement as submitted to a datasource post any dynamic processing. ColdFusion obviously knows this information - after all, it's in the debug output and always has been, but there's been no way to access it. Execution time, record count, column list - those are all accessible, but not the SQL itself.

Well, if the debugger knows this information, and in CFMX your code can know everything that the debugger knows...see where I'm going? Take a look at the code in Listing 3.

QueryGetSQL() takes the name of a previously executed query and returns its SQL statement. Let's walk through the code.

The function and argument are defined and variables are then initialized.

The debugging service collects information only if debugging is needed (which actually makes perfect sense). This means that this function can be used only if debugging is enabled, so the processing is enclosed within a <CFIF IsDebugMode()> condition.

The debugging service is then accessed just as we did earlier with the datasource service. The debugging information itself is stored in a query, as already explained, and the getData() method exposes that query. Thus the following snippet creates a local query named events that contains the debug information:


<!--- Get the event table --->
<CFSET events= cfd.getDebugger().getData()>

The events query contains all sorts of information (do a <CFDUMP> - you may find something intriguing or useful). So how to extract the single column we need for the one desired entry? We can query that query:


<!--- Get SQL statement (body) for query --->
FROM events
WHERE type='SqlQuery'
AND name='#queryname#'

Each entry in the events query has a type. The type we want is SqlQuery (other types contain other debug information). The WHERE clause filters this type for the specified query name - this way we obtain just the row we want. Rows are made up of lots of columns, including one named body which (when type is SqlQuery) contains the SQL statement. That's the one column we want.

The function then saves that body column to result and returns the value. Simple as that.

Using the Runtime Service
One of the most intriguing (and, when you look at the method names, scariest) services is the runtime service. I'm still working my way through this one, but here's one method that's already finding its way into my applications.

Ever wondered how you could easily determine if the SESSION scope was safe to use (i.e., session state management was enabled)? The runtime service contains a method named getVariables() that returns a structure containing two other structures, application and session. Each of these structures contains (among other things) a member named enable, which will be true if enabled and false if not. I'm not going to give you the code to access these - try to work it out yourself.

Ah, the possibilities are mind-boggling!

ColdFusion MX is built on a brand-new, completely redesigned architecture - you already know that. But what you may not have known is just how open and flexible this architecture is. The factory is a perfect example of this openness, and while its use is undocumented, it's also perfectly legal. Want to create an administrative program of your own? It's doable. Want access to internal data? That's doable too. Want to create graphs, work with log files, tweak the schedule, or read and write CF Admin settings? All that is doable. Want to create your own debug screens? As already explained, even that is doable.

When you tinker at this level, of course, you're on your own (never experiment on production servers!). There's no documentation on this stuff. It's undocumented - anything I've shared here was learned by browsing files and experimenting - but that's just part of the fun. So give it a try, and if you create anything really cool I'd love to see it (or submit it to if you can turn it into a function). Enjoy!

Caveat emptor:

Undocumented means unsupported - there are no examples, no documentation, and no support. In addition, any undocumented feature may be changed or removed in future versions of products. That's what distinguishes features from undocumented features; vendors are under no obligation to support anything undocumented. Use at your own risk.

About Ben Forta
Ben Forta is Adobe's Senior Technical Evangelist. In that capacity he spends a considerable amount of time talking and writing about Adobe products (with an emphasis on ColdFusion and Flex), and providing feedback to help shape the future direction of the products. By the way, if you are not yet a ColdFusion user, you should be. It is an incredible product, and is truly deserving of all the praise it has been receiving. In a prior life he was a ColdFusion customer (he wrote one of the first large high visibility web sites using the product) and was so impressed he ended up working for the company that created it (Allaire). Ben is also the author of books on ColdFusion, SQL, Windows 2000, JSP, WAP, Regular Expressions, and more. Before joining Adobe (well, Allaire actually, and then Macromedia and Allaire merged, and then Adobe bought Macromedia) he helped found a company called which provides automotive services (buy a car, sell a car, etc) over the Web. (including Stoneage) is one of the largest automotive web sites out there, was written entirely in ColdFusion, and is now owned by Auto-By-Tel.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

Presentation Slides
Most of us already know that adopting new cloud applications can boost a business’s productivity by enabling organizations to be more agile ...
When building large, cloud-based applications that operate at a high scale, it’s important to maintain a high availability and resilience to...
IoT & Smart Cities Stories
Nicolas Fierro is CEO of MIMIR Blockchain Solutions. He is a programmer, technologist, and operations dev who has worked with Ethereum and blockchain since 2014. His knowledge in blockchain dates to when he performed dev ops services to the Ethereum Foundation as one the privileged few developers to work with the original core team in Switzerland.
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
Whenever a new technology hits the high points of hype, everyone starts talking about it like it will solve all their business problems. Blockchain is one of those technologies. According to Gartner's latest report on the hype cycle of emerging technologies, blockchain has just passed the peak of their hype cycle curve. If you read the news articles about it, one would think it has taken over the technology world. No disruptive technology is without its challenges and potential impediments t...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of San...
When talking IoT we often focus on the devices, the sensors, the hardware itself. The new smart appliances, the new smart or self-driving cars (which are amalgamations of many ‘things'). When we are looking at the world of IoT, we should take a step back, look at the big picture. What value are these devices providing. IoT is not about the devices, its about the data consumed and generated. The devices are tools, mechanisms, conduits. This paper discusses the considerations when dealing with the...
Bill Schmarzo, author of "Big Data: Understanding How Data Powers Big Business" and "Big Data MBA: Driving Business Strategies with Data Science," is responsible for setting the strategy and defining the Big Data service offerings and capabilities for EMC Global Services Big Data Practice. As the CTO for the Big Data Practice, he is responsible for working with organizations to help them identify where and how to start their big data journeys. He's written several white papers, is an avid blogge...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...

2016 | 2015 | 2014 | 2013 | 2012
This week I had the pleasure of delivering the opening keynote at Cloud Expo New York. It was amazing to be back in the great city of New York with thousands of cloud enthusiasts eager to learn about the next step on their journey to embracing a cloud-first worldl."
How does Cloud Expo do it every year? Another INCREDIBLE show - our heads are spinning - so fun and informative."
Thank you @ThingsExpo for such a great event. All of the people we met over the past three days makes us confident IoT has a bright future."
One of the best conferences we have attended in a while. Great job, Cloud Expo team! Keep it going."


Who Should Attend?
Senior Technologists including CIOs, CTOs & Vps of Technology, Chief Systems Engineers, IT Directors and Managers, Network and Storage Managers, Enterprise Architects, Communications and Networking Specialists, Directors of Infrastructure.

Business Executives including CEOs, CMOs, & CIOs , Presidents & SVPs, Directors of Business Development , Directors of IT Operations, Product and Purchasing Managers, IT Managers.

Join Us as a Media Partner - Together We Can Enable the Digital Transformation!
SYS-CON Media has a flourishing Media Partner program in which mutually beneficial promotion and benefits are arranged between our own leading Enterprise IT portals and events and those of our partners.

If you would like to participate, please provide us with details of your website/s and event/s or your organization and please include basic audience demographics as well as relevant metrics such as ave. page views per month.

To get involved, email

@ThingsExpo Blogs
PCCW Global is a leading telecommunications provider, offering the latest voice and data solutions to multi-national enterprises and communication service providers. Our truly global coverage combined with local, on the ground knowledge has helped us build best in class connections across the globe; and especially in some of the remotest, hard-to-reach areas in exciting growth markets across Asia, Africa, Latin America and the Middle East.
NanoVMs is the only production ready unikernel infrastructure solution on the market today. Unikernels prevent server intrusions by isolating applications to one virtual machine with no users, no shells and no way to run other programs on them. Unikernels run faster and are lighter than even docker containers.
All in Mobile is a mobile app agency that helps enterprise companies and next generation startups build the future of digital. We offer mobile development and design for smartphones, tablets and wearables. Our projects cover the latest and most innovative technologies - voice assistants, AI, AR/VR and more. We excel at solutions for sports, fintech and retail industries.
Digital Transformation Blogs
PCCW Global is a leading telecommunications provider, offering the latest voice and data solutions to multi-national enterprises and communication service providers. Our truly global coverage combined with local, on the ground knowledge has helped us build best in class connections across the globe; and especially in some of the remotest, hard-to-reach areas in exciting growth markets across Asia, Africa, Latin America and the Middle East.
NanoVMs is the only production ready unikernel infrastructure solution on the market today. Unikernels prevent server intrusions by isolating applications to one virtual machine with no users, no shells and no way to run other programs on them. Unikernels run faster and are lighter than even docker containers.
All in Mobile is a mobile app agency that helps enterprise companies and next generation startups build the future of digital. We offer mobile development and design for smartphones, tablets and wearables. Our projects cover the latest and most innovative technologies - voice assistants, AI, AR/VR and more. We excel at solutions for sports, fintech and retail industries.
"Calligo is a cloud service provider with data privacy at the heart of what we do. We are a typical Infrastructure as a Service cloud provider but it's been des...
Discussions of cloud computing have evolved in recent years from a focus on specific types of cloud, to a world of hybrid cloud, and to a world dominated by the...