Archive

Posts Tagged ‘strategy’

Free SOA Service Design Cheat Sheet

September 14, 2012 1 comment

This simple cheat sheet contains all the key goals, principals and design patterns that you should be aware of when designing SOA services and contains helpful links to places where you can find more in-depth information on each topic.

Read more…

Top 5: SOA gotcha’s and how to avoid them.

June 27, 2012 Comments off

After 5 years of designing and building award winning service oriented architectures, I thought I’d share my top 5 SOA gotcha’s and some general hints on how you can avoid them in your SOA programme.

Read more…

SOA Certified Architect: Module 9 – SOA Design & Architecture Lab

May 3, 2012 Comments off

This is the final module in the SOA Certified Architect course I’m taking, and the most difficult yet. This module doesn’t introduce any new concepts, patterns, principals or technologies – it’s designed purely to assess weather you can apply what you’ve learned about service-oriented architecture principals and patterns to solve service-oriented architectural problems.

The self-study kit.

The self study kit is fairly basic in this module. The course booklet contains various case study examples that give the student an opportunity to examine architectural problems and propose solutions. The audio tutor CD contains a reminder of all the patterns and principals followed by a discussion on how they inter-relate. The exam preparation booklet contains some tips and advice and further reading that may help when taking the Lab exam. And at the back of the exam preparation booklet is a series of 4 sample test questions that give you an idea of what you’ll face in the final Prometric test.

The exam questions and format.

It was the 4 sample test questions that I found to be the most useful part of the preparatory material. They illustrate the format of the exam questions and give an idea of just how challenging the final exam will be. The exam questions themselves are quite abstract and verbose in nature and the multiple choice solution options can be full or partial answers. The exam is basically a case of picking the closest answer for each question, while at the same time bearing in mind that the ubiquitous “none of the above” answer may also be correct in each case.

It’s this “do I go for a partial solution or none of the above?” dilemma that makes this test so frustrating and so difficult. Personally, being of the “if you’re going to do it, then do it right” persuasion, these half-correct options feel unsatisfactory and incomplete – and opting for the final option, “none of the above”, really depends on whether you feel the solution you’re proposing can’t do without the “bells and whistles” approach you’ve concocted. I’d argue that the test would be much easier to follow if it dropped the “none of the above” option altogether, or at least used it in fewer questions.

Otherwise its mostly fine, the wordy nature of the exam questions makes them quite difficult to comprehend and this approach does give the exam an overly ‘academic’ and unrealistic feel that is out of character with the other modules.

My exam strategy.

The way I got through the exam was to quickly copy down the diagram associated with the question and then make notes on the diagram whilst reading the problem statement. That way I found I could choose the right answer a little easier. However, this at the cost of throughput and I did run out of time towards the end, only answering 19 of the 20 questions. If you feel you have a better way, do share it in the comments below for others to learn from.

Were the course module materials good preparation for the lab exam?

Overall I’d have to say not quite, although I do realise that because of the discount policy at SOAschool the course materials for every 5th module you buy are effectively free. However, once you’d exhausted the 4 sample exam questions, the next best resource was not the course booklet but rather the SOA Design Patterns book. Studying the patterns and principals in more detail feels like the better option if you want to be totally clear as to which patterns can be applied to which problem.

I think that what I would have preferred from the self study materials would have been access to a larger collection of sample exam questions and a few more hints on how to approach the exam.

However, its worth noting that despite actually referring to the official course materials very little, I did manage to come through the exam with honours. I’m now a SOA Certified Architect (with honours), and I couldn’t be happier with that result.

So now I’m certified, this will be the last in this series of SOA Certified Architect course blogs. If you missed any of the others in the series and you’d like to catch up, you can read them here…

Module 1 - Fundamental SOA & Service-Oriented Computing
Module 2 - SOA Technology Concepts.
SOA Certified Professional
Module 3 - SOA Design and Architecture.
Module 8 - Advanced SOA Design and Architecture.

SOA Certified Architect: Module 8 – Advanced SOA Design & Architecture

April 11, 2012 Comments off

I’m over half way now. Module 8 – Advanced SOA Design & Architecture is the fourth test module and the last in the SOA Certified Architect programme to introduce new concepts and content. The fifth and final module (Module 9) is purely a lab exercise exam – designed to pull together all the concepts from the previous four modules. There will be more on Module 9 in the final blog article on the series.

Module 8 provides an in-depth exploration of service-orientation, service-oriented architecture and SOA design patterns, including those that relate to the Enterprise Service Bus (ESB) and Orchestration.

The following topics are covered in this course module:

  1. Defining a Service-Oriented Architectural Model and SOA Architecture Types
  2. Fundamental and Advanced SOA Design Patterns
  3. Designing SOA with Service Agents and Supporting Multiple Protocols
  4. Legacy Encapsulation and ESB Design
  5. Asynchronous and Event-Driven Messaging, Message Routing and Reliable Messaging
  6. Global and Domain-Level Policy Enforcement and Positioning of Business Rules
  7. Orchestration Architecture Design, State Deferral and Service Grids
  8. Service Data Replication, Cross-Service Transactions and Compensating Transactions
  9. Data Transformation and Protocol Bridging
  10. Introduction to REST-Inspired Patterns

The first few sections establish how SOA architectures relate to their earlier counterparts (such as distributed components, applications and integration). It also illustrate how SOA architectures tend to differ somewhat in scope by being fundamentally concerned with creating a coherent ‘bigger picture’.

The rest of the material is dedicated to documenting 31 core SOA design patterns that can be applied either as concepts, design standards or as technical service implementation options. I’m not going to go into detail about the SOA patterns here (you can read all about them for yourself in the accompanying book or online at soapatterns.org), but it’s fair to say that they’re incredibly useful and particularly powerful, especially when combined.

As with module 3, the real value of module 8 is in understanding the purpose & benefits of each SOA pattern. By working through the course materials, you create an invaluable mental service-design framework that’s incredibly flexible and durable.

Since sitting the exam, I’ve found that its much easier to talk about service realisation options with stakeholders and developers because you can articulate service designs quickly and easily just by referring to the patterns or the combinations patterns that are required to solve a particular service design problem.

Yet again, this course comes highly recommended. However, it’s fair to say that by this point it’s probably not worth taking individual course modules in isolation, as they now start to rely much more on things learned in earlier modules.

Other blog entries in this series…

SOA Certified Architect Module 1 - Fundamentals
SOA Certified Architect Module 2 - Technologies & Concepts
SOA Certified Architect Module 3 – Design & Architecture
SOA Certified Architect Module 8 – Advanced Design & Architecture
SOA Certified Architect Module 9 – Advanced Design & Architecture Practical (Lab)

SOA Certified Architect: Module 3 – SOA Design & Architecture

April 5, 2012 Comments off

My journey towards obtaining the SOA Certified Architect status continues…

Module 3 – SOA Design and Architecture marks the half way point in the certification course and covers the service-oriented architectural model and the service-orientation design paradigm. It also covers the unique characteristics and dynamics that constitute service-oriented solution logic.

It’s quite a comprehensive and information packed course with approximately half of the content devoted to the SOA Principals of Service Design as established in the book of the same name. The module covers approximately 10 subject areas as follows:

  1. History of Service-Orientation and SOA Theory
  2. Service-Orientation vs. “Silo” based Design
  3. Distinguishing Characteristics of the SOA Model
  4. Understanding Services and Service Capabilities
  5. Complex Service Composition Design, Composition Runtime Roles and Responsibilities
  6. The Service-Orientation Design Paradigm
  7. “Contract First” Design, Standardized Service Contracts, and Uniform Contracts
  8. Service Loose Coupling and Coupling Types, Service Abstraction and Information Hiding
  9. Service Reusability and Agnostic Design, Service Autonomy and Runtime Control
  10. Service Statelessness and State Deferral, Service Discoverability and Interpretability

The course materials then conclude with a brief introduction to the contents of the next course module which covers SOA design patterns.

Yet again the content is delivered using a powerpoint-like presentation style which is brief and to the point. The 8 SOA design principals are each covered in roughly equal measure and with good clarity. Some effort is made to show how the principals relate, interact and support each other. It’s also clear that the principles themselves offer a great deal of structure and provide the reader with a valuable cognitive framework that helps you to understand, apply and articulate the benefits of applying each principal during service design.

The exam for this module is as challenging as ever. It takes roughly one hour and consists of around 50 questions that test your understanding of the course materials and the SOA design principals. Obviously, passing the exam is great, but the real long term value of this course module will no doubt come from the cognitive framework that the detailed study of the SOA principles bestows upon you. Definitely highly recommended.

Other blog entries in this series…

SOA Certified Architect Module 1 - Fundamentals
SOA Certified Architect Module 2 - Technologies & Concepts
SOA Certified Architect Module 3 – Design & Architecture
SOA Certified Architect Module 8 – Advanced Design & Architecture
SOA Certified Architect Module 9 – Advanced Design & Architecture Practical (Lab)

Avoiding the “I’m Spartacus” scenario in SOA.

January 18, 2012 Comments off

Remember the movie “Spartacus” – the Stanley Kubrick classic starring Kirk Douglas? In the movie there’s a famous scene where the bad guy’s (the Romans) want to capture Spartacus (Douglas) who’s the leader of a Slave army. After a huge battle the Slave army is defeated and the Romans promise that no further punishment will be dished out as long as the slaves identify their leader, Spartacus. “Who among you is Spartacus?” ask the Romans. To which, one by one hundreds of guys each reply in turn “I’m Spartacus” thereby protecting their leader by creating a huge array of ‘false positive’s‘ so that the Romans can’t properly identify the one true Spartacus.

What’s this to do with SOA?

In large SOA programmes I’ve seen a similar scenario where all of a sudden, multiple in-flight projects each start to claim that they are delivering ‘the SOA’. However, in reality very none of them are because it all hinges on how you measure ‘SOA’.

This ‘SOA Spartacus’ scenario usually occurs quite soon after SOA is articulated as the primary strategic direction of the programme, but before the organisation’s SOA capability is mature enough to understand what is meant by SOA, and how it should be designed and delivered. The problem occurs because people are inherently good, and they want to be seen to be doing the right thing even when exactly what constitutes ‘the right thing’ is not terribly well understood.

The risk for these SOA programmes is that should this situation be allowed to continue, the organisation may ultimately deliver none of the strategic benefits of SOA because the project teams are not properly coordinated and each ends up doing SOA very differently.

The Solution:

The solution to the problem is in two parts. Part one is to have a clear understanding of what constitutes SOA in your environment by creating a single set of SOA Design Standards.  Part two is to provide robust SOA Governance so that adherence to the standards is universally enforced.

1. SOA Design Standards.

Business-aligned and intrinsically interoperable service-oriented architecture can only be created by widespread adherance to a consistent set of SOA design standards. It needs to be made very clear what does constitute good SOA within your domain and what doesn’t. Your service design standards should support the SOA design principals and ensure that the goals and benefits of SOA can be achieved. The overall policy of the SOA programme should be to enforce the SOA standards using SOA Governance…

2. SOA Governance.

In order to avoid deviation from the SOA standards and policies, you need to introduce an element of governance & control across the whole SOA programme that can ensure that the SOA Design Standards are applied consistently by each project team. If you do this it’s far more likely that you’ll get the outcomes you want and that the resulting SOA will meet the strategic goals of SOA.

Finally, a simple shortcut.

If you’re planning a SOA programme, quickly obtaining maturity in SOA design and implementation will save you a small fortune and help you avoid these simple gotcha’s. If you don’t have a SOA expert on your team, then my advice go and get one as soon as possible. It could be the best decision you’ll ever make. I’m confident you’d see a respectable return on that investment in a very short space of time.

Ben Wilcock – SOA Certified Professional (SOACP)

August 22, 2011 Comments off

After completing 2 of my Prometric exams with SOASchool.com, I’m pleased to announce that they have awarded me the status of ‘SOA Certified Professional‘.

You can read my blog posts about the individual courses that made up this certification here and here.

About SOASchool.com and the SOA Certification Programme.

The SOA Certified Professional (SOACP) program is dedicated to excellence in the field of SOA and service-oriented computing. Through a series of seasoned course modules and exams, IT professionals have the opportunity to obtain a number of different certifications to recognize their accomplishment of gaining project-ready SOA proficiency.

This vendor-neutral program was developed in cooperation with best-selling SOA author Thomas Erl and several major SOA organizations and academic institutions. Through the involvement of the SOA Education Committee, course contents and certification requirements are constantly reviewed and revised to stay current with developments in the service-oriented computing industry.

Follow

Get every new post delivered to your Inbox.

Join 43 other followers

%d bloggers like this: