Allurent Integration Architecture Overview

Download Report

Transcript Allurent Integration Architecture Overview

Bringing Rich Commerce
To The Desktop with AIR
Joe Berkovitz, VP of Engineering (http://joeberkovitz.com)
Tim Walling, Software Architect (http://timwalling.com)
Allurent, Inc.
(http://allurent.com)
Presentation at Flex Camp Boston 2007
Topics

Intro/Demo: Allurent Desktop Connection (ADC)

Architectural Overview

Navigation and Window Management

Search

SQLLite Database Usage

Color Analysis and Indexing

Goal Based Animation

What’s Next, Q & A
Key ADC Features


Rich, vibrant shopping experience both online and offline
Shopper customization features exploit local file
persistence, native drag-and-drop

Tool for business users to author user experience

Fast, large, local catalog DB with lightweight media


Automatic client download of metadata, markup &
“heavyweight” media
Direct conduit to online web store, including checkout
Demo
ADB Client Architecture
Shopper
Personal
Data
Notes, tags,
saved orders
Allurent
Display,
Cart,
Checkout
Store
content
Order
Integration
Shopper
Behavior
customer
behavior
Analytics
Local File Storage
Commerce
Server
order population
Content Integration
ADB Client
Application
Media
Catalog
Metadata
Markup
Update Manager
On-demand
media
Web Server
Auto-update
Prototype Constraints





Build with 2 developers in 2 months
Focus on user experience and key
implementation issues
No download of content from server:
everything is local
Minimal and fixed product catalog
Custom “cooking” of local database, no data
feeds from actual commerce DB
Application Overview

WindowedApplication

chromeless window

Admin or Boutique is added as a child


determined through parameters in shortcut (similar to
FlashVars)
hide from taskbar at startup
Application Overview


SystemTray Alert

Window

SystemTrayIcon

animate alert with Fade and Move effect
Splash Screen

Window

displayed while Strip is assembled
Search Tool

Free text search


using a quick and dirty “like” DB query
Color search

pick a color via color wheel or image
Search Tool

Color search code highlights

custom cursor



CursorManager.setCursor()
native drag/drop

NativeDragManager

ClipboardFormats
selected color

BitmapData.getPixel(x, y)
Navigation Strip

content driven navigation, focus is on
content

make the content the navigation control

uses goal based animation engine

speed sensitive motion blur

used engine’s velocity property
Navigation Strip Scroller


Strip is dynamic, so thumbnail
representation needs to be dynamic
use Bitmap API to capture Strip in chunks

BitmapData.draw()
In The Database Kitchen

Anthropologie catalog in hSQLdb XML file for our
server-side product demos

Created custom AIR import/update utility [demo]

Roughly duplicated server schema

Read existing XML file into AIR DB

Tip: batch INSERTs into transactions for >100x
performance gain
Using SQLite as an
Allurent Display Content Source


In-memory content cache already existed
Rewrote integration layer to pull product
metadata from SQLite query rather than
web service
SQLite Usage Internals

DAO object isolates entire application from
database internals:
function getProduct(uri:String, handler:Function)

Translator object creates SQL
strings/parameters, interprets SQLResults
on behalf of DAO
SQLite Usage Internals (continued)

Used asynchronous APIs to keep event loop alive

ConnectionPool object

StatementPool object manages:

SQLStatement caching for performance

param substitution

Execution

result/error handling
Color Analysis and Indexing
HSV color space, courtesy of Wikimedia Commons
Color Analysis and Indexing (cont.)


Added hue, saturation, brightness columns
to catalog DB
AIR utility loaded color swatch images,
extracted average RGB color value,
converted to HSV and stored in DB
Color Search and Presentation




Build in-memory HSV index at startup
Linear search of index based on color target
and HSV color-distance metric
Put closest match in center, arrange in
concentric rings
Incremental change animation for visual
continuity
Goal Based Animation

Early Prototypes of Strip Motion [demo]

Limitations of Tween approach

General-purpose “Goalkeeper” engine

[demo prototype]
Goal Based Animation in ADC


Easy integration to final ADC navigation
model
Velocity output coupled to Blur filter for
motion effect
What’s Next?

Download catalog and images after install

Update mechanism for getting new editions

Enable offline cart

Personalization