SOA in the Home - with RFID, iPhone and Simple Service Orchestration Peter Rhys JenkinsIBM Software [email protected]
1st March 2009Session 1434
2
Why ?
3
I have a BIG House - started in1896
4
2008
5
Automation Architecture
6
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).
7
Wiring
8
Wiring – Cat6 “Copper’s last stand”
9
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
10
Physical View
11
Infrastructure Hardware
12
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
13
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).
14
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.
15
Infrastructure - Hardware
16
Infrastructure – Hardware.
17
RFID
18
RFID Hardware – Radio, Antenna, Tags
19
RFID – how it works
20
RFID “Issues”
21
RFID Interface Coding (Applescript)
22
MySQL & Scripting Other Applications
23
Scripting Other Applications Remotely.
24
Human Interfaces
25
Web Interfaces
26
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
27
Services
28
Enterprise Service Bus – (Indigo Broker - AppleScript & Apple Remote Events for Messaging)
Monitoring Security
Enterprise Services.
JSON – XML-RPCSOAP
29
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
30
Event Based Computing – Mouse Down.
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.
Insteon EZIO.
e.g. Speaker Wire
31
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.
32
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).
33
Security
34
Security
• Assume the worst.• No DHCP.• No broadcast SSID.• Hard coded router tables.• WPA.• IBM Generated Passwords.
35
Security UPnP
36
Software & Shelfware
37
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.
38
Motion detection CPU Utilization.
39
Software
• Indigo (ESB)• Applescript• Apple Remote Events• Dreamweaver (Web, PhP)• Photoshop• Chicken of the VNC• MAMP, WAMP• Transmit (FTP)• iRed• Time Machine (Backup)
40
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.
41
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 – [email protected]
42
Demo
• Add a “Share” Service…