Showing posts with label Oracle. Show all posts
Showing posts with label Oracle. Show all posts

Thursday, 15 November 2012

Choosing an Enterprise Service Bus (ESB) Product

 
Which Enterprise Service Bus (ESB) product you evaluate and choose will depend on your exact ESB requirements, your budget, and any existing vendor relationships or products, but according to Forrester (and me), you might want to at least look at the following ESB products:

Commercial Enterprise Service Bus Products



Open Source Enterprise Service Bus Products



As an aside, Spring Integration  provides an easy entry into the world of ESB concepts, providing a single instance, easy to use integration container with many ESB-like features.  Regardless of which ESB product you end up with, I would consider, assuming you're using Java, decoupling your code from the underlying ESB or low-level protocols using Spring Integration.


Share:

Thursday, 23 October 2008

Migrating Weblogic to JBoss (1)

This is the first in a series of posts on the joys of migrating our JEE application from Weblogic to JBoss. Being JEE it should be trivial right? ;-)

The steps so far...

  1. Stripped out a couple of EJBs from our application to port as a POC
  2. Jboss download from jboss.org and installation was very quick and painless.
  3. Read some of the documentation which is fairly good, and fine when supplemented with Google, but not as good as Weblogic's
  4. JBoss runs pretty much out of the box and is very quick. Needs Sun JRE - it didn't like JRockit (which is bundled with Weblogic)
  5. Setup Oracle datasources (non XA for now) and message queues and topics. Found the documentation clear as mud and had to get help from examples
  6. Rebuilt our JEE application against the Sun JRE and JBoss EE library and found that we were using some Weblogic classes. No more.
  7. Found a free set of XSLTs to transform our Weblogic EJB deployment descriptors to JBoss. Worked mostly but needed some manual tweaking. I'll fix the XSLTs sometime.
  8. Dropped our application EAR in to the deploy folder
  9. Started JBoss
  10. Removed the CreateException from our MDB ejbCreates. JBoss complained rightly that these violated the EJB spec and even gave the section number! How cool is that?
  11. Changed the JNDI properties in our application configuration files
  12. Application deployed pretty much first time which surprised me no end
  13. Ran a little test and got some cryptic SQL error (Invalid scale size. Cannot be less than zero) which after much hunting turned out to be an Oracle-Sun JDBC incompatibility issue resolved by using -Doracle.jdbc.J2EE13Compliant=true on the server
  14. And that was pretty much it folks!

J(2)EE rocks and vendor extensions don't! Fortunately our app was built with portability in mind so it should have been this easy. Porting was an interesting exercise and much nicer than Powerpoint architecture for a change.

Initial JBoss impressions? Very favourable (apart from the imperfect documentation).

Now I have to get a cluster running and test messaging, but a cup of coffee beckons. first.

P.S. Happy to share some of the details with you if you email me
Share:

Thursday, 16 October 2008

SaaS and J(2)EE

Introduction

Multitenancy refers to the architectural principle whereby a single instance of software runs on a software-as-a-service (SaaS) vendor’s servers, whilst serving multiple client organizations (tenants). This is in contrast to multi-instance architecture where separate software instance or hardware systems are set up for different client organizations. in other words, under a multitenant architecture, applications are required to virtually partition data and configuration so that each client organization works with a customized virtual application instance. Customization typically includes aspects like user interface branding, access control, data and configuration, workflow, etc
Share:

Tuesday, 14 October 2008

What is SOA - Service Characteristics - Stateless

A service is said to be stateless if the consumer of that service can make use of any operating instance of that service. This is achieved by services not storing any internal data (state) that would be required if the consumer happened to invoke another instance of that service.

In general this goal is achieve by ensuring that all service data (including state) is kept in an external store common to all instances of that service.
Share: