420 likes | 639 Views
SOA in the Home - with RFID, iPhone and Simple Service Orchestration. Peter Rhys Jenkins IBM Software Group Peter.rhys.jenkins@us.ibm.com 1st March 2009 Session 1434. Why ?. I have a BIG House - started in1896. 2008. Automation Architecture. Architectural Tenents.
E N D
SOA in the Home - with RFID, iPhone and Simple Service Orchestration Peter Rhys Jenkins IBM Software Group Peter.rhys.jenkins@us.ibm.com 1st March 2009 Session 1434
Architectural Tenents • Able to withstand catastrophic failure – e.g. Fail safe doors. • Able to withstand multiple service failures. • Zero learning curve for Human Interfaces. • “Reasonable” price. • State of the Art and Beyond. • Documented for repeatability. • Rapid Recovery from catastrophic failure (ISO Images).
Wiring. • Cat 6 for 10 Gigiabit Ethernet Backbone (Currently 100Mb) • Cat 5e for Phone, IR Distribution. • Shielded RG6 coax for Video. • HDMI cables for Theatre. • RF Relays between Dimmers. • “Mesh” Network Dimmers. • No “Daisy Chaining” • No Cat 7 – New Connector – not RJ45
Managed Infrastructure • HAI Omnipro II Controller • 8 PIR (Passive Infrared + Microwave) –to HAI • 68 Windows – round inset Magnet - to HAI • 7 Doors – round inset Magnet - to HAI • @500 Lights, 130 Insteon Dimmers - to Mac • 3 Cameras – Logitech, Apple, Sony - USB, Firewire, Cat 5e • 8 Mike’s – via Shure Mixer - Toslink Minijack to Mac • 1 RFID – Texas Instruments - RS-232-C to Mac • 1 Phidget RFID Reader - USB to Mac • iRTrans Infrared Controller. - to Mac • TV’s, Music, Piano, Projector Screen - to Mac
Infrastructure – Computing. • Ocelot (Applied Digital) low voltage switching (speaker & Mic switching • Mac Mini - Primary Home Controller. • Macbook - Development. • iMac - Human Interfaces - Kitchen • iMac - Human Interfaces - Office • ThinkPad - Camera feeds to Mac. • ThinkPad - Mouse Catcher & Camera feeds to Mac. • PC - Athlon 64 bit. Windows, 8G, 2T – grunt work. • (Deprecated) • HAI Interfaces. MQ Interfaces. Music Server, Video Server. • P390 - CICS WebService interfaces (Deprecated May 2008).
Wireless. • 2 x Apple Airport 802.11 n • 1 x Airport Express • 2 x Linksys 802.11 g • 1 x Cantenna. • Future. • WiMax • ZigBee • Trick – give all the access points the same name and use the same channel number.
Interfaces • iPhone (Safari, Mobile) • Any Browser • Any Phone Handset • Voice Recognition • Hard Wired Mic’s • Voice Response • V1 Female • V2 Male & Female • PIR Event (with Weight ) • RFID Events • Camera Motion events
Enterprise Services. Enterprise Service Bus – (Indigo Broker - AppleScript & Apple Remote Events for Messaging) Monitoring Security JSON – XML-RPC SOAP
Internal Services • Door Camera Motion Service • Door RFID Event Service • Door Opened Service • Door Closed Service • Speak Weather Service • Somebody Pressed the Doorbell Service • Switch TV to view Camera • Play Music Service(s). • Pub Services (Open etc) • Goodnight Service • Goodmorning Service • Birthday Service • Water the Lawn Service • Open the Windows Service • Close the Windows Service • Play a Movie Service • Mouse Down Service
Event Based Computing – Mouse Down. e.g. Speaker Wire Insteon EZIO. Metal Pad under Cheese – Soldered to 1 Wire. 2nd Wire Soldered to Spring Holder. Circuit Closes == Mouse Down Event. Video Taken by Evocam (last Video) sent to YouTube – Text Message to look at YouTube sent to iPhone.
External Services • NOAA – Weather (Free). Also Weather.com • Change Sunset based on light level (sunny, cloudy etc). • Control sprinklers – predict rainfall. • Set variables for spoken responses. • Google – GMAPs. • Locate Family (iPhone Application – Objective ‘C’) • Airline – Flight Scheduling. • Heat and Light services at “odd” hours. • eBay – “Snipe” • Screen scaping to feed sniping service.
WMQ-Broker Usage – Deprecated. • Interface between Mac’s and PC’s. – REST from PhP AJAX • “Sometimes, good enough really is good enough” • Interface to External Web Services. • Interfaces requiring data transformation. • PhP interface to Broker from Mac using REST Client for: • Broker Web Service call to NOAA (Weather) parse response. • Broker decides if it’s raining for Sprinkler via Timer Node. • Broker makes web service call to Charter.net (what’s on TV).
Security • Assume the worst. • No DHCP. • No broadcast SSID. • Hard coded router tables. • WPA. • IBM Generated Passwords.
Shelfware • Evocam – Mac – 84% CPU Utilization. • HAL 2000 - PC – Too Complex. • XCode - Mac (except for iPhone) - PhP easier. • WMQ Client for Mac - Only C Bindings - REST • WMQ Server for Mac - Kernel Changes - REST • RS-232-C Open Source PC - Too Complex. • TI RFID Sample Code PC - Useless.
Software • Indigo (ESB) • Applescript • Apple Remote Events • Dreamweaver (Web, PhP) • Photoshop • Chicken of the VNC • MAMP, WAMP • Transmit (FTP) • iRed • Time Machine (Backup)
Lessons Learned • Most of the work you need for an SOA/ESB is building the INFRASTRUCTURE to support it. • Adding Services is trivial once the Infrastructure is there. • Swapping out services is trivial – e.g. Texas Instruments RFID to Phidget RFID Reader – about an hour. • You need a development hardware environment and prod – trying to do it via VNC is like trying to swim through an ocean of Peanut Butter. • PhP, MySQL, Apache, OpenSource is easy to write & use. • Remember when programming was fun ? – it’s back.
URL’s to get you started. • www.smarthome.com Source for Everything. • www.perceptiveautomation.com Indigo Software. • www.trossenrobotics.com RFID Reader. • www.evological.com Camera Software. • http://www.james.lipsit.com/home.htm Site that got me started. • www.gulfhill.com My House. • Send me an email – peter@gulfhill.com
Demo • Add a “Share” Service…