SlideShare a Scribd company logo
SMArt Architecture Ben Adida Josh Mandel 26 August 2010 SMArt Developers’ Meeting
Goal-Driven Architecture we want end-user apps to be  installable and substitutable  on i2b2, CareWeb, Indivo (+ commercial vendors) Why? An ecosystem that fosters  innovation . so, the best approach is to derive requirements from the  POV of SMArt app developers . + requirements of  usability of integration .
Let’s go Deeper We need more details (software components are not legos)
inspiration
 
 
- ( 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];        }
An app connects to  one  app container A container connects to  multiple  data sources data sources data sources data sources
different containers fulfill the contract in different ways. in different ways. in different ways.
The app does not contact data sources directly. That’s the container’s job. That’s the container’s job. That’s the container’s job.
App Container Data Source Source Source Source Source Source
Substitutability works both ways works both ways
The App gets... one API, data from many sources add a source, no change to app. unambiguous patient record app never performs fuzzy matching, data de-duplication, etc.
Web APIs inspired by successful APIs: Facebook, OpenSocial, ... REST Apps can be run on separate servers using different implementation stacks UX Integration via IFRAME
Screen real estate controlled by app
Authentication? i2b2, Indivo, CareWeb, don’t have the same authentication mechanism! How can the same app possibly work against all of these? Each container implements a consistent mechanism for delegating access:  oAuth . The app only needs to speak oAuth.
User delegates access to SMArt app to SMArt app
UI Integration Augmenting  i2b2, Indivo, CareWeb  natively  is  ideal : existing authentication reused, just add oAuth delegation. IFRAME wrapped by container-specific context.
Faster: SMArt Connect
Faster: SMArt Connect
Faster: SMArt Connect
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
In Summary make life easier for the app, reduce likelihood of errors in the app, do the hard stuff in the container datasource != container these legos are not all the same ideal SMArt container does oAuth and SMArt Connect natively so as to leverage existing (i2b2/Indivo)... features. RDF universal representation + toolset

More Related Content

PPTX
App Deep Linking
PPTX
Api server final
PPTX
Implement Authorization in your Apps with Microsoft identity platform-June 2020
PPTX
Power Apps community call-June 2020
PPTX
Microsoft identity platform community call-May 2020
PDF
Exception mapping using api kit
PPTX
Get started azure- Azure Mobile Services
PPTX
12. Android Basic Google Map
App Deep Linking
Api server final
Implement Authorization in your Apps with Microsoft identity platform-June 2020
Power Apps community call-June 2020
Microsoft identity platform community call-May 2020
Exception mapping using api kit
Get started azure- Azure Mobile Services
12. Android Basic Google Map

What's hot (17)

PDF
Shruti puranik resume
PDF
Обзор Android M
PPTX
Maps in android
PPTX
Ionic and Azure
PDF
Lab - AWS Cross Account Access
PPT
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
PDF
Inside the Android AccountManager
PPTX
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
ODP
Application Craft Tutorial for Google Map
PPTX
Jquery mobile book review
DOCX
Portfolio
PPTX
Beginning android
PDF
Wroc.py #32: Microservices in flask
DOCX
Mamtha_7month_exp_Android_developer
PPT
Case study on tablet application for real time video, audio and ppt conversion
PPTX
Kodak - OpenID Retail Summit at PayPal
ODP
Confessions of-a-gadget-holic
Shruti puranik resume
Обзор Android M
Maps in android
Ionic and Azure
Lab - AWS Cross Account Access
Case study on Movie Quiz App For IPhone and IPad – Facebook Enabled
Inside the Android AccountManager
Life After Mobilegeddon: App Deep Linking Strategies - Pubcon October 2015
Application Craft Tutorial for Google Map
Jquery mobile book review
Portfolio
Beginning android
Wroc.py #32: Microservices in flask
Mamtha_7month_exp_Android_developer
Case study on tablet application for real time video, audio and ppt conversion
Kodak - OpenID Retail Summit at PayPal
Confessions of-a-gadget-holic
Ad

Viewers also liked (14)

PDF
1e presentation Kinetic Architecture 2014
PPTX
Kinematics & dynamics assgn
PPTX
L02 Architecture
PDF
Kinetic architecture eva van puyvelde presentaitie
PDF
Kinetic2013 CD 17/12/2013
PDF
(11.27) presentatie
PPTX
Dynamic architecture
PPT
Smart materials
PDF
Smart building controls and energy management system trends
PPTX
Smart buildings
PDF
Smart Home Tech Short
PDF
Smart Buildings + Intelligent Solutions
PDF
Smart Home technologies
PPTX
Smart homes
1e presentation Kinetic Architecture 2014
Kinematics & dynamics assgn
L02 Architecture
Kinetic architecture eva van puyvelde presentaitie
Kinetic2013 CD 17/12/2013
(11.27) presentatie
Dynamic architecture
Smart materials
Smart building controls and energy management system trends
Smart buildings
Smart Home Tech Short
Smart Buildings + Intelligent Solutions
Smart Home technologies
Smart homes
Ad

Similar to 2010 08-26-smart-architecture (20)

PDF
Real-time Text Audio to Video PPT Converter Tablet App
PDF
IRJET- Face-Track: Smart Attendance System using Face Recognition
PDF
Password security system for websites
PDF
Application for Data Sync Between Different geo Locations
DOC
Resume_Vivek_Bishnoi
PPTX
Meteor Meet-up San Diego December 2014
PPTX
Android Development : (Android Studio, PHP, XML, MySQL)
PDF
Free advertising platform for businesses with IOS & Android Apps development
PDF
Free advertising platform for businesses with IOS & Android Apps development
PDF
IRJET- Android Application on Restaurant Management
PDF
IRJET- Android Application on Restaurant Management
PPTX
Sst hackathon express
PDF
Community App for Promoting Cross-Cultural Interaction
PDF
Community App for Promoting Cross-Cultural Interaction
DOCX
SOM_MAS
DOC
Resume new it_format
DOCX
Eldhose_Resume
PDF
Automatized Application Services for Android Devices Using Apache Ant in Clou...
DOC
GulabMaurya
PDF
iOS-iPhone documentation
Real-time Text Audio to Video PPT Converter Tablet App
IRJET- Face-Track: Smart Attendance System using Face Recognition
Password security system for websites
Application for Data Sync Between Different geo Locations
Resume_Vivek_Bishnoi
Meteor Meet-up San Diego December 2014
Android Development : (Android Studio, PHP, XML, MySQL)
Free advertising platform for businesses with IOS & Android Apps development
Free advertising platform for businesses with IOS & Android Apps development
IRJET- Android Application on Restaurant Management
IRJET- Android Application on Restaurant Management
Sst hackathon express
Community App for Promoting Cross-Cultural Interaction
Community App for Promoting Cross-Cultural Interaction
SOM_MAS
Resume new it_format
Eldhose_Resume
Automatized Application Services for Android Devices Using Apache Ant in Clou...
GulabMaurya
iOS-iPhone documentation

2010 08-26-smart-architecture

  • 1. SMArt Architecture Ben Adida Josh Mandel 26 August 2010 SMArt Developers’ Meeting
  • 2. Goal-Driven Architecture we want end-user apps to be installable and substitutable on i2b2, CareWeb, Indivo (+ commercial vendors) Why? An ecosystem that fosters innovation . so, the best approach is to derive requirements from the POV of SMArt app developers . + requirements of usability of integration .
  • 3. Let’s go Deeper We need more details (software components are not legos)
  • 5.  
  • 6.  
  • 7. - ( 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];       }
  • 8. An app connects to one app container A container connects to multiple data sources data sources data sources data sources
  • 9. different containers fulfill the contract in different ways. in different ways. in different ways.
  • 10. The app does not contact data sources directly. That’s the container’s job. That’s the container’s job. That’s the container’s job.
  • 11. App Container Data Source Source Source Source Source Source
  • 12. Substitutability works both ways works both ways
  • 13. The App gets... one API, data from many sources add a source, no change to app. unambiguous patient record app never performs fuzzy matching, data de-duplication, etc.
  • 14. Web APIs inspired by successful APIs: Facebook, OpenSocial, ... REST Apps can be run on separate servers using different implementation stacks UX Integration via IFRAME
  • 15. Screen real estate controlled by app
  • 16. Authentication? i2b2, Indivo, CareWeb, don’t have the same authentication mechanism! How can the same app possibly work against all of these? Each container implements a consistent mechanism for delegating access: oAuth . The app only needs to speak oAuth.
  • 17. User delegates access to SMArt app to SMArt app
  • 18. UI Integration Augmenting i2b2, Indivo, CareWeb natively is ideal : existing authentication reused, just add oAuth delegation. IFRAME wrapped by container-specific context.
  • 22. 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
  • 23. In Summary make life easier for the app, reduce likelihood of errors in the app, do the hard stuff in the container datasource != container these legos are not all the same ideal SMArt container does oAuth and SMArt Connect natively so as to leverage existing (i2b2/Indivo)... features. RDF universal representation + toolset

Editor's Notes

  • #12: POINT OF VIEW of ONE CONTAINER INSTALLATION