Monday, January 16, 2012

The A,B,C,D's of an enterprise SOA

This is a big year for us at work as we mobilize our resources to bring about some really sweeping changes in our technology platforms.  Coupled with the major technology will come a change in the way we build software.

One of the major changes for us is to change the way that we manage inter-application communications.  We are moving towards a more formalized version of SOA which involves a greater number of web services which interoperate via distinct messages over HTTP.  As we retire old systems and replace them with newer ones, we will undoubtedly take the time to modernize and move more of our communications into the newer way we do things.

All change uncovers challenges that can cause pain and will likely see us stumble.  This, is an inevitable side-effect of changing, of moving from one place to another.  It is also a great opportunity to learn new things and as such it presents a good vehicle for personal development and growth.

To simplify the job of capturing and communicating the knowledge that we gain from our excursion down the enterprise SOA path, I have identified 4 key subject headings that act as boundaries for different knowledge areas.  They are described as the ABCDs of SOA knowledge base.

A is for Accessing (Authentication and Authorization)
Knowledge about:
  • Standards based protocols for managing access and trust (WS-*).  
  • How to use our technology to implement those standards (.NET, WCF, Https).
B is for Building
Knowledge about:
  • What technology to choose when we are dealing with services (e.g. WCF Web API, ADO.NET Data Services, WCF, etc)
  • How the respective technologies work
  • Designing RESTful architectures
C is for Consuming
Knowledge about:
  • Browser security policies for accessing remote origins
  • Libraries for making AJAX calls
  • Working with JSON and XML in the consumer
  • Consuming HTTPS with untrusted certificates
  • Composing SOAP messages from the consumer
  • Composing oData formatted queries from the consumer
D is for Deploying
  • Configuring SSL
  • Designing a homogeneous environment for hosting application services
  • Configuring application endpoints and security accounts

It's the sum of all this (and more) knowledge that goes into having a successful services-based application environment.  Internalizing the knowledge gained and feeding that into process and culture change will be a real but hopefully rewarding challenge.

No comments:

Post a Comment