Wednesday, 29 October 2008

Tuesday, 28 October 2008

Migrating Weblogic to JBoss (2)

Hmmm, I may have spoken a tad early.

The XSLT scripts I found only translate the very basic deployment descriptor elements. The remaining elements are usually of the vendor-specific performance optimisation type which often don't have a 1-1 equivalent, if they have one at all.

The JBoss community forums are very quiet on these fronts. Perhaps there is a conspiracy to drive me to JBoss.com's migration programme...

Grumble.
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:

Wednesday, 22 October 2008

What is SOA - Service Characteristics - Composable

Composability is the ability of services to be used in orchestration scenarios by higher level services or processes. It is a special case of the reusability characteristic in that the services need to be uniform as well as reusable. The reason for this primary reason for this requirement is that the orchestrating service will in all probability but built using something like BPEL not a conventional programming language, so any variations in service style become more difficult to deal with.
Share:

Friday, 17 October 2008

What is SOA - Service Characteristics - Abstract

Services must be abstract in the sense that they offer a functional interface that is not tied to any particular underlying implementation of that interface. In other words they should hide implementation details such as programming language, operating system platform, database structure, internal object model, etc. Abstraction supports other service characteristics such as reusability, extensibility and reduces coupling between producer and consumer.
Share:

What is SOA - Service Characteristics - Autonomous

A service is autonomous if it has full control over its internal logic. This requires that it has clearly defined and isolated (decoupled) functional and operational boundaries, that it is independent of other services and only communicates via contract-driven messages and policies.

A consumer should exercise no influence over the service other than to execute it and to provide input values. The service should have minimal dependency on its execution environment.
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:

Wednesday, 15 October 2008

What is SOA - Service Characteristics - Discoverable

For services to be of use of anyone they must be discoverable. Discoverability is usually taken to refer to the ability for consumers to find a relevant service by attributes (tags) at runtime via a service registry. In other words, consumers go to a service “yellow pages” and find at runtime services that best meet their needs.
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:

Friday, 10 October 2008

Lightweight Enterprise SOA Platform!?

According to SOA World, Red Hat Will Realease JBoss Enterprise SOA Platform 4.3 and JBoss Operations Network 2.1 At the End of the Month.

My mouth is watering already, though you do have to wonder at anything that is claimed to be a "Lightweight Enterprise SOA Platform" ;-)
Share:

What is SOA - Service Characteristics - Distributed

Services should be distributable, that is they need not and indeed should not run in the same process as the consumer. Services that run in the same process offer no possibility of runtime reuse to other consumers.

In order to achieve this goal you minimally need two things: a remoting framework and location transparency
Share:

Wednesday, 8 October 2008

JBoss

I have in the past worked on Websphere and now Weblogic JEE application servers and fortunately never had to port between the two. Just porting from one version of a product to the next is difficult enough, never mind a cross product port! I have found Weblogic to be a fine product, certainly much easier to learn and use than Websphere, but its not cheap, and one of our prospective clients has raised the question of running on JBoss which is of cours open source.

“No problem!” our sales people cry and I wince. JEE is a fine thing in theory and certainly gives you a hope of porting whereas .NET gives you no such hope at all, but the problem is in those little extras that the vendors give you for competition's sake.

So I worry about those JEE implementation variations, some obvious like the Weblogic deployment specific files, some more subtle, like the way CMP works, and I worry about whether JBoss' messaging and clustering will be as tidy as Weblogic's.

So I've downloaded JBoss and will be giving it a go. Hopefully there are some migration guides and even tools out there to simplify my task, but I'm expecting tears and further hair loss.

What's worse is that I'm dying to get rid of all our EJBs, introduce Spring and Hibernate, and run in a servlet container rather than full a blown application server. That would certainly be much more portable, since with Spring you are essentially taking your application container with you. Of course then you are tied into Spring...
Share:

Tuesday, 7 October 2008