Friday, 27 May 2016

Cloud Computing

Cloud computing is a model for enabling ubiquitous,convenient,on- demand network access to a shared pool of configurable computing resources(e.g.,networks, servers, storage, applications, and  services) that can be rapidly provisioned and released with minimal management effort or service provider interaction.(byNIST)

“an Internet based computing paradigm that delivers on-demand software and hardware computing capability as a ‘service’ through virtualization where the end user is completely abstracted from the computing resources”

3-4-5 Rule

3 : Services
4 : Deployment Models
5 : Characteristics

3 : Services

1. IaaS (Infrastructure as a Service)

The capability provided to the consumer is to provision processing, storage, networks, and other fundamental computing resources where the consumer is able to deploy and run arbitrary software, which can include operating systems and applications. The consumer does not manage or control the underlying cloud infrastructure but has control over operating systems, storage, deployed applications, and possibly limited control of select networking components (e.g., host firewalls)

2. PaaS (Platform as a Service)

The capability provided to the consumer is to deploy onto the cloud infrastructure consumer-created or acquired applications created using programming languages and tools supported by the provider. The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, or storage, but has control over the deployed applications and possibly application hosting environment configurations

Windows Azure, Google App Engine, Hadoop, etc. are some well-known PaaS platforms

3. SaaS (Software as a Service)

The capability provided to the consumer is to use the provider's applications running on a cloud infrastructure. The applications are accessible from various client devices through a thin client interface such as a web browser (e.g., web-based email). The consumer does not manage or control the underlying cloud infrastructure including network, servers, operating systems, storage, or even individual application capabilities, with the possible exception of limited user-specific application configuration settings

Moto: “No Software
Ex: for CRM, Google Docs for document sharing, and web email systems like Gmail, Hotmail, and Yahoo! Mail

Cloud Service Models 

Utility Computing

  • Utility computing is the packaging of computing resources, such as computation, storage and applications, as a metered service similar to traditional public utility (such as electricity, water, natural gas, or the telephone network).
  • This model has the advantage of a low or no initial cost to acquire computer resources; instead, computational resources are essentially rented
  • You get connected to the utility companies’ “public” infrastructure
  • You get these utility services on‐demand
  • And you pay‐as‐you use (metered service)
  • Cloud computing is the most recent technology innovation which has made utility computing a reality!

Distributed Computing

  • A distributed computing system is basically a collection of processors interconnected by a communication network in which each processor has its own local memory and other peripherals, and the communication between any two processors of the system takes place by message passing over the communication network
  • Loosely coupled systems
  • Examples: Cluster, Grid, P2P, Cloud computing, IOT
  • Uses middleware, which enables computers to coordinate their activities and to share the resources of the system.
  • Single integrated computing facility from user perspective
  • Can include heterogeneous computations where some nodes may perform a lot more computation, some perform very little computation and a few others may perform specialized functionality (like processing visual graphics)
  • Using which efficient scalable programs can be designed so that independent processes are scheduled on different nodes and they communicate only occasionally to exchange results
  • Cloud computing is also a specialized form of distributed computing, where distributed SaaS applications utilize thin clients (such as browsers) which offload computation to cloud-hosted servers (and services).
  • Additionally,cloud-computing vendors providing (IaaSand PaaS) solutions may internally use distributed computing to provide highly scalable cost-effective infrastructure and platform.

Cluster Computing

  • A computer cluster is a group of loosely or tightly coupled computers that work together closely so that in many respects it can be viewed as though it were a single computer
  • Better performance and availability and more cost‐effectiveness over single computer with same capabilities
  • Loosely / tightly coupled computers
  • Centralized Job management & scheduling
  • Coined in 1987

Grid Computing:

  • Grid is a collection of a large number of loosely coupled, heterogeneous, and geographically dispersed systems in different administrative domains
  • Generally owned by multiple organizations that is coordinated to allow them to solve a common problem
  • Loosely coupled computers
  • Distributed Job management & scheduling
  • Originated (early 1990s)
Vision: To enable computing to be delivered as a utility
This vision is most often presented with an analogy to electrical power grids, from which it derives the name “grid”
  • The key emphasis of grid computing was to enable sharing of computing resources or forming a pool of shared resources that can then be delivered to users.
  • Focus of grid computing was limited to enabling shared use of resources with common protocols for access
  • a particular emphasis was given to handle heterogeneous infrastructure-typically a university data center.
  • "coordinated resource sharing and problem solving in dynamic, multi-institutional virtual organizations.” -Ian Foster & Steve Tucker -> "Anatomy of Grid”
  • There are also very specific differences between a grid computing infrastructure and the features one should expect from a cloud computing infrastructure
  • Grid (three-point checklist)?
    • Co-ordinates resources that are not subjecttocentralized control
    • Using standard, open, general purpose protocols and interfaces
    • To deliver nontrivial quality of service

Advantages -Distributed computing

Inherently Distributed applications:
  • Several applications are inherently distributed in nature and require distributed computing system for their realization
Information Sharing among Distributed Users:
  • In a distributed computing system, information generated by one of the users can be easily and efficiently shared by the users working at other nodes of the system .
Resource Sharing:
  • Sharing of software resources such as software libraries and databases as well as hardware resources such as printers, hard disks, etccan also be done in a very effective way among all the computers and the users of a single distributed computing system.
Extensibility and Incremental Growth:
  • It is possible to gradually extend the power and functionality of a distributed computing system by simply adding additional resources (both hardware and software) to the system as and when the need arises .
  • Incremental growth is very attractive feature because for most existing and proposed applications it is practically impossible to predict future demands of the system.
  • Addition of new resources to an existing system can be performed without significant disruption of the normal functioning of the system.
Shorter Response Times and Higher Throughput:
  • The multiple processors of the distributed computing system can be utilized properly for providing shorter response times and higher throughput than a single processor centralized system.
  • Another method often used in distributed computing systems for achieving better overall performance is to distribute the load more evenly among the multiple processors by moving the jobs from currently overloaded processors to lightly loaded ones
Higher Reliability:
  • Reliability refers to the degree of tolerance against errors and component failures in a system.
  • A reliable system prevents loss of information even in the event of component failures
  • An important aspect of reliability is availability, which refers to the fraction of time for which a system is available for use.
Better Flexibility in Meeting User’s Needs:
  • A distributed computing system may have a pool of different types of computers, in which case the most appropriate one can be selected for processing a user’s job depending on the nature of the job.
  • Better Price-Performance Ratio:
  • With the rapidly increasing power and reduction in prize of the microprocessors, combined with the increasing speed of communication network, distributed computing systems potentially have a much better price performance ratio than a single large centralized system.

Ubiquitous/ Pervasive computing

  • It is an advanced computing concept where computing is made to appear everywhere and anywhere.
  • Ubiquitous computing can occur using any device, in any location, and in any format. A user interacts with the computer, which can exist in many different forms -laptop, tablets, terminals, phones, etc.
  • Move beyond desktop machine
  • Ex: digital audio players, radio-frequency identification tags, PDAs, smartphones, GPS, and interactive whiteboards
  • Present or noticeable in every part of a thing or place
  • Information processing engaged in every day’s activities and objects

Monday, 5 May 2014

Installing bedtools on centOS

1. Download bedtools from

2. Save it to a local folder (eg: softwares folder)
3. Untar it using below command
# tar xvzf bedtools-2.19.1.tar.gz

4. You can find all the bedtools function in bedtools-2.19.1/bin folder
5. You have to set the PATH environmental variable for bedtools so that OS can locate the bedtools program,  even if it is not in the current directory

Setting PATH environmental variable for bedtools

1. Open /etc/profile.d
2. Create a document and name it as
3. Add the below line in
    export PATH = $PATH:/softwares/bedtools-2.19.1/bin
4. Save it and close
5. If you want to load the environment variables within without having to restart the machine, you can use the source command as in
     # source

Install SRA toolkit on CentOS

1. Download SRA toolkit from

2. For centos 64 bit, we have to download sratoolkit.2.3.5-2-centos_linux64.tar.gz
3. Save it to a local folder (eg: softwares folder)
4. Untar it using below command
# tar xvzf sratoolkit.2.3.5-2-centos_linux64.tar.gz

5. You can find all the toolkit functions in the sratoolkit.2.3.5-2-centos_linux64/bin folder
6. You have to set the PATH environmental variable for toolkit so that OS can locate the fastq-dump program,  even if it is not in the current directory

Setting PATH environmental variable for SRA Toolkit

1. Open /etc/profile.d
2. Create a document and name it as
3. Add the below line in
    export PATH = $PATH:/softwares/sratoolkit.2.3.5-2-centos_linux64/bin
4. Save it and close
5. If you want to load the environment variables within without having to restart the machine, you can use the source command as in
     # source

Thursday, 24 April 2014

Add image/logo in browser tab for website

How to add image/logo in browser tab for website?

Place the below code under <head> tag in html

<link rel="shortcut icon" href="path to your logo">