0% found this document useful (0 votes)
79 views85 pages

Mod 5 PPT

module 5 ppt of cloud computing

Uploaded by

mudduanjali02
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
79 views85 pages

Mod 5 PPT

module 5 ppt of cloud computing

Uploaded by

mudduanjali02
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 85

1

MODULE 5

2
3 Content

 Cloud Platforms in Industry Amazon web services: - Compute services,


Storage services, Communication services, Additional services. Google
AppEngine: - Architecture and core concepts, Application life cycle, Cost
model, Observations.
 Applications: Scientific applications: - HealthCare: ECG analysis in the
cloud, Biology: gene expression data analysis for cancer diagnosis,
Geoscience: satellite image processing. Business and consumer
applications: CRM and ERP, Social networking, media applications.
Cloud Platforms in Industry
4
 An overview of a few prominent cloud computing platforms and a
brief description of the types of service they offer.

 A cloud computing system can be developed using either a single


technology and vendor or a combination of them.

 This chapter presents some of representative cloud computing


solutions offered as Infrastructure-as-a-Service (IaaS) and Platform-as-
a-Service (PaaS) services in the market.
5  9.1 Amazon web services
9.1.1 Compute services
9.1.2 Storage services
9.1.3 Communication services
9.1 Amazon web services
6  Amazon Web Services (AWS) is a platform that allows the development of
flexible applications by providing solutions for elastic infrastructure
scalability, messaging, and data storage.

 The platform is accessible through SOAP or RESTful Web service interfaces


and provides a Web-based console where users can handle administration and
monitoring of the resources required, as well as their expenses computed on a
pay-as-you-go basis.
7
9.1.1 Compute services
8  The fundamental service in this space is Amazon EC2, which delivers an IaaS
solution that has served as a reference model for several offerings from other
vendors in the same market segment.

 Amazon EC2 allows deploying servers in the form of virtual machines created
as instances of a specific image.

 Images come with a preinstalled operating system and a software stack, and
instances can be configured for memory, number of processors, and storage.
 Users are provided with credentials to remotely access the instance
9
and further configure or install software if needed.

 1. Amazon machine images

 2. EC2 instances

 3. EC2 environment

 4. Advanced compute services


1. Amazon machine images
10
 Amazon Machine Images (AMIs) are templates from which it is possible
to create a virtual machine.

 They are stored in Amazon S3 and identified by a unique identifier in the


form of ami-xxxxxx and a manifest XML file.

 AMI contains physical file system layout with a predefined operating


system installed as Amazon Ramdisk Image (ARI, id: ari-yyyyyy) and the
Amazon Kernel Image (AKI, id: aki-zzzzzz)
 A common practice is to prepare new AMIs to create an instance
11
from a preexisting AMI, log into it once it is booted and running,
and install all the software needed. Using the tools provided by
Amazon, we can convert the instance into a new image.

 Once an AMI is created, it is stored in an S3 bucket and the user can


decide whether to make it available to other users or keep it for
personal use.
2. EC2 instances
12
 EC2 instances represent virtual machines. They are created using AMI
as templates, which are specialized by selecting the number of cores,
their computing power, and the installed memory.

 The processing power is expressed in terms of virtual cores and EC2


Compute Units (ECUs).

 The use of ECUs helps give users a consistent view of the performance
offered by EC2 instances.

 One ECU is defined as giving the same performance as a 1.0 - 1.2 GHz
2007 Opteron or 2007 Xeon processor.
3. EC2 environment

13  EC2 instances are executed within a virtual environment.

 The EC2 environment is in charge of allocating addresses, attaching storage volumes,


and configuring security in terms of access control and network connectivity.

 It is possible to associate an Elastic IP to each instance.

 Elastic IPs allow instances running in EC2 to act as servers reachable from the
Internet.

 EC2 instances are given domain name in the form ec2-xxx-xxx-xxx.compute-


x.amazonaws.com,

 where xxx-xxx-xxx normally represents the four parts of the external IP address
separated by a dash, and compute-x gives information about the availability zone
where instances are deployed.
4. Advanced compute services
14
 AWS CloudFormation constitutes an extension of the simple
deployment model that characterizes EC2 instances.

 CloudFormation introduces the concepts of templates, which are JSON


formatted text files that describe the resources needed to run an
application or a service in EC2 together.

AWS Elastic Beanstalk constitutes a simple and easy way to package


applications and deploy them on the AWS Cloud.

 This service simplifies the process of provisioning instances and


deploying application code and provides appropriate access to them.
Amazon Elastic MapReduce provides AWS users with a cloud
15 computing platform for MapReduce applications.

 It utilizes Hadoop as the MapReduce engine, deployed on a virtual


infrastructure composed of EC2 instances, and uses Amazon S3 for
storage needs.
9.1.2 Storage services

16
 The core service is represented by Amazon Simple Storage Service (S3). This is a
distributed object store that allows users to store information in different formats.

 The core components of S3 are two: buckets and objects.

 Buckets represent virtual containers in which to store objects; objects represent the
content that is actually stored.

 Objects can also be enriched with metadata that can be used to tag the stored content with
additional information.

1 S3 key concepts

2 Amazon elastic block store

3 Amazon ElastiCache

4 Structured storage solutions

5 Amazon CloudFront
1 S3 key concepts
17
S3 has been designed to provide a simple storage service that’s accessible through
a Representational State Transfer (REST) interface.

● The storage is organized in a two-level hierarchy.

● Stored objects cannot be manipulated like standard files.

● Content is not immediately available to users.

● Requests will occasionally fail.

Access to S3 is provided with RESTful Web services.

These express all the operations that can be performed on the storage in the form
of HTTP requests (GET, PUT, DELETE, HEAD, and POST).
Buckets

18  A bucket is a container of objects. It can be thought of as a virtual drive hosted on the S3


distributed storage, which provides users with a flat store to which they can add objects.

 Buckets are top-level elements of the S3 storage architecture and do not support nesting.
That is, it is not possible to create “subbuckets” or other kinds of physical divisions.

Objects and metadata

 Objects constitute the content elements stored in S3.

 Users either store files or push to the S3 text stream representing the object’s content.

 An object is identified by a name that needs to be unique within the bucket in which the
content is stored.

 The name cannot be longer than 1,024 bytes when encoded in UTF-8, and it allows
almost any character. Buckets do not support nesting.
Access control and security

 Amazon S3 allows controlling the access to buckets and objects by means of Access Control Policies
19
(ACPs).

 An ACP is a set of grant permissions that are attached to a resource expressed by means of an XML
configuration file.

 A policy allows defining up to 100 access rules, each of them granting one of the available permissions to
a grantee.

 Currently, five different permissions can be used:

A. READ allows the grantee to retrieve an object and its metadata and to list the content of a bucket as well as
getting its metadata.

B. WRITE allows the grantee to add an object to a bucket as well as modify and remove it.

C. READ_ACP allows the grantee to read the ACP of a resource.

D. WRITE_ACP allows the grantee to modify the ACP of a resource.

E. FULL_CONTROL grants all of the preceding permissions.


2 Amazon elastic block store

20  The Amazon Elastic Block Store (EBS) allows AWS users to provide EC2 instances with
persistent storage in the form of volumes that can be mounted at instance startup.

 They accommodate up to 1 TB of space and are accessed through a block device


interface, thus allowing users to format them according to the needs of the instance they
are connected to.

 EBS volumes normally reside within the same availability zone of the EC2 instances that
will use them to maximize the I/O performance.

 It is also possible to connect volumes located in different availability zones.

 Once mounted as volumes, their content is lazily loaded in the background and according
to the request made by the operating system.

 This reduces the number of I/O requests that go to the network.


2 Amazon elastic block store
21  The Amazon Elastic Block Store (EBS) allows AWS users to provide EC2 instances
with persistent storage in the form of volumes that can be mounted at instance startup.

 They accommodate up to 1 TB of space and are accessed through a block device


interface, thus allowing users to format them according to the needs of the instance they
are connected to.

 EBS volumes normally reside within the same availability zone of the EC2 instances
that will use them to maximize the I/O performance.

 It is also possible to connect volumes located in different availability zones.

 Once mounted as volumes, their content is lazily loaded in the background and
according to the request made by the operating system. This reduces the number of I/O
requests that go to the network.
4 Structured storage solutions
22
Amazon provides applications with structured storage services in three different
forms:

● Preconfigured EC2 AMIs,

● Amazon Relational Data Storage (RDS), and

● Amazon SimpleDB.
Preconfigured EC2 AMIs are predefined templates featuring an installation of a given
database management system.
23
 EC2 instances created from these AMIs can be completed with an EBS volume for
storage persistence.

 Available AMIs include installations of IBM DB2, Microsoft SQL Server, MySQL,
Oracle, PostgreSQL, Sybase, and Vertica.

RDS is relational database service that relies on the EC2 infrastructure and is managed by
Amazon.

 Developers do not have to worry about configuring the storage for high availability,
designing failover strategies, or keeping the servers up-to-date with patches.

 Moreover, the service provides users with automatic backups, snapshots, point-in-time
recoveries, and facilities for implementing replications.
Amazon SimpleDB is a lightweight, highly scalable, and flexible data storage solution for
applications that do not require a fully relational model for their data.
24
 SimpleDB provides support for semistructured data, the model for which is based on the concept
of domains, items, and attributes.

 SimpleDB uses domains as top-level elements to organize a data store. These domains are roughly
comparable to tables in the relational model.

 Unlike tables, they allow items not to have all the same column structure; each item is therefore
represented as a collection of attributes expressed in the form of a key-value pair.

5 Amazon CloudFront

 CloudFront is an implementation of a content delivery network on top of the Amazon distributed


storage infrastructure.

 It leverages a collection of edge servers strategically located around the globe to better serve
requests for static and streaming Web content so that the transfer time is reduced.
9.1.3 Communication services
25
 Amazon provides facilities to structure and facilitate the
communication among existing applications and services residing
within the AWS infrastructure.

These facilities can be organized into two major categories:

1. Virtual networking and

2. Messaging .
1. Virtual networking
26  Virtual networking comprises a collection of services that allow AWS users to control
the connectivity to and between compute and storage services.

 Amazon Virtual Private Cloud (VPC) and Amazon Direct Connect provide
connectivity solutions in terms of infrastructure.

 Amazon VPC provides flexibility in creating virtual private networks within the
Amazon infrastructure and beyond.

 The service providers prepare templates for network service for advanced
configurations.

 Templates include public subnets, isolated networks, private networks accessing


Internet through network address translation (NAT), and hybrid networks including
AWS resources and private resources.
 Amazon Direct Connect allows AWS users to create dedicated
27
networks between the user private network and Amazon Direct
Connect locations, called ports.

 This connection can be further partitioned in multiple logical


connections and give access to the public resources hosted on the
Amazon infrastructure.
2. Messaging .
28
The three different types of messaging services offered are

● Amazon Simple Queue Service (SQS),

● Amazon Simple Notification Service (SNS), and

● Amazon Simple Email Service (SES).


 Amazon SQS constitutes disconnected model for exchanging messages
between applications by means of message queues, hosted within the AWS
infrastructure.
 Using the AWS console or directly the underlying Web service AWS, users can
create an unlimited number of message queues and configure them to control
their access.
 Applications can send messages to any queue they have access to.
 Amazon SNS provides a publish-subscribe method for connecting
29 heterogeneous applications.

 Amazon SNS allows applications to be notified when new content of interest is


available.

 Amazon SES provides AWS users with a scalable email service that leverages
the AWS infrastructure.

 Once users are signed up for the service, they have to provide an email that SES
will use to send emails on their behalf.

 To activate the service, SES will send an email to verify the given address and
provide the users with the necessary information for the activation.
9.2 Google AppEngine
30
 Google AppEngine is a PaaS implementation.

 Distributed and scalable runtime environment that leverages Google’s


distributed infrastructure to scale out applications.

 9.2.1 Architecture and core concepts

 AppEngine is a platform for developing scalable applications accessible


through the Web.

 The platform is logically divided into four major components:


infrastructure, the runtime environment, the underlying storage, and
the set of scalable services.
31
1 Infrastructure
32  AppEngine hosts Web applications, and its primary function is to serve users
requests efficiently.

 AppEngine’s infrastructure takes advantage of many servers available within


Google datacenters.

 For each HTTP request, AppEngine locates the servers hosting the
application that processes the request, evaluates their load, and, if necessary,
allocates additional resources or redirects the request to an existing server.

 The infrastructure is also responsible for monitoring application performance


and collecting statistics on which the billing is calculated.
2 Runtime environment
33
 The runtime environment represents the execution context of
applications hosted on AppEngine.

 Sandboxing- One of the major responsibilities of the runtime


environment is to provide the application environment with an
isolated and protected context in which it can execute without
causing a threat to the server and without being influenced by other
applications.

 In other words, it provides applications with a sandbox.


3 Storage

34  AppEngine provides various types of storage, which operate differently depending on


the volatility of the data.

 Static file servers - Web applications are composed of dynamic and static data.
Dynamic data are a result of the logic of the application and the interaction with the
user.

 Static data often are mostly constituted of the components that define the graphical
layout of the application or data files.

 DataStore- DataStore is a service that allows developers to store semistructured data.


The service is designed to scale and optimized to quickly access data.

 DataStore can be considered as a large object database in which to store objects that
can be retrieved by a specified key.
4 Application services

35  Applications hosted on AppEngine take the most from the services made available
through the runtime environment.

 These services simplify most of the common operations that are performed in Web
applications

 UrlFetch - The sandbox environment does not allow applications to open arbitrary
connections through sockets, but it does provide developers with the capability of
retrieving a remote resource through HTTP/HTTPS by means of the UrlFetch service.

 MemCache- This is a distributed in-memory cache that is optimized for fast access
and provides developers with a volatile store for the objects that are frequently
accessed.
 Mail and instant messaging- AppEngine provides developers with
36
the ability to send and receive mails through Mail.

 The service allows sending email on behalf of the application to


specific user accounts. It is also possible to include several types of
attachments and to target multiple recipients.

 Account management - AppEngine simplifies account


management by allowing developers to leverage Google account
management by means of Google Accounts.
5 Compute services
37
 AppEngine offers additional services such as Task Queues and Cron Jobs that
simplify the execution of computations.

 Task queues- A task is defined by a Web request to a given URL, and the queue
invokes the request handler by passing the payload as part of the Web request to
the handler. It is the responsibility of the request handler to perform the “task
execution,” which is seen from the queue as a simple Web request.

 Cron jobs- the required operation needs to be performed at a specific time of


the day, which does not coincide with the time of the Web request. In this case,
it is possible to schedule the required operation at the desired time by using the
Cron Jobs service.
9.2.2 Application life cycle
38 AppEngine provides support for all the phases characterizing the life cycle of
an application: testing and development, deployment, and monitoring.

 1 Application development and testing

 Developers can start building their Web applications on a local development


server.

 The development server simulates the AppEngine runtime environment by


providing a mock implementation of DataStore, MemCache, UrlFetch, and
the other services leveraged by Web applications.
 Java SDK- The Java SDK provides developers with the facility for
39 building applications with the Java 5 and Java 6 runtime environments.
Using the Eclipse software installer, it is possible to download and install
Java SDK, Google Web Toolkit, and Google AppEngine plug-ins into
Eclipse. These three components allow developers to program powerful
and rich Java applications for AppEngine.

 Python SDK- The Python SDK allows developing Web applications for
AppEngine with Python 2.5. It provides a standalone tool, called
GoogleAppEngineLauncher, for managing Web applications locally and
deploying them to AppEngine.
2 Application deployment and management

40
 Once application has been developed and tested, it can be deployed on AppEngine with
simple click or command-line tool.

 Before performing such task, it is necessary to create application identifier, which will be
used to locate application from Web browser by typing the address http://<application-
id>.appspot.com.

 An application identifier is mandatory because it allows unique identification of the


application while it’s interacting with AppEngine.

 Developers use an app identifier to upload and update applications.

 Once an application identifier has been created, it is possible to deploy an application on


AppEngine.

 This task can be done using either respective development environment


(GoogleAppEngineLauncher and Google AppEngine plug-in) or the command-line tools.
9.2.3 Cost model
41
 Once application has been tested and tuned for AppEngine, it is possible to set
up a billing account and obtain more allowance and be charged on a pay-per-
use basis. This allows developers to identify appropriate daily budget that they
want to allocate for given application.
9.3 Microsoft Azure
42
 Microsoft Windows Azure is a cloud operating system built on top of
Microsoft datacenters’ infrastructure and provides developers with a
collection of services for building applications with cloud technology.

 Services range from compute, storage, and networking to application


connectivity, access control, and business intelligence.

 Figure 9.3 provides an overview of services provided by Azure. These


services can be managed and controlled through the Windows Azure
Management Portal, which acts as an administrative console for all the
services offered by the Azure platform.
43
9.3.1 Azure core concepts
44  The Windows Azure platform is made up of a foundation layer and a set of
developer services that can be used to build scalable applications.

 These services cover compute, storage, networking, and identity


management, which are tied together by middleware called AppFabric.

1. Compute services

 Compute services are the core components of Microsoft Windows Azure, and
they are delivered by means of the abstraction of roles.

 Currently, there are three different roles: Web role, Worker role, and Virtual
Machine (VM) role.
 Web role- The Web role is designed to implement scalable Web
45
applications. Web roles represent the units of deployment of Web
applications within the Azure infrastructure. They are hosted on the IIS 7
Web Server.

 Worker role - Worker roles are designed to host general compute services
on Azure. They can be used to quickly provide compute power or to host
services that do not communicate with the external world through HTTP.

 Virtual machine role- The Virtual Machine role allows developers to


control computing stack of their compute service by defining a custom
image of the Windows Server 2008 R2 operating system and all the service
stack required by their applications.
2 Storage services
46
 Compute resources are equipped with local storage in the form of a
directory on the local file system.

 Windows Azure provides different types of storage solutions that


complement compute services with a more durable and redundant
option.

 Blobs Azure allows storing large amount of data in the form of binary
large objects (BLOBs) by means of the blobs service.

 Block blobs - Block blobs are composed of blocks and are optimized for
sequential access; therefore they are appropriate for media streaming.
 Page blobs - Page blobs are made of pages that are identified by offset
47 from beginning of blob. A page blob can be split into multiple pages or
constituted of single page.

 Azure drive Page blobs can be used to store an entire file system in the
form of a single Virtual Hard Drive (VHD) file.

 Tables Tables constitute a semistructured storage solution, allowing users


to store information in the form of entities with a collection of properties.
Entities are stored as rows in the table and are identified by a key, which
also constitutes the unique index built for the table. Users can insert,
update, delete, and select a subset of the rows stored in the table.
 Queues Queue storage allows applications to communicate by
48
exchanging messages through durable queues, thus avoiding lost or
unprocessed messages. Applications enter messages into a queue,
and other applications can read them in a first-in, first-out (FIFO)
style.
Cloud Applications
49  Cloud computing has gained huge popularity in industry due to its ability to
host applications for which the services can be delivered to consumers rapidly
at minimal cost.

 Applications from a range of domains, from scientific to engineering, gaming,


and social networking, are considered.
10.1 Scientific applications
 10.1.1 Healthcare: ECG analysis in the cloud
 10.1.2 Biology: protein structure prediction
 10.1.3 Biology: gene expression data analysis for cancer diagnosis
 10.1.4 Geoscience: satellite image processing
10.2 Business and consumer applications
 10.2.1 CRM and ERP
50 1 Salesforce.com
2 Microsoft dynamics CRM
3 NetSuite
 10.2.2 Productivity
1 Dropbox and iCloud
2 Google docs
3 Cloud desktops: EyeOS and XIOS/3
 10.2.3 Social networking
1 Facebook
 10.2.4 Media applications
1 Animoto
2 Maya rendering with Aneka
3 Video encoding on the cloud: Encoding.com
 10.2.5 Multiplayer online gaming
10.1.1 Healthcare: ECG analysis in the cloud
51
 An illustration of the infrastructure and model for supporting remote
ECG monitoring is shown in Figure 10.1 .

 Wearable computing devices equipped with ECG sensors constantly


monitor the patient’s heartbeat.

 Such information is transmitted to the patient’s mobile device,


which will eventually forward it to the cloud-hosted Web service for
analysis.
52
 The Web service forms the front-end of a platform that is hosted in cloud and
53 leverages three layers of cloud computing stack: SaaS, PaaS, and IaaS.

 The Web service constitute SaaS application that will store ECG data in the
Amazon S3 service and issue a processing request to the scalable cloud
platform.

 The runtime platform is composed of a dynamically sizable number of


instances running the workflow engine and Aneka.

 The number of workflow engine instances is controlled according to the


number of requests in the queue of each instance, while Aneka controls the
number of EC2 instances used to execute the single tasks defined by the
workflow engine for a single ECG processing job.
Advantages

54  1. The elasticity of cloud infrastructure that can grow and shrink according to the
requests served. As a result, doctors and hospitals do not have to invest in large
computing infrastructures designed after capacity planning, thus making more
effective use of budgets.

 2. Ubiquity. Cloud computing technologies are easily accessible and promise to


deliver systems with minimum or no downtime. Computing systems hosted in
cloud are accessible from any Internet device through simple interfaces (such as
SOAP and REST-based Web services). This makes systems easily integrated with
other systems maintained on hospital’s premises.

 3. Cost savings. Cloud services are priced on a pay-per-use basis and with volume
prices for large numbers of service requests.
10.1.2 Biology: protein structure prediction
55 Protein structure prediction is a computationally intensive task that is fundamental to
different types of research in the life sciences.

 The geometric structure of a protein cannot be directly inferred from the sequence
of genes that compose its structure, but it is the result of complex computations
aimed at identifying the structure that minimizes the required energy.

 This task requires the investigation of a space with a massive number of states,
consequently creating a large number of computations for each of these states.

 One project that investigates the use of cloud technologies for protein structure
prediction is Jeeva – an integrated Web portal that enables scientists to offload
the prediction task to a computing cloud based on Aneka( Figure 10.2 ).
56
10.1.3 Biology: gene expression data analysis for cancer diagnosis
57  Gene expression profiling is the measurement of the expression levels of thousands
of genes at once.

 It is used to understand the biological processes that are triggered by medical


treatment at a cellular level.

 Important application of gene expression profiling is cancer diagnosis and


treatment.

 The dimensionality of typical gene expression datasets ranges from several


thousands to over tens of thousands of genes.

 This problem is approached with learning classifiers, which generate a population of


condition-action rules that guide the classification process.

 The eXtended Classifier System (XCS) has been utilized for classifying large
datasets in bioinformatics and computer science domains.
 The dimensionality of typical gene expression datasets ranges from several
58 thousands to over tens of thousands of genes.

 This problem is approached with learning classifiers, which generate a


population of condition-action rules that guide the classification process.

 The eXtended Classifier System (XCS) has been utilized for classifying large
datasets in bioinformatics and computer science domains.
10.1.4 Geoscience: satellite image processing
59
 Geoscience applications collect, produce, and analyze massive amounts of
geospatial and nonspatial data.

 As the technology progresses and our planet becomes more instrumented,


volumeof data that needs to be processed increases significantly.

 Geographic information system (GIS) applications capture, store, manipulate,


analyze, manage, and present all types of geographically referenced data.

 Cloud computing is an attractive option for executing these demanding tasks


and extracting meaningful information to support decision makers.
 Satellite remote sensing generates hundreds of gigabytes of raw images that
60
need to be further processed to become the basis of several different GIS
products. This process requires both I/O and compute-intensive tasks.

 Large images need to be moved from a ground station’s local storage to


compute facilities, where several transformations and corrections are applied.

 A SaaS application provides a collection of services for such tasks as geocode


generation and datanvisualization.

 At the PaaS level, Aneka controls the importing of data into the virtualized
infrastructure and the execution of image-processing tasks that produce the
desired outcome from raw satellite images.
61
10.2 Business and consumer applications
62 10.2.1 CRM and ERP
 Cloud CRM applications constitute a great opportunity for small enterprises
and start-ups to have fully functional CRM software without large up-front
costs and by paying subscriptions.

 Your business and customer data from everywhere and from any device, has
fostered the spread of cloud CRM applications.

 ERP solutions on the cloud are less mature and have to compete with well-
established in-house solutions.

 ERP systems integrate several aspects of an enterprise: finance and


accounting, human resources, manufacturing, supply chain management,
project management, and CRM.
1 Salesforce.com
63
 Salesforce.com is most popular and developed CRM solution available today.

 The application provides customizable CRM solutions that can be integrated


with additional features developed by third parties.

 Salesforce.com is based on the Force.com cloud development platform.

 This represents scalable and high-performance middleware executing all


operations of all Salesforce.com applications.
64
2 Microsoft dynamics CRM
65  The system is completely hosted in Microsoft’s datacenters across the world and offers to
customers a 99.9% SLA.

 Each CRM instance is deployed on a separate database, and application provides users
with facilities for marketing, sales, and advanced customer relationship management.

 Dynamics CRM Online features can be accessed either through a Web browser interface
or by means of SOAP and RESTful Web services.

 This allows Dynamics CRM to be easily integrated with both other Microsoft products
and line-of-business applications.

 Dynamics CRM can be extended by developing plug-ins that allow implementing specific
behaviors triggered on the occurrence of given events.
3 NetSuite

66
 NetSuite provides a collection of applications that help customers manage every aspect
of the business enterprise.

 Its offering is divided into three major products: NetSuite Global ERP, NetSuite Global
CRM1 , and NetSuite

 Global Ecommerce.

 Moreover, an all-in-one solution: NetSuite One World, integrates all three products
together.

 The NetSuite Business Operating System (NS-BOS) is a complete stack of technologies


for building SaaS business applications that leverage the capabilities of NetSuite
products.

 On top of the SaaS infrastructure, the NetSuite Business Suite components offer
accounting, ERP, CRM, and ecommerce capabilities.
10.2.2 Productivity

67  Productivity applications replicate in cloud. The most common tasks that we are used to
performing on our desktop: from document storage to office automation and complete
desktop environments hosted in the cloud.

1 Dropbox and iCloud

 Online storage solutions have turned into SaaS applications and become more usable as
well as more advanced and accessible.

 Dropbox provides users with a free storage that is accessible through the abstraction of a
folder. Users can either access their Dropbox folder through a browser or by
downloading and installing a Dropbox client, which provides access to the online storage
by means of a special folder.

 All the modifications into this folder are silently synched so that changes are notified to
all the local instances of the Dropbox folder across all the devices.
 iCloud , a cloud-based document-sharing application provided by Apple to
68
synchronize iOS-based devices in a completely transparent manner.

 Documents, photos, and videos are automatically synched as changes are made,
without any explicit operation.

 This allows the system to efficiently automate common operations without any
human intervention.
2 Google docs
69  Google Docs is a SaaS application that delivers the basic office automation
capabilities with support for collaborative editing over the Web.

 Google Docs allows users to create and edit text documents, spreadsheets,
presentations, forms, and drawings.

 It aims to replace desktop products such as Microsoft Office and OpenOffice and
provide similar interface and functionality as a cloud service.

 By being stored in the Google infrastructure, these documents are always


available from anywhere and from any device that is connected to the Internet.
3 Cloud desktops: EyeOS and XIOS/3
70
 EyeOS is one of the most popular Web desktop solutions based on
cloud technologies. It replicates the functionalities of a classic desktop
environment and comes with pre-installed applications for the most
common file and document management tasks.

 Single users can access the EyeOS desktop environment from


anywhere and through any Internet-connected device, whereas
organizations can create a private EyeOS Cloud on their premises to
virtualize the desktop environment of their employees and centralize
their management.
71
 The EyeOS architecture is quite simple: On the server side, the EyeOS
72 application maintains the information about user profiles and their data, and
the client side constitutes the access point for users and administrators to
interact with the system.

 EyeOS stores the data about users and applications on the server file system.

 Once the user has logged in by providing credentials, the desktop environment
is rendered in the client’s browser by downloading all the JavaScript libraries
required to build the user interface and implement the core functionalities of
EyeOS.

 EyeOS also provides APIs for developing new applications and integrating
new capabilities into the system.
10.2.3 Social networking
73
1 Facebook

 With more than 800 million users, it has become one of the largest Websites in
the world.

 To sustain this incredible growth, it has been fundamental that Facebook be


capable of continuously adding capacity and developing new scalable
technologies and software systems while maintaining high performance to
ensure a smooth user experience.

 Currently, the social network is backed by two data centers that have been
built and optimized to reduce costs and impact on the environment.
 On top of this highly efficient infrastructure, built and designed out of inexpensive
74 hardware, a completely customized stack of opportunely modified and refined open-
source technologies constitutes the back-end of the largest social network.

 The reference stack serving Facebook is based on LAMP (Linux, Apache, MySQL,
and PHP). This collection of technologies is accompanied by a collection of other
services developed in-house.

 These services are developed in a variety of languages and implement specific


functionalities such as search, news feeds, notifications, and others.

 While serving page requests, the social graph of the user is composed.

 The social graph identifies a collection of interlinked information that is of relevance


for a given user.

 Most of the user data are served by querying a distributed cluster of MySQL instances,
which mostly contain key-value pairs.
10.2.4 Media applications

75 1 Animoto

 Animoto is the most popular example of media applications on the cloud.

 The Website provides users with a very straightforward interface for quickly creating
videos out of images, music, and video fragments submitted by users.

 Users select a specific theme for a video, upload the photos and videos and order them
in the sequence they want to appear, select the song for the music, and render the video.

 The process is executed in the background and the user is notified via email once the
video is rendered. A proprietary artificial intelligence (AI) engine, which selects the
animation and transition effects according to pictures and music, drives the rendering
operation.

 Users only have to define the storyboard by organizing pictures and videos into the
desired sequence.
 The infrastructure of Animoto is complex and is composed of different systems
76 that all need to scale.

 The core function is implemented on top of the Amazon Web Services


infrastructure.

 It uses Amazon EC2 for the Web front-end and worker nodes; Amazon S3 for the
storage of pictures, music, and videos; and Amazon SQS for connecting all the
components.

 The system’s auto-scaling capabilities are managed by Rightscale, which


monitors the load and controls the creation of new worker instances.
77
2 Maya rendering with Aneka
78  A private cloud solution for rendering train designs has been implemented by
the engineering department of GoFront group, a division of China Southern
Railway.

 The department is responsible for designing models of high-speed electric


locomotives, metro cars, urban transportation vehicles, and motor trains.

 The design process for prototypes requires high-quality, three-dimensional (3D)


images.

 The analysis of these images can help engineers identify problems and correct
their design.
 Three-dimensional rendering tasks take considerable amounts of time,
79
especially in the case of huge numbers of frames, but it is critical for the
department to reduce the time spent in these iterations.

 This goal has been achieved by leveraging cloud computing technologies,


which turned the network of desktops in the department into a desktop
cloud managed by Aneka.
80
3 Video encoding on the cloud: Encoding.com
81
 Video encoding and transcoding are operations that can greatly benefit from
using cloud technologies: They are computationally intensive and potentially
require considerable amounts of storage.

 Encoding.com is a software solution that offers video-transcoding services on


demand and leverages cloud technology to provide both the horsepower required
for video conversion and the storage for staging videos.

 The service integrates with both Amazon Web Services technologies (EC2, S3,
and CloudFront) and Rackspace (Cloud Servers, Cloud Files, and Limelight
CDN access).
 To use the service, users have to specify the location of the video to
82
transcode, the destination format, and the target location of the video.

 Encoding.com also offers other video-editing operations such as the


insertion of thumbnails, watermarks, or logos. Moreover, it extends its
capabilities to audio and image conversion.
10.2.5 Multiplayer online gaming
83  Online multiplayer gaming attracts millions of gamers around the world who share a
common experience by playing together in a virtual environment that extends beyond
the boundaries of a normal LAN.

 Online games support hundreds of players in the same session, made possible by the
specific architecture used to forward interactions, which is based on game log
processing.

 Players update the game server hosting the game session, and the server integrates all
the updates into a log that is made available to all the players through a TCP port.

 The client software used for the game connects to the log port and, by reading the
log, updates the local user interface with the actions of other players.
 Game log processing is also utilized to build statistics on players and rank them.
84  These features constitute the additional value of online gaming portals that
attract more and more gamers.

 The processing of game logs is a potentially compute-intensive operation that


strongly depends on the number of players online and the number of games
monitored.

 The use of cloud computing technologies can provide the required elasticity for
seamlessly processing these workloads and scale as required when the number
of users increases.

 A prototype implementation of cloud-based game log processing has been


implemented by Titan Inc.
85

You might also like