QueTwo's Blog

thouoghts on telecommunications, programming, education and technology

Tag Archives: LiveCycle

My Presentations at Adobe MAX 2011

This year I had the distinct honor of being asked to present at Adobe’s MAX conference.  The conference was an absolute blast.  From the Keynotes to ALL the other sessions I attended, the thing went off without a hitch.

I gave two presentations this year — one for the 360|MAX Unconference and one for the Develop Track at MAX. 

Getting Data From Here To There (with Flex)

This session was not recorded, but fairly well attended.  You can see my slides here.   In this session I talked about the different communications methods available to Flex developers, and I started to lay out a basic matrix of when to use what type of communication method, and what the pros and cons were of each type.  Not all of my demos worked due to a broken J2EE server, but I think everybody got the idea.  I don’t have great downloads for that presentation as most were specific to my server setups.

Getting Physical With Flash (Hardware Hacking)

This session was a blast to present.  We had about 140 people in the room who seemed to be really into it.  I presented on integrating the Arduino hardware prototyping kit into Flash/Flex in addition to showing how to integrate the Microsoft Kinect into Flash/Flex. I came armed with about 6 electronics projects that I showed people to inspire them to create their own.

Video Player - MAX 2011 Preso

You can download the PPT here.

You can find most of the downloads featured on my blog, but I will update this post and post the direct links to everything at a later date.

Thanks again to the entire MAX staff for making the show run so smoothly from both the speaker’s perspective and from the attendee’s perspective.  A+ work led to an A+ experience :)

Connecting your Flex application to BlazeDS or LiveCycle DS

If you have ever attended one of my presentations on BlazeDS, LiveCycle DS, or Flex/ColdFusion, you have heard me talk about how bad the data-connectivity wizards are in ALL of the IDEs available for the Flex SDK.  Even the new Flash Builder 4.5 dosen’t address the white-hot mess they call the data connectivity wizards that they started including in 4.0 (Side note:  I love most of the features in Flash Builder — I use it every day, but some of the wizards they included to make life easier really don’t).

Even including the services-config.xml document as a configuration option in your application will often lead you to troubles in the long-run.  This is included for you when you tell Flash Builder that you want to use ColdFusion or Java as your server model.  When you do this, the compiler inspects your services-config.xml configuration document on your server, and builds a table of the channels (endpoints) and destinations that are configured on the server.  You can then call the destination by name in theortags and not have to worry about how your client actually connects back to the server…

… untill you need to move your application…

… or you need connect your AIR application to your server…

… or you have a mobile or television application that needs resources on your server…

… or your server’s configuration changes.

Read more of this post

Creating runtime remoting destinations in BlazeDS and LiveCycle Data Services

Ok, lets dive right into a really geeky topic… destinations in BlazeDS and LiveCycle Data Services.

For one of my customers, I was given the requirement to create a runtime destination in BlazeDS.  BlazeDS, along with its bigger brother LiveCycle allow you to create destinations in one of two ways — via the configuration XML files (services-config.xml, and related files), or via Java calls.  I won’t talk about the XML file method because it is extremely well documented.  However, the biggest disadvantage of the XML file method of creating destinations is that you usually have to reload or reboot your server in order for the changes to take affect. 

Runtime Destinations are not permanent — they do not persist during restarts.  They are also not magically added to the XML documents either.  Their creation is also often blocked on shared hosting servers as well.  But besides that, they act and smell just like ones created by the XML documents.  Why would you want to use them?   There are quite a few reasons for wanting them — for example to help secure your server by only exposing your destinations on demand, or by providing private destinations to clients so there is no way that data can be shared (in that case you COULD use subtopics, but that is controlled by the client).  In my case I was asked to provide a solution where the client would not have to change any configuration files when they installed our application.  We were using ColdFusion 9 as our back-end server, but these techniques work for Java based solutions too (you would just have to change the Syntax a bit).

I’ll start off by saying that the documentation is extremely poor (I wish Adobe would make this stuff clearer one day!), but with the help of two people, Sven Ramuschkat and Marko Simic, I was able to get to the point where reading the source code made sense.

The first step in creating the dynamic destination was getting the instance of the Message Broker.  The Message Broker in BlazeDS/LCDS is the guy who does all the work for remoting, messaging, data services and proxying.  You can access it in ColdFusion with the following commands

this.blazeDSClass = createObject("java", "flex.messaging.MessageBroker");
this.blazeDS = this.blazeDSClass.getMessageBroker(javacast("null", ""));

Read more of this post

Flash Builder Client-Side Data Management vs. LCDS

One question I am asked fairly regularly is this : “Now that Flash Builder will include what they call Client-Side Data Management, why would anybody need Adobe’s LiveCycle Data Services?” 

Until this latest version of Flash/Flex Builder and Flex, there was a very clear distinction for when you needed LiveCycle Data Services and when you could simply use BlazeDS.  If you wanted seemless interactions between your database and your client, you by default went to LCDS.  If all you cared about was sharing data between clients, then you could get away with BlazeDS.

With the upcoming version of Flash Builder there is a new set of wizards called the DCD or the Client-Side Data Management Wizards.  These wizards will emulate a lot of the functions and features that were previously only available to LCDS users.  Things like having changes to an ArrayCollection (via a DataGrid) auto-commit to the database are now available, as well as data pagination and some other time-saving features.  All of this work is done on the client-side with little work on the server.

You don’t get all the features of LCDS, however.  LCDS’s Data-Management features allow you to have the concept of ‘managed’ data on the server.  This means that you have a middle-ware application that stores a copy of your data in RAM and keeps track of which clients are accessing which parts of that data.  The concept allows you to do things like real-time conflict-resolution (client-side only supports last-in-wins) where both clients are notified if the data is changed in any connected client.  It also allows for real-time data updates — for example, if you have client-A update their data, client-B who is also viewing that data is instantly notified that their view is old and updated with the changed set.  This is immensely critical where you have data that is viewed and possibly updated in realtime by multiple people — and it is only available in LCDS.  LCDS also allows you to do lazy-loading out of the box, which is not available in the client-side version.

Adobe’s LiveCycle DS 3 also introduced the “Data Modeling” workflow in this past release.  This plugin to the Eclipse framework allows users to model their database (or pull in an existing database and have it modeled for them) and make changes to that database, regardless of what database server is in the backend.  This is using UML-like diagramming, and is extremely powerful.  LCDS Data Modeling View can then take that UML model and auto-create forms (with validation), data views, etc. with a few clicks of the mouse.  With this model, no server-side coding is required at all.

Flash Builder’s Client-Side Data Management emulates the form-building aspect of this, however it is not nearly as automated or point-and-click.  It will write some stub classes for you, and set you up with the basics, but things like validation have to be written by hand.  Furthermore, you have to customize your back-end server coding to match how DCD expects your classes/cfcs to work. 

Pretty much, to sum it up, if you need you plan on having your clients view and edit the same piece of data at the same time, you may still want to consider LCDS.  If you don’t want to write any back-end code, LCDS is also worth looking at as well.  Otherwise, see what Client-Side Data Management can do for you.  But remember, Adobe no longer offers their Community Edition / 1 CPU edition / Free Edition / Office Edition, so LCDS has become quite costly to get into.  I wish that wasn’t the case :(

Adobe MAX Wrap-Up

Photo Courtsy of Dee Sadler - http://www.flickr.com/photos/deesadler/So, I’m back from LA, and the Adobe MAX 2009 conference. Just like the MAX tagline of “Connect, Discover, Inspire,” I truly able to accomplish all of those.  This year’s conference packed in a lot of announcements, and gave everybody a good idea of where Adobe is heading in the marketplace.  All of the keynotes and sessions were recorded, so make sure to check them out on Adobe TV!

So, lets first talk about some of the major announcements:

  • ColdFusion 9 was released.  This has been in the works for about a year and a half, and offers a bunch of new features.  Some of the new things that are most compelling include the ability to work directly with Microsoft Office documents, ORM, integration with Sharepoint, and certain features pre-packaged as a service. 
  • LiveCycle ES2 was released.  I’m sure this effects all of 20 people on earth, but this product is just plain awesome.  LiveCycle ES is a workflow management applications (for those of you who only deal with consumer applications, think of the process that your paperwork has to go through when you hire somebody new.  You have multiple interviews, background checks, etc. that all belong in a workflow.  This allows you to manage that process, and make sure nothing is missed).  With it, a bunch of new Flex components have been released that allow you to integrate your applications with these workflows.  Yet another important part of this suite is the “LiveCycle Collaboration Suite,” formerly known as Cocomo.  This suite allows you to make your own interactive / collaboration services.
  • Mobile Devices.  So, there was lots of fanfare about Adobe’s push to make mobile devices 1st class citizens in the computing landscape.  21 of the top 22 device manufactures have signed on with Adobe including RIM, Symbian, Google, Microsoft, etc.  The only one that is missing is Apple, of course, but Adobe didn’t waste time shooting a warning shot over their bow. Adobe announced that in CS5, they expect to be able to publish full-fledged iPhone/iPod Touch applications that can be published on the iTunes store.  This does not mean that the Flash Player will be available for the iPhone, but simply that you can publish applications that were created in Flash/Flex/Catalyst.

A few things that were not released, but were talked about:

  • Flash Builder 4 - This looks like it was delayed until Q1 of next year.  It’s a shame, because a lot of the Adobe tooling is based on it now (interesting thought), so many of those applications have to wait too.  This included some ES2 apps, etc.  Adobe did release Beta 2 to allow people to refresh their builds, and play with things a bit more.
  • ColdFusion Builder – This also looks like it was delayed until Q1 of next year.  It is a LOT closer than people have been anticipating, and, personally I really like it. They have really done a lot of research on the workflow model, and I think they will win over a lot of developers who have been using Allaire ColdFusion Builder, Dreamweaver and all the other products.
  • Codename Stratus – This project allows users to build truly P2P applications with the Flash Player or AIR.  It allows IP Multicast or some sort of “home” server to point copies of FP together an allow them to communicate without the use of a server.  This saves bandwidth for the server, and makes the experience better if the users are geographically near by. The shear thought of being able to use IP Multicast in FP is a huge win for me.  This will require FP 10.1.
  • LiveCycle Data Services 3 – It is coming, and very soon.  This brings a whole slew of new features to the LCDS package that will make huge data applications faster and will allow data to flow better.  One of the coolest things about LCDS3 is the data modeler.  It brings the features of a UML designer, and allows you to both deploy databases via your model, or to build the skels of your applications via the model!  This, to me, is one of the coolest things I saw at the show.  How much was an LCDS server again?
  • Adobe Connect for Mobile – So, this one blew me away, but only a peep was said at the conference. During the Day 1 keynote, they showed the iPhone, among other devices using a mobile version of Adobe connect to join meetings!  This, to me, is one of the features that has the potential to keep Adobe Connect ahead of all the other web conferencing suites out there.  They said that we can expect the iPhone, RIM, Android and Microsoft connect clients to come out “soon”. 
  • Flash Player 10.1 – Lots of neat stuff coming in this one.  FP 10.1 will be smaller, meaner, and mobile ready.  It will feature lots of stuff like the Stratus support, and hopefully will make my bed and pour me a beer.  Make sure to check out the online sessions on this one :)

I also had the chance to catch up with a lot of the evangelists, and talk shop with a lot of the people I usually only communicate with online.  It was great to see everybody, oh, and yeah, I went to a lot of sessions and labs too.  I’m hoping to go through all my notes from the action-packed week from my labs and get cracking on some new apps I have floating in my head (yes, I was inspired).

Follow

Get every new post delivered to your Inbox.

Join 27 other followers