SOA / Web Services / Java

A Technology Blog

Posts Tagged ‘integration’

Java based integration framework

Posted by Vivek on July 8, 2014

We all know the capabilities of an ESB to enable seamless integration among hetrogeneous applications. But is it always a feasible to choose an ESB where integration is not a major challenge and where applications use common protocols? The answer is NO. Most of the companies are looking for open source options which allows them build an integration architecture using simple configuration. Two of the most commonly used frameworks are:

1. Spring Integration

  • Based on popular Spring application framework
  • Dependency Injection / Inversion of Control
  • Configured within Spring Container
  • XML / Annotation based DSL
  • Supports Spring expression language

 

2. Apache Camel

  • Apache Software Foundation project
  • Custom Container – Camel Context
  • Can be instantiated directly from Java method
  • Integration with Spring, Guice, OSGI

Posted in SOA | Tagged: , , , , | Leave a Comment »

Checklist for a new interface in integration

Posted by Vivek on January 8, 2012

While integrating several systems, interfaces are created based on the technical requirements. The interface is defined by a set of parameters, which form building blocks of any interface design.

1. Name: This involves name of the requesting application as well as the service provider or name of the systems involved in the conversational process. Ex. ABCProvider_WeatherService
2. Integration Style: This includes information such as Batch or Real-Time.
3. Integration Technology Framework: This includes information such as ETL (eg Datastage, Ab Initio, Informatica), Web Services, EAI, B2B
4. Invocation Style: It includes the way in which the integration application will be invoked. Invocation could be through Database trigger or Change Data Capture, Manual or through sequencer (in case of ETL).
5. Message Exchange Pattern: It includes information about the way in which messages are exchanged such as Request-Reply, Fire and forget, Pub-Sub topology
6. Message Domain: It includes details such as HL7 for Healthcare, ACORD for Insurance etc
7. Message Format: It includes details such as XML, CSV, Pipe delimited messages, SOAP including web service standards such as WS-Addressing, WS-RM, WS-BaseNotification
8. Messaging Style: Messages could be transported using HTTP, SMTP, MQ etc.
9. Service Contract: It can be WSDL for SOAP based web services, WADL for REST
10. Security: It includes non-functional requirements such as Authentication, Authorizarion, Confidentiality, Integrity and Non-Repudiation.
11. Security level: This can be Message level or Transport level.
12. Security Implementation: It can be WS-Security username token for authentication, SSL, Canonicalization algorithm for encryption/ descryption etc.

If these parameters are clearly defined, then it is possible to build the interfaceand use this information as metadata in governing the services in future.

Posted in integration, SOA, Web Services | Tagged: , | 2 Comments »

Why not Message or EAI Broker?

Posted by Vivek on December 25, 2009

There has been lot of discussion whether to use message brokers (hub and spoke integration broker or EAI hubs) or ESB to integrate applications and build SOA. While most of the people think that they can still extract most out of an EAI broker, here are some pain points that I want to highlight:

1. Message broker allows centralized routing between applications which means that it doesnt allow regional control over local integration domains.
2. BPM tools cant build choreography or business processes that can span departments or business units. So a message broker is a hindrance to implementing SOA.
3. A message broker is limited by the underlying MOM in its ability to cross physical network LAN segment boundaries and firewalls.
4. Proprietary nature of brokers combined with the high cost of consulting usually results-in vendor lock-in or an expensive restart for each subsequent project.
5. Implementation time is high.
6. Integration softwares are expensive

Posted in integration | Tagged: , , | Leave a Comment »

Oracle in Middleware

Posted by Vivek on September 21, 2008

Oracle has an array of products for building a strong middleware. Oracle has done everything it can to provide integration solutions to its customers. But not all are happy with these solutions. You can see some curt replies on forums or ask any oracle developer.

If you complain about deployment and usabilities of Oracle Enterprise software, you just know the tip of an iceberg.

When you are (God forbids) unlucky enough to get hired as a Senior Software Developer for Oracle, you will see the full horrible iceberg.

First of all, their enterprise software architecture is bad, and based on all the principles of “How to write slow and unreliable Java code”. They use EJB, RMI and all distributed technologies unnecessarily, for no particular reason, except to amuse themselves, and torture their customers.

Second of all, a lot of Oracle enterprise applications claim to be J2EE applications, but contain a lot of Active X and proprietary javascript code for Internet Explorer, so they run only with Internet Explorer.

Third of all, they have very bad intergration strategy between Oracle products, so some Oacle products run very well (well here means relatively less bugs) with every other Application Server, except Oracle Application Server 😉

Forth of all, they don’t have good practice about Refactoring, Code review, Test first Development, only have theory, so the quality of Oracle’s code is terrible.

Fifth of all, they have a very funny build process for J2EE application, which involves 10 different tools, from simple javac to Ant to Unix shell sh, m4 interepreter to Cruise Control, perl script, yapp and God know what else. But I swear that one day I really counted them, and there were 10 different things in all. Why the hell they cannot use Ant and Cruise Control, or if they must, use either Perl or Sh script? But they use 10 different things. Thanks God they don’t include C# and Visual Basic into the build process.

Sixth of all, they don’t have incremental build for some enterprise applications, so each time a developer change some thing in one file, he has to build the whole thing, and deploy the whole J2EE app again.

Seventh of all, Oracle Application Server is the second worst J2EE application server in the whole industry. (The worst is IBM Websphere). Even some Oracle enterprise products cannot be deployed reliably on OAS, while they can be deployed fairly easy on Weblogic or any other things. The performance of OAS is terribly bad, although they advertise something else on Oracle Website. And the Management Console is a typical study case about “How to design bad User Interface”.

The last, but not least, that the team spririt in Oracle development team sucks. I don’t even want to go into the details.

Of all other things, Oracle Collaboration Suite, Oracle iProcurement and Oracle HR tools …, I think Oracle produces those kinds of software to take revenge on their customers, make their lives miserable. There is nothing that is more difficult and inconvenient to use than those Oracle hacky wacky products.

So except database which has been developed since Larry Ellison’s time, all other Oracle products suck.

Posted in Middleware, oracle | Tagged: , , , | 1 Comment »