Delicious LinkedIn Facebook Twitter RSS Feed

Virtualizing a Service in ActiveMatrix

In order to take advantage of the services Active Matrix offers, I believe it is always best practice to virtualize services in a service composite.


What does virtualizing a service accomplish?

When creating composites in Active Matrix it is worthwhile virtualizing any SOAP services you intend to use.  By doing so you will be able to create direct AMX references within your other service composites.  In the diagram above I have also added a SOAP reference, which is a proxy to the "real" service.  This proxy would be exposed on the Tibco nodes you deploy the composite to.

The benefits of this approach are:

1. Separation of logic from security policy

I will write more on this in the future, but by virtualizing the service you can apply different security policies to the services via the Tibco Policy Manager product.  Therefore you could have a common security model for clients accessing SOAP services on the Tibco Nodes, and each "real" service would have it's own security policy.

2.  Separation of concerns for service change

Say the "real" service was updated, and this was out of your control - function calls have been changed, or parameters changed etc.  Currently in the approach above the AMX service, the SOAP service and the Service Reference are all using the same wsdl.  Using the above approach, should the Service Reference wsdl be changed, then composites or clients utilizing the existing composites need not change - However, the composite needs to change to use the new Service Reference calls.  This is where a Mediation can be used to perform this task.



ActiveMatrix SOA - Glossary and Terms

There are some common terms that apply across SOA, and are used throughout the ActiveMatrix documentation. Here is my attempt of explaining in my own words what these terms mean.

Composite Applications

Composite applications are really all about taking advantage of the existing web services within your organization and developing an application based on those services available, and/or adding supplementary services in order to achieve a goal. A composite application is a true realization of SOA, the benefits of SOA, and also the disadvantages it can bring...!

In ActiveMatrix you can develop composites from reusable services, these composite applications can then be deployed as services themselves. The composite developer has the option of either exposing the new service via the web (SOAP), or via topics/queues, or internally via an AMX service.

Mediations

A composite in its entirety is what I would personally term a "mediation". In essence a composite application needs to invoke calls on one or more services, perhaps in a particular order, and in some way do something with the results of these service calls.

In ActiveMatrix, Tibco provide a Mediation Component which allows the service developer to perform xml mappings, content based routing, logging, fault handling, amongst other functionality. In later posts I will provide some examples of "Mediation Flows".

EMS - Queues, Topics, and Bridges

Tibco's backend runs the ever-reliable Tibco EMS. These are the queues and messaging transport which support the whole AMX platform.  Wikipedia provide a decent overview of JMS, however, bridges are not covered.  An EMS Bridge is a configuration item that allows a topic to be "bridged" to a queue.  Essentially this is creating a durable topic subscriber and posting all messages received by the topic to the configured queue.

Service References

Service references in TIBCO ActveMatrix can either be:
  • A SOAP Service
  • A JMS Queue or Topic
  • Or an internal AMX reference (a link to a service existing on the AMX nodes)
Each service reference must comply with a wsdl.  Getting a wsdl to comply in Tibco Business Studio can be a somewhat entertaining experience - developers need to be aware of various namespaces, schema locations, etc - Business Studio usually needs to know about all of the schema references, so it is best practice to pull in any schemas used in your composite applications into your project (known as wsdl flattening).

Activematrix blog - the start

I work with TIBCO products on a daily basis, and being from a developer background google tends to be my friend when troubleshooting issues, however, finding information on the TIBCO ActiveMatrix suite has been hard to come by, so I have decided to start a blog about using these products, and some best practices that we have come to use in our experience of the products.

I'm not proclaiming to be an expert, and I am hoping that by starting a blog that other users of Tibco ActiveMatrix will share some ideas of their experience with the product suite and how the product has affected the way they work in the workplace.

A good overview of the TIBCO tools available can be found here.