+ All Categories
Home > Documents > 2010 08-26-smart-architecture

2010 08-26-smart-architecture

Date post: 18-Dec-2014
Category:
Upload: chip
View: 3,355 times
Download: 0 times
Share this document with a friend
Description:
 
Popular Tags:
23
SMArt Architecture Ben Adida Josh Mandel 26 August 2010 SMArt Developers’ Meeting
Transcript
Page 1: 2010 08-26-smart-architecture

SMArt ArchitectureBen Adida

Josh Mandel

26 August 2010SMArt Developers’ Meeting

Page 2: 2010 08-26-smart-architecture

Goal-Driven Architecture•we want end-user apps

to be installable and substitutable oni2b2, CareWeb, Indivo (+ commercial vendors)

•Why?An ecosystem that fosters innovation.

•so, the best approachis to derive requirements fromthe POV of SMArt app developers.

•+ requirements of usability of integration.

Page 3: 2010 08-26-smart-architecture

Let’s go DeeperWe need more details

(software components are not legos)

Page 4: 2010 08-26-smart-architecture

inspiration

Page 5: 2010 08-26-smart-architecture
Page 6: 2010 08-26-smart-architecture
Page 7: 2010 08-26-smart-architecture

- (void)viewDidLoad {    [super viewDidLoad];    EKEventStore *eventStore = [[EKEventStore alloc] init];    EKEvent *event  = [EKEvent eventWithEventStore:eventStore];    event.title     = @"EVENT TITLE";    event.startDate = [[NSDate alloc] init];    event.endDate   = [[NSDate alloc] initWithTimeInterval:600 sinceDate:event.startDate];    [event setCalendar:[eventStore defaultCalendarForNewEvents]];    NSError *err;    [eventStore saveEvent:event span:EKSpanThisEvent error:&err];       }

Page 8: 2010 08-26-smart-architecture

An app connectsto one app container

A container connects to multiple data

sources

Page 9: 2010 08-26-smart-architecture

different containersfulfill the contractin different ways.

Page 10: 2010 08-26-smart-architecture

The app does not contact data sources

directly.

That’s the container’s job.

Page 11: 2010 08-26-smart-architecture

App

Container

DataSource

Page 12: 2010 08-26-smart-architecture

Substitutabilityworks both ways

Page 13: 2010 08-26-smart-architecture

The App gets...

•one API, data from many sourcesadd a source, no change to app.

•unambiguous patient recordapp never performs fuzzy matching,data de-duplication, etc.

Page 14: 2010 08-26-smart-architecture

Web APIs

•inspired by successful APIs:Facebook, OpenSocial, ...

•REST

•Apps can be run on separate serversusing different implementation stacks

•UX Integration via IFRAME

Page 15: 2010 08-26-smart-architecture

Screen real estateScreen real estatecontrolled by appcontrolled by app

Page 16: 2010 08-26-smart-architecture

Authentication?

•i2b2, Indivo, CareWeb, don’t havethe same authentication mechanism!

•How can the same app possibly workagainst all of these?

•Each container implements a consistentmechanism for delegating access: oAuth.

•The app only needs to speak oAuth.

Page 17: 2010 08-26-smart-architecture

User delegates access

to SMArt app

Page 18: 2010 08-26-smart-architecture

UI Integration

•Augmenting i2b2, Indivo, CareWeb natively is ideal: existing authentication reused, just add oAuth delegation.

•IFRAME wrapped bycontainer-specific context.

Page 19: 2010 08-26-smart-architecture

Faster: SMArt Connect

Page 20: 2010 08-26-smart-architecture

Faster: SMArt Connect

Page 21: 2010 08-26-smart-architecture

Faster: SMArt Connect

Page 22: 2010 08-26-smart-architecture

Data Representation

•single data representation across platforms(make it easy for the app)

•accommodate varying detail granularity

•rely on existing technology for transforming existing data to this rep

•RDF & SPARQL

Page 23: 2010 08-26-smart-architecture

In Summary•make life easier for the app,

reduce likelihood of errors in the app,do the hard stuff in the container

•datasource != containerthese legos are not all the same

•ideal SMArt container doesoAuth and SMArt Connect nativelyso as to leverage existing (i2b2/Indivo)... features.

•RDF universal representation + toolset


Recommended