SlideShare a Scribd company logo
Orleans Cloud Computing
 Huzaifa Salman Zafar
Intro to Orleans cloud
computing
 Cloud computing
 Diverse clients(pc’s, smartphones, sensors etc.)
 Computation and data storage in cloud
(cloud=internet)
 Cloud systems are distributed systems
 Distributed systems
 A distributed system is a software system in
which components located on networked
computers communicate and coordinate their
actions by passing messages
Message Passing
 A type of communication between process
 Messages may include functions, signals, and
data packets
 Works as follows
 A message is sent to a process
 Process may be an actor
Actor model
 The Actor model was introduced in 1973 by
Hewitt, Bishop and Steiger.
 Mathematical model of concurrent computation
 Actor serves as basic building block of
concurrent computation.
 In response to a message received by actor,
actor can
 Make local decisions
 Create more actors
 Send more messages etc
Grains
 Basic programming unit
 All the code run within grains
 Isolated units of state and computation
 Communicate through asynchronous
messages
 Messages are method calls
 asynchronous messages
 Message is sent and does not need to wait for
reply
 Opposite of synchronous message passing
Promises
 Within a grain, promises are mechanism for
 Managing asynchronous message passing
 Local task based concurrency
 Concurrent computation
 Several threads of operation may execute
concurrently
Promises |continued….
 Communication between grains
 Asynchronous message passing
 Orleans messages are method calls
 Message call returns immediately with a promise
for a future result
 An application can bind code to the promise
which will execute when result arrives
 it can treat the promise like a future and
explicitly wait for a result.
Goals of Orleans
 Enable the developers unfamiliar with
distributed systems to build large scale
applications
 That these systems handle multiple orders of
large magnitude of growth without requiring
redesign or rearchitecture.
Activations
 To handle increase load on a grain
 And to provide higher system throughput
 Orleans automatically creates multiple
instantiations called activations
 The activations process independent requests for
the grain, possibly across multiple servers
 These activations cannot share memory or invoke
each other’s methods
Persistence
 A cloud system has persistent state that is kept
in durable storage.
 Orleans integrates persistence into grains
 Persistent grain state means
 State Changes in one activation of a grain will be
available for subsequent activations of the grain
 Multiple activations can modify grain’s state
 Orleans provides a mechanism to reconcile changes
Automated Scalability
 A service is scalable if increased load can be
handled by proportionally increasing server
capacity
 Techniques used for achieving scalability in
orleans
 Asynchrony and replication
Programming model
 Promises
 Grains execution model
 Error handling
 Grain interfaces
 Grain references
 Creating and using grains
 Grain classes
Promises
 Orleans uses promises as its asynchrony
communication
 Promises have life cycle
 Unresolved (expecting a result in unspecified
time)
 fulfilled (result is received, value of
promise=result)
 Resolved(fulfilled or broken is considered
resolved. ).
 Implemented as .NET types
Grain Execution Model
 When an activation receives a request, it
processes it in discrete units of work called
turns
 All grain code execution, runs as a turn
 Many turns belonging to different activations
may run in parallel
 But each activation executes its turns sequentially
 Hence, execution in an activation is logically
single threaded.
Grain interfaces
 Orleans uses standard .NET interfaces to
define the interface to grain’s services
 Grain References
 A grain reference is a proxy object that provides
access to a grain.
 A proxy object acts as an intermediary between
the client and an accessible object. The purpose
of the proxy object is to forward calls to the
accessible object only if it is not destroyed.
Creating and Using Grains
 For each grain interface, Orleans generates a
static factory class and an internal proxy class
 Clients use the factory classes to create, find,
and delete grains.
 The proxy classes are used by the Orleans
runtime to convert method calls into
messages.
Orleans runtime
 The mechanisms that Orleans provides for an
application is called Orleans runtime
 Orleans is a framework for .NET runtime that
can be used from any .NET language (C#, F#,
etc.
 Orleans can run on
 desktop machines,
 servers running Windows Server 2008,
 and the Microsoft Windows Azure cloud platform.
.NET Framework
 Is a software framework developed by
Microsoft that runs primarily on Microsoft
windows
 The easiest way to build apps on the Microsoft
platform
 Provides
 Large class library (Framework class library)
 A software environment known as common
language runtime (CLR)
 CLR provides security, memory management, and
exception handling etc
Orleans runtime (continued)
 The state of a grain is managed by the
Orleans runtime
 initialization, replication, reconciliation, and
persistence
 The programmer identifies the persistent state
and Orleans handles the rest
Orleans runtime (continued)
 Persistence
 Activate method, Handle requests (operate in
memory)
 Wait for completion of request , call deactivate
 Write to persistent storage
 Replication
 An activation is single threaded, so processing is
limited
 But Orleans uses grain replication –multiple
activations of a grain
 And achieve elasticity and scalability
Orleans runtime (continued)
 Isolation
 Activations of many different grains, as well as
multiple activations of the same grain are isolated
 all activations communicate only through
asynchronous message passing and reference
each other using grain references (proxy objects).
 This allows Orleans to place activations on any
server, even across data centers, and migrate
activations between servers, in order to balance
load
Orleans runtime (continued)
 Resource Management
 growing and shrinking the number of activations
of a grain
 Requests are initially randomly distributed to
existing activations
 A request arriving at an overloaded server is
rejected
Orleans runtime (continued)
 State Reconciliation
 If multiple activations of a grain concurrently
modify their persistent state, the changes must be
reconciled into a single, consistent state.
 a last-writer-wins strategy
 data structures (records, lists, and dictionaries)
that track updates and automatically reconcile
conflicting changes
Orleans runtime (continued)
 Transactions
 A transaction is created at the arrival of an initial,
external request from a client
 A transaction is completed when the request
processing finishes execution.
 It is committed when its changes are written to
durable storage
APPLICATIONS
 Here we discuss 3 applications
 Chirper
 large-scale Twitter-like publish-subscribe system
for distributing small text message updates within
a large network of consumers / subscribers
 Linear Algebra Library
 General purpose computations on scalars,
vectors, and matrices (including higher
dimensions as tensors).
Chirper
 A Chirper account is naturally modeled as a grain
 The account grain exposes three public
interfaces: IChirperAccount, IChirperSubscriber
and IChirperPublisher
 IChirperAccount
 single user account, start and stop following another
user
 IChirperSubscriber and IChirperPublisher are
used for subscription and notification activities
 An account that receives or sends large number
of messages is replicated to balance load
Linear Algebra Library
 The core of a linear algebra library is the
vector-matrix multiplication
 This operation is the basis for many
algorithms, including PageRank, clustering,
 vector-matrix multiply is quite simple if data is
held in memory on one machine
 Consider a web graph
 greater than 10^11 pages with more than 10^12
links
 The Web graph is the graph of the Web pages
together with the hypertext links between them.
Linear Algebra Library
 The computations are broken into worker
grains that own pieces of the data set.
 Special coordinator grains manage the
computation by dynamically assigning work to
worker grains
Large Graph Engine
 Graphs are central to web search, social
networking, and other web applications
 Large graphs pose many challenges
 they do not fit a single computer and distributed
algorithms are communications intensive
 partitioning and distributing graph data
(nodes, edges, and metadata) across many
machines
 represent a partition of the nodes by a grain
Large Graph Engine
 Every server hosts a small number of partition
grains, and every partition grain contains a
moderate number of graph data nodes (10^4 –
10^6)
 A graph algorithm running in a partition directly
accesses nodes in its partition
 Accesses across partitions involve sending
messages between partition grains
 it imposes no restrictions on the size of a
grain
 . Grains can hold potentially large amounts of
state
PERFORMANCE
MEASUREMENTS
 Chirper
 We created a synthetic network of 1,000 user
accounts
 each user following 27 random users
 ran load generator processes on multiple
machines
 each generator posting messages of varying
size
 The system can deliver approximately 7,000
chirps per second (1600 tweets per second by
Related Work
 Actors
 Actors are a well-known model for concurrent
programming
 Orleans extends the basic actor model with
support for replication, transactions, and
consistency
 E is an object-oriented programming language
for secure distributed computing.
 E has a concurrency model similar to Orleans
Related Work
 Distributed Object Models
 Enterprise Java Beans (EJB), Microsoft’s
Component Object Model (COM), and the
Common Object Request Broker Architecture
(CORBA)
 Based on distributed objects primarily
synchronous RPC
 They share Orleans’s goals of offering a
higher-level collection of abstractions that hide
some of the complexity of building distributed
systems
FUTURE WORK
 An on-going area of research is resource
management
 when and where should a new activation be
created, rather than reusing an existing one?
 When should an existing activation be
deactivated?
 important area for future work is in extending
Orleans to run on devices such as PCs and
smartphones
CONCLUSIONS
 This paper described the design and
implementation of Orleans
 actor-like model of isolated, replicated grains
that communicate through asynchronous
messages and manage asynchronous
computations with promises
 We believe that the Orleans framework can
significantly simplify the development of cloud
applications
 This is not a strong guarantee, as it is possible
to write a bad program in any language
CONCLUSIONS
 Cloud services achieve high throughput by
processing multiple, independent requests
concurrently
 Orleans supports a simple, single threaded
model within a grain, but permits parallelism
between grains, although limited to message
passing
 Computers and networks fail in distributed
systems, so error handling and recovery code
is fundamental.
CONCLUSIONS
 Cloud applications must respond to varying
and unpredictable workloads.
 Grain replication offers a simple, mostly
transparent mechanism that permits Orleans
to allocate more computing resources at
bottlenecks in an application
 Orleans is currently being used by several
projects inside Microsoft Research
 that training and education remains an
important aspect of cloud software
development
Thank You

More Related Content

DOCX
Basic features of distributed system
PDF
CS9222 ADVANCED OPERATING SYSTEMS
PPTX
Distributed systems and scalability rules
PDF
Exchange 2010 Poster
PPTX
Distributed system architecture
PPT
Distributed Systems Architecture in Software Engineering SE11
DOCX
Final jaypaper linux
PDF
Load Balancing in Cloud Nodes
Basic features of distributed system
CS9222 ADVANCED OPERATING SYSTEMS
Distributed systems and scalability rules
Exchange 2010 Poster
Distributed system architecture
Distributed Systems Architecture in Software Engineering SE11
Final jaypaper linux
Load Balancing in Cloud Nodes

What's hot (16)

PPT
70 640 Lesson04 Ppt 041009
PPT
Ppt project process migration
PDF
The Grouping of Files in Allocation of Job Using Server Scheduling In Load Ba...
PDF
Unit 2 part 2(Process)
PPTX
Distributed Systems
PPT
Chapter 14 replication
PPTX
Distributed Systems Introduction and Importance
PDF
HIGH AVAILABILITY AND LOAD BALANCING FOR POSTGRESQL DATABASES: DESIGNING AND ...
PPTX
Distributed File Systems
PPT
70 640 Lesson03 Ppt 041009
PPT
Active Directory Training
DOC
Centralized vs distrbution system
PPTX
Load Balancing in Parallel and Distributed Database
PPT
LinkedIn - A highly scalable Architecture on Java!
PDF
Distributed Systems: scalability and high availability
PPTX
CQRS introduction
70 640 Lesson04 Ppt 041009
Ppt project process migration
The Grouping of Files in Allocation of Job Using Server Scheduling In Load Ba...
Unit 2 part 2(Process)
Distributed Systems
Chapter 14 replication
Distributed Systems Introduction and Importance
HIGH AVAILABILITY AND LOAD BALANCING FOR POSTGRESQL DATABASES: DESIGNING AND ...
Distributed File Systems
70 640 Lesson03 Ppt 041009
Active Directory Training
Centralized vs distrbution system
Load Balancing in Parallel and Distributed Database
LinkedIn - A highly scalable Architecture on Java!
Distributed Systems: scalability and high availability
CQRS introduction
Ad

Similar to Orleans Cloud Computing (20)

PDF
Parallel and Distributed Computing chapter 1
PDF
Orleans: Cloud Computing for Everyone - SOCC 2011
PPTX
Designing distributed systems
PPTX
Database System Architectures
PPTX
distributed-systemsfghjjjijoijioj-chap3.pptx
PDF
Cs556 section2
PPTX
Chapter Introductionn to distributed system .pptx
PDF
An operating system for multicore and clouds: mechanism and implementation
PPTX
Intro to Distributed Systems (By Lasmon Kapota).pptx
PPTX
Distributed Systems for Data Sciene and Analytics
PPTX
Types of operating system
PDF
Cs556 section1
PPT
17. Computer System Configuration And Methods
PPT
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
PPTX
Chap-3- Process.pptx distributive system
PPT
unit-1 hi business of good honest awesome .ppt
PPTX
Distrinuted system chapter three on task division and task scheduling
PDF
I0935053
PPTX
types of operating system an overview of the topics.pptx
PPTX
Oracle Coherence
Parallel and Distributed Computing chapter 1
Orleans: Cloud Computing for Everyone - SOCC 2011
Designing distributed systems
Database System Architectures
distributed-systemsfghjjjijoijioj-chap3.pptx
Cs556 section2
Chapter Introductionn to distributed system .pptx
An operating system for multicore and clouds: mechanism and implementation
Intro to Distributed Systems (By Lasmon Kapota).pptx
Distributed Systems for Data Sciene and Analytics
Types of operating system
Cs556 section1
17. Computer System Configuration And Methods
characteristicsofdistributedsystem-121004123308-phpapp02.ppt
Chap-3- Process.pptx distributive system
unit-1 hi business of good honest awesome .ppt
Distrinuted system chapter three on task division and task scheduling
I0935053
types of operating system an overview of the topics.pptx
Oracle Coherence
Ad

Recently uploaded (20)

PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
Programs and apps: productivity, graphics, security and other tools
PDF
Electronic commerce courselecture one. Pdf
PPTX
sap open course for s4hana steps from ECC to s4
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
The Rise and Fall of 3GPP – Time for a Sabbatical?
Dropbox Q2 2025 Financial Results & Investor Presentation
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
NewMind AI Weekly Chronicles - August'25 Week I
Digital-Transformation-Roadmap-for-Companies.pptx
Programs and apps: productivity, graphics, security and other tools
Electronic commerce courselecture one. Pdf
sap open course for s4hana steps from ECC to s4
Diabetes mellitus diagnosis method based random forest with bat algorithm
Advanced methodologies resolving dimensionality complications for autism neur...
MYSQL Presentation for SQL database connectivity
Understanding_Digital_Forensics_Presentation.pptx
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Review of recent advances in non-invasive hemoglobin estimation
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Optimiser vos workloads AI/ML sur Amazon EC2 et AWS Graviton
20250228 LYD VKU AI Blended-Learning.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf

Orleans Cloud Computing

  • 1. Orleans Cloud Computing  Huzaifa Salman Zafar
  • 2. Intro to Orleans cloud computing  Cloud computing  Diverse clients(pc’s, smartphones, sensors etc.)  Computation and data storage in cloud (cloud=internet)  Cloud systems are distributed systems  Distributed systems  A distributed system is a software system in which components located on networked computers communicate and coordinate their actions by passing messages
  • 3. Message Passing  A type of communication between process  Messages may include functions, signals, and data packets  Works as follows  A message is sent to a process  Process may be an actor
  • 4. Actor model  The Actor model was introduced in 1973 by Hewitt, Bishop and Steiger.  Mathematical model of concurrent computation  Actor serves as basic building block of concurrent computation.  In response to a message received by actor, actor can  Make local decisions  Create more actors  Send more messages etc
  • 5. Grains  Basic programming unit  All the code run within grains  Isolated units of state and computation  Communicate through asynchronous messages  Messages are method calls  asynchronous messages  Message is sent and does not need to wait for reply  Opposite of synchronous message passing
  • 6. Promises  Within a grain, promises are mechanism for  Managing asynchronous message passing  Local task based concurrency  Concurrent computation  Several threads of operation may execute concurrently
  • 7. Promises |continued….  Communication between grains  Asynchronous message passing  Orleans messages are method calls  Message call returns immediately with a promise for a future result  An application can bind code to the promise which will execute when result arrives  it can treat the promise like a future and explicitly wait for a result.
  • 8. Goals of Orleans  Enable the developers unfamiliar with distributed systems to build large scale applications  That these systems handle multiple orders of large magnitude of growth without requiring redesign or rearchitecture.
  • 9. Activations  To handle increase load on a grain  And to provide higher system throughput  Orleans automatically creates multiple instantiations called activations  The activations process independent requests for the grain, possibly across multiple servers  These activations cannot share memory or invoke each other’s methods
  • 10. Persistence  A cloud system has persistent state that is kept in durable storage.  Orleans integrates persistence into grains  Persistent grain state means  State Changes in one activation of a grain will be available for subsequent activations of the grain  Multiple activations can modify grain’s state  Orleans provides a mechanism to reconcile changes
  • 11. Automated Scalability  A service is scalable if increased load can be handled by proportionally increasing server capacity  Techniques used for achieving scalability in orleans  Asynchrony and replication
  • 12. Programming model  Promises  Grains execution model  Error handling  Grain interfaces  Grain references  Creating and using grains  Grain classes
  • 13. Promises  Orleans uses promises as its asynchrony communication  Promises have life cycle  Unresolved (expecting a result in unspecified time)  fulfilled (result is received, value of promise=result)  Resolved(fulfilled or broken is considered resolved. ).  Implemented as .NET types
  • 14. Grain Execution Model  When an activation receives a request, it processes it in discrete units of work called turns  All grain code execution, runs as a turn  Many turns belonging to different activations may run in parallel  But each activation executes its turns sequentially  Hence, execution in an activation is logically single threaded.
  • 15. Grain interfaces  Orleans uses standard .NET interfaces to define the interface to grain’s services  Grain References  A grain reference is a proxy object that provides access to a grain.  A proxy object acts as an intermediary between the client and an accessible object. The purpose of the proxy object is to forward calls to the accessible object only if it is not destroyed.
  • 16. Creating and Using Grains  For each grain interface, Orleans generates a static factory class and an internal proxy class  Clients use the factory classes to create, find, and delete grains.  The proxy classes are used by the Orleans runtime to convert method calls into messages.
  • 17. Orleans runtime  The mechanisms that Orleans provides for an application is called Orleans runtime  Orleans is a framework for .NET runtime that can be used from any .NET language (C#, F#, etc.  Orleans can run on  desktop machines,  servers running Windows Server 2008,  and the Microsoft Windows Azure cloud platform.
  • 18. .NET Framework  Is a software framework developed by Microsoft that runs primarily on Microsoft windows  The easiest way to build apps on the Microsoft platform  Provides  Large class library (Framework class library)  A software environment known as common language runtime (CLR)  CLR provides security, memory management, and exception handling etc
  • 19. Orleans runtime (continued)  The state of a grain is managed by the Orleans runtime  initialization, replication, reconciliation, and persistence  The programmer identifies the persistent state and Orleans handles the rest
  • 20. Orleans runtime (continued)  Persistence  Activate method, Handle requests (operate in memory)  Wait for completion of request , call deactivate  Write to persistent storage  Replication  An activation is single threaded, so processing is limited  But Orleans uses grain replication –multiple activations of a grain  And achieve elasticity and scalability
  • 21. Orleans runtime (continued)  Isolation  Activations of many different grains, as well as multiple activations of the same grain are isolated  all activations communicate only through asynchronous message passing and reference each other using grain references (proxy objects).  This allows Orleans to place activations on any server, even across data centers, and migrate activations between servers, in order to balance load
  • 22. Orleans runtime (continued)  Resource Management  growing and shrinking the number of activations of a grain  Requests are initially randomly distributed to existing activations  A request arriving at an overloaded server is rejected
  • 23. Orleans runtime (continued)  State Reconciliation  If multiple activations of a grain concurrently modify their persistent state, the changes must be reconciled into a single, consistent state.  a last-writer-wins strategy  data structures (records, lists, and dictionaries) that track updates and automatically reconcile conflicting changes
  • 24. Orleans runtime (continued)  Transactions  A transaction is created at the arrival of an initial, external request from a client  A transaction is completed when the request processing finishes execution.  It is committed when its changes are written to durable storage
  • 25. APPLICATIONS  Here we discuss 3 applications  Chirper  large-scale Twitter-like publish-subscribe system for distributing small text message updates within a large network of consumers / subscribers  Linear Algebra Library  General purpose computations on scalars, vectors, and matrices (including higher dimensions as tensors).
  • 26. Chirper  A Chirper account is naturally modeled as a grain  The account grain exposes three public interfaces: IChirperAccount, IChirperSubscriber and IChirperPublisher  IChirperAccount  single user account, start and stop following another user  IChirperSubscriber and IChirperPublisher are used for subscription and notification activities  An account that receives or sends large number of messages is replicated to balance load
  • 27. Linear Algebra Library  The core of a linear algebra library is the vector-matrix multiplication  This operation is the basis for many algorithms, including PageRank, clustering,  vector-matrix multiply is quite simple if data is held in memory on one machine  Consider a web graph  greater than 10^11 pages with more than 10^12 links  The Web graph is the graph of the Web pages together with the hypertext links between them.
  • 28. Linear Algebra Library  The computations are broken into worker grains that own pieces of the data set.  Special coordinator grains manage the computation by dynamically assigning work to worker grains
  • 29. Large Graph Engine  Graphs are central to web search, social networking, and other web applications  Large graphs pose many challenges  they do not fit a single computer and distributed algorithms are communications intensive  partitioning and distributing graph data (nodes, edges, and metadata) across many machines  represent a partition of the nodes by a grain
  • 30. Large Graph Engine  Every server hosts a small number of partition grains, and every partition grain contains a moderate number of graph data nodes (10^4 – 10^6)  A graph algorithm running in a partition directly accesses nodes in its partition  Accesses across partitions involve sending messages between partition grains  it imposes no restrictions on the size of a grain  . Grains can hold potentially large amounts of state
  • 31. PERFORMANCE MEASUREMENTS  Chirper  We created a synthetic network of 1,000 user accounts  each user following 27 random users  ran load generator processes on multiple machines  each generator posting messages of varying size  The system can deliver approximately 7,000 chirps per second (1600 tweets per second by
  • 32. Related Work  Actors  Actors are a well-known model for concurrent programming  Orleans extends the basic actor model with support for replication, transactions, and consistency  E is an object-oriented programming language for secure distributed computing.  E has a concurrency model similar to Orleans
  • 33. Related Work  Distributed Object Models  Enterprise Java Beans (EJB), Microsoft’s Component Object Model (COM), and the Common Object Request Broker Architecture (CORBA)  Based on distributed objects primarily synchronous RPC  They share Orleans’s goals of offering a higher-level collection of abstractions that hide some of the complexity of building distributed systems
  • 34. FUTURE WORK  An on-going area of research is resource management  when and where should a new activation be created, rather than reusing an existing one?  When should an existing activation be deactivated?  important area for future work is in extending Orleans to run on devices such as PCs and smartphones
  • 35. CONCLUSIONS  This paper described the design and implementation of Orleans  actor-like model of isolated, replicated grains that communicate through asynchronous messages and manage asynchronous computations with promises  We believe that the Orleans framework can significantly simplify the development of cloud applications  This is not a strong guarantee, as it is possible to write a bad program in any language
  • 36. CONCLUSIONS  Cloud services achieve high throughput by processing multiple, independent requests concurrently  Orleans supports a simple, single threaded model within a grain, but permits parallelism between grains, although limited to message passing  Computers and networks fail in distributed systems, so error handling and recovery code is fundamental.
  • 37. CONCLUSIONS  Cloud applications must respond to varying and unpredictable workloads.  Grain replication offers a simple, mostly transparent mechanism that permits Orleans to allocate more computing resources at bottlenecks in an application  Orleans is currently being used by several projects inside Microsoft Research  that training and education remains an important aspect of cloud software development

Editor's Notes

  • #12: Scalability is the ability of a system, network, or process to handle a growing amount of work in a capable manner .
  • #17: CreateGrain immediately returns a grain reference , This enables pipelining of asynchronous requests to the grain, such as FollowUser
  • #19: FCL provides user interface, data access, database connectivity, numeric algorithms etc.
  • #21: The Orleans runtime activates a grain with its persistent properties already initialized The grain’s Activate method is then called to allow it to initialize its transient state The runtime then invokes methods to handle requests sent to the activation which can operate freely upon the state in memory. To commit an activation to storage, the runtime waits for the completion of a transaction (i.e., the end of a request), calls the grain’s Deactivate method, and writes the grain’s state property values to persistent storage
  • #28: PageRank is an algorithm used by Google Search to rank websites in their search engine results