1 / 10

Jason on JSON: A SOA Story

Jason on JSON: A SOA Story. Discussion on Service API Design for Arena ChMS Jason Offutt Software Engineer Central Christian Church Email: jason.offutt@cccev.com Twitter: @yell0wdart Tweet about us using #RefreshCache!. What is SOA?.

oswald
Download Presentation

Jason on JSON: A SOA Story

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Jason on JSON: A SOA Story Discussion on Service API Design for Arena ChMS Jason Offutt Software Engineer Central Christian Church Email: jason.offutt@cccev.com Twitter: @yell0wdart Tweet about us using #RefreshCache!

  2. What is SOA? • Service Orientation – Design paradigm that specifies the creation of automation logic in the form of services • Service Oriented Architecture – An architecture that packages functionality in the form of interoperable services • Most commonly expressed via an inventory of web services

  3. What is SOA? One of the goals of SOA is to create an architecture built around extensibility. SOA seeks to avoid monolithic design. Large, monolithic, “silo” design leads to Tightly coupled business logic Awkward maintainability Difficult to achieve extensibility

  4. What is SOA? One of the goals of SOA is to create an architecture built around extensibility. SOA wants to be more like Legos. Bite-sized, pluggable components lead to Abstraction of business processes Encapsulated business logic Ease of maintenance Ease of extension

  5. Why should we use SOA? This design paradigm allows us to use the same application logic base to easily create multiple clients on a variety of platforms! Easily develop for multiple clients Arena Modules Mobile Applications Social Networks Integration With Third Party Applications Bring ministry technology to where the people are!

  6. How can we use SOA? The anatomy of a Service Inventory 3 Service Roles • Utility Services – Encapsulate common low-level functionality (enterprise-level utility classes). • Entity Services – Serve as a data model of sorts. Encapsulate basic CRUD operation of business entities. • Task Services – Abstract individual business processes. They put the “C” in MVC.

  7. How can we use SOA? Picking our battles within the API design • Dependencies are a side-effect of software engineering. They will ALWAYS be present. • In a Service Oriented Architecture, highly dependent code isn’t always a bad thing… • When it’s applied in the right places • When it’s applied under the right circumstances

  8. How can we use SOA? Best practices in service coupling • Service logic tightly coupled to service contract • Service contract MUST be first class citizen • Contract is designed first, before any code is written • Service logic is designed based on service contract • View can be coupled to service contract • Dependency on service contracts allows service logic to be modified with minimal effect on view • View can be easily modified to service output data via the exposed service contract

  9. How can we use SOA? Best practices in service coupling • Task Services loosely coupled to other services • Entity Services (data model) • Utility Services • Entity Services loosely coupled to data layer

  10. Technologies • WCF vs “ASMX” services • REST vs SOAP • Security concerns of REST? • Public availability of Entity Services • Should Task (“controller”) Services be the only means of accessing service functionality externally? • JSON vs ATOM vs traditional XML messages

More Related