Monday, December 10, 2007

Semantic Standards + Artificial Intelligence in future!!

Web 2.0., Enterprise 2.0 -- What Next???

I would like to present some thoughts around the next generation of enterprise systems that I feel will soon radically change the Business-IT engagement in a more expert manner.

Analyzing problem domains – If we are able to abstract entities, processes, and boundary interactions in our problem domain, it is very much possible that we can map the “problem under investigation” against an “already solved problem” thus helping us in reusing available solutions.

To add more, the problems can be abstracted or patterns can be identified only if you give a meaning for every "thing" in the problem domain and apply levels of abstraction to the same, hence it is very important for the modern enterprise to be domain driven!!. With a clear domain model one can prepare reliable semantics for sharing data and the service contracts can be understood uniformly through Common Business Model, thanks to SOA who made this approach implicit through its integration pattern.

The sharing of data with uniform understanding of domain objects, is unlike the traditional solutions where the data was stored with a meaning in silos, and when shared or marshaled it was just a set of meaning-less values and used to take its own meaning in different systems when stored.

Web 2.0 - With the modernization of data exchange, the data is now flowing around the enterprise with attached meaning (meta-data), not just the enterprise but also through the web, i.e. web 2.0 which is not just about blogs, wiki, mashups and collaboration, but it is primarily originated from "semantic web that allows integration through common understanding of meta-data", i.e. the content on the web may not remain just a set of plain HTML tags but will have entity structures (meta-data) with uniform semantics (domain language).

Enterprise 2.0 - Just like semantics in WEB has made a big move in terms of uniform understanding and collaboration of data, the enterprise distributed applications will also now have the data with its own common meaning. PIDX, HL7, ACORD etc. are just to name a few that has supported standardization in defining and sharing data in their respective industry, there will be more to get introduced and endless collaboration/integration of enterprise applications will follow with standard industry specific integration patterns.

So what next?!!

Web 2.0 + AI, Enterprise 2.0 + AI, should we see this in future?

Self healing, Self understanding, Self improving systems !!!

To support web 2.0, "Contextual Search engines" is on its way. These search engines understands the patterns in which the user searches data, records the patterns and then replay/reuse the patterns for similar searches in future to deliver accurate and fast results.

Artificial intelligence is not new to us but how it can leverage the strong semantics in our enterprise is something to look at.

Where business agility is the prime need, and now when SOA makes it easy, it’s all about reducing the time to configure it.

Model Driven Architecture and Domain Specific Language pushes us to move towards developing product line architectures i.e. with the software factory approach! It is all about supporting domain models with patterns to deliver software solutions repetitively without much effort.

So can we expect more intelligence from our Enterprise applications?

1. Can the business processes tune themselves by understanding the data and its meaning and the stages it passes through?

2. Can the application services on their own find the most suitable service on the service bus which satisfies the required non/functional or functional requirements and then self configure to use it in future?

3. Can the service discovery not just publish web services contracts but also its average performance, thus helping other services dynamically consume the best performing service on the bus?

4. Can the market movements, surveys once fed in the enterprise application gives the application enough information to automatically self configure new products (e.g. banking/insurance and publishes it on a “Business Dashboard” for moderation. Rolling out of a product in IT will then be matter of minutes.


To build an smart enterprise application, integrated with many others, it is mandatory to have a very strong and clear (meaningful) domain model which can then form a knowledge repository of various patterns in which the data + meaning is shared, modified, transformed and consumed. These patterns will form the base of the intelligent applications in future!!.

All this is possible only if we have a perfect domain model with good abstraction levels and either closer to or same as the standard structures. If we fail to do this then such applications may not be able to participate in the next intelligent IT era, the "Enterprise.I" & "Web.I".

===================================

Please drop-in your comments.