Last week I got a presentation for a security device I had never heard about.
Most times this means it is something which is not commodity, or has no real use-case.
But this time I was really impressed. The device is a possible replacement for IBM Datapower XML Security Gateway. But the way they designed the device is totally different.
What CrossCheck networks did was creating a device with just security as main use case. First of all it was an XML gateway, nowadays is does support HTML, XML, SOAP, FTP, JMS and others.
It also translates different flavors of JMS to each other, it can even convert from IBM MQ to JBoss MQ directly.
Tags: Architecture, esb, Middleware, SOA
Filed under Middleware, Security, SOA | 1 Comment »
Software vendors have hijacked a potentially useful concept by pushing heavy weight complex tools like ESBs. The goal of this article is to find out which of those tools we really need so we can stay away from unnecessary complexity. I’ll do that by describing the infrastructure services we really need and how these services can be implemented in the simplest possible way.
Software depends on other software because we don’t want to build systems from scratch. Each piece of software your code depends on may:
- change the address or name by which it is known
- change the technology it is implemented in
- be unavailable when you need it
- live on a different server or in the same process
- be connected through infrastructure that cannot be trusted
- speak a different language
(more…)
Tags: SOA
Filed under Architecture, SOA | No Comments »
It is very easy to create JMS consuming services in the Oracle Service Bus (previously known as BEA AquaLogic Service Bus or ALSB), but one of the things that you may want to control is the number of connections that is used to poll a JMS server. This blog describes the background to JMS listeners in OSB and how to solve problems with the JMS server being overloaded with connections. In this particular case, the JMS server is actually an IBM Websphere MQ server but most of the principles also apply to different JMS implementations.
Tags: esb, Middleware, Oracle, SOA
Filed under Middleware, SOA | 5 Comments »
This is not a rant against ESB. I am not saying that ESBs never have a purpose, nor suggest that it’s all just a scam. If – after having read this post – you got the impression that I suspect a conspiracy behind ESB, then I want to tell you up front that this is certainly not what I intended to say.
Tags: esb, integration, messaging, SOA, spring integration
Filed under Java, SOA | 12 Comments »
Sometimes a service bus is not sufficient for the job at hand. You can use EJB’s and JMS queues, but that might be overkill. That’s where a java callout might come to the rescue. This article will show you how to do a callout with ‘complex’ objects. On the bus you can pass around java objects or use them on the bus (this requires a small transformation step). I used the AquaLogic service bus version 10.2, but I think it should work any version that supports java callouts. The only difference can be the version of xmlbeans (AL 10.2 uses version 1.0.3)
(more…)
Tags: SOA
Filed under Java, SOA | 1 Comment »
Many have assumption that IT / software architecture is a thing of logic. So, there are many discussions about ESB and that we should not have those. The fact is that in large companies, we do not often do architecture – we do politecture. The politics drive the architecture. It’s not the way it should be, but that’s the way it is.
Let’s do one more shot…why do we need ESB? This time from politecture perspective:
Preventing a mess
It allows for a greater degree of control on delivered solutions. Before you even think about creating another quick and dirty integration solution; there is that annoying ESB compliancy making sure that integration mess created with each new technology is at least visible.
Disruptive Innovation
An alternative like REST is a “disruptive innovation” and does not fit in the line of old mindsets (CORBA, RMI, EJB, SOAP, WS-*,…). ESB fits in this line. Of course, it is a matter of time before something like REST wins from ESB’s.
Legacy
Quite often the cleanest solution is to change or replace the legacy in case of integration problems. So you still don’t need an ESB. But the real problem is who is going to let you change that legacy that has not been changed and (barely) working in production for a long time.
Tags: Architecture, esb, SOA
Filed under Architecture, Middleware, SOA | 1 Comment »
Rik de Groot wrote a blog entry about a year ago about versioning services as part of the Top 10 SOA Pitfalls. He touched the subject on different versions in deployment and basically offered us the option of rerouting services using an ESB.
It is a common knowledge that consumers will keep on using a service hoping to only upgrade if *they* need additional or changed functionality. Services however are not meant for a single consumer but for a lot of consumers. Even if they want to upgrade they won’t do it simultaneously. So you will have multiple versions of services running.
I see several options to address versions of services:
1. Minimize by using rerouting within the ESB.
2. Keep all versions running while in use.
3. Have a contractual agreement with expiry date.
4. Use content based routing.
5. Construct adapters for conversion
First I would like to look at which versions might appear. A major version increment of a service means we are no longer backward compatible. A consumer wanting to use the next major release therefore needs to start coding to make use of this service. When a minor increment occurs there is backward compatibility and additional functionality offered. This means a consumer can make use of it without much effort (changing the binding would suffice). A patch increment of a service indicates a change without breaking specifications. A new patch release can – and should – therefore replace the older version.
Clearly in all options we should limit the number of versions of a service created. This means services should not be created within projects but (re-)created in a separate track in order to have generic services and optimal reuse. This track should collect all requirements of (potential) customers, take the common denominator and bring a new version into existence. More than often a new version is created because a single customer wants certain functionality not yet offered and without looking around the new version is tailor-made.
(more…)
Tags: Architecture, SOA, versioning
Filed under Architecture, SOA | No Comments »
Last week I installed WebLogic and the AquaLogic Service Bus on a Mac. There is no Mac-download on the download page, but by using the HP-UX version everything works fine, you just have to add some command line parameters.
The Top 10 SOA Pitfalls countdown hit #1 last week with Rik de Groot’s post on “Ignoring culture when introducing SOA“, time for a wrap-up.
Putting all pitfalls together in one simple 10 item list quickly reveals a grouping of types pitfalls. Number #1 and #2 are both related to organizational aspect. If the culture, mindset and attitude are not right, these are typically the pitfalls that a SOA endeavor may run in to. The next group covers the items #3 till #7, these are all related to architectural/design skills. And the last group, numbers #8 till #10, relates to implementation issues (although proper design could help to prevent these pitfalls from manifesting themselves).
Tags: SOA
Filed under Architecture, SOA | 5 Comments »
Last week Viktor Grgic explained Unclear ownership / Project based funding. This week we’ll continue with #1 – Ignoring culture when introducing SOA.
SOA is an approach. The culture aspect of introducing a SOA is important, but it seems that companies want to invest in tools and not in people. In order of making this SOA to work they force their employees into this new way of thinking/acting. Often this leads to resistance which undermines the SOA goals. In this part we will look into ignoring culture when introducing SOA.
(more…)
Tags: SOA
Filed under Architecture, General, SOA | 4 Comments »