Saturday, December 29, 2012

Spring Framework Data Access Object support - templates

Spring supports Data Access Object with 3 standard possible ways:

JDBC Templates
Hibernate Contextual Sessions
JPA Based templates


XML bean wiring includes follows:
Datasource configuration - JNDI or connection pool based
Wire template class with property to use the above datasource


JDBC Templates are for applications that are very small and requires quick development. Still will not support things like lazy loading, eager loading, cascade deletes, objects graph.

Hibernate Contextual sessions will support what is not supported by JDBC as mentioned above.

JPA based templates are JEE based standard and supports variety of frameworks from different vendors.

The templates are boiler plate code that is provided by Spring framework to write just the database access code and not worry about connection opening, closing, cleaning up of objects.

Had a good read on the above.

Tejas Bavishi


Thursday, December 13, 2012

Spring, Vaadin and CloudFoundry

There is  a good presentation on building web applications which are cloud based using Spring framework, Vaadin and CloudFoundry.

The presentation is here to build on the idea - http://www.slideshare.net/joshlong/cf-vaadin#btnNext

Happy reading :)

Tejas Bavishi


 

Hadoop in Practice book

Hadoop in practice book is available on Amazon.com.

This book looks promising for developers and architects, though I am still to read this book.

The book covers various practical approaches (practices) to various components of a Big Data or Hadoop based system.

Here's the link to the book - Hadoop in Practice Book

Happy reading :)

Tejas Bavishi


 

Some more features of Force.com platform

Advantages of force.com platform:

  • Database design driven application development on cloud infrastructure
  • In built support for multiple browser compatibility
  • Developer registration is free
  • A wizard like interface that guides the developers to create cloud based web applications
  • A complete stack for the web application including database design,
    • UI forms,
    • security,
    • Wizard driven validation rules creation,
    • wizard driven business
    • rules creation,
    • creating workflows,
    • Report creation,
    • Apex programming language - Java like programming language,
    • VisualForce - a tag based visual
    • programming language,
    • support for MVC like web application development,
    • support for writing test cases to test the code.
There are many more features to this platform and is very effective for ISVs to create their applications on this platform.

Thanks

Tejas Bavishi

Sunday, December 9, 2012

Force.com platform

Recently, I happen to visit the Force.com platform web site and thought of finding out the benefits of this platform for Cloud based application development.

There are many reviews for this on internet, one of this is here - http://www.eweek.com/c/a/Cloud-Computing/Building-for-the-Cloud-with-Forcecom-759200/

There is a complete eco system for Force.com platform, like developer community with certification programmes, companies directory for techies who can build apps for customers, online documentation, tools available for development, etc

Worth evaluating this option for new cloud application development.

http://wiki.developerforce.com/page/Documentation

Thanks
Tejas Bavishi

Friday, November 9, 2012

MapReduce Design Patterns: Building Effective Algorithms and Analytics for Hadoop and Other Systems Book

MapReduce Design Patterns: Building Effective Algorithms and Analytics for Hadoop and Other Systems Book


I am eagerly awaiting for publish of this book. This one looks promising on Map Reduce design paterns and will be a good companion book for Hadoop developers.

This book is expected to publish sometime in December 2012.

Here's the link to the book - MapReduce Design Patterns: Building Effective Algorithms and Analytics for Hadoop and Other Systems


Happy reading :)

Tejas Bavishi

Hadoop Operations Book

It looks like that this book is a must have for Hadoop professionals and worth reading at least once. It talks about maintaining hadoop clusters, security, OS and network configuration,etc.

Will have to find out time to read this book - Hadoop operations

Happy reading :)

Tejas Bavishi

Wednesday, September 26, 2012

Hibernate code samples

Found a good web site that provides good Hibernate code samples on a variety of things.

Very useful - as a reference or tutorial. It can be found at - http://www.mkyong.com/tutorials/hibernate-tutorials/


Tejas Bavishi

Sonar - Open Source Quality Management made easy

Sonar is a vast open source tool, so not possible to summarize everything. It is a platform to manage code quality and analyse static code.
Features:
(1)    Provides a dashboard for health of several java projects.
(2)    Provides ability to drill down at source code level to find out quality violations on code.
(3)    Provides automated code review with more than 600 coding rules.
(4)    Has ability to run JUNit test cases and provide code coverage metrics.
(5)    Provides several metrics for quality like Lines of Code, Cyclomatic complexity, Duplicated code, etc.
(6)    Provides historic metrics on quality and gives past timeline on how quality metrics evolved.
(7)    Provides out of shelf integration with Maven based Java projects.
(8)    Provides out of the shelf integration with Checkstyle, PMD, Findbugs, Clover, Cobertura.
(9)    One interesting feature is about applying architectural design patterns. There is a concept of separation of concerns architectural design pattern, which means that there is a clear separation of software layers in the application and violations are reported in the quality metrics.
(10)Sonar is about quality metrics and so it is important that quality parameters are understood well by Project Manager. Here’s the link to Sonar Quality Metrics listing - http://docs.codehaus.org/display/SONAR/Metric+definitions
(11)A continuous integration tool like Cruise Control has to be used to build project and register with Sonar for quality analysis. This should have frequency of daily nightly build. This will show correct metrics in Sonar.
(12)Another interesting view is – Resource Viewer. This shows each quality aspect of the Sonar for the Java Project under consideration. http://docs.codehaus.org/display/SONAR/The+resource+viewer


Big Data with Spring Framework

I was pleasantly surprised to see MongoDB support by Spring framework.

Spring framework has inbuilt support / annotations for binding java classes to MongoDB data.

There is a good code example available at - http://www.mkyong.com/mongodb/spring-data-mongodb-hello-world-example/


Tejas Bavishi

JBoss EE6 with OpenShift

OpenShift has released PaaS (Platform as a Service) from Red Hat. It supports several frameworks like Java, Ruby, etc.

OpenShift PaaS has ready made stack configured for JBoss EE6. This means that JEE applications developed on JBoss platform can readily take advantage of OpenShift and which means, that automatic resource scaling will happen for JBoss applications.

You can find out more on OpenShift at https://openshift.redhat.com/app/

Tejas Bavishi


Monday, August 13, 2012

Latest Cloudera Hadoop Software

Cloudera's latest Enterprise software includes almost entire Hadoop eco-system in one distribution. It also includes 24 X 7 support. What looks like is Cloudera is becoming Red Hat for Hadoop, means |Cloudera is the company to go for Hadoop open source business applications needs.

Currently, Hadoop is in a state where there is space for many small companies to provide support, training, development and installation and configuration services in various locations across the world. Cloudera - alone cannot cater to the amount of demand that Hadoop is generating. This is a specialised field.

Here is the link to current Cloudera Enterprise software - http://files.cloudera.com/pdf/datasheet/Cloudera_Enterprise_4_Datasheet.pdf

Tejas Bavishi

Thursday, August 9, 2012

Project Jigsaw - Java SE 8 or 9

I recently read about Project Jigsaw which is conceived to be better than OSGi. Frankly I have not understood the purpose of OSGi because - it is complex to understand and for most business applications it is not required to be used as a platform.

However, Project Jigsaw planned for Java SE 8 or 9 release is considered much less complex with far more better features than OSGi. It will provide modularity for JDK on what need to be in the build and better jar library management. Still need to understand and fully appreciate the requirement for this. With tools like Maven, it does not seem to be a requirement.

Anyone, any more thoughts on this?

Tejas Bavishi

Tuesday, August 7, 2012

Hadoop / Big Data the next generation revolution

Hadoop Map Reduce and Big Data Analytics solutions will be in great demand in coming years.
In the current scenario, business applications typically work with data in the size of petabytes, which requires Big Data technology like Hadoop.
Now a days, Hadoop can also interface to Oracle database, which goes to show that both Oracle and Cloudera are so eager to put Hadoop in mainstream technology of choice.
Then there is Karmasphere which provides IDE and BI solution on top of Hadoop Map Reduce. Also, Pentaho provides solution on top of Big Data. There are many open source Java products which are supporting Big Data Hadoop in a big way.

All the above should make Java develoeprs think that Hadoop is definitely a skill which will be in demand for many software companies in future.

Happy reading :)

Tejas Bavishi

Monday, August 6, 2012

Cloud Computing in Java EE 7 - JOnAS application server

JOnAS application server version 5.3 M7 provides multi-tenancy feature for SaaS (Software As A Service)  deployment of JEE application.

The isolation of application is identified by instance ID. There are more such features. This features are still evolving and will be available early 2013. By this time, many main stream applications servers will have adopted Java EE 7 specifications which will enable SaaS deployment capability out of the box.



You can find more information here - JOnAS

Friday, July 27, 2012

DataNucleus database driver

The new DataNuclues database driver has improved many folds and supports industry leading RDBMS, HBase, NoSQL database and various document formats. What this means is that DataNucleus can be easily used with Hadoop Big Data applications and will also support pluggable variety of databases. Means that switching database is simple, by just changing the configuration for DataNucleus database driver.

DataNuclues supports JPA standard which makes it compatible with JEE as well. The driver is provided with Apache license, which makes it a good choice for variety of applications.

Tejas Bavishi

Thursday, July 26, 2012

Google Map API

The Google Map API has advanced really well. The features include - Places Auto complete API, Distance Matrix API, Latitude API. This APIs also include 360 degree view of streets where available.

Places Auto complete API can be used in Location Based Services where user just types few initial characters and rest of the place name will be automatically filled. And the location of that business or restaurant will be automatically displayed on map.

The Distance Matrix API allows user to know distance between 2 places and what is the best way to go from Place A to Place B.

The Google Map Database is getting richer everyday and more correct and precise maps are released everyday.

For making location aware applications, developers have a brilliant opportunity to use Google Map API.

I am yet to see a comparison of different Map APIs like Google, Bing, NAVTEQ. But looking at Google Maps popularity and richness of APIs, Google seems to be ahead.

Tejas Bavishi





Wednesday, July 25, 2012

iPhone vs Samsung court room battle

My vote goes with Samsung, as there is nothing in terms of invention as to what Apple iPhone does or looks like. It is a sophisticated piece of technology but cannot be said that it is a invention. Just like microwave oven, refrigerators are not invention and so Samsung smart phones are not infringement to what Apple produces.

Tejas Bavishi

JEE 7 targets cloud computing technic

The new JEE 7 version is targetting cloud computing technic in a big way. The JEE 7 development kit includes cloud profile which will cover PaaS and some features of SaaS. What this means is that JEE7 will provide JEE compatible enterprise cloud APIs to develop web based Enterprise Java applications on cloud. These APIs also make compatibility to deploy on multiple platforms like Amazon, Eucalyptus and Oracle public / private clouds.

The PaaS feature includes features like WAR file compatibility on multiple cloud environments, scalable database connectivity, scale up and down of virtual machines.

Some of the SaaS features include multi-tenancy and database sharding. The JEE7 is due to release end of 2012.

Cloud infrastructure will be de-facto future standard for all enterprise applications. Just like internet banking is current way of doing things in financial industry. The benefits of a on-demand scalable cloud infrastructure weigh to much in favour of utilizing cloud than utilizing conventional infrastructure approach.

JEE7's cloud applications development features will take Java platform several steps in direction towards taking advantage of cloud computing. Also, adding support in JEE7 development kit will de-mystify SaaS cloud application development and vendor lock-in. It will also mean that IDEs like Eclipse and NetBeans will have support built-in for various cloud providers like Amazon EC2, Oracle, etc.

Java Architects and Java developers should keep an eye on new JEE7 release and also ISVs planning their roadmap for future product releases should cover their planning for JEE7.


Tejas Bavishi

Tuesday, July 24, 2012

Apache Hadoop as top batch processing framework / Solr indexing

Hadoop is increasingly gathering attention from Open Source Java community as top rated, highly scalable, in-expensive, batch processing framework. Some of the advantages of Hadoop are as follows:
(1) Apache Open Source
(2) Very high community support
(3) In-expensive
(4) Works on standard Windows / Unix server hardware, no special hardware requirements
(5) A company - Cloudera.com, providing training, commercial support and solutions.

Based on above advantages, Hadoop has become a very good tool for creating huge scale business applications that can process several peta bytes of data. In addition to this, Hadoop can also be integrated with database like HBase. More recently, Cloudera offers solution for connecting Hadoop jobs to Oracle database as well.

Hadoop integrated very well with Apache Solr for a complete indexing of documents for large scale search solutions. There are many references of integrating Solr with Hadoop on internet. Hadoop job can be used to upload data to Solr using SolrJ Java driver. Apache Solr search engine stores indexes on separate servers. A separate front end application can provide search interface directly from Apache Solr using SolrJ java driver to interface to Apache Solr. So on one side Hadoop uploads data (or documents) to Apache Solr, and on other side Java front end can provide search interface to Apache Solr.

Hadoop is definitely the technology of future and something all Java Architects should keep an eye on.

Tejas Bavishi

Wednesday, May 23, 2012

Practical Guide to Securing JEE web application with OWASP

Practical Guide to Securing JEE web application with OWASP - A new eBook on Amazon kindle is published. Here's the link - http://www.amazon.com/Practical-Guide-Securing-application-ebook/dp/B0085LPH5Y/ref=sr_1_1?s=books&ie=UTF8&qid=1337838617&sr=1-1


OWASP stands for “Open Web Application Security Project”. OWASP is a world-wide organization for educating and promoting awareness about web application security without any bias to a particular technology or a commercial product.
OWASP can be found at https://www.owasp.org/index.php/Main_Page on the internet. There is a lot of material on security, threat model and best practices to make web application secure. This short guide will cover - how to make JEE web application secure using OWASP best practices.


Tuesday, May 1, 2012

Oracle Enterprise Pack For Eclipse makes JEE 6 Development simple


Oracle Enterprise Pack For Eclipse (OEPE) is an Integrated Eclipse IDE tool for Java Developers to ease development on JEE 6 technologies. OEPE supports direct integration with Oracle WebLogic Application server and provides IDE internal approach of source code development for java developers.

The features include following:
((1)Oracle public cloud support – OEPE allows deployment of web applications to Oracle public cloud.
((2)OEPE has good wizards to create web services and provides support for developers to create various web service artifacts.
((3)Provides in-built data modeler and visualize for Oracle Database.
((4)Supports JPA entity object creation from database tables.
((5)It has in-built support for working with Spring framework.
((6)Makes working with JSF, JSP and JSTL very easy.

The IDE itself is based on Eclipse, will definitely enhance productivity of developers who wants to use this plugin.

More information can be found on Oracle Web site - OEPE Oracle Link

Tuesday, February 28, 2012

Vaadin – The Server Side Programming Model for Web Based GUI


The Vaadin framework is a server side programming model for web based GUI. It is for developers, architects who prefer to avoif programming using frameworks like jQuery, JSP, JSF. Also, output generated by Vaadin is compatible across web browsers including mobile / handheld devices.

The Vaadin framework programming is carried out in Java as kind of SWING library. The same is compiled into .classes using Java compiler. However, at runtime, the framework is available in a Jar file which has to be included in WAR file. The WAR file takes care of generating appropriate HTML / DHTML and AJAX scripts which is sent to web browser for display. So all browser compatibility issues are taken care by vaadin framework.

Also, vaadin has a plugin for Eclipse which makes development so much easier including drag-n-drop support for UI widgets.

Vaadin is open source project with very good community support including forums.
You can check out vaadin at - Vaadin Homepage


I played around with vaadin using vaadin documentation which is very exhaustive, and found it simple to use and develop.

Sunday, February 12, 2012

Cassandra database - No SQL - Non relational database

Cassandra is a apache open source project. It is a non relational - non sql database. It promises linear scalability, low latency and in built caching of data on cheap commodity hardware or cloud infrastruture. The project is hosted at - http://cassandra.apache.org/

The comcept is simple and completely different from regular RDBMS like MySQL, Oracle, etc.

Cassandra stores data in this format:
KeySpace which corresponds to a schema. This will be like one schema for one project across multiple cluster of nodes.
Column Family like a table, each keyspace can have multiple column families.
And finally column or key / value which represents the column in the column family.

Cassandra is tightly integrated with Apache Hadoop for large scale distributed parallel data processing using Java Map Reduce.

Saturday, February 11, 2012

Google Code Pro Analytix

Google Code Pro Analytix is quality management and code improvement tool for Eclipse - Java.

Provides several important features like metrics generation, automated JUnit test case generation, code coverage metrics, etc. All these features from within the IDE Eclipse. I tried few features and it worked without any problem.

Installation is simple, it works as a plugin inside Eclipse. The metrics, test case generation using JUnit / Java is simple. See screenshot below:


The plugin, documentation, usage examples are available here - http://code.google.com/javadevtools/codepro/doc/index.html

Friday, February 3, 2012

Sonar open source quality management tool

Sonar is a vast open source tool, so not possible to summarize everything.
It is a platform to manage code quality and analyse static code.
Features:
(1) Provides a dashboard for health of several java projects.
(2) Provides ability to drill down at source code level to find out quality violations on code.
(3) Provides automated code review with more than 600 coding rules.
(4) Has ability to run JUNit test cases and provide code coverage metrics.
(5) Provides several metrics for quality like Lines of Code, Cyclomatic complexity, Duplicated code, etc.
(6) Provides historic metrics on quality and gives past timeline on how quality metrics evolved.
(7) Provides out of shelf integration with Maven based Java projects.
(8) Provides out of the shelf integration with Checkstyle, PMD, Findbugs, Clover, Cobertura.
(9) One interesting feature is about applying architectural design patterns. There is a concept of separation of concerns architectural design pattern, which means that there is a clear separation of software layers in the application and violations are reported in the quality metrics.
(10) Sonar is about quality metrics and so it is important that quality parameters are understood well by Project Manager. Here’s the link to Sonar Quality Metrics listing - http://docs.codehaus.org/display/SONAR/Metric+definitions
(11) A continuous integration tool like Cruise Control has to be used to build project and register with Sonar for quality analysis. This should have frequency of daily nightly build. This will show correct metrics in Sonar.
(12) Another interesting view is – Resource Viewer. This shows each quality aspect of the Sonar for the Java Project under consideration. http://docs.codehaus.org/display/SONAR/The+resource+viewer