Showing posts with label Service Oriented Architecture. Show all posts
Showing posts with label Service Oriented Architecture. Show all posts

Wednesday, 7 November 2012

Applying ITIL v3 to SOA

SOA ITIL Service

I wrote at length in 2008 on applying ITIL (v2) to SOA, and it is interesting to see how much of that still applies to ITIL v3, and in fact even more so, given the focus on service.

To recap:

"Service-oriented architecture (SOA) proposes a model of software as a distributed network of cooperating services, in contrast to the traditional, more monolithic application model. Operationally managing such applications requires a sophisticated management organisation and operating framework that are capable of defining and sustaining service levels to customers across the enterprise.

ITIL is the widely adopted framework for service management, defined as the management of an IT infrastructure of hardware, software, communications equipment and facilities, documentation, and skills used to provide the required service at the required level of quality."


Though the ITIL definition of service is much broader than that of SOA, the ITIL provides a useful framework for thinking about how to build and manage your SOA.

Service Strategy

A well defined and clearly articulated service business strategy is crucial to the ongoing success of a Service-oriented Architecture.  It needs to be "defined" so that the architecture evolves in the desired direction.  It needs to be "clearly articulated" so that during the long journey people remember why the process was started.  Your strategy will answer questions like:

  • Why are you building software as services?
  • What is the business case?
  • What is the goal (in bothe business and technical terms)?


Service Design

The ITIL concept of service design expands the traditional software service analysis design activity to include the consideration of the following:

Supplier Management :  "No man is an island", and this applies especially to SOA, where the number of "suppliers" that services rely upon to fulfil their function increases dramatically over traditional, monolothic software architectures.  Supplier management is about understanding which services your services rely upon, who owns those services,  and defining contracts and SLAs with those service providers.

Service Level Management : Having defined contracts with service consumers and suppliers, service level management is about monitoring and enforcing that SLA, dealing with exceptions, and communicating effectively with both.

Service Catalog Management : Your service catalog or repository or registry or whatever you want to call it is that place where questions like the following are answered: What are your services?  Where are they? What different versions are there? Who uses them?  What SLAs are defined?  Where can people find out about services?

Availability Management : Availability management addresses questions around ensuring that your services can meet their SLAs, considering the availability of services during planned or unplanned service outages, unexpected increases in volumes, etc

Service Transition

The initial build of your services will only form a tiny part of the overally lifetime of the service.  Managing the potentially frequent changes to your services forms the focus of the ITIL service transition discipline.

Change Management : Change management is about being able to introduce change with minimal disruption to service consumers.  A versioning policy will form a key part of this process, that is the ability to introduce new service versions without disrupting existing clients, as well as defining processes to enforce managed migration to the newer versions.

Knowledge Management: Effective decision making and service support requires information such as who is using your services, how are they being used, etc

Release and Deployment Management :  SOA requires continuous deployment methodologies in order to satisfy the SLAs that govern the linkages between services.  Consideration needs to be given to how multiple service versions may be run concurrently, and the how deprecated services will be managed and phased out.

Service Testing and Validation: SOA requires automated testing to allow rapid regression testing

Configuration Management System: SOA requires that services are versioned, and readily visible to the client community.

Service Operation

Operating a complex network of interoperating services is more complicated than monolithic architectures and needs

Event Management: monitoring services, alerting and triggering responses

Incident/Problem Management : service incident logging and classification, knowing what steps to take, who should do what, SLAs for completion, escalation procedures, client notification procedures, evidence capture, reviews,

Request Management : providing channels for clients to request an receive services, information to customers about service availability and procedures for obtaining them, sourcing and delivering services, assist with general information, complains and comments

Access Management : managing access to service to authorised users and nobody else, monitoring


Share:

Tuesday, 30 October 2012

SOA or Just a Bunch Of Web Services (JABOWS)?


A Service-oriented Architecture (SOA) is more than just a bunch of web services (JABOWS), but which do you have?

  • Do you have a place where services can be discovered, learned about and tried out?
  • Are your services being reused, sometimes in unexpected ways?
  • Are your service clients viewed as customers?
  • Are you able to upgrade service implementations and interfaces without any disruption to your service clients?
  • Do you know how your services are being used?  Do you have service-level agreements that are being monitored and enforced?
  • Do you have a service charging model?
  • Are your developers enjoying and being rewarded for reuse?
  • Do you have processes for regulating the usage and change of services?
  • Are you able to provide dynamic capacity management?
  • Do you have service development, interface and contract standards?
  • Are your services secure?
  • Do you have automated service regression testing?
  • Does your business understand the need to protect its service assets, and to curb its appetite for tactical change?
  • Could your services be easily exposed to the Cloud?


I think the last question is probably the most incisive.  If the answer is no, then you are just doing a bunch of web services, no matter what lip service you pay to the other questions.
Share:

Monday, 29 October 2012

SOAP vs REST web services


Comparing SOAP to REST for building web services is a bit like comparing apples with pears: SOAP is a protocol, REST is a pattern, and you could, if you felt so inclined, write RESTful services using SOAP.  However, when people ask this question, they usually mean: SOAP (as in WSDL, perhaps RPC style, WS-* standards), as opposed to REST (as in JSON/XML over HTTP)

Assuming you mean this, below are some pros and cons for each, but note this: REST is increasingly becoming the de-facto standard across the web, being used by the big public API providers in preference to SOAP. I reckon it's just a matter of time before this question will just go away.

Share:

Thursday, 25 October 2012

SOA - Governance Principles


Definition:-
Governance is the application of controls to processes that change corporate assets, with a view to ensuring that those assets comply with (or move towards compliance with) with a set of corporate goals
Governance Needs Balance:-
Given the necessary overheads of governance, a balance needs to be struck between too much governance (which will cripple processes), and too little governance (which will result in chaos).
Governance Needs A Raison D’ĂȘtre:-
Governance only makes sense against a backdrop of well-defined drivers and goals. For example, an organisation may decide to standardise on a particular architecture, or tool set, for reasons of reduced total cost of ownership. Governance would be used to drive or direct changes to current assets in compliance with these goals.
Governance Must Be Effective:-
Effective governance will impose light-weight, thorough and widely-accepted controls around the changes being applied to those assets. Governance that is seen as pointless, or a hindrance to progress, will be resisted and ineffective.
Share:

Enterprise Architecture or Just A Bunch Of Developers?


In the early days Service-Oriented Architecture (SOA) we were told that SOA was not Just a Bunch of Web Services (JBOWS).  In a similar vein I would like to suggest that in order to build an SOA you need more than Just a Bunch of Developers (JBODS); you need an Enterprise Architecture.  I'm assuming of course that you have a medium to large enterprise to work with.  Small companies will be able to get a way with a single, highly cohesive and agile SOA team, but this does not scale well.

So what do I mean by Enterprise Architecture?

"The Only Constant In Life Is Change." 
- Heraclitus

For a corporation to be successful it must adapt to changing business markets and technological landscapes.  Managing change is crucial to the corporation’s ability to maintain its long-term market agility.

Share:

Friday, 19 October 2012

Public Web Service API Management Solution

So, as part of your Service-oriented Architecture (SOA) strategy, you've decided to join the Web 2.0 rush to publicise your web service APIs and are wondering about how you might manage this.  Do you build something or are there 3rd party products to help?  The buy-vs-build decision is always a tough one, but you will need to consider your core business and competencies, as well as the product's support for the following:

Partner website - a public portal where consumers of your services will be able to register, obtain service keys, documentation, support, raise issues, join mailing lists, subscribe to RSS updates, download client libraries etc.

Key management - provision and management of API keys and ensure those are supplied with calls.  Support for OAUTH

Share:

Tuesday, 9 October 2012

How many teams does your Service-Oriented Architecture (SOA) organisation need?

How many service development teams does your
Service-Oriented Architecture (SOA) organisation need?






Initially you will need a small, central team, filled with experienced
developers and architects, who will be responsible for:


- SOA product evaluation


- pilot service development


- standards and internal process definition


- customer engagement model definition





For subsequent 
service development, this team should be expanded on a developer
rotation basis to give the wider community exposure to service
development.  Keeping the ownership of
service development to one team will ensure continued consistency while allowing
fundamental changes to standards and processes to be made if required.



Share:

Friday, 5 October 2012

REST Web Service API HTTP Response Status Codes

What HTTP status codes should your REST web service API be returning to clients?  Does it matter?  Before we launch into this topic, a quick recap of some interesting HTTP status codes:

200 - "OK"  All is well
204 - "No Content"  Nothing returned, but all is still well
400 - "Bad Request"  There is problem on the client's side
500 - "Internal Server Error" There is a problem on the server side
301 - "Moved Permanently" The resource has moved
303 - "See Other Server" Returns a URI to another resource
404 - "Not Found" Server has no clue what the client is asking for
409 - "Conflict" Client has tried to perform an operation that would leave one or more resources in an inconsistent state
401 - "Unauthorized" Client attempted access to a resource without providing the necessary authentication credentials
403 - "Forbidden" Client is not authorised to access a resource

Share:

Thursday, 4 October 2012

What is Service Oriented Architecture - Loosely Coupled Services

What does it mean for a service to be loosely coupled in a Service-Oriented Architecture?

A service is said to be loosely coupled if its consumers are minimally impacted by changes to that service or its environment. Some coupling is obviously inevitable since the consumer has to make use of the service but can be minimised in a number of ways:

Share:

Wednesday, 3 October 2012

Enterprise Service Bus (ESB) Benefits - Building a business case

Enterprise Service Bus (ESB) benefits to IT could include:
  • facilitates enterprise integration
  • provides and infrastructure backbone for Service Oriented Architecture(SOA) applications and services, for both event driven and composite applications
  • allows faster and cheaper integration of existing (legacy) systems
  • increased flexibility, making it easier to change as requirements change.
  • standards-based
  • scales from point solutions to enterprise-wide (distributed) deployment
  • configuration based rather than code based integration
  • reduces cost of implementing new processes through reuse of existing application and data
  • reduced TCO (total cost of ownership)
  • reliable delivery of messages across disparate technologies and protocols
  • highly distributable, centrally managed service hosting
  • disseminates data through the enterprise
  • can be deployed incrementally
Share:

Preparing for an Enterprise Service Bus


Before embarking on a costly Enterprise Service Bus (ESB) project, you must define clearly what requirement you are trying to satisfy, and hence what capabilities are required from your ESB.

An Enterprise Service Bus is not an Enterprise Silver Bullet, and can be defined as a set of infrastructure capabilities implemented by a middleware technology that helps to enable a Service-Oriented Architecture.  Remember the service capabilities you are looking to implement, thing like: loose coupling, location transparency, cohesion, implementation abstraction, policy-based management, scalability, and so on.

Share:

Wednesday, 1 September 2010

What is Service Oriented Architecture - SOA - Accepting Change

"The only constant is change" and the world of Service Oriented Architecture (SOA) is no different. No matter how much upfront business process modeling is done, or how perfect your service granularity is, or how wonderfully compliant you are with WS-*, the reality is that your services will have to change to keep pace with change - business agility implies change. And if your SOA has been working, there should be a whole host of consumers of those services who will not be happy at all with having to change. Change involves project cost, cost requires budgetary approval, and approval requires a Business appetite for the change. But since the change won't always appear to benefit the Business, it will very often not be approved, and your SOA will go the way of most system landscapes: to legacy, riddled with complexity, redundancy and consequent fragility.

Share:

Thursday, 22 October 2009

What do I put in my SOA service registry?

I'll talk later about asset management, but for now, what exactly belongs in the Service Oriented Architecture (SOA) service registry?

Well, services obviously, stupid.

But what about stored procedures? Or legacy, remotely invokeable services? Or batch feeds? Or ETL (Extract Transform and Load)?
Share:

Wednesday, 21 October 2009

SOA Service Registry/Repository

How exciting. At long last I am a working somewhere with thousands of services, a SOA registry/repository, a service registrar and established governance processes around the use of services.

Could life get any better for an SOA believer?

Yes, because unfortunately some groups have decided that all this stuff is too much bother and have come to a peer-peer arrangement regarding the use of services.

So the registry is inaccurate.

So the whole house of cards collapses in a horrible, useless heap.

You see, reuse like recycling only works if the there are practical as well as ideological reasons for doing it. In this case either the governance was not strong enough, or the populace were not sufficiently bought into the enterprise benefit of SOA. Take your pick.

Lesson? A registry does not an SOA make, whereas an organisation (emphasis on organise) just might have a chance.
Share:

Wednesday, 29 October 2008

Wednesday, 22 October 2008

What is SOA - Service Characteristics - Composable

Composability is the ability of services to be used in orchestration scenarios by higher level services or processes. It is a special case of the reusability characteristic in that the services need to be uniform as well as reusable. The reason for this primary reason for this requirement is that the orchestrating service will in all probability but built using something like BPEL not a conventional programming language, so any variations in service style become more difficult to deal with.
Share:

Friday, 17 October 2008

What is SOA - Service Characteristics - Abstract

Services must be abstract in the sense that they offer a functional interface that is not tied to any particular underlying implementation of that interface. In other words they should hide implementation details such as programming language, operating system platform, database structure, internal object model, etc. Abstraction supports other service characteristics such as reusability, extensibility and reduces coupling between producer and consumer.
Share:

What is SOA - Service Characteristics - Autonomous

A service is autonomous if it has full control over its internal logic. This requires that it has clearly defined and isolated (decoupled) functional and operational boundaries, that it is independent of other services and only communicates via contract-driven messages and policies.

A consumer should exercise no influence over the service other than to execute it and to provide input values. The service should have minimal dependency on its execution environment.
Share: