Thursday, September 22, 2016

Must Have Features in the Social and Mail Sites

I use gmail and other social sites like LinkedIn, Facebook, Twitter on the daily basics each of them have lots and lots of their own features but I think they would be more productive if they have some extra plugins or features too. Here is the list of plugins/features which may help users to make their work more easier as well as to use this social sites.

Gmail
Lets say I have to send email to the hundreds of the people daily with the same text. So what if Gmail introduces some small plugins like notes in the compose area so that user can save their texts in that and can copy and paste those text just by clicking one button like Dropbox and select the text.

Facebook
From beginning to now Facebook have done lots and lots of improvements and also added lots of new features. Its new feature about video is awesome but sometime I feel annoy because the volume level is not saved for other video once I change it as like in YouTube. And while uploading the video if there was a option to make a playlist will also be awesome.

Friday, June 3, 2016

Understanding Spring Enterprise Intregation

It is a lightweight messaging solution that will add integration capabilities to our spring application. As a messaging strategy, it provide a way of sharing information quickly and with the high level of decoupling between the involved components or applications.

It allows us to 

  1. Allows communication between the components within our application using the in-memory messaging. Which allows this components to be loosely coupled and share the message using the message channel.
  2. It also allows us to communicate with external system. Here we just need to send the information and spring integration will take care rest of it, if response is necessary then it will also take care of that.
The advantages of using EI are: 
  1. Loose coupling within the components
  2. Event Oriented Application
  3. Integration logic is separated from the business logic.





References::
1. JavaCodeGeeks

Difference between the Hadoop HDFS and Google GFS

In Hadoop, the reducer is presented with a key and an iterator over all values associated with the particular key. The values are arbitrarily ordered.

Google's implementation allows the programmer to specify a secondary sort key for ordering the values (if desired) in which case values associated with each key would be presented to the developer's reduce code in sorted order.

Some of the key differences are listed below:

HDFS
  • Initiated by yahoo and later on made open source
  • Developed in Java
  • it consists of NameNode and DataNode
  • default block size is 128 mb
  • it follows WORM model : write once read multiple
  • deleted files are renamed into particular folder and are removed by the garbage
  • reducer can emit arbitrary number of key value


GFS
  • Developed by Google Inc.
  • Developed in C++(most likely)
  • it consists of MasterNode and Chunk Server
  • default block size is 64 mb
  • multiple read and write is possible
  • deleted nodes are hide and are removed if not used more then 3 days
  • programmer are not allowed to change the key in the reducer i.e. reducer input key must be the same as in the output


Friday, May 13, 2016

Web Architecture - Explained

What is 3-tier Architecture?


to understand this let us take the example of the shopping cart system where user can do all the shopping related task online. For for understanding this we will focus only on the item selection part of this online system, where user can select the item and add it to the cart. In 3 -tier architecture we have the following 3 layers which are:

Presentation layer: 
This layer will notify the business layer with the action user have taken in the front end which may be like clicking the ADD TO CART button in the page. Here when the user click the button which is for eg. implementing the AJAX will send information to the business layer and when the business layer provides the success response then the user will see the visual effects like Item being added to the cart or the cart item number increase visually. In spring the use of @Controller Annotation is used in this layer.

Business Layer: 
In this layer after getting the request from the presentation layer the this layer will create the Customer Order Object or the Model using the different business criteria. such as:
- is the item available in the inventory.
- calculate the price of the item or calculate the total price of the items
- calculate the shipping cost
- finally store this information in the session
In spring the use of @Service Annotation is used in this layer. The core domain and domain logic is addressed in this layer.


Data Access Layer:
This layer will now finally persist the Customer order in the physical data store like Oracle, MySQL etc. In Spring ORM and Hibernate comes in this layer. In spring the use of @Repository Annotation is used in this layer.

For the extra security we can also add the extra layer i.e. Security layer between the Presentation and Business Layer. Spring Security can be used as the security layer.


Monolith N-tier

The monolithic application consists of a single application layer that supports the user interface, the business rules, and the manipulation of the data all in one. It is very simple to develop but not typical architecture for the software engineering. Only applicable if the application is small or does not need future expansion.