Services Oriented Architecture (SOA) is the idea of loosely coupling your data production from your data consumption. This is normally done by hiding your data behind an HTTP server and using web services calls to access your data. For instance, a MySQL server stores your data and an internal HTTP server takes a query and outputs XML/JSON. Your public facing code consumes the web service and outputs it in HTML to the end user.
The benefits of SOA are numerous: – Parallel asynchronous requests to your data – Decouple your code from your data layer – Abstract scalability into the services layer
The current paradigm of running queries in sequence scales well up to a certain point. By moving to SOA you no longer run those queries in sequence, but in parallel. The CPU time is the same, but instead you’ve got three servers returning data at the same time. The addition of turning your data requests into asynchronous requests rather than blocking requests lets you perform other work while waiting for your data requests to finish processing.
The benefits of decoupling your code from your data layer allow you the flexibility to choose the right tool for the job. Services layers can be written in higher performance languages while the public facing code can be written in anything that reads XML/JSON.
The addition of abstracting your scalability into the services layer lets you put your senior engineers in charge of scaling, caching, queries, etc. while allowing your other developers to focus on creating features rather than when to expire a cache or which index to use in MySQL.
Joe Stump has been scaling large websites for over ten years. After spending a few years as Digg’s Lead Architect he struck out on his own, with Matt Galligan, to found SimpleGeo. As CTO of SimpleGeo he’s responsible for architecting and scaling a robust GIS infrastructure for developers around the world.
Joe has authored pieces for O’Reilly’s ONLAMP.com and has spoken at Web 2.0 Expo, FOWA, FOWD, Q-Con, SXSW, MySQL Conference and PHP-Con, to name a few.
Joe is an expert in the LAMP stack and graduated from Eastern Michigan University with a BA in Computer Information Systems.
Photo courtesy of Erica Hampton
View a complete list of MySQL contacts.