AIR + sqlite is probably enough on the front end. i don't think i'd want to stuff cf into pcs that weren't really meant as servers. where are the boats squirting their data? that backend would be a better choice for cf to handle the data from the boats.
Sorry Paul, I'm confused by your answer. Perhaps there is something that I still don't understand about Flex applications.
The boats will be storing their data in a database on their onboard PC. A very small subset of the data (about 250 bytes worth) will be sent to an onshore server via a web service every few days, but the main database will reside in the onboard PC and the whole application will run in standalone mode 99.9% of the time. In other words, the front end and back end of the application will need to be installed on the PC.
I would like to avoid installing a server-type app. such as CF on the PCs. I will need to create the services that Flex will use to retrieve/add/update data in the database and I would like to create those services in CF. Does this mean that CF would have to be installed on the onboard PC, or would the AIR runtime allow Flex to use the services without having CF onboard? That would be very cool!
does the on-board app already exist?
Hi Paul, thanks for the quick reply.
We have created the onboard app., but not in Flex. It is written in ColdFusion (version 8) with AJAX and uses an Apache Derby database and Open BlueDragon as the CF engine. The whole thing runs in a browser onboard. We had a custom Java launcher written. It starts the database and Open BlueDragon and then launches the PC's default browser with the localhost URL of the application home page. The biggest drawback with this whole approach has been browser compatibility. Some boats still use IE version 6. Our application simply won't work on versions IE prior to 7.0. It also takes quite a while for the launcher to start up all of the related applications, etc. The application runs more slowly than it would as a desktop application since web pages have to load as the user moves from one screen to another.
I am investigating whether we should re-write our application from scratch using Flex/AIR. My hope is that that we can put together all of the parts of the application in a single, standalone environment. Through some investigation, I have just realized that AIR includes SQLLite, so we won't need a separate database/launcher. We also won't need to use AJAX since the Flash will provide a UI that has all of the flexibility that we'll need. I also assume that the AIR runtime will include a standalone Windows Flash Player, so we don't need to use whatever web browser is on the boats.
So far, everything sounds great. My only remaining question is whether I could create the data access services as ColdFusion CFCs without having to install ColdFusion on the onboard PCs. I've been looking through the Adobe literature and it seems to imply that AIR can use ColdFusion 9 CFCs without CF being installed, but I cannot find a definitive statement on this. If this is the case, I will download CF 9, CF Builder, Flash Builder, and AIR and start learning and building right away.
1 person found this helpful
if you re-write the app in AIR, you won't need cf installed on the boat's PCs, everything will be in AIR & sqlite. so no CFCs, just re-write their logic in AIR/sqlite.
if you don't rewrite the app, maybe just lobby to update the browsers or re-write in plain HTML. you can simply write something in BD to send the data to your backend w/out any need for flex/AIR though frankly i'd go the AIR route. it's what is was meant for.
Thanks so much Paul. Your answers have been very helpful. I would just like to clarify one last thing.
Here is my current understanding of the tools needed to create a database-driven Flex application for a standalone PC:
1. Flash (e.g. using Flash Builder) for the UI
2. A database (e.g. SQLLite)
3. AIR. My understanding of AIR is that it is simply a library of files needed to compile and run a Flex application on a standalone PC in the same way that the .NET framework is needed for .NET applications to run on a PC. Perhaps I've been mistaken?
4. A development tool to create services that bridge the UI with the database. As I understand things, the services could be written in CF, .NET, PHP, or Java.
In your last reply, are you saying that I can use AIR to create the database services? My understanding was that AIR is just a deployment tool and runtime library. Does AIR actually include a programming language so that the need for item 4 is eliminated? That would be excellent news!
1) flash builder to create flex/AIR apps
2) sqlite by all means
3) see 1.
4) no need to use anything but AIR to talk to sqlite.
seems you've almost "got it", maybe some examples will help clarify:
- http://seantheflexguy.com/blog/2007/06/14/super-simple-sqlite-example-for-adobe-air-1-beta /
- http://cookbooks.adobe.com/post_Include_existing_SQLite_database_in_an_AIR_applica-10483.h tml
a little googling & poking around the adobe site (http://www.adobe.com/devnet/air/flex/) should turn up plenty more.
PaulH - Thanks so much for your time and patience in answering my questions and providing the links. It is greatly appreciated. I'm convinced that FlashBuilder and AIR will give us everything that we need, so I'm going to download them and get started right away.