SOA Service & Microservice Design Cheat Sheet

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

Continue reading “SOA Service & Microservice Design Cheat Sheet”

Advertisements

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

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

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

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)

Ben Wilcock – SOA Certified Professional (SOACP)

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.

SOA Certified Architect: Module 2 – SOA Technology Concepts

Regular readers will already be aware that I’m working towards becoming a SOA Certified Architect with the independent SOASchool.com. This training and certification body is chaired by a group of independent industry experts led by Thomas Erl the leading author on service-orientation.

I chose this certification programme precisely because it’s independent and vendor neutral. Vendor diversification options and greater implementation choices are one of the major advantages that SOA has over other architectural models, so it seemed to me that there would be little point taking an IBM, Microsoft, SAP or Oracle certification.

The standards that bind SOA together are not owned by any one vendor, but by standards bodies like the W3C, OASIS, and WS-I. Therefore, at best a vendor will only ever have their own proprietary view of how to implement these standards in their current software stack. It’s this implementation specific view that can creep into their certification programmes and therefore limit your future options and depth of general understanding (in my opinion).

This second module ‘SOA Technology Concepts’ covers a very broad overview of all the relevant technology and implementation concepts for service-oriented architectures including…

  • SOA Implementation Technologies (Components, REST, SOAP, WSDL, XSD, XML, UDDI, WS-Policy).
  • Standards and standards bodies.
  • QoS Standards (WS-Coordination, WS-AtomicTransaction, WS-BusinessActivity, WS-Addressing, WS-ReliableMessaging, WS-Security).
  • Orchestration Standards (WS-BPEL)

It also covers the details behind some of the terminology used throughout the course like ‘Service Activities’ and ‘Service Roles’.

As ever the course content was clear and concise, and if you follow the instructions in the course module booklet you should have no problem in passing the associated exam. The vendor independence is very apparent, with no specific preferences one way or another in either the course booklets or the associated printed textbooks. This is great, because it’s not anti-vendor, but it does help you to understand that in SOA the technology revolves around the standards and that for the first time this creates a level playing field for everyone to compete on.

The exams themselves are pretty tough; 50 questions lasting an hour with a fairly high 80% ‘standard’ pass rate (even higher still if you require an honours grade as I do). After the exam it would be really nice to know which questions you got wrong so you could learn from your mistakes, but this isn’t an option. In my case I suspect that my wider implementation experience inclined me to give more optimistic answers than required to one or two of the questions which just prevented me from a perfect score. Ho hum.

The customer experience from Prometric is still only average. For this exam I had to travel twice as far to find a test centre because my local one had decided to shut down their exams and assessments for most of the summer while they relocate to a new office. Bizarre. Still, the exam itself was complementary, as compensation for the confusion over my first attempted exam a couple of months ago (where the test centre had closed but failed to inform every candidate). Prometric’s customer services are very good, it’s just the availability of test centres and the on-line administration system that are lacking.

Overall it’s been another thoroughly enjoyable experience. On to the next one…

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 1 – Fundamental SOA & Service-Oriented Computing

Fundamental SOA and Service Oriented Computing.

In the past few weeks I’ve been studying hard in order to take my first SOA Certification exam.

The certification programme that I have chosen to study is from Thomas Erl’s SOASchool and is (to me) undoubtedly the best in the industry. I say that for a number of reasons…

  1. It’s totally independent and completely vendor-neutral (as all good SOA should be).
  2. The content is thorough, proven and impeccably researched.
  3. It’s practical and based on cutting edge policy’s and best practices.

Of course, I understand that certification is not for everyone, but in my case I felt that because SOA is surrounded by so many myths, legends and falsehoods, it probably makes sense for me to add a quality mark to my work so that clients can be confident that the challenges I often encourage them to tackle are based on a well thought out combination of very thorough research and hard-earned experience.

The full certification programme will take me many months to complete. It consists of 5 course modules each consisting of home study presentation booklets backed up by audio CD’s, books (recommended but available separately) and sample exam-like question cards.

The course content is very thorough and of a high quality. All the major SOA topics are presented well and cross-reference throughout (so you get a good impression of just how interconnected all the topics are and how well thought out the whole certification programme actually is).

This first module and associated exam covers the fundamental topics of service-orientation at a high level. It covers the origins of SOA, strategic benefits, SOA terminology, adoption impacts, technology choices, industry maturity, design approaches and project delivery options.

The exam itself is administered by Prometric, takes about an hour to complete and is surprisingly taxing. 80% of the answers need to be correct to achieve the required pass rate.

Conclusions.

Overall I found the whole experience worthwhile and very enjoyable. I achieved a very good grade and already I feel much better equipped for future boardroom discussions even though I’ve only completed one module. In that sense, the course has probably paid for itself already.

It’s fair to say that the process wasn’t totally without fault. One of the audio CD’s didn’t work and had to be replaced, and Prometric allowed me to book an exam at a testing centre which wasn’t actually open on the day of the test.

Thankfully, the problems I did have were rectified very quickly and to my complete satisfaction. They did add some time delays into the whole process though, and it probably took me around 2-3 weeks longer than it should have done to complete the module. Luckily I wasn’t in any rush, but others may have found this aspect a tiny bit frustrating.

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)