2010-12-23 Developers Conference Call
Date
23/12/2010
In Attendance
You
Agenda
Quickly review previous meeting minutes (5 min)
1.8 Update (20 min)
Webservices 1.0 discussion meeting (60 min)
After-action review & next week's agenda (5 min)
Minutes
Real-time notes: http://notes.openmrs.org/devcall20101223
Web services 1.0 talking points
End goal?
How many services, how many objects, etc
Soap vs REST
both?
Is there a framework that will help us combine them?
Baked into API, or separate module?
Any good examples of object+transaction based APIs out there?
Atlassian JIRA API
Authentication methods?
Session-capable (OAuth 2.0 , OpenID)
(REST module uses stateless basic auth through request now)
Publish a WSDL /WADL (Why Contract First?) - (Interesting Debate on Contract First Vs Code First )
Outcomes
Transcripts
Backchannel IRC transcript
Audio recording of the call: Listen online or download - available after the meeting
Notes
Last Week's TODOs:
Need a ticket to test new 1.8 widgets in FormEntry (Burke is creating)
Figure out how to mavenize modules
1.8 Update
Beta release will be Jan 6 2011
Darius has a few tickets left that should be done by then
Speed difference for location search is a red flag, but it is due to a built-in 400ms delay on all searches
For the sake of performance testing, set the delay to zero
Argument against that: trying to mimic a realistic environment, not optimal
TODO: reassign TRUNK-1707 (jQuery UI themerolling)
TODO: increase resources for OpenMRS servers (test and apps), get OSU involved
TODO: Wyclif will email Zabil and cc: Darius re: 1.8 installer
Web Services
End goal?
0.1
Requirements
Within a module (not built into core)
Must allow API methods to be easily exposed to web services
Must allow modules to easily expose methods through web services (or at least head down this path)
Should limit/avoid business rules in web service layer – i.e., thin layer exposing API methods
Must support secure connections
Methods are documented on the wiki
Strategy
Not covering full API
Not 100% final – will need to allow for us to fail and iterate
Not part of core
Not necessarily using the same objects as the API – i.e., introduce DTOs
How many services, how many objects, etc?
Authentication
R (get & search) methods (concept, person, user, locations, cohorts, ...)
CRUD methods (patient, encounter, obs)
Export "patient" (with their encounters, obs, etc.)
0.2
HL7
CRUD for metadata
Run rule(s)
Get reports for a time period
Strategy and road map?
Web service-a-thon? If so, when?
What's the plan to move Web Services forward? Who is going to do what?
Soap vs REST vs. both?
Is there a framework that will help us combine them?
Burke: SOAP++ for heavy work, ReST++ for quick & dirty
Darius: wants ReST and SOAP requests to have the same underlying method returning the same data
Sunny: SOAP = WSDL, ReST = WADL (Spring supports ... ReST?)
Summary: would like both (i.e., pseudo-REST by exposing methods as simple HTTP calls)
JSON vs XML vs. both?
SDMX-HD = XML
Summary: would like both
Baked into API, or separate module?
Any good examples of object+transaction based APIs out there?
Atlassian JIRA API
Atlassian Confluence API (http://confluence.atlassian.com/x/3QI)
Facebook API
Twitter API
Google Health
GDATA for Google Health exposes a subset of CCR
Microsoft Healthvault
How is authentication handled?
Authentication methods?
REST module uses stateless basic auth through request now
Session-capable – i.e., token-based
Authenticate to get token
Token sent to all subsequent calls
Authenticate as user
Publish a WSDL (Why Contract First?? )
Publish a WSDL
Why Contract First? http://bit.ly/gll6cp
Interesting Debate on Contract First Vs Code First - http://bit.ly/eMXE8Q