Programming Abstractions in Cloud
Shashikant Ilager
Research Fellow Information Systems Engineering
Vienna University of Technology, Austria
Email: Website: shashikantilager.com
Outline
• Cloud Computing
• Computing as a utility
• Programming networked computers • TCP ports and sockets
• RPC
• Cloud Application Platforms • Platform as a Service (PaaS)
• Aneka: A Cloud Middle-ware Platform • Summary
Cloud Computing
• Outsource IT facilities to cloud providers
• Avoid expensive up-front investments
• Computing as a utility (like electricity, water, etc..)
• On-demand
• Pay for what you use
• Virtualized resources
Programming Networked Computers
• Sockets
• Most familiar communication way for networked applications
• Enables applications to interact with transport layer
• Bound to a local port
• IP address + port = Socket ID/ address
• Socket can be used for sending and receiving data.
• Acts as a programming interface to application code and transport layer • Each socket is associated with a protocol (UDP or TCP)
Programming Networked Computers
• Transmission Control Protocol (TCP)
● Connection Oriented
● Provides an abstraction for a two-way stream (called as packets).
● Stream provide the basis for producer/consumer
communication.
● Data sent by the producer are queued until the consumer is
ready to receive them.
● Example use cases – http, ftp
● TCP Socket Programming Demo
Programming Networked Computers
• Socket handling becomes complex when applications scale to large number of servers
• Typical application in cloud spans from few hundred to thousands of servers
• Individual port to each server
• Read write buffers
• Synchronization
• Exception handling
• All of the above functionalities within application makes developing application costly and erroneous
Programming Networked Computers
• Remote Procedure Call (RPC)
• RPCs enable clients to execute procedures in server processes based on a defined
service interface (Procedural languages- C, Fortran, Go)
• Remote Method Invocation (RMI) for Object Oriented languages (JAVA)
• Higher abstraction than sockets
• Key components of RPC:
• Communication Module
• Client Stub Procedure • Dispatcher
• Server stub procedure
Programming Networked Computers
• RPC/ RMI is useful in simple applications where resources are usually static in nature (mostly worked during cluster/Grid computing era).
• Cloud applications are dynamic that requires:
• Elasticity – On demand resource provision and de-provision • Monitoring – Heartbeat, Budget Constraints, etc.
• Robustness – Availability, Failure management
• Middleware that seamlessly manages dynamic resources and handles runtime network communication is necessary.
Cloud Application Platforms
• Cloud Application Platforms (CAP) provide highest level of abstractions to build the applications
• Abstraction through SDKs, APIs and middle-ware platforms
• Less efforts on resource management and more focus on application
• Examples include
• Google App Engine
• Deploy web applications on the fly
• Microsoft Azure PaaS platforms
• Highly suitable platform for enterprise application developments
• Aneka (Manjrasoft, CLOUDS Lab, UniMelb)
• Cloud application platform with multiple programming models
Aneka: Cloud Application Platform(CAP) for Resource-Intensive/Elastic Apps
n PlatformsupportingmultipleCloud programming models (Task, Thread, MapReduce)
n SDK(SoftwareDevelopment Kit) containing APIs for multiple programming
models and tools
n RuntimeEnvironmentfor managing application execution on Clouds
n Suitablefor
n DevelopmentofEnterprise
Cloud Applications
n Cloudenablinglegacy applications
n PortabilityforCustomerApps: n Enterprise↔PublicClouds
n .NET/Win↔Mono/Linux
Multiple Applications
Thread
Task …
MapReduce
Aneka
1. SDK
Multi-core
Cluster Grid 2100 2100 2100 2100
2100 2100 2100 2100
2. Runtime
Cloud
Multiple Infrastructures
Aneka as a Cloud Application Platform
Applications & Services
Application Development
Bag of Tasks
Aneka
Datacenters
Dist. Threads
MapReduce …
Cloud Middleware
Platform
SLA & QoS
User Management
Application Management
Dynamic Provisioning
Scheduling & Execution
Monitoring
Billing
Infrastructure
Clusters
Public Clouds
Desktop PCs
Aneka as a Cloud Application Platform
• Aneka Demo
Summary
• Cloud Application Platforms like Aneka simplifies the process of building large scale distributed systems
• Although middle-ware platforms provide abstraction to programmer, the underlying complex operations are still need to be implemented inside these platforms.
• Acquiring skills to build such tools and platforms is crucial.
Thank You
For any queries, please contact me at:
Questions?