All posts by Tomcy John

Tomcy John

About Tomcy John

He is an Enterprise Java Specialist holding a degree in Engineering (B-Tech) with over 10 years of experience in several industries. He's currently the Senior Technical Engineer at Emirates Group IT since 2005. Prior to this he has worked with Oracle Corporation and Ernst & Young. His main specialization is on various web technologies and acts as chief mentor and Principal Architect to facilitate incorporating Spring as Corporate Standard in the organization.

Book Awareness – Data Lake for Enterprises

Disclaimer: I am one of the co-authors of this book. Its shameless promotion of our own work.

About Book

Data is becoming important for many enterprises and it has now become pivotal in many aspects. In fact, companies are transforming themselves with data at its core. This book will start by introducing data, its relevance to enterprises, and how enterprises can make use of data to transform digitally. To make use of data, enterprises need repositories, and in this modern age, these aren’t called data warehouses; instead they are called Data Lake.

As we can see today, we have good number of use cases that are leveraging big data technologies. The concept of a Data Lake existed for quite sometime, but recently it has been getting real traction in enterprises. This book gives a hands-on, full-fledged, working Data Lake using the latest big data technologies, following well-established architectural patterns.

The book will bring Data Lake and Lambda architecture together and help the reader to actually operationalize these in their own enterprise. It will introduce a number of Big Data technologies at a high level, but will not be an authoritative reference on any of these topics, as they are vast in nature and worthy of a book in itself.

For more details click here.

Data Lake for Enterprises Book
Data Lake for Enterprises Book

Page Visitors: 102

Microservices – Full-fledged project using Spring Framework

As part of Microservices Hackathon (a technical hackathon), was fortunate enough to work with some like minded folks and with the help of an existing project in Github, was able to create and extend a full-fledged microservices based project using Spring Boot, Spring Cloud and obviously Netflix-OSS.

The project can be found in the below link location:

https://github.com/johntomcy/michackathon

Let me know your comments on this.

Page Visitors: 273

History of Web Application

The Figure below clearly depicts the exact evolution of web application all the way from its humble beginning in early 90’s to the current state.

History of Web
Evolution of Web (Copyright Raytheon Company)

It’s very hard to clearly separate Web 1.0 from web 2.0 as there wasn’t anything different which got introduced in Web 2.0. That’s the reason the figure above clearly doesn’t put in a timeline as these are not very clearly defined. Having said that, it evident from the figure that, over the last few decades there has been substantial change in how we see web sites/ applications. When the web initially started, these were not called as applications; rather these were called as sites, with static content and hyperlinks which allows users to navigate from one content page to another. After that came the existence of CGI and Servlets which allowed these static sites to become dynamic and more personalized. These sites slowly started calling themselves as applications as they start to do some basic stuff which a client server application could do for a user. The scene of web applications quickly changed with the introduction of MVC frameworks (In the world of Java Struts was one of the initial MVC frameworks) and the templating engines. These changed the way we looked at web applications and there was a huge rise in people adopting it to make web applications for businesses. With the introduction of Web 2.0 standards, another important addition to the web came into existence in the form of AJAX, which helped web applications to render parts of its page rather than generating the whole page at once. This made web more rich, faster and importantly brought about good user experience. With web 2.0 came into existence new standards (HTML5, CSS3 etc.) and these completely changed this space and a new paradigm shift began to be thought through in the form on client side MVC frameworks.

Page Visitors: 177

Spring Book – Chapter 14 – Spring MVC and Spring Web Flow

Disclaimer: The chapter have been written with figures sourced from various on-line materials. I haven’t been bale to attribute these figures with source. Really apologize for this. In case anyone has any issues in me using the figures and content, please drop an email to me at tomcyjohnatgmail.com. I will make sure that the details are either attributed or the image/content removed from my blog post. Thanks in advance.

Spring Framework’s web application support is through two sub-projects namely Spring MVC and Spring Web Flow.

Spring Framework has its own MVC based web application framework in the form of Spring MVC. They conceived and developed its web framework to address some of the deficiencies and poor design consideration in other popular framework available in the market. One of the main deficiencies identified was the lack of separation of concerns like proper separation between the presentation and request handling layer and between request handling layer and the model layer. Similar to Struts, Spring MVC is a request-based web application framework. Spring MVC makes sure that all the interfaces are tightly coupled with the core Servlet API’s rather than the Spring API’s.

Spring Web Flow is one of the sub-project which aims at providing the infrastructure for developing and running web application. It tries to aid web application developers in defining appropriate navigation rules, manage navigation and conversational state as well as facilitating high level reuse and modularization.

Spring MVC as well as Spring Web Flow is a very huge topic to cover in one Chapter. There are books written only on these topics. I would cover some basic concepts of both Spring MVC and Spring Web Flow in this Chapter. The first part of this Chapter makes you walk through Spring MVC and the second part of this Chapter walks through Spring Web Flow. I will try to cover basic detail of both frameworks so that you will get a heads up on these and can start off developing using these.

Spring MVC

Spring MVC allows you to build extensible, robust and loosely coupled MVC-based web application. With the use of the famous Model-View-Controller pattern, it inherently brings separation of the various layers in a typical web application namely business, presentation and navigation in a clear way.

We have covered MVC pattern in detail in this book, but just to refresh your mind, the responsibility of Model is to encapsulate the application data, the responsibility of View is to render the response to the user with the help from the Model object and the responsibility of Controller is to receive the request from the end user and transfer it to the back-end services which will populate the Model objects and sends the view object to the user.

Spring MVC's fit in an enterprise application containing other layers

Figure 14-1. Spring MVC’s fit in an enterprise application containing other layers

Page Visitors: 3868

JavaScript Database Library – Part 2

Earlier I wrote a post in which I tried to cover as much libraries as possible in the space of “JavaScript Database Library”. Later on I realized that that was in no way a complete list. When I research more, I could see another set of libraries as detailed below, which falls into the same category. Still I am not claiming that the list is exhaustive, but at least it gives various options we have in hand before selecting one for your application development.

Missed ones:
1. story.js – https://github.com/gilf/story.js
2. persistence.js
3. persistJS
4. amplify.store
5. localStorageDB
6. realStorage
7. YUI3 CacheOffline
8. DomSQL
9. Impel
10. ActiveJSActiveRecord
11. JazzRecord
12. picnet.data.DataManager
13. ShinyCar
14. lscache
15. microcache.js

One day I hope to write at least a small abstract on each one of these and also create some matrices which can be used meaningfully to select a particular library for your application.

Page Visitors: 75

JavaScript Database Library – Part 1

JavaScript is a universal language now. Its popularity, usage and its capabilities will keep increasing day by day. The future of especially web application development is in the hands of JavaScript and its various libraries and frameworks.

With node.js, JavaScript has also captured the niche server side as well in storm. In distant future, just by knowing JavaScript you would be bale to code an entire web application, both server and client side with ease.
This post, i cannot call as a very good blog post, but i just wanted to share the list of JavaScript database libraries i just searched using Google. Some of them might not be that useful a library as of now but can go on become more mature down the line.

The below lists some of the JavaScript database library:

TaffyDB – http://www.taffydb.com/
Lawnchair – http://brian.io/lawnchair/
Storjsdb – http://code.google.com/p/storjsdb/
Jstorage – http://www.jstorage.info/
SQLite – http://www.sqlite.org/
YDN-DB – http://dev.yathit.com/ydn-db/index.html
PouchDB – http://pouchdb.com/
Loki.js – http://lokijs.org/
XBSDB – http://xbsdb.org/
Store.js – https://github.com/marcuswestin/store.js
Sql.js – https://github.com/kripken/sql.js/
BankersBox – https://github.com/twilio/BankersBox
IDBWrapper – http://jensarps.github.io/IDBWrapper/
JayData – http://jaydata.org/
Kizzy – https://github.com/ded/Kizzy
Artemia – https://github.com/js-experiments/artemia
Strg.js – https://github.com/fend25/strg.js
localForage – https://github.com/mozilla/localForage
Rhaboo – http://adrianmay.github.io/rhaboo/

The above list was gathered from mere Googling and by reading through below sites:
https://www.javascripting.com
http://jster.net

These sites lists most of the JavaScript libraries which exists around the world written by awesome people.

Now the big question, which one should i use or standardize as the best one to develop a medium web application?
I don’t know, if anyone can help me, please drop me a comment and i will try to collate it and put another post, which would be more relevant and meaningful a post fr others.

Page Visitors: 166