SOA explained with London’s Transport

Recently, I had the opportunity to give an internal training to our Non technical team about Middleware, of course the title, “Middleware for Humans” had to be used. And as you know an important part of Middleware is SOA. Our office is based in London. so being inspired by John Bronswick, I looked for an analogy in how to explain SOA in simple words, this is Oracle’s Description for it:

Oracle SOA Suite: a complete set of service infrastructure components for designing, deploying, and managing composite applications. Oracle SOA Suite enables services to be created, managed, and orchestrated into composite applications and business processes. Composites enable you to easily assemble multiple technology components into one SOA composite application.


Commuting case in London

There are multiple services working in London for commuters:

· Underground

· Train

· Bus


It’s common to have to use more than one of them during the day. And they are owned by different private companies.

So, what does all these has to do with SOA? Multiple services own by multiple provider with the need to be consumed by the same client. What would happen if a new provider joins? or if they decide to upgrade a service? Well, with SOA we can solve this with the Service Bus:

“A style of integration architecture that allows communication via a common communication bus that consists of a variety of point-to-point connections between providers and users of services.”

“An infrastructure that a company uses for integrating services in the application landscape.”

“An architecture pattern that enables interoperability between heterogeneous environments, using service orientation.”

How London solves this issue:


“Oyster card to travel on the Tube, London Overground, DLR, bus, tram and most National Rail stations in London. You can put Travelcards, bus and tram season tickets and pay as you go credit on to the card.“

So, London commuters just have to register for one service only no matter what version or service they are using, if they are registered and they need to change for example their last name, they just need to do it once.


Roles and Responsibilities in IT Projects — Part 1

The biggest problem in IT Projects

One of the main problems in an IT Project is the definition of the roles, I’ll extend this with ADF/WebCenter Project roles in the second part of this post. A great video from Chris Muir (Oracle) can be found here.

You don’t need a person per role, one person can take multiple roles, if the size of the project allows it.

It’s really important for everyone in the project to understand their roles so they can make the best of it. If this is not clear, the risk of failure is more than 80%.

Let’s start splitting the roles into different layers:

Business Layer:

Sponsor: The Sponsor is the owner of the project, this role is normally taken by a senior executive.

  • Main Responsibility: Responsible to the business for the success of the project.

Customer: It’s the Business representative that has a detailed understanding of the project, it’s also responsible of the budget.

  • Main Responsibility: To control the definition of the project and to be responsible of the budget. In an AGILE methodology this role is responsible of defining and prioritizing the stories (Backlog).

Management / Design Layer:

Project Manager: Responsible for developing, in conjunction with the Sponsor, a definition of the project. It’s the responsible of planning, organizing, motivating and controlling resources to deliver a successful project.

  • Main Responsibility: Is responsible for communication, including status reporting, risk management, escalation of issues that cannot be resolved in the team, and, in general, making sure the project is delivered in budget, on schedule, and within scope.

Business Analyst: An internal consultancy role that has responsibility for investigating business systems, identifying options for improving business systems and bridging the needs of the business with the use of IT.

  • Main Responsibility: Is responsible for identifying change needs, assessing the impact of the change, capturing and documenting requirements and then ensuring that those requirements are delivered by IT whilst supporting the business through the implementation process.

Enterprise Architect: Enterprise architects work with stakeholders, both leadership and subject matter experts, to build a holistic view of the organization’s strategy, processes, information, and information technology assets. The role of the enterprise architect is to take this knowledge and ensure that the business and IT are in alignment.

  • Main Responsibility: Long-term strategic responsibility for the company’s IT systems, costs and improve information flows, ensure that projects do not duplicate functionality, standards and guidelines that direct the selection, development and implementation, build employee knowledge and skills in specific areas of expertise.

UX Designer: Studies and evaluates how users feel about a system, looking at such things as ease of use, perception of the value of the system, utility, efficiency in performing tasks and so forth.

  • Main Responsibility: Devise a study to compare the effectiveness and quality of experience of different user interfaces, devise a study to compare the effectiveness and quality of experience of different user interfaces, design how users should move through a system is another popular deliverable.

Resource Manager: Allocates human resources among various projects or business units, maximizing the utilization of available personnel resources to achieve business goals, performing the activities that are necessary in the maintenance of that workforce through identification of staffing requirements, planning and oversight of payroll and benefits, education and professional development, and administering their work-life needs.

  • Main Responsibility: Guide and manage the overall provision of Human Resources services, policies, and programs for a company.

Solution Architect: Must have experience on multiple Hardware and Software Environments and be comfortable with complex heterogeneous systems environments, is often a highly seasoned senior technocrat who has led multiple projects through the Software development process or Systems Development Life Cycle (SDLC), and has usually performed in a variety of different roles in that life cycle.

  • Main Responsibility: Organizes the development effort of a systems solution, becomes involved with a project at the time of inception and is involved in the Functional analysis (FA) of developing the initial requirements. They then remain involved throughout the balance of the project, decides which technologies to use. They work very closely with developers to ensure proper implementation. They are the link between the needs of the organization and the developers.


Let’s start sharing!

After more than 5 years working with Oracle products, I finally have the opportunity to contribute something to the community. There are a lot of good blogs already out there, but I’ll do my best to contribute with interesting ideas and compile the cutting edge ones from my colleagues.

Please feel free to let me know your thoughts regarding the blog, so I can improve it.

Create a free website or blog at

Up ↑

%d bloggers like this: