Professional Documents
Culture Documents
ORIENTED ARCHITECTURE
WAP
Server
BO BO
Client tier
4
Features of Distributed
Application
Reusability and simple integration
Different clients can reuse the business object and interacts with well-defined
interfaces
Allows for quick and easy development of new objects from existing library
Performance
Provides better performance in most cases and better use of resources
Allows for workload distribution on multiple computers
Maintainability
Modification and redeployment of business component is carried out via
centralized management tool
Era of Cooperative Computing
Technological evolution that accelerates the ongoing Internet revolution
Platform-independent, Internet-based RPC
Evolving to new distributed computing model for the Internet
Key value: simplicity
Allows semantic integration, access to existing business processes and
transactions
Business revolution
New product/service distribution models
New Internet revenue models
Tighter linkage to customers and partners
Webs of value, changes to competitive structure
6
Characteristics of Web
Services
Web services are self-describing
Use XML-based description language
Clients can discover Web services and invoke their functionality
Allows creation of new Web services using the existing Web
services
Web services provide
Interoperability among distributed applications that spans
over different hardware and software
Uses HTTP and XML-based communication
Allows flexible integration of Web and component-based
development
7
Web Service Ingredients
Web Service
Pu nd
Developer
bli its
ice
sh de
v
er
es sc
s
or
m lts
th rip
f su
e tio
er e
se n
P R
in
rv
ta
ice
Ob
Performs lookup
8
Web Services Architecture
Web Service Developer
Builds services and makes them available over the Internet through
global registry
The services can be written in any language, on any platform
Provides service description for clients
Service Client
Can locate a service and, based on its service description, can invoke the
required Web service
The service user could be a regular application, Web client
Could be developed in any language
Network Computing
Network is computer (client - server)
Separation of Functionalities
Cluster Computing
Tightly coupled computing resources:
CPU, storage, data, etc. Usually connected within a LAN
Managed as a single resource
Commodity, Open source
Evolution of Computing
Grid Computing
Resource sharing across several domains
Decentralized, open standards
Global resource sharing
Utility Computing
Don’t buy computers, lease computing power
Upload, run, download
Ownership model
Applications on the Web
The Cloud
Cloud Computing
Vendors will all feed services into the one public cloud – those who can subscribe
can access cloud services
Not everything will become cloud computing, because many projects will require a
level of privacy, performance or uniqueness that cannot be supported through the
public cloud (S+S Strategy is a key)
Cloud v/s Non-Cloud
Cloud Computing Providers
Amazon
Elastic Computing (EC2)
Simple Storage Service(S3)
Google
Google App Engine
Microsoft
Azure platform
Salesforce
Major Types of Cloud
Host Cloud
Google AppEngine
Highly-available, fault tolerance, robustness for
web capability
Cloud Computing Example –
Google AppEngine
Google AppEngine API
Python runtime environment
Datastore API
Images API
Mail API
Memcache API
URL Fetch API
Users API
A free account can use up to 500 MB storage,
enough CPU and bandwidth for about 5 million page
views a month
http://code.google.com/appengine/
THE CLOUD IMPACT
Interaction Models for Computing
Personal Computer
One to One
Client/Server
One to Many
Cloud Computing
Many to Many
Cloud Computing Advantages
Commodity Hardware
Performance: single machine not interesting
Reliability
Most reliable hardware will still fail: fault-
tolerant software needed
Fault-tolerant software enables use of
commodity components
Standardization: use standardized machines to
run all kinds of applications
What Power Cloud Computing
Provides?
Infrastructure Software
Distributed storage:
Distributed File System (GFS)
Distributed semi-structured data
system
BigTable
Distributed data processing system
MapReduce
What is the common issues of all these software?
Why Does Cloud Matter?
Business Value
Business logic
…
Expand to new locale
Perform live upgrade for new feature
Apply OS patches Service “glue”
Diagnose service failures
and operations
Add storage capacity
Handle increase in traffic
Respond to hardware failures
Datacenter
Components of Cloud
Implementation
What are the Ingredients?
An operating system for the cloud
Compute Storage
Developer
SDK
What Could be Compute Resources?
Compute
• .NET 3.5 SP1, Unix
• Server 2008 – 64bit
Storage
• Web Role
• IIS7 Web Sites
(ASP.NET, FastCGI)
• Web Services (WCF)
• Worker Role
• Stateless Servers
Developer
• Http(s)
Tools
What Could be Storage Resources?
Storage
• Durable, scalable, available
• Blobs, Clobs
Compute • Tables
• Queues
• REST interfaces
– Can be used without compute
Developer
Tools
Check List for Cloud Computing
Framework?
Compute Storage
Developer
Tools
Service Models
Describes your Service
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="CloudService1" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
<WebRole name="WebRole">
<ConfigurationSettings>
<Setting name="AccountName"/>
</ConfigurationSettings>
<LocalStorage name="scratch" sizeInMB="50"/>
<InputEndpoints>
<!-- Must use port 80 for http and port 443 for https when running in the cloud -->
<InputEndpoint name="HttpIn" protocol="http" port="80" />
</InputEndpoints>
</WebRole>
<WorkerRole name="WorkerRole">
<ConfigurationSettings>
<Setting name="AccountName"/>
<Setting name="TableStorageEndpoint"/>
</ConfigurationSettings>
</WorkerRole>
</ServiceDefinition>
Service Architecture
WebSite
Web Site Worker
Worker
L Web Site
(ASPX, ASMX, WCF)
(ASPX, ASMX, WCF) Service
B (ASPX, WCF) Service
Internet
Your Service
Queue
L
B
Blobs
Tables
Storage
Cloud Datacenter
Cloud Service Lifecycle
Event logs
Retrieve logs via web portal
Service …
Bus Workflow Database Analytics Identity Contacts
Access
… Reporting … Devices …
Control
No inbound
network connections Public Internet
Can read requests
from queue
Worker
in storage Role
Windows Azure
specific CAS policy for
managed code
Storage Service
Azure Service Architecture
Public Internet
Worker
Web Role
Role
Load
Balancer
Storage Service
Serving Dynamic Content
Public Internet
Worker
Web Role
Role
Load
Balancer
Storage Service
Background Tasks
Public Internet
Worker
Web Role
Role
Load
Balancer
Storage Service
Azure Storage
Windows Azure Storage
Abstractions
Blobs – provide a simple interface
for storing named files along with
metadata for the file
IMG001.JPG
Pictures
IMG002.JPG
Account
Block AAAA
Block AAAC
Blob As A List Of Blocks
Blob
Consists of a List of Blocks
Properties of Blocks
Each Block defined by a Block ID
Up to 64 Bytes, scoped by Blob Name
Blocks are immutable
A block is up to 4MB
Do not have to be same size
Queues
128x128, http://
…
Thumbnail Jobs
256x256, http://
…
Account
http://…
Indexing Jobs
http://…
Tables
Name=…
hash=…
Users
Name=…
hash=…
Account
Tag=…id=…
PhotoIndex
Tag=…,id=…
Concurrent Updates
Client Client
A B
Version Rating
1: Ch9, Jan-2, 5
2: 1: Ch9, Jan-2, 4
Error: 412
5 : Ch9, Jan-1, 3
If-Match: 1 Ch9, Jan-2, 4
If-Match: 1 Ch9, Jan-2, 5 1 : Ch9,
2: Ch9, Jan-2,
Jan-2, 52
9 : Ch9, Jan-3, 6
L
B
Web Portal
(API)
L
Fabric B
Controller
Service Deployment
Your
Service Model
Service
DN
S
L
B
Web Portal
(API) confi
DNS L
g Fabric B
Controller
Service Scaling
Your
Service Service
DN Service
S Service
Service Service
L Service
B
Service
Service
Web Portal
(API)
L
Fabric B
Controller
Model
Service Monitoring &
Recovery
Your
Service
DN Service
S
Service
L
B Service
Service
Web Portal
(API)
!
L
Fabric B
Controller
Model
Service Models & Roles
DB
Script
SQL Azure
TDS
SQL Azure
Accessing databases
Web Portal
(API)
Single Primary
Replica 1
Replica 2
DB
Replica 3
SQL Azure
Database Monitoring & Recovery
Web Portal
(API)
Your
App
SQL Azure
TDS !
DEPLOYMENT AUTOMATION IN
WINDOWS AZURE
Deploying A Service Manually
Resource allocation
Machines must be chosen to host roles of the service
Fault domains, update domains, resource utilization, hosting environment, etc.
Procure additional hardware if necessary
IP addresses must be acquired
Provisioning
Machines must be setup
Virtual machines created
Applications configured
DNS setup
Load balancers must be programmed
Upgrades
Locate appropriate machines
Update the software/settings as necessary
Only bring down a subset of the service at a time
Maintaining service health
Software faults must be handled
Hardware failures will occur
Logging infrastructure is provided to diagnose issues
Load-balancers Switches
Fabric Controller
Owns all the data center hardware
Uses the inventory to host services
Similar to what a per machine operating system
does with applications
The FC provisions the hardware
as necessary
Maintains the health of the hardware
Deploys applications to free resources
Maintains the health of those applications
What You Describe In Your Service Model…
.NET platform
.NET, IIS7, WCF
.NET SERVICES
.NET Service
Access Control
Access Control
Challenges
Lots of identity providers, many vendors,
protocol variability – tricky to get it all right
Access checks strewn throughout applications
Hard to be agile, compliant, and flexible
Approach
Federate a wide-range of identity providers and
technologies – pluggable too
Factor out access control logic into manageable
collection of rules
The Access Control Pattern
3. Map input claims
to output claims based on
1. Define access access control rules
control rules
Your Access
(o
4. t c
Control Project
ut
Re lai
pu
tu ms
0. Trust
rn
2. itia en
exchanged;
to from
Se l c tit
(In . id
ke
secrets,
nd laim y)
n 3)
e.g
6. Check
to s;
for claims certs
ke
n
Your App 5. Send token User
(Relying Party) w/ request (Application)
Access Control Capabilties
A hosted security token service
The output security token contains claims computed from
claims in incoming tokens
Define and manage rules to map claims to claims
Create and manage scopes; e.g. URLs
Create and manage claim types
Create and manage signing and encryption keys
Create and manage rules within an application scope
Rules can be chained; e.g. Bob Manager, Manager
Edit – enables RBAC or more
Manage permissions on scopes; e.g. delegation
Standards based – works with Java, Ruby, PHP, …
Service Bus
Service Bus
Challenges
You want to make it easy and secure for partners to
integrate with your application
But you don’t always know ahead of time the
characteristics or scale of the integration
Plus partners and customers have devices and
services running behind firewalls
Approach
Provide a highly-available “Service Bus” based on
standard Internet protocols
The Service Bus Pattern
Applications, Workflows, …
Service Registry
Federated
Identity and Application Messaging Patterns
Access Control
Connectivity Fabric
Host (Web/desktop)
Accessing Data
Using A Mesh
Windows Live Services
WL Calendar
Live Gadgets WL Expo
WL for Mobile WL Writer WL Gallery
WL Agents
Mesh Services
Distributed Data Mining
Data Mining Process Model
• Understanding the
problem definition
• Understanding the data
• Preparation of the data
• Data mining
• Evaluation of the
discovered knowledge
• Using the discovered
knowledge
120
Distributed Data Mining
(DDM)
Definition
Set 1
Service
Data Data
Web
Set 4
Service Internet Web
Set 2
Service
Data
Web
Set 3
Service
121
Detailed Architecture
Data Mining Data Mining Data Mining
Client Client Client
C1
Execution framework for Hierarchical Web-Component based services
C2
C3
Registry
DM Registration DM Discovery
Using DMRL Service C4
R2
R1
er
Re
Register
st
g
gi
ist
Re
er
Data Data Data
Service 1 Service 2 Service n
RegistryServer
Algorithm Algorithm Algorithm
Service 1 Service 2 Service n
Register
er
R
st
eg
gi
is
Re
te
Algorithms
r
Site1 Site2 Siten
......
123
Selecting Dataset and Algorithm Service
Information
Client Sho
wa
vai
lab
n le A
atio lgo
1 set
Inf orm
Sel
rith
ms 2
le Data ect
D ata
for
the
availab ion set s ele
o v ie
w
fo r mat (s)
and
cte
d Da
tt et In
ues Data
s req tas
Req ble
ues
t ava
et s
aila
w av ilab
Sho le
alg
orit
hm
ShowDataSets JSP / Servlets s ShowAlgorithms
Se Se fo
Se rv rv In
fo
rv ic ce
fo
ic
In
ic e e vi
In
In In r
e
e
Se
ic
In fo f
ic
o
rv
fo
rv
Se
R
Se
e
g
Data Data Algorithm Algorithm
i Data
Service 2 Service n
AlgorithmS
Service 2 Service n
Service 1 ervice 1
s
t
r
y
124
Mining Process (Centralized)
3 4 5 6
Collect the Datasets from the Combine the Fetch the selected Process the
selected Data Site(s) selected Algorithm Combined
Datasets From the Remote Site Dataset
with the selected
Selected Algorithm WebMineServlet Algorithm
and data set
Information from client Data 1 Combined
fetchData
Data 2 data set Algorithm 1
combineData fetchAlgo executeAlgo
Algorithm 1
g b e Results
a2
i Data Data g b
Data 1
Dat
125
Mining Process (Cloud-Distributed)
3 4 5
Fetch the selected Algorithm Send the Algorithm Process the data
from the Remote Site to the selected Data Site(s) Distributed
at the selected
Data Site(s)
Selected Algorithm WebMineServlet
and data set executeAlgo
Information from client
Algorithm 1
fetchAlgo sendAlgo
Request for Algo
Using the Request for Data a
Algo Service URL b Using the
b
a Data Service URL
b
R
Algorithm 1
e a
Algo
Al
g R
go
Algorithm
ri
i Service 1
rit
e
thm
hm
s g
1
t i
Data Data
Service 1 Service 2 Data 1 Data 2
r s
y t
r
y
Algorithm1
Data 1 Data 2 Client
126
Mining Process (Cloud-Distributed)
3 4 5
Fetch the selected Algorithm Send the Algorithm Process the data
from the Remote Site to the selected Data Site(s) Distributed
at the selected
Data Site(s)
Selected Algorithm WebMineServlet
and data set executeAlgo
Information from client
Algorithm 1
fetchAlgo sendAlgo
Request for Algo
Using the Request for Data a
Algo Service URL b Using the
b
a Data Service URL
b
R
Algorithm 1
e a
Algo
Al
g R
go
Algorithm
ri
i
rit
Service 1
e
thm
hm
s g
1
t i
Data Data
Service 1 Service 2 Data 1 Data 2
r s
y t
r
y
Algorithm1
Data 1 Data 2 Client
127
Mining Process (Cloud-Distributed)
3 4 5
Fetch the selected Algorithm Send the Algorithm Process the data
from the Remote Site to the selected Data Site(s) Distributed
at the selected
Data Site(s)
Selected Algorithm WebMineServlet
and data set executeAlgo
Information from client
Algorithm 1
fetchAlgo sendAlgo
Request for Algo
Using the Request for Data a
Algo Service URL b Using the
b
a Data Service URL
b
R
Algorithm 1
e a
Algo
Al
g R
go
Algorithm
ri
i
rit
Service 1
e
thm
hm
s g
1
t i
Data Data
Service 1 Service 2 Data 1 Data 2
r s
y t
r
y
Algorithm1
Data 1 Data 2 Client
128
On Demand Cloud Computing
Collaborative Computing
THANK YOU!