The basket interface, defines that laundry is passed in a basket or a bag, and has various options (lets call them parameters) that allow the client to specify if they want stain removal on particular items, or if they want their laundry starched, or repaired or any of a number of different options. Note that these parameters specify what is to be delivered, not how it is to be done. In SOA we may use WSDL and XSDs to define the interfaces.The Oracle SOA Success Methodology is a methodology with a small 'm'.
It is best viewed as a set of tools of techniques that can be applied
within the context of a more proscriptive methodology. That said it
works best with iterative methodologies.
The SOA Success Methodology is currently used with a restricted number
of Oracle customers prior to a full release.
Within the context of the SOA Success methodology is extensive
modelling of the business in terms of services. Oracle BPA Suite can
be used to drive this iterative modelling process.
BPA encourages a focus on the abstract modelling side of the SOA
success methodology. As the model becomes more reified then composite
services and processes may be made available to JDeveloper through a
shared repository.
Oracle is currently using BPA Suite to perform high level modelling in Fusion Applications development.
BPA Suite supports roundtripping to allow regeneration of processes
without loss of reifications applied to earlier versions, encouraging
an iterative cycle between business analyst and process developers.
I was on a training course this week around an Oracle SOA Reference Architecture. This led to an interesting conversation about what is a service. There was a difference in opinion on some of the characteristics of a service, most noticeably does a service have to be re-used to be a service. There was however, general agreement that the definition of a service presented was a good one so I thought I would share it with you. The service definition had four parts
The one that may not be immediately obvious is the fourth one, service usage agreement. This indicates the expected level of use of the service by the client, number of requests per time period, message size and concurrency for example. This is important because SOA is about using services in place, sharing not just the service code, but also its implementation resources such as network bandwidth, memory and cpu resources. Usage by one client may impact another and so it is important to set expectations of how a given client may use the service. Service usage agreements may be realised by policies within a service bus that enforce some of the constraints agreed within the usage agreement.
So all told I think a very useful way to think about services and I will certainly be making sure I do a better job of formalising the service usage agreement in future.
Design PatternsLast week I received a heavy parcel through the post from Amazon containing Thomas Erls new book SOA Design Patterns. I have been interested in design patterns for many years and still regularly refer to my copy of the gang of four (Design Patterns: Elements of Reusable Object-Oriented Software). For those of you unaware of them, patterns provide a proven solution to a problem. The gang of four book identifies four essential elements in a pattern (from section 1.1 What is a Design Pattern?).
It is worth noting that patterns are not created, they are discovered. An important aspect of a pattern is that it should have been used in more than one solution. The gang of four identified and documented 23 design patterns focused on object oriented languages. The Thomas Erl book focuses as the name suggests on service oriented patterns. Some of these patterns are service oriented forms of the gang of four patterns. For example the service facade is an example of the facade pattern. However Thomas explains how the service facade works in a a SOA and gives detailed explanations of its trade offs and benefits all closely related to SOA, providing a lot of added value even to people already familiar with the facade pattern. The facade pattern in the gang of four covers 9 pages, in Thomas’ book it covers 12 pages but also includes a case study and is focused purely on SOA.
Think of the SOA Design Patterns as a cookbook of possibilities. They cover lots of different patterns, many of them contributed by other SOA gurus such as Oracles David Chappell. Use it as a reference book to see if there is a proven design approach that can solve some of your problems. Remember that is a guide to good design, not a guarantor.
Well worth adding to your library!
Oracle have just made available an online SOA Readiness Assessment, It asks you a few questions focused around the 8 areas in Oracles SOA maturity model and then provides a report. The assessment is obviously very lightweight, but it is worth taking for several reasons.
The picture shows the type of high level maturity assessment generated., The 8 areas in the Oracle SOA Model with their definitions are
Remember that one of goals of a SOA Strategy is to identify the level of maturity required in each area. Not every organization requires the highest levels to get the best value out of SOA. For example an organization with a small service estate and correspondingly small focused projects does not require a large SOA governance infrastructure. I’m interested to hear what people think about the assessment tool which now joins Oracles BPM assessment tool.
Oracle are having an executive round table web cast at 8AM PDT Thursday 23rd 2009 chaired by Amlan Debnath, Senior Vice President Integration Products at Oracle. Other attendees include
Check out the registration page here.
Tuxedo can be considered as the original and purest service oriented architecture. The key abstraction in Tuxedo is the service and everything is made to fit into the service mould. It seems strange then that people think of Tuxedo as a legacy application. Tuxedo is highly regarded by the senior management team in Oracle who view it as a key tool to support extreme transaction processing. The question is then, how does this relate to the rest of the SOA world which does not subscribe to the Tuxedo technologies such ATMI, C++ or COBOL.
The diagram below shows the different interfaces into and out of the Tuxedo world. Lets look at them briefly and how they relate to the rest of the SOA world which is focussed on XML, SOAP and HTTP.![]()
The native client interfaces to Tuxedo are the C, C++, .Net or COBOL client interfaces using ATMI (Application to Transaction Monitor Interface). There is also a version of ATMI for Java, called Jolt. These interfaces allow clients to invoke Tuxedo services and get responses. They do not allow Tuxedo to invoke services in these clients except by listening on Tuxedo message queues, these interfaces are asymmetric.
A Tuxedo domain can interface to other Tuxedo domains, treating their services as though they were its own services. This capability is extended to other systems such as mainframe systems. The external systems see Tuxedo services as native services and invoke them as they would any other service, similarly Tuxedo sees these external systems as native Tuxedo services and invokes them as it would any other service. This provides relatively seamless integration between legacy environments and Tuxedo and allows either side to operate as a server to the other, in other words these interfaces are symmetric.
In addition to treating legacy mainframe interfaces and other Tuxedo domains in the same way as local services Tuxedo can also do this for such open system standards as CORBA and java code running in WebLogic Server. CORBA applications can invoke Tux services through the CORBA API and Tuxedo services can invoke CORBA objects. The WebLogic Tuxedo Connector (WTC) extends the capabilities of Jolt to become fully symmetric in that EJBs in WebLogic can be invoked as services from Tuxedo.
Note that all the interfaces we have spoken about so far are transactional, as in they are part of the Tuxedo transaction infrastructure, invoking a remote mainframe transaction may cause an XA transaction to be started within Tuxedo. When calling an EJB in WebLogic this also is part of the overall Tuxedo XA transaction infrastructure.
There are two alternative ways to get Web Services to access Tuxedo. The most obvious is to use SALT (Service Architecture Leveraging Tuxedo) which exposes Tuxedo services as web services, and allows Tuxedo to invoke Web Services as though they were Tuxedo services. This is a symmetric interface and takes care of all the XML to Tuxedo translations but it is not transactional. The web service call is not part of the transaction. A web service request to Tuxedo may cause a Tux transaction to be initiated, but webs services don’t currently provide a transactional context. Similarly when Tux makes a call to a web service, that call is not part of any Tuxedo transaction.
So what if you want transactionality and access to web services. This is where the service bus comes in. The Oracle Service Bus (OSB) takes advantage of the WebLogic Tuxedo Connector to provide a fast efficient and transactional interface to and from the Tuxedo world. This allows a pipeline to make two seperate calls to Tuxedo as part of the same transaction. Note that there are a couple fo wrinkles to making this happen and I will deal with those in a later post.
Not only is Tuxedo the original service oriented architecture but despite being more than 20 years old, through SALT and WebLogic Tuxedo Connector it still speaks the modern lingo of service buses, Java, XML, SOAP and HTTP. So if you have a Tuxedo investment don’t write it off, but look at how you can more easily make your Tux services available to the new fangled XML based web service world.
Last Wednesday the Open Group made available their SOA Source Book. They describe it as “a collection of source material produced by the SOA Working Group for use by enterprise architects working with Service-Oriented Architecture”. Having looked at it I have to say it seems to have a high information density and would be a good place to start getting someone's head around SOA concepts. Well worth a look.
This page contains an archive of all entries posted to Antony Reynolds' Blog in the SOA category. They are listed from oldest to newest.
Miscellaneous is the previous category.
SOA Suite is the next category.
Many more can be found on the main index page or by looking through the archives.