Wednesday, August 31, 2011

Semantic SOA Governance, BPM and Comple Event Processing

I would like to let you know about an upcoming open source conference, the SemTech UK 2011. This conference would be held in London, UK between Sept 26-27, 2011. My ex-colleague, Keshava Rangarajan and I received an invitation to speak in the conference. The topic of our speech is "Semantic SOA Governance, BPM and Complex Event processing". Our topic falls under the "Innovative Products & Solutions" track.

For the complete events itinerary, please advert to:
http://semtechbizuk2011.semanticweb.com/programDetails.cfm?ptype=K&optionID=257&pgid=4

Here is the link to our abstract:
http://semtechuk2011.semanticweb.com/sessionPop.cfm?confid=63&proposalid=4309

Earlier Keshava Rangarajan and I have spoken in "HP Software Universe 2008" at Las Vegas representing Oracle. The topic was "Semantic SOA Governance". This time we are extending that topic, and additionally we would be covering BPM and Complex Event Processing as well.

Briefly, here are some of the challenges that we are intending to cover:

Challenges:
• How do we intelligently create, publish, search, discover, consume, manage, meter, monitor, govern and report on SOA services such that it delivers superior value to organizations?
• How can we deploy semantic technologies to solve this problem effectively ?


I intend to write more on this. Also, I'll write about the entire conference, other speeches, interesting ideas, etc. in the subsequent posts!

Sunday, July 31, 2011

Semantic SOA Governance, Cloud Governance for enterprise vs public domain problems

I have been doing some research on using Semantics in SOA Governance and Cloud Governance for quite some time.

So far, I had only been considering Enterprise domain problems when we think of Governance solutions. I came across the following two links:

1) Cloud Governance:
http://www.theinfoboom.com/articles/why-clouds-needs-service-governance/

2) HP Service Catalog:
https://coral.saas.hp.com/coral/web/service-catalog/

These are interesting areas.

Now, if we open up our scope and consider public domain problems as well, along with the traditional enterprise domain problems, the significance would be great! But one thing to be aware of is, opening up the services infrastructure to public infrastructure would definitely change the scale of the problem, which brings its own set of challenges, but they can be solved.

Besides there is another angle. This is the mobile domain. How about the Twitter and Facebook ?

Basically, we would be very curious to know about what others think about our company, product, or our blog post or article that we put out. The users write reviews, and it would add great value to have an ontological structure and persist them in repositories. By this way, we would have covered the whole nine yards from the Taxonomy to the Folksonomy when we include the feedback reviews of users!

The potentials are great which demands attention and can not be overlooked!

Thursday, June 30, 2011

Fiddling with Spring Roo ...

I have heard a lot about Spring Roo. So I really wanted to get my hands dirty in Spring Roo.

I am thinking of developing a Semantic Web Java application. The front end would be using JavaScript, jQuery. The DB would be MySQL using Hibernate for the OR mapping. In the business layer, Spring framework would take care of transaction management. RESTful services would be used in the business layer.

Additionally, the open source Jena technologies would be used to build the Semantics Web piece of the application. Using Protege-OWL, some OWL and RDF would be created and stored.

To make it available in the cloud, I am considering Cloud Foundry PaaS.

I'll keep you posted and let you know my progress.

Tuesday, May 31, 2011

Database Vs In-memory data grid

Recently, I went through a session in Oracle Coherance. Oracle Coherance is an in-memory data grid solution that enables organizations to predictably scale mission-critical applications by providing fast access to frequently used data.

I was trying to do a comparison between an in-memory data grid solution and a database solution. Say, Oracle Coherance and Oracle database.

Oracle Coherance:
In simple terms, Oracle Coherance is a hash map approach. The primitive operations supported by a hash map are get, put and remove.

Oracle database:
The primitive operations supported are CRUD (Create, Read, Update, Delete) operations.

In essence, Oracle Coherance has the necessary primitive operations to handle all the primitive CRUD operations that can be performed by a database approach. But there is one significant area where there is a difference. When it comes to XA transaction management, Oracle Coherance has some limitations. That is, Oracle database is really great with respect to 2-phase commits in a distributed environment.

One of the common use cases that we deal with is the versioning of objects. This could mean both in the Data Tier and in the Mid Tier. That is, lets say we have a DB schema 1.0 with Mid Tier object 1.0 version is already deployed and up and running for some time. Now, we have version 2.0 DB schema and its equivalent Mid Tier objects for 2.0 version. We need to upgrade the already running server to version 2.0. Edition-Based Redefinition is a great way to achieve this. Oracle supports this.

We'll delve deeper into this with a later post.

Saturday, April 30, 2011

Schema and Data comparison between two databases

I have been looking into an interesting new requirement.

Requirements:
1) Consider there are two host machines - Host_A and Host_B. An older version of our product is installed in Host_A. And a newer version of our product is installed in Host_B. From a Data tier perspective, there are lots of schema differences between old and new version of our product. Also, there could be lots of instance data persisted in the databases of each product installation. I am looking at writing a tool which would migrate instance data from the older instance of the product into the newer instance of the product.
2) In the first test case, the databases in old product instance and new product instance are same. (Homogeneous database comparison for schema and data). Later, this would be extended to consider heterogeneous databases - ie, the database types could be different in the old and new product instances.

Eg: Old product instance uses Oracle database. New product instance uses Microsoft SQL Server.

As a first step, we would require a tool which would do the following:
1) compare schema between older product instance and the newer product instance
2) compare data between older product instance and the newer product instance


I evaluated quite a few products that are currently available. They are DBDiff, Red Gate and TOAD. I am yet to evaluate Golden Gate.

The tools that I have evaluated were great so far. At the end of the comparison, the tools produce a SQL script which could be used to migrate from the old to the new produce instance.

So far, all these tools are Windows tools. That is, they run on Windows platforms. I am looking for Linux tools. If I find anything, I'll update this post.

The Future of Java programming language ?!

Recently I happened to see a tech talk by one of the core scientists in the original Java language development team of Java (now Oracle). The burning question now is about the future of Java programming language.

What would happen to Java as a language? Would the language development eventually stop after few releases? Or would it continue forever ? Would the language disintegrate?

After looking at the road map of Java programming language, it looks like there would be at least a couple of releases in the future. This might play out for 5 years. But after that, who knows about the full-fledged continuation of Java programming languages ?

The good news is, Oracle has predicted this one too. Meaning, they know that Java development effort would be winding down in the future. And in its place, there would be a plethora of other programming languages which would co-exist.

James Gosling had some where mentioned that everything that is needed is already in the JVM! Meaning, there could be multiple languages co-existing in future systems. But all these languages are capable of running inside the JVM. Building a system that way would be the most performant and efficient way. This is because, lots of optimization effort (which have stood the test of time!) has already been engineered into the JVM!

To paraphrase it differently, for a multi-language system, if all the languages are run inside the JVM, then that would be the best solution which is performant and efficient. The other approaches which dont make use of the JVM, would not be performant.

The future of Java seems to lie in its JVM! At present there seems to be a plan for the future of Java programming language! We shall see what we shall see!

Semantic SOA Governance and BPM

I would like to write about some of the research that we have been doing in the area of Semantic SOA Governance and BPM. I would like to write this as a series of posts. Please check back later!