Wednesday, June 29, 2011

Rest Vs. SOAP - The right Webservice

Web services are became main stream and key  in web application integration. There are two types of web service implementations available. REST and SOAP. SOAP ( Simple Object Access Protocol ) is an early implementation and is there for a long time and also used in applications. On the contrary REST( Representational State Transfer ) is new implementation based on the good old standard HTTP protocol.

The following article describes the differences between REST and SOAP and also provides you an insight on pros and cons of each one.

http://geeknizer.com/rest-vs-soap-using-http-choosing-the-right-webservice-protocol

The following are the list of Restful implementations :

1. JRest
2. restlet
3. cxf
3. jersey
4. axis2
5. Spring3
6. resteasy


Tuesday, June 28, 2011

To ESB or Not To ESB

This is nice post with series of articles about the ESB ( Enterprise Service Bus ). This blog provides various use cases for ESB based implementation.

1. http://blogs.mulesoft.org/to-esb-or-not-to-esb
2. http://blogs.mulesoft.org/esb-or-not-to-esb-revisited-part-1
3.http://www.dzone.com/links/r/esb_or_not_to_esb_revisited_part_2.html

Friday, June 17, 2011

Buidling consumer analytics - google way

The recent IBM Watson Jeopardy game show is one of the iconic moments in IBM’s history. At least the event has showcased and evangelized that way.  No doubt, truly it’s amazing game show and provides an insight the way problems can be solved in real time by computers and definitely a technology of future. I am not sure whether there will be any dot in Gartner’s hype cycle.

As per IBM press, the technology can be adapted in real life use cases like in health care, transports,  utility, weather  forecast, natural calamities. This technology is definitely is one of the important catalyst to offer the big blue’s smart planet vision. IBM is already spending billions of dollar in business analytics and lined up an impressive stack of Analytics software to solve any kind of customer analytics problem. The Watson project is one such commitment from IBM to add on.

On the contrary, Google has dominated over the web and its roots are from search. The Watson’s technology is also based on semantic and meaning based search may be they use different algorithms.   There are many companies tried to solve meaning based search and this technology already exists before. For example Wolframalpha, Powerset use semantic based search.

 In principle the index based search and meaning/context based semantic search are very different.  You also need to think of processing time.  Typical search engine's response time is very very less( fraction of seconds ). So it would not be really important for Google as it might not perceive much of business values by adding the semantic based search. Well who knows in future Google might build it with the general search. To make it happen Google needs to invest, but I do not think it is very difficult for Google to achieve this.

I think so far Google core strength is in consumer side and also in the web. If you watch their technology and products built, they are purely built on search and analytics where it entirely leverages their mammoth of data discovery and indices which are used for Google search.

Projects like Google Trend, Google public data explorer are based on search and aggregating data and build analytics on top that which is a real importance to customer.  Most of the Google products are in line with consumer analytics. As government and citizen seek more transparency, lots of public data will be available in the web and they will be more unstructured. In addition to that the social networks will provide the impetus to consumer analytics. Already lot of vendors capitalizing on the social data for analyzing different consumer trends.  The customer experience and sentimental analysis is one of such kind of implementation.

In current context the business trends not only evaluated based on organizational data but also the analysis of web and social data is equally important. What I mean is for an enterprise to take effective decisions, it should analyze the enterprise data and social data in order to get a 360 degree view. This is what precisely “Consumer Analytics”. For this to happen we need to synthesize the social net and I think Google has first mover advantage in this space.

Thursday, June 9, 2011

Better know your NoSQL before leaving SQL

The NoSQL momentum is gaining rapidly. Most of the vendors embracing this new data model. However, there is  lot of misconception and hype is built surrounding this. This article provides few pointers for initial understanding of this new breed of data base.

1.  Is NoSQL is the replacement for SQL

Yes, if you say "YES" to following :
a.Is my data is unstructured ?
b.Do my data access patterns lend themselves to demoralization ?
c.Do I expect lot of schema change in my app ?
d.Can I Drop ACID  properties ?
e.Do I have more complex joins ?

2.  Is  NoSQL means Map Reduce ?
NoSQL is an implementation of a specific type of Data storage Model.  Map reduce is programmatic models to process large data sets. Most of the NoSQL databases offer some kind Map Reduce feature/implementation. That does not mean that we need to necessarily use map reduce to store data. Map reduce is used to extract and aggregate data at large scale from underlined data stores.   So NoSQL is purely a Data Storage platform in other hand Map Reduce is a way to process data.

3.  Can I have both SQL and NoSql  living and breathing  together ?
We can have both SQL based Data Store and NoSQL based data store living together. In most of the cases they will be complementary to each other as they try to solve different problems.

4.  Is NoSQL only for BigData
Truly NoSQL is not merely meant to solve the BigData issue. NoSQL is more popular in BigData use cases as many vendors solved their large scale data problems implementing  NoSQL databases.  NoSQL architecture naturally lends itself to solve today’s Big Data problem. There are lot of vendors still use Relational data store for  their apps. Face Book uses MySql as part of their data base layer. Most of the future apps will be built on polyglot persistency where the same app is built on multiple data models one could be relational and another could be a key and value based NoSQL database.

5.  Which is better performer SQL or NoSQL
The performance of app depends on many factors. We cannot be thinking using NoSQL data store can bring magic and solve all our pains over night. NoSQL is good for some kind of apps which are described above and SQL is good for different kind of apps. Use the data store which is best for solving a specific kind if issue. If I have large no of atom feeds  with different schemas and would not like to store in relational database would be a big pain. Select write data store for a specific  problem. Do not follow the hype of NoSQL use your analytics. NoSQL definitely cannot solve all kinds of problems. For more to understand Horizontal Partition versus Vertical Partitioning go thru (http://venkat-sp.blogspot.com/2009/12/scale-up-versus-scale-out-scale-up-this.html )

6.  Is NoSQL means more CPUs with large scale projects
Not really. I can run MongoDB, Cassandra , Redis in single system. But All these data stores architectures allows data to be partitioned and scale horizontally. In other terms we can have many shards as data grows. This is one of the important feature of any NoSQL databases available in the market and precisely this is the reason why NoSQL DBs are making in roads in big way for scale out problems and majorly seen in Scalable Apps.

7.  Is NoSQL means cloud DB
Most of the cloud vendors store data using some form key values or document kind of data store which helps them to scale out easily. That should not necessarily conclude NoSQL means cloud DBs. Amazon provides Mysql instances ( http://aws.amazon.com/rds/ )  for its customers. Very recently Amazon also support  Oracle instances ( http://aws.amazon.com/rds/oracle/ ). These all are Relational databases.

Please add you comments. Thanks.


Wednesday, June 8, 2011

Does JavaFX2 has life ahead which has released recently with a complete overhaul ?



Oralce has released Javafx 2.0 Rich Client Access ( Client side RIA ) beta. The JavaFX 2 plugin support is given in the new Netbeans 7.

The Major feature includes:

New Improved Java APIs for JavaFX : 

1. Allows to work with the java heritage

2. Support for DSLs

3. Swing Interoperability: No alien for java swing developers

4. A prism capable plugin: A plugin capable of running prism without starting of AWT.

5. A new graphics stack with new fully hardware accelerated pipeline called Prism targets DirectX on windows and Opengl on other platforms.

6. A web component that uses Webkit to render HTML.

7. An ultra net set of UI controls

8. New media features like Alpha Channels , Audio Equalizer, Low latency audio and programmatic Media Marker.

Find more details (http://javafx.com/roadmap/ )

Java is very strong and is more prominent in server side. It has not seen much success in client side. Sun developed very innovative client technologies like swing and applet sticking to the tag line
“write once run anywhere”.

Till today the applets are in use in many production environments. The java + opengl combination in the client side makes more appealing and as applet runs on the browser, it makes much more important the role of applets in browser to display the media content. There are several other alternatives technologies have been emerged using opengl but the good old way of displaying 3D content would be using a simple applet.

But somehow all these innovations failed to attract building client side applications using java. Till today sun/oracle did not bridge that gap may be it is mainly because an enterprise cultural issue or lack of focus. On the contrary Microsoft always excelled in providing nice UI friendly languages be it VB or C# with window forms and wpf. In the browser side it has very strong product to beat the competition is Silver Light. So developers are comfortable developing .Net stack the natural choice of the RIA platform is Silver Light.  

On the same page while Adobe had some strong comments from Steve Jobs on using flash in apples product line, but Flex is one of the most used technology in the client side. ( 90%) web applications use flash in their websites. That itself shows the product acceptance.

The following picture shows the job trends between competing products. javafx, extjs, adobe flex,silver light.
  



   
While all this is fine, there is new kid in the block which is HTML 5. Most of the companies are betting on HTML 5 to be the defacto standard for client side apps such as displaying 2D and 3D contents, audio/video stream to building client side apps with JS being the underlined language. Microsoft has recently raised confusion on Silver light’s feature as it believes the HTML is way feature and so apple.

The biggest question is do we have any need for any new RIAs with new learning curve and new nuances.

I feel each RIA vendors embrace HTML as standard platform, still these technologies will have their own approach to make HTML5 work for app developers. 

Let me know your comments.