Thursday, 4 February 2016

Linux For Everyone - Basics and Commands



Definition of Operating System:
Operating System (OS)
        • Software interface between the user and the computer hardware 
        • Controls the execution of other programs 
        • Responsible for managing multiple computer resources (CPU, memory, disk, display,                         keyboard, etc.) 
        • Examples of OS: Windows, Unix/Linux, OS X

Linux OS working
        Hardware Kernel Shell, editors, etc. Compiler components Compiler Other utilities 
        • Linux has a kernel and one or more shells
        • The shell is the command line interface through which the user interacts with the OS. Most                  commonly used shell is “bash”
        • The kernel sits on top of the hardware and is the core of the OS; it receives tasks from the                  shell and performs them.

Linux File System 
        • A directory in Linux is similar to a “Folder” in Windows OS • Files are organized into                         directories and sub-directories 
        • In Linux, paths begin at the root directory which is the top-level of the file system and is                      represented as a forward slash ( / ) 
        • Forward slash is used to separate directory and file names


Commands:
Basic Commands (1)
        • To print the name of the current/working directory, use the pwd command
                 login4$ pwd /share/home/01698/rauta 

        • To make a new directory, use the mkdir command
                login4$ mkdir ssc222 

        • To change your working directory, use the cd command
                login4$ cd ssc222

Basic Commands (2)
        • To create a new file use the vi command
                login4$ vi test.txt 
                – Press i to start inserting text
                – Type some text: Hello Class 222
                – To save and quit, press “ Esc ” key, and enter :wq! (press the enter key after typing :wq!)
                – To quit without saving, press “ Esc ” key if in insert mode, and enter “ :q! ”

        • To display the contents of the file, use the cat short for concatenation) command
                login4$ cat test.txt 

Basic Commands (3)
        • To list the contents of a directory, use the ls command
                login4$ ls 

        • To see all files and directories, including hidden ones use the -a flag with the ls command.                 Hidden files have a “.” in front of them
               login4$ ls –a

Basic Commands (4)
        • To copy contents of one file to another, use the cp command
                login4$ cp test.txt copytest.txt 
                login4$ cp test.txt test3.txt 

        One more example:
                login4$ mkdir junk 
                login4$ cp test.txt ./junk/test2.txt 
        (The command above copies a file to the sub-directory junk)
                login4$ cd junk login4$ ls login4$ cd ..

        • To go a level up from the current working directory
                login4$ cd .. 

Exercise -1
        • Run the following commands to make a directory:
                login1$ mkdir ssc229 
                login1$ cd ssc229 

        • Create a file using vi command in ssc229 (see slide 15)
                login1$ vi test.txt 

        • Run the following commands in the ssc229 directory
                login1$ cp test.txt test2.txt 
                login1$ mkdir junk 
                login1$ mkdir junk2 
                login1$ cp test2.txt ./junk/test2.txt 
                login1$ cp test2.txt ./junk2/test2.txt 
                login1$ ls

        • Run the following commands starting from the ssc229 directory that you created above
                login1$ ls 
                login1$ cd junk 
                login1$ ls login1$ cd .. 
                login1$ cd junk2 
                login1$ ls login1$ cd .. 
                login1$ ls 
                login1$ cp test.txt test3.txt

Basic Commands (5) 
        • To remove a file, use the rm command
                 login4$ rm test2.txt 

        • To remove a directory, use the “ –r ” option with the rm command
                login4$ rm –r junk2 

        • You can also use the rmdir command to remove an empty directory
                login4$ rmdir junk2 

         Note: rmdir command does not have –r option

Basic Commands (6) 
        • A file can be renamed by moving it. The same can be achieved by using the mv command
                login4$ mv test3.txt newtest3.txt 

        • Use the man command to get more information about a command – it is like using help in                 Windows                 
                login4$ man rmdir 

        • Use the diff command to see the differences in two files
                login4$ diff test.txt newtest3.txt 

Basic Commands (7) 
        • Previously executed commands in a shell can be viewed by using the history command.
        For example:
                login4$ history
                          1 man ls
                          2 ls -ltr
                          3 ls -l -t -r
                          4 ls -ltr
                          5 history

Basic Commands (8) 
        • If the contents to display are more than one page, you could use the more/less command for                 paging through text a screenful at a time

                login4$ more test.txt 
                login4$ less test.txt 

         (less allows both fwd and bwd movement)

Basic Commands (9) 
        Creating a tarball
        • TAR (Tape Archive) command bundles files and subdirectories together and creates an                        archive (known as tar file or tarball)
        • To create a tarball of all the files and sub-directories in the directory ssc229 that you created                in Exercise 1, use c flag:
                tar -cvf mytar.tar * 
        • To extract the contents of a tar file use x flag:

                login1$ tar -xvf mytar.tar 

Basic Commands (10) 
        Creating a Compressed tarball
        • To compress the tar file as it is being created use z flag with c flag :
                login1$ tar -cvzf mytar.tar.gz *

        • To extract the contents of a compressed tar file use x flag:
                login1$ tar -xvf mytar.tar.gz 26 

Note: the c, v, and f flags mean create a new archive, be verbose so that the files being archived are listed, and write the archive to a file.

Other Directives 
        • “ < ” symbol is used for input redirection
                mail -s "SSC 222/292" rauta@tacc.utexas.edu < test.txt 

        • “ >> ” symbol is used for appending output to a file
                login4$ cat test3.txt >> test.txt 

        • “ ; ” is used to execute multiple commands in one step
                login4$ clear;date

Adding Content to a File 
        • You can add content to a file as follows
                login4$ cat > test.txt 
        This is what I am entering from the console
                CTRL-D 
                login4$ cat test.txt 
        This is what I am entering from the console
        • You can append content to a file as follows
                login4$ cat >> test.txt 
        Appending more lines
                CTRL-D

Check Username and Group 
        • Three types of users: owner or user, group, all others
        • To check the login name use the command whoami or echo $USER
        • To check the groups you are a member of use the command groups 
        • To check your user id, or group id use the command id 

File Permissions (1) 
        • Users typically perform the following operations on files:
                – Read files (using more, cat, etc.)
                – Write files (using >, vi, etc.)
                – Execute commands in a file (executables, etc.)

        • Each file has three permissions – read, write and execute (rwx)

        • Person creating the file is the owner or user and can modify permissions as desired
                – Owner can modify permissions on files to grant or revoke access to other users

File Permissions (2) 
        • To check the file permissions use the -l flag with the ls command
                login4$ ls -l 
                total 24 
                drwx------ 2 rauta G-25072 4096 Jan 17 14:07 junk 
                drwx------ 2 rauta G-25072 4096 Jan 17 14:15 junk2 
                -rw------- 1 rauta G-25072 65 Jan 17 13:59 test.txt

File Permissions (3) 
        chmod command is used to change permissions on a file

        • To add specific permission use chmod +
                – To add write permission to all users use:
                chmod a+w filename 
                – To add read permission to only the users in your group use:
                chmod g+r filename 
                – To make a file executable and runnable by any user
                chmod a+x myfile 

        • To remove specific permission use chmod

        • Add and remove permissions can be combined in a single step
                – chmod u+x,g+r,o-rwx filename Note: u = user or owner, g = group, o = other

File Permissions (4) 
        • Instead of using alphabets u, g, o for user, group, and others we can use numbers to specify file permissions
                rwx = 111 = 7 
                rw- = 110 = 6 
                r-x = 101 = 5 
                r-- = 100 = 4 
                -wx = 011 = 3 
                -w- = 010 = 2 
                --x = 001 = 1 
                --- = 000 = 0 
        • Note that:
                 chmod go+rx filename = chmod 755 filename 

Directory Permissions 
        • To check the contents of a file with ls command, you would need read permission
        • To add or remove files in a directory, you would need write and execute permission
        • To change to a directory or to go through its contents, you would need execute permission
        • To list files in a directory using ls –l command you would need read and execute permissions

Installation/FromUSBStick/Ubuntu/Linux : 
https://help.ubuntu.com/community/Installation/FromUSBStick



Thanks University Of TEXAS





Thursday, 21 January 2016

Cloud - Everything which you need to know

What is Cloud?

                      The term Cloud refers to a Network or Internet. In other words, we can say that Cloud is something which is present at remote location. Cloud can provide services over network i.e. on public networks or on private networks i.e. WAN, LAN or VPN.
What is Cloud Computing?
            Cloud Computing refers to manipulating, configuring, and accessing the applications online. It offers online data storage, infrastructure and application.
cloud_computing Tutorial
We need not to install a piece of software on our local PC and this is how, the cloud computing overcomes platform dependency issues. Hence, the Cloud Computing is making our business applicationmobile and collaborative.

Cloud Computing Technologies

There are certain technologies that are working behind the cloud computing platforms making cloud computing flexible, reliable, usable. These technologies are listed below:
  • Virtualization
  • Service-Oriented Architecture (SOA)
  • Grid Computing
  • Utility Computing

Virtualization

Virtualization is a technique which allows to share single physical instance of an application or resource among multiple organizations or tenants(customers). It does so by assigning a logical name to a physical resource and providing a pointer to that physical resource when demanded.
cloud_computing Tutorial
The Multitenant architecture offers virtual isolation among the multiple tenants and therefore, the organizations can use and customize the application as though, they each has its own instance running.

Service-Oriented Architecture(SOA)

Service-Oriented Architecture helps to use applications as a service for other applications regardless type of vendor, product or technology. Therefore it is possible to exchange of data between applications of different vendors without additional programming or making changes to services.
cloud_computing-service_oriented_architecturecloud_computing Tutorial

Grid Computing

Grid Computing refers to distributed computing in which a group computers from multiple locations are connected with each other to achieve common objective. These computer resources are heterogeneous and geographically dispersed.
Grid Computing breaks complex task into smaller pieces. These smaller pieces are distributed to CPUs that reside within the grid.
cloud_computing Tutorial

Utility Computing

Utility computing is based on Pay per Use model. It offers computational resources on demand as a metered service. Cloud computing, grid computing, and managed IT services are based on the concept of Utility computing

Cloud Computing Architecture

The Cloud Computing architecture comprises of many cloud components, each of them are loosely coupled. we can broadly divide the cloud architecture into two parts:
  • Front End
  • Back End
Each of the ends are connected through a network, usually via. Internet. The following diagram shows the graphical view of cloud computing architecture:
cloud_computing Tutorial

Front End

Front End refers to the client part of cloud computing system. It consist of interfaces and applications that are required to access the cloud computing platforms. Eg. Web Browser

Back End

Back End refers to the cloud itself. It consist of all the resources required to provide cloud computing services. It comprises of huge data storage, virtual machines, security mechanism, services, deployment models, serversetc.

Cloud Infrastructure Components

Cloud infrastructure consist of servers, storage, network, management software, and deployment software and platform virtualization.
cloud_computing Tutorial

Hypervisor

Hypervisor is a firmware or low level program that acts as a Virtual Machine Manager. It allows to share the single physical instance of cloud resources between several tenants.

Management Software

Management Software helps to maintain and configure the infrastructure.

Deployment Software

Deployment software helps to deploy and integrate the application on the cloud.

Network

Network is the key component of cloud infrastructure. It allows to connect cloud services over the internet. It is also possible to deliver network as a utility over the internet i.e. the consumer can customize the network route and protocol.

Server

Server helps to compute the resource sharing and offer other services such as resource allocation and de allocation, monitoring resources, security etc.

Storage

Cloud uses distributed file system for storage purpose. If one of the storage resource fails then it can be extracted from another one, which makes cloud computing more reliable.

Cloud Deployment Models

Foloowing are the cloud deployment models:
  • Public Cloud Model
  • Private Cloud Model
  • Hybrid Cloud Model
  • Community Cloud Model

Public Cloud Model

The Public Cloud Model allows systems and services to be easily accessible to general public. e.g. Google, Amazon, Microsoft offers cloud services via internet.
cloud_computing Tutorial

BENEFITS

  • Cost Effective
  • Reliability
  • Flexibility
  • Location Independence
  • Utility Style Costing
  • High Scalability

DISADVANTAGES

  • Low Security
  • Less customizable

Private Cloud Model

The Private Cloud allows systems and services to be accessible with in an organization. The Private Cloud is operated only within a single organization. However, It may be managed internally or by third-party.
cloud_computing Tutorial

BENEFITS

Here are the benefits of deploying cloud as private cloud model.
  • Higher Security and Privacy
  • More Control
  • Cost and energy efficiency

DISADVANTAGES

Here are the disadvantages of using private cloud model:
  • Restricted Area
  • Inflexible Pricing
  • Limited Scalability
  • Additional Skills

Hybrid Cloud Model

The Hybrid Cloud is mixture of public and private cloud. Non Critical activities are performed using public cloud while the critical activities are performed using private cloud.

BENEFITS

Here are the benefits of deploying cloud as hybrid cloud model:
  • Scalability
  • Flexibility
  • Cost Efficiencies

DISADVANTAGES

Here are the disadvantages of Hybrid Cloud Model:
  • Networking Issues
  • Security Compliance
  • Infrastructural Dependency

Community Cloud Model

The Community Cloud allows system and services to be accessible by group of organizations. It shares the infrastructure between several organizations from a specific community. It may be managed internally or by the third-party.
cloud_computing Tutorial

BENEFITS

Here are the benefits of deploying cloud as community cloud model:
  • Cost effective
  • Sharing Between Organizations
  • Security

ISSUES

  • Since all data is housed at one location, therefore one must be careful in storing data in community cloud because it might be accessible by others.
  • It is also challenging to allocate responsibilities of governance, security and cost.

Cloud Service Models

Following are the cloud service models:
  • Infrastructure as a Service(IaaS) Model
  • Platform as a Service(PaaS) Model
  • Software as a Service(SaaS) Model
  • Identity as a Service(IDaaS) Model
  • Network as a Service(NaaS) Model

Infrastructure as a Service(IaaS)

IaaS provides access to fundamental resources such as physical machines, virtual machines, virtual storage etc. Apart from these resource the IaaS also offers:
  • Virtual machine disk storage
  • Virtual local area network (VLANs)
  • Load balancers
  • IP addresses
  • Software bundles
All of the above resources are made available to end user via server virtualization. Moreover, these resources are accessed by the customers as if they own them.
cloud_computing Tutorial

BENEFITS

IaaS allows the cloud provider to freely locate the infrastructure over the internet in cost-effective manner. Some of the key benefits of IaaS are listed below:
  • Full Control of the computing resources through Administrative Access to VMs.
  • Flexible and Efficient renting of Computer Hardware.
  • Portability, Interoperability with Legacy Applications.

ISSUES

Here are the issues associated with IaaS:
  • Compatibility with Legacy Security Vulnerabilities
  • Virtual Machine Sprawl
  • Robustness of VM-level Isolation
  • Data Erase Practices

CHARACTERISTICS

Here are the characteristics of IaaS service model:
  • Virtual machines with pre-installed software.
  • Virtual machines with pre-installed Operating Systems such as windows, Linux, and Solaris.
  • On-demand availability of resources.
  • Allows to store copies of particular data in different locations.
  • The computing resources can be easily scaled up and down.

Platform as a Service(PaaS)

PaaS offers the run time environment for applications. It also offers development & deployment tools, required to develop applications. PaaS has a feature of point-and-click tools that enables non-developers to create web applications.
The following diagram shows how PaaS offers an API and development tools to the developers and how it helps the end user to access business applications.
cloud_computing Tutorial

BENEFITS

Following are the benefits of PaaS model:
  • Lower administrative overhead
  • Lower total cost of ownership
  • Scalable Solutions
  • More current system software

ISSUES

Like SaaSPaaS also place significant burdens on consumer's browsers to maintain reliable and secure connections to the provider systems. Therefore, PaaS shares many of the issues of SaaS. However, there are some specific issues associated with PaaS as listed below:
  • Lack of portability between PaaS clouds
  • Event Based Processor Scheduling
  • Security Engineering of PaaS applications

Software as a Service (SaaS)

Software as a Service(SaaS) model allows to provide software applications as a service to the end users. It refers to a software that is deployed on a hosted service and is accessible via internet. There are several SaaS applications. Some of them are listed below:
  • Billing and Invoicing System
  • Customer Relationship Management (CRM) applications
  • Help Desk Applications
  • Human Resource (HR) Solutions

CHARACTERISTICS

Here are the characteristics of SaaS service model:
  • SaaS makes the software available over the internet.
  • The Software are maintained by the vendor rather than where they are running.
  • The license to the software may be subscription based or usage based. And it is billed on recurring basis.
  • SaaS applications are cost effective since they do not require any maintenance at end user side.
  • They are available on demand.
  • They can be scaled up or down on demand.
  • They are automatically upgraded and updated.
  • SaaS offers share data model. Therefore multiple users can share single instance of infrastructure. It is not required to hard code the functionality for individual users.
  • All users are running same version of the software.

BENEFITS

Using SaaS has proved to be beneficial in term of scalability, efficiency, performance and much more. Some of the benefits are listed below:
  • Modest Software Tools
  • Efficient use of Software Licenses
  • Centralized Management & Data
  • Platfrom responsibilities managed by provider
  • Multitenant solutions.

ISSUES

There are several issues associated with SaaS. Some of them are listed below:
  • Browser based risks
  • Network dependence
  • Lack of portability between SaaS clouds

Identity as a Service(IDaaS)

OVERVIEW

Employees in a company require to login to system to perform various tasks. These systems may be based on local server or cloud based. Following are the problems that an employee might face:
  • Remembering different username and password combinations for accessing multiple servers.
  • If an employee leaves the company, It's required to ensure that each of the user's account has been disabled. This increases workload on IT staff.
To solve above problems, a new technique emerged which is known asIdentity as a Service (IDaaS).
IDaaS offers management of identity (information) as a digital entity. This identity can be used during electronic transactions.

IDENTITY

Identity refers to set of attributes associated with something and make it recognizable. All objects may have some same attributes but their identity can not be the same. This unique identity is assigned through unique identification attribute.
There are several identity services that have been deployed to validate services such as validating web sites, transactions, transaction participants, client etc. Identity as a Service may include the following:
  • Directory Services
  • Federated Services
  • Registration
  • Authentication Services
  • Risk and Event monitoring
  • Single sign-on services
  • Identity and Profile management

SINGLE SIGN-ON (SSO)

To solve the problem of using different username & password combination for different servers, companies now employ Single Sign-On software, which allows the user to login only one time and manages the user's access to other systems.
SSO has single authentication server, managing multiple access to other systems, as shown in the following diagram:
cloud_computing Tutorial
SSO WORKING
There are several implementations of SSO. Here, we discuss the common working of SSO:
cloud_computing Tutorial
Following steps explain the working of Single Sign-On software:
  1. User logs into the authentication server using a username and password.
  2. The authentication server returns the user's ticket.
  3. User sends the ticket to intranet server.
  4. Intranet server sends the ticket to the authentication server.
  5. Authentication server sends the user's security credentials for that server back to the intranet server.
If an employee leaves the company, then it just required to disable the user at the authentication server, which in turn disable the user's access to all the systems.

FEDERATED IDENTITY MANAGEMENT(FIDM)

FIDM describes the technologies and protocols that enable a user to package security credentials across security domains. It uses Security Markup Language (SAML) to package a user's security credentials as shown in the following diagram:
cloud_computing Tutorial

OPENID

It offers users to login multiple websites with single account. Google, Yahoo!, Flickr, MySpace, WordPress.com are some of the companies that support OpenID.

BENEFITS

  • Increased site conversation rates.
  • Access to greater user profile content.
  • Fewer problems with lost passwords.
  • Ease of content integration into social networking sites.

Network as a Service(NaaS)

OVERVIEW

Networks as a Service allows us to access to network infrastructure directly and securely. NaaS makes it possible to deploy custom routing protocols.
NaaS uses virtualized network infrastructure to provide network services to the consumer. It is the responsibility of NaaS provider to maintain and manage the network resources, which decreases the workload from the consumer. Moreover, NaaS offers network as a utility.
NaaS is also based on pay-per-use model.

HOW NAAS IS DELIVERED?

To use NaaS model, the consumer is required to logon to the web portal, where he can get on line API. Here, the consumer can customize the route.
In turn, consumer has to pay for the capacity used. It is also possible to turn off the capacity at any time.

MOBILE NAAS

Mobile NaaS offers more efficient and flexible control over mobile devices. It uses virtualization to simplify the architecture to create more efficient processes.
Following diagram shows the Mobile NaaS service elements:
cloud_computing Tutorial

NAAS BENEFITS

NaaS offers a number of benefits, some of the are discussed below:
  • Independence
  • Analytics
  • Resilience
  • Ease of Adding new Service Elements
  • Isolation of customer traffic
  • Support Models

Cloud Data Storage

Cloud Storage is a service that allows to save data on offsite storage system managed by third party and is made accessible by a web services API.

Storage Devices

Storage devices can be broadly classified into two categories:
  • Block Storage Devices
  • File Storage Devices

BLOCK STORAGE DEVICES

Block Storage Devices offers the raw storage to the clients. This raw storage can be partitioned to create volumes.

FILE STORAGE DEVICES

File Storage Devices offers storage to clients in form of files, maintaining its own file system. This storage is in the form of Network Attached Storage (NAS).

Cloud Storage Classes

Cloud Storage can be broadly classified into two categories:
  • Unmanaged Cloud Storage
  • Managed Cloud Storage

UNMANAGED CLOUD STORAGE

Unmanaged Cloud Storage means that the storage is preconfigured for the consumer. The consumer can not format nor the consumer can install own file system or change drive properties.

MANAGED CLOUD STORAGE

Managed Cloud Storage offers online storage space on demand. Managed cloud storage system presents what appears to the user to be a raw disk that the user can partition and format.

Creating Cloud Storage System

The cloud storage system stores multiple copes of data on multiple servers and in multiple locations. If one system fails then it only requires to change the pointer to stored object's location.
To aggregate storage assets into cloud storage systems, the cloud provider can use storage virtualization software, StorageGRID. It creates a virtualization layer that fetches storage from different storage devices into a single management system. It can also manage data from CIFS and NFS file system over the Internet. The following diagram shows how SystemGRID virtualizes the storage into storage clouds:
cloud_computing Tutorial

Virtual Storage Containers

Virtual storage containers offer high performance cloud storage systems.Logical Unit Number (LNU) of device, files and other objects are created in virtual storage containers. Following diagram shows a virtual storage container, defining a cloud storage domain:
cloud_computing Tutorial

Challenges

Storing the data in cloud is not that simple task. Apart from its flexibility and convenience, it also has several challenges faced by the consumers. The consumers require ability to:
  • Provision additional storage on demand.
  • Know and restrict the physical location of the stored data.
  • Verify how data was erased?
  • Have access to a documented process for surely disposing of data storage hardware.
  • Administrator access control over data.

Virtualization Concept

Creating a virtual machine over existing operating system and hardware is referred as Hardware Virtualization. Virtual Machines provide an environment that is logically separated from the underlying hardware.
The machine on which the virtual machine is created is known as host machine and virtual machine is referred as a guest machine. This virtual machine is managed by a software or firmware which is known as hypervisor.

Hypervisor

Hypervisor is a firmware or low level program that acts as a Virtual Machine Manager. There are two types of hypervisor:
Type 1 hypervisor runs on bare system. LynxSecure, RTS Hypervisor, Oracle VM, Sun xVM Server, VirtualLogic VLX are examples of Type 1 hypervisor. The following diagram shows the Type 1 hypervisor.
cloud_computing Tutorial
The type1 hypervisor does not have any host operating system because they are installed on a bare system.
Type 2 hypervisor is a software interface that emulates the devices with which a system normally interacts. Containers, KVM, Microsoft Hyper V, VMWare Fusion, Virtual Server 2005 R2, Windows Virtual PC andVMWare workstation 6.0 are examples of Type 2 hypervisor. The following diagram shows the Type 2 hypervisor.
cloud_computing Tutorial


Cloud Providers

Various Cloud Computing platforms are available today. The following table contains the popular Cloud Computing platforms:
SNPlatforms Description
1Salesforce.com
This is a Force.com development platfrom. This provide a simple user interface and lets users log in, build an app and push it in the cloud.
2Appistry
The Appistry's CloudQ platform is efficient in delivering a run-time application platform. This platform is very useful to create scalable and service oriented applications.
3AppScale
The AppScale is an open source platform for Google App Engine applications.
4AT&T
The AT&T allows access to virtual servers and manages the virtualization AT&T The AT&T allows access to virtual servers and manages the virtualization infrastructure. This virtualization infrastructure includes network, server and storage.
5Engine Yard
The Engine Yard is a Rails Application cloud computing platform.
6Enomaly
Enomaly's provides the Infrastructure-as-a-Service platform.
7FlexiScale
The FlexiScale offers a cloud computing platform that allows flexible, scalable and automated cloud infrastructure.
8GCloud3
The GCloud3 offers private cloud solution in its gPlatform.
9Gizmox
The Gizmox Visual WebGUI platfrom is best suited for developing new web apps and modernize the legacy apps based on ASP.net, DHTML etc.
10GoGrid
The GoGrid platform allows the users to deploy web and database cloud services.
11Google
The Google's App Engine, let the users build, run and maintain their applications on Google's infrastructure.
12LongJump
The LongJump offers a Business Application Platform, a platform-as-a-Service (PaaS).
13Microsoft
The Microsoft's Windows Azure is a cloud computing platform, offering an environment to create cloud apps and services.
14OrangeScape
OrangeScape is offers a Platform-as-a-Service (Paas) for non programmers. Building an app is as easy as spreadsheet.
15RackSpace
The RackSpace provide servers-on-demand via a cloud-driven platfrom of virtualized servers.
16Amazon EC2
The Amazon EC2 (Elastic Compute Cloud) lets the users configure and control computing resources while running them on Amazon's environment.

Cloud Computing Challenges

Cloud computing, an emergence technology, have placed many challenges in different aspects. Some of these are shown in the following diagram:
cloud_computing Tutorial

Security & Privacy

Security and Privacy of information is the biggest challenge to cloud computing. To get out of security and privacy issues can be over come by employing encryption, security hardware and security applications.

Portability

This is another challenge to cloud computing that applications should easily be migrated form one cloud provider to another. There should not be vendor-lock in. However, it is not yet made possible because each of the cloud provider use different standard languages for their platforms.

Interoperability

Application on one platform should be able to incorporate services from other platfrom. It is made possible via web services. But this writing such web services is very complex.

Computing Performance

To deliver data intensive applications on cloud requires high network bandwidth which result in high cost. If done at low bandwidth, then it does not meet the required computing performance of cloud application.

Reliability and Availability

It is necessary for cloud systems to be reliable and robust because most of the business are now becoming dependent on services provided by third party.

Mobile Cloud Computing

Cloud Computing offers such smartphones that have rich internet media experience and require less processing, less power. In term of Mobile Cloud Computing, processing is done in cloud, data is stored in cloud. And the mobile devices serve as a media for display.
Today smartphones are employed with rich cloud services by integrating applications that consume web services. These web services are deployed in cloud.
There are several Smartphone operating systems available such as Google's Android, Apple's iOS, RIM BlackBerry, Symbian, and Windows Mobile Phone. Each of these platform support third party applications that are deployed in cloud.

Architecture

MCC includes four types of cloud resources:
  • Distant mobile cloud
  • Distant immobile cloud
  • Proximate mobile computing entities
  • Proximate immobile computing entities
  • Hybrid
The following diagram shows the framework for mobile cloud computing architecture:
cloud_computing Tutorial

Issues

Despite of having significant development in field of mobile computing, there still exists many issues:

Emergency efficient transmission

There should be a frequent transmission of information between cloud and the mobile devices.

Architectural Issues

Mobile cloud computing is required to make architectural neutral because of heterogeneous environment.

Live VM migration

It is challenging to migrate an application which is resource-intensive to cloud and to execute it via. Virtual Machine .

Mobile Communication Congestion

Due to continuous increase demand for mobile cloud services, the workload to enable smooth communication between cloud and mobile devices has been increased.

Security and Privacy

This is one of the major issue because mobile users share their personal information over the cloud.

Thanks TutorialPint