Monday, December 15, 2008

Google Driven Architecture

I am in the throws of developing an application that uses Android, Google Search Appliance, Google App Engine and Google Maps. The plan is to extend this to also use, Blogger, iGoogle, YouTube and a  bunch of other Cloud based solutions. This 'Google Driven Architecture' is actually pretty simple. Assets are created via an Android Device, persisted on App Engine as XML (need to extend to persist some data in Big Table), and then views are created using XSLT and Python on App Engine. Data is then also pushed out to Blogger, Face Book, You Tube etc.

The Google Search Appliance is used almost as a light-weight middleware to fetch the persisted data for consumption by the application. As a secondary function the end users can use the GSA to also search for information on the site.

This got me thinking about how you can use a GSA to drive applications. Some ideas are;

  • Building website navigation - sitemaps, related links, guided navigation (parametric search) etc.
  • AJAX Information Dashboard - using OneBox, GSA to GSA, Site Search etc. to tap both real-time and static data sources.
  • Data Visualisation using Google Geo and GSA.
  • XML Driven Applications - using GSA Feeds, Database and System Connectors.
  • Automated Workflow - using Alerts to trigger applications based on the publication of new data (both internal and external).

Because the GSA returns results using a simple XML schema and has the ability to suck in both structured and unstructured data from a variety of sources it is a great way of connecting applications with distributed data sources and finding the data you need.

(Think about a typical Enterprise scenario where your customer data is in a bunch of CRM, Order, Provisioning, Billing and other systems. The customer is represented slightly differently in each of these systems. Organisations spend a fortune trying to create a single, sanitised view of their customer. Why not use the GSA to construct that view from the data you have, rather than trying to create the single (unachievable) view.)

0 comments:

Post a Comment