Sunday, November 4, 2012

SOA School Certified SOA Architect


Recently I become a SOA school certified SOA architect. For completing this certification, I attended a 5 day training program for SOA architect. This certification requires me to pass following exams: 

  1. Exam S90.01: Fundamental SOA & Service-Oriented Computing
  2. Exam S90.02: SOA Technology Concepts
  3. Exam S90.03: SOA Design & Architecture
  4. Exam S90.08: Advanced SOA Design & Architecture
  5. Exam S90.09: SOA Design & Architecture Lab

In addition to above, I also referred to following books from SOA School/Thomas Earl: 
After going through the training program and above three books and then passing all exams, I understood the big picture on how to do SOA. My understanding of big picture is shown in the figure given below:  



From above picture it is clear that Thomas Earl and his team have defined a framework for service enabling an enterprise. The main part of the big picture is explained below:  

  1. Enduring principle of good Software engineering 
  2. 7 strategic Objective of SOA  
  3. 4 Characteristics of SOA 
  4. 4 types of SOA
  5. 3 types of services 
  6. Robust SOA 
  7. 8 principle of SOA 
  8. SOA design pattern 

1. There are certain principles of good software engineering which are never out of date.  These principles are – Decomposition – Functional/Process, Separation of concerns. Modularity and abstraction. We should keep these principles in mind and apply them in appropriate manner whenever we are doing SOA. 
2. Whenever we are doing SOA, we are trying to achieve 7 strategic objectives which represent a specific target states. We need to ensure the all the stakeholders (SH) have common understanding of these objective. It is important that all SH understand that these objective are strategic in nature. Achieve these objectives, initially requires   time and investment till we reach a tipping point. Tipping point is a state when enterprise has right mix of services and can create new service with service orchestration. Once we reach tipping point, we can start getting the real benefit of SOA in terms of Agility and low life cycle cost etc. 
3. There are 4 characteristics of SOA – business, enterprise, composition and vender neutral centricity. If our SOA effort does not represent any one of these characteristic, then we are not doing right kind of SOA. 
4. Services are the most important component of SOA. We can classify services in three types - task services, entity services and utility services. These services form separate layers and represent an example of application of principle of separation of concerns in SOA. 
5. Whenever we are doing SOA, we are going to do 4 types of SOA. The first is creation of SOA domain .service domains are decided by decomposition an enterprise into logical, coherent group of services. The next type of SOA  is architecturing a specific service in a particular domain. Third type of SOA is service composition. Service composition architecture type represents how new services can be created by composition and re-composition of existing services. If we can achieve above three types of SOA, we will able to create a service oriented enterprise which will have organization agility at business level and a vendor  neutral, enterprise centric IT system which will have low cost of ownership and higher ROI. 
6. We have 8 SOA design principles which can be applied when we designing a specific service . The following figure shows how SOA design principle can be applied on different aspect of a service  
 7. We have large number of design patterns which can be applied as proven solution for solving recurring problems which we encounter during our SOA initiative. These design patterns can be best understood by classifying them into – Normalization, canonicalization, centralization and generalization category etc. Normalization patterns help us in ensuring that there is no redundancy of capabilities across different services. Canonical pattern help us to create an enterprise or domain wise common data/messaging models. This helps us in minimizing transformation and reducing complexity. Centralization patterns ensure that for every capability there is only one service at enterprise level and capability can be accessed only via its official contract. Generalization pattern help us to create services which logic generic logic and are agnostic in nature. Such services have maximum potential for reuse.  

8. We should also not forget 4 pillar of SOA – team work, CCF, discipline and governance and balance scope. In SOA we team work across multiple teams which may not be co-located and belong to different enterprises and groups. We need a common communication framework. All the stakeholder need to have common shared understanding of SOA. For this to happen, every individual need to unlearn and learn many new things. Development of common terminology across all the teams is essential to SOA success. Scoping in SOA project is a big problem. Neither can we have a very wide nor very narrow Scope. What we need is to have a balance scope which should  been arrived  keeping the enterprise in mind and capability to comprehend and execute by various teams. Although these 4 pillars may not sound very jazzy but they are critical to SOA success. 

 If we are able to service enable our enterprise in the manner described above, we will able to meet 7 strategic objectives of SOA or desired target state of a service enabled enterprise. 

No comments: