2010 08-26-smart-architecture

3,987 views

Published on

2 Comments
2 Likes
Statistics
Notes
  • smart app
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • The 'download eMail' notification doesn't seem to work.......
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,987
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
143
Comments
2
Likes
2
Embeds 0
No embeds

No notes for slide
  • POINT OF VIEW of ONE CONTAINER INSTALLATION
  • 2010 08-26-smart-architecture

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

    ×