0
SOAService Oriented ArchitectureFriday, May 17, 13
Who We AreFriday, May 17, 13
What is SOA• System Architectural Pattern• 3 Parts - Provider, Broker, RequesterFriday, May 17, 13
Service Provider• All about Data• Creates a web service• Provides access to data layer to theService Broker• Determines wh...
Service Broker• All about routing. Think Traffic Cop• Responsible for making the serviceavailable to any Service Requester• ...
Service Requester• Requests the desired web service formthe Broker• Calls services from the Provider onceconnectedFriday, ...
Theory & Principles of SOA• Interoperability on different systems over acommunication protocol• Service Statelessness• Serv...
BreweryDB & SOAFriday, May 17, 13
BreweryDB 1.0• Website with API• Maintainability - Tightly coupled• Data Model was small• Data structure inconsistenciesFr...
BreweryDB 2.0 Requirements• API First• A single way for everyone to consumethe data model• Separate display from the data ...
BreweryDB SOA• Service Provider is our Data Model• MySQL + Elasticsearch + Models• Service Broker is our API• Endpoints• S...
BreweryDB Data Model• Service Provider• Validation• Consistent input and output structure of data• Decoupled from response...
BreweryDB API• Service Broker• Authentication• Return formats• Authorization• Resource routing• Error handlingFriday, May ...
Designing an API• Endpoint structure• Error handling• Status codes• Versioning• Return types• Request limits• Authenticati...
BreweryDB Consumers• Service Requesters• Single interface to our data• Documentation• Provisioning of accountsFriday, May ...
What we Learned about SOA• Maintainability• Allows for fast iterations• Initial up front work is expensive• Not always the...
Hurdles• Enumerated Fields• Website Authentication• Emails• Scaling & PerformanceFriday, May 17, 13
Questions?Friday, May 17, 13
Review on joind.inhttp://pntlbs.co/tek13soaFriday, May 17, 13
ImplementationBuilding BreweryDBFriday, May 17, 13
DevelopmentTimeline• Planning took roughly 3 months• Development of data model in aweekend.• Took an additional 6 months t...
Solving the rest of theProblemFriday, May 17, 13
PLA• Administration of data• Enumerated data fields• Data moderation• AnalyticsFriday, May 17, 13
BreweryDB.com• Authentication of users• Communication with end users• Documentation• API Key provisioningFriday, May 17, 13
PocketBeerBreweryMapPintLabsAdminBreweryMapBreweryDBAPIDBSearchFriday, May 17, 13
Upcoming SlideShare
Loading in...5
×

Service Oriented Architecture

1,671

Published on

PintLabs talk from php|tek 2013

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,671
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
18
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Service Oriented Architecture"

  1. 1. SOAService Oriented ArchitectureFriday, May 17, 13
  2. 2. Who We AreFriday, May 17, 13
  3. 3. What is SOA• System Architectural Pattern• 3 Parts - Provider, Broker, RequesterFriday, May 17, 13
  4. 4. Service Provider• All about Data• Creates a web service• Provides access to data layer to theService Broker• Determines which services to exposeFriday, May 17, 13
  5. 5. Service Broker• All about routing. Think Traffic Cop• Responsible for making the serviceavailable to any Service Requester• Connects the Requester to the ProviderFriday, May 17, 13
  6. 6. Service Requester• Requests the desired web service formthe Broker• Calls services from the Provider onceconnectedFriday, May 17, 13
  7. 7. Theory & Principles of SOA• Interoperability on different systems over acommunication protocol• Service Statelessness• Service Encapsulation• Service Granularity• Service DiscoverabilityFriday, May 17, 13
  8. 8. BreweryDB & SOAFriday, May 17, 13
  9. 9. BreweryDB 1.0• Website with API• Maintainability - Tightly coupled• Data Model was small• Data structure inconsistenciesFriday, May 17, 13
  10. 10. BreweryDB 2.0 Requirements• API First• A single way for everyone to consumethe data model• Separate display from the data model• Consistency in all responsesFriday, May 17, 13
  11. 11. BreweryDB SOA• Service Provider is our Data Model• MySQL + Elasticsearch + Models• Service Broker is our API• Endpoints• Service Requesters are everyone thatuses BreweryDBFriday, May 17, 13
  12. 12. BreweryDB Data Model• Service Provider• Validation• Consistent input and output structure of data• Decoupled from response format (XML, JSON,PHP)• Decoupled from access control• Builds data relationshipsFriday, May 17, 13
  13. 13. BreweryDB API• Service Broker• Authentication• Return formats• Authorization• Resource routing• Error handlingFriday, May 17, 13
  14. 14. Designing an API• Endpoint structure• Error handling• Status codes• Versioning• Return types• Request limits• AuthenticationFriday, May 17, 13
  15. 15. BreweryDB Consumers• Service Requesters• Single interface to our data• Documentation• Provisioning of accountsFriday, May 17, 13
  16. 16. What we Learned about SOA• Maintainability• Allows for fast iterations• Initial up front work is expensive• Not always the answerFriday, May 17, 13
  17. 17. Hurdles• Enumerated Fields• Website Authentication• Emails• Scaling & PerformanceFriday, May 17, 13
  18. 18. Questions?Friday, May 17, 13
  19. 19. Review on joind.inhttp://pntlbs.co/tek13soaFriday, May 17, 13
  20. 20. ImplementationBuilding BreweryDBFriday, May 17, 13
  21. 21. DevelopmentTimeline• Planning took roughly 3 months• Development of data model in aweekend.• Took an additional 6 months to finishthe APIFriday, May 17, 13
  22. 22. Solving the rest of theProblemFriday, May 17, 13
  23. 23. PLA• Administration of data• Enumerated data fields• Data moderation• AnalyticsFriday, May 17, 13
  24. 24. BreweryDB.com• Authentication of users• Communication with end users• Documentation• API Key provisioningFriday, May 17, 13
  25. 25. PocketBeerBreweryMapPintLabsAdminBreweryMapBreweryDBAPIDBSearchFriday, May 17, 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×