Archive for November, 2008|Monthly archive page

Zillow + LiveCycle = Portable Real Estate Mashups

So what does Zillow and LiveCycle have to do with one another? Well not much other than I decided to do a demo around integrating Zillow with LiveCycle for MAX 2008. Zillow is a vertical platform around real estate located up in the clouds, while LiveCycle is a horizontal platform focused on enabling PDF, AIR, and Flash in the enterprise and is in the more traditional camp of on-premise software.

You can view an entire walkthrough at screencast.com Or the following lower res videos at YouTube.

Part I

Part II

So why did I create this demo?

  1. Of course to show off some functionality of LiveCycle and integration with AIR
  2. Illustrate the implementation of a common Engagement Pattern, Content Assembly, we see leveragedby LiveCycle customers.
  3. Show the integration of LiveCycle with a RESTfull Cloud API

Typically I have my own self-serving motivations in implementing demos. This time is no different. I have moved quite a bit over time, but failed to actually make money in the sale of any house (e.g. had to pay to sell my last house in July). So the next time my wife and I purchase a house we will be doing a lot more research than we have done in the past. However, we have always felt constrained by the tools we have used or that our agents have (we have done this a fair bit). While Zillow is an awesome resource it still doesn’t have ALL the information we are interested in. Moreover it doesn’t provide a means for us to effectively collaborate between ourselves and our real estate agent when considering one or more houses. So this demo is a proof of concept of what I was looking for and shows the value add of integrating a powerful cloud API such as Zillow with LiveCycle for creating portable Mashups.

IMPORTANT NOTE: While I have contacted Zillow prior to making this demo and they were nice enough to provide me access to their APIs (specifically their newer GetRegionPostings API) I must also point out that this demo uses their APIs in a way NOT aligned with the Zillow Terms of Use. Specifically, Zillow does not allow for their APIs to be used in anything but a Web based application, where they also expect their branding and links to show up as well. I was given the OK, purely because this was a demo application. I would suggest reading the Terms of Use provided by Zillow when signing up for a developer’s Id.

Architecture
Below is the architecture diagram for the Property Lister Demo.
lces_property_lister_arch
Brief notes on the components:

  1. At the top we have the Property Lister AIR application which communicates with
  2. Zillow, a Real Estate platform in the Sky with a RESTful API
  3. GetPropertyPortfolio Process, a service implemented in LiveCycle which a) iterates through a set of Propertiesm, b) calls GetPropertyDetailReport for each Property, and c) uses the LiveCycle Assembler service to combine all of those reports into a single PDF Portfolio.
  4. GetPropertyDetailReport Process, a service implemented in LiveCycle which generates a single PDF for a given property by a) generating a detail page and b) merging in any attachments specified by the client.
  5. Zillow Component, a Custom Java Component deployed within LC that a) creates a Service in LC that calls into Zillow and b) defines two data types that are used by the demo to communicate between clients (e.g. the Property Lister AIR app) and the GetPropertyPortfolio process.
  6. Out-of-the-box LiveCycle Services that are leveraged by the PropertyLister Application to generate a Portable Real Estate Mashup.

Trying out the Property Lister
Unfortunately, I have not setup an environment where demos such as this are available online, but even if I did for this demo I would be constrained by the Zillow Terms of Use.
For now however you will need to do the following steps:

  1. Read the Zillow Terms of User and Sign up for a Zillow Developer Id at http://www.zillow.com/howto/api/APIOverview.htm
  2. Download and install the LiveCycle trial (if you haven’t already) from http://www.adobe.com/devnet/livecycle/trial/.
    Note: This demo was built on LCES Update 1 (also known as 8.2.1)
  3. Download the Source Code for a) the AIR app b) the LiveCycle Archive and c) the LiveCycle Java Components used from Download Source Code
  4. With LiveCycle up and running go to LiveCycle Workbench and click on Window–>Show View–>Components. In the Components view you can right click the top node to then install the Java Components downloaded
  5. Next, log into the LiveCycle Admin UI (http://localhost:8080/adminui) and go to Services–>Applications and Services–>Archive Management where you can import the PropertyListing.lca file from the download.
  6. Make sure to configure your Email Service through the LiveCycle Admin UI by once again going to Services–>Applications and Services –> EmailService and setting the SMTP host/user/ and password.
  7. Import the Flex Project included in the Download to your Flex Builder environment.
  8. Make sure to set your Zillow Developer ID into the Source code for the AIR app (Currently its hardwired int the com/adobe/service/PropertyListingService.as file.
  9. Run the AIR APP!

Anyway, I hope you find this demo usefull! Its time to get back to the left over Turkey

Advertisements

LCES Pet Store Walkthrough

Ok, So I already did a posting on the LCES Pet Store but I hadn’t learned how to do a screencast yet so now here it goes.

In this screencast I walk through the LCES PetStore application fictitiously selling my own high maintenance dog, Thor (Hey, we can all dream…).

You can see my previous/more detailed post at LCES Pet Store & Process Oriented Application Development.

To see Thor (and the LCES Pet Store) at his best see LCESPetStore at screencast.com

Kickin It Old School

Being a parent of a 6 year old who (at this point;-) is aspiring to become a computer programmer I am now continuously looking out for books that either a) help me learn how to teach computer programming concepts to children or b) contain stories for children that involve teaching computer science concepts.

Well the other day I came across the following site http://www.tedfelix.com/books/index.html.
Ted had a listing of childrens books from the 70s, 80s, and 90s that taught computer science concepts. Surprisingly, there seems to have been a great many more books back then than there is now for children around computer science!

One of the books I picked up was “The Magic School Bus Gets Programmed” and the book is awesome! My older son (6 years) has asked me to read it again for the past 3-4 nights. The story is about kids attempting to use a new computer to automate their work, but when things go wrong (due to a bug in their application) they need to take the Magic School Bus inside of the computer where kids learn all about concepts around disk storage, motherboards, CPUs, and RAM.

If you have a young child interested in computers I would definitely recommend this book if you can find it. Its available at amazon for pretty much the price of shipping 😉
AMAZON

The LCES Pet Store & Process Oriented Application Development!

This is one of three demos that I did at MAX 2008. Unfortunately, I did not make it through all the demos due to technical issues (i.e. I should have come earlier to test out the gear). Enough of the excuses though, hopefully people enjoyed what I could show and now here is the source 😉

The primary purpose of this demo was to show a) a “traditional” enterprise app being built solely on top of LCES and b) the diverge from typical Data Oriented Applications that interact directly with the underlying DB to Process Oriented Applications that leverage Long-Lived processing to build a more rich end-to-end experience.

Click HERE to download the source code.

Note the download is a zip file (LCESPetStore.zip) containing 3 files:

  1. PetStore.zip (My Flex Project) – This App is currently hardwired to talk to localhost.
  2. petstore-dsc.jar – The LiveCycle Data Management Services Assembler that Creates, Reads, Updates, and Deletes Pets from the DB along with the Java source. This DSC also creates the underlying DB table when it is installed, however the DDL is generated for MySQL only currently.
  3. PetStore.lca – The LiveCycle Application Archive that contains the Pet Verification Process and XFA Form used in the Application

The Architecture
Below is a slide of the overall architecture.

LCES PetStore Architecture

LCES PetStore Architecture


Note that only the highlighted boxes are complete in the demo (sorry I didn’t get to the rest;-( .
A brief description of the highlighted Boxes are:

  1. The LCES PetStore AIR application
  2. The Pet Verification Process – A long lived process that generates a form/workitem that is routed to the store clerk (Tony Blue)
  3. The Pet Detail Form – the one that is rendered to Tony Blue
  4. The User Service – An out of the box service used to make User Assignments as part of a process
  5. LiveCycle Workspace – An operational UI provided out of the box for users to manage workitems and participate in long-lived processes.
  6. The PetService – A Custom service that implements the CRUD operations necessary to manage Pets in the Database and to push them to clients via LiveCycle Data Management Services.

For purposes of this demo I decided to use Mate. I was originally motivated by the excellent presentation that I saw from Laura Arguello at the Atlanta Flash & Flex User Group back in September. This is my first time using Mate, so hopefully I paid it some justice here. At MAX 2008 I laid out the following slides to show how MVC related to LCES and Mate to LCES respectively.

MVC & LCES

MVC & LCES

Mate & LCES

Mate & LCES

Anyway, I have two more LCES demos to post over the weekend (the Zillow App and UDDI Browser), so keep an eye out!

Just Popped in My “Tour de Flex” Flash Drive from MAX 2008

Well I just got back from MAX2008 yesterday on the red eye and after a few meetings for work and re-connecting with my kids I decided to sleep for a good chunk of the day… I am now working on getting the LiveCycle demos I did at MAX2008 published out on my Blog as well. But before getting started on that my attention naturally was diverted to something that required less effort, that is popping in the “Tour de Flex” Flash Drive that I managed to snag from Greg Wilson, one of our enterprise evangelists, prior to boarding the red eye.

I was actually fortunate enough to receive a copy of Tour De Flex prior to MAX2008 through Greg and Holly Schinsky both of which worked endless hours on it and were my co-workers from the past at Q-Link Technologies where we built a leading edge Business Process Management (BPM) platform. I say fortunate because Tour De Flex can save a countless number of hours with its examples for someone like me, who still lacks adequate Flex chops and happens to be under pressure to deliver on some demos (like I was for MAX).

Tour De Flex

Tour De Flex

Anyway, I definitely recommend checking out Tour De Flex. If you don’t have the Flash drive because you didn’t manage to pick one up at MAX or couldn’t make it out to MAX download it from http://flex.org/tour . While there was a ton of innovative demos and presentations at MAX (and I mean a TON), Tour De Flex stood out for me due to its ability to really reach out and get Flex and possibly other useful/related technologies (with the ability to publish samples) out to the masses, not to mention help out the RIA illiterates like myself ;-).

Hello World

So.. Like many of my fellow procrastinators that are out there I created my Blog account on WordPress (or similar providers) a while back (hmmm.. actually a year or two) and have now just gotten to the point of making my “Hello World” entry.

Why did it take so long?

laziness maybe or better phrased as “lack of sufficient drivers”

Why now?

well besides the external pressure I have been getting from co-workers and friends I am just about to do a cold reboot on my career here by transitioning from my role as an architect for the LiveCycle ES platform to student at the Georgia Institute of Technology (GIT) and figured this would be a good time to boot my late entrance into the Blogosphere.

That’s right! I am going back to school.

Georgia Institute of Technology Orientation 2008

Georgia Institute of Technology Orientation 2008

Kind of like “old school” except I actually will be going to school and more than likely will not be experiencing any re-kindling of my party days (My wife will make sure of that 😉 I will be starting up at the Georgia Institute of Technology (GIT) in the Spring/2009 where I will be specializing in Programming Languages with the goal of looking at how we can improve the way by which we develop applications, specifically enterprise applications.

My intentions with this Blog are to:

  • have a place to formalize ideas around improving our development experience
  • learn from others
  • expand my connections with the community
  • bring awareness to a lot of the very cool stuff that Adobe is doing in the enterprise space
  • make sure I don’t live up to the name of the Blog on all the above

Anyway — “Hello World”

Shone