Cloud Computing Chapter 2 1/17/2012
Agenda Composability Infrastructure Platforms Virtual Appliances Communication Protocol Applications Connecting to Cloud
Composability Applications build in the cloud are often built from a collection of components. A Composable system has two desirable properties. Modular : It is a self contained, independent unit that is cooperative, reusable and replaceable. Stateless: A transaction is executed regardless of other transactions and Process The scope of composability goes down the stack and is minimal at the SaaS?? It s a highly desirable property from a developer or an user point of view, but is not a mandatory requirement. As we move to IaaS to PaaS to SaaS, the scope of composability diminishes. Benefits of Composable System : Easier to assemble system Cheaper system development More reliable operation A larger pool of qualified developers A logical design methodology
Virtual Machine Give certain scenarios??
Virtual Machine A virtual machine (VM) is a software implementation of a machine (i.e. a computer) that executes programs like a physical machine. Virtual machines are separated into two major classifications, based on their use and degree of correspondence to any real machine: A system virtual machine provides a complete system platform which supports the execution of a complete operating system (OS).These usually emulate an existing architecture, and are built with the purpose of either providing a platform to run programs where the real hardware is not available for use (for example, executing software on otherwise obsolete platforms), or of having multiple instances of virtual machines lead to more efficient use of computing resources. A process virtual machine (also, language virtual machine) is designed to run a single program, which means that it supports a single process. Such virtual machines are usually closely suited to one or more programming languages and built with the purpose of providing program portability and flexibility (amongst other things). Give certain scenarios??
Infrastructure Infrastructure as a service (IaaS) rely on virtual machine technology Virtual servers are defined in terms of no. of CPU cycles, network bandwidth, memory access like any real server. One of the important components is called VMM ( Virtual Machine Monitor ), or also called hypervisor, which is a low level program allowing different operating system to run in their memory space and manages I/O for the virtual machine.
Infrastructure Core Connectivity And delivery Abstraction Authentication Security TCP/IP Grid/Cluster Images VMM Hardware Computer Network Storage Facilities HVAC Power Space
Virtual Appliances Application such as web server, database server that can run on a virtual machine image Are referred as virtual appliance A software appliance is a software application that might be combined with just enough operating system (JeOS) for it to run optimally on industry standard hardware (typically a server) or in a virtual machine. Like software appliances, virtual appliances are intended to eliminate the installation, configuration and maintenance costs associated with running complex stacks of software. JeOS is the abbreviation (pronounced "juice") for Just Enough Operating System as it applies to a software appliance. JeOS refers to a customized operating system that fits the needs of a particular application. It is not a generic, one-size-fits-all operating system so it only needs to include the pieces of an operating system (e.g., kernel) required to support a particular application and any other third-party components contained in the appliance.
Platform A platform in cloud is a software layer that is used to create higher level service. Example : Salesforce, Windows Azure, Google AppEngine These three services provides hosted software and hardware to build and deploy web application or Services, within the capabilities of the particular platform Platform represent nearly the full cloud software stack, excluding the final presentation layer that is the user interface layer. The vendors offer native OS and application packages So a platform based on Sun xvm hypervisor, with NetBeans Integrated development Environment is offered, similar is the case of Azure with.net IDE and SQL Server
Communication Protocol Transfer Protocol : HTTP, HTTPS Inter-process Communication over distributed network DCOM, Java RMI, COBRA XML RPC SOAP WSDL REST
Distributed object computing Distributed object computing: objects to be distributed across a heterogeneous network, These objects may be distributed on different computers throughout a network, living within their own address space outside of an application, and yet appear as though they were local to an application. Three of the most popular distributed object paradigms are Microsoft's Distributed Component Object Model (DCOM), OMG's Common Object Request Broker Architecture (CORBA) JavaSoft's Java/Remote Method Invocation (Java/RMI). 1. To invoke a remote method, the client makes a call to the client proxy. 2. The client side proxy packs the call parameters into a request message and invokes a wire protocol like IIOP(in CORBA) or ORPC(in DCOM) or JRMP(in Java/RMI) to ship the message to the server. 3. At the server side, the wire protocol delivers the message to the server side stub. The server side stub then unpacks the message and calls the actual method on the object. 4. In both CORBA and Java/RMI, the client stub is called the stub or proxy and the server stub is called skeleton. In DCOM, the client stub is referred to as proxy and the server stub is referred to as stub.
Distributed object computing
SOAP VS RPC Why SOAP? It is important for application development to allow Internet communication between programs. Today's applications communicate using Remote Procedure Calls (RPC) between objects like DCOM and CORBA, but HTTP was not designed for this. RPC represents a compatibility and security problem; firewalls and proxy servers will normally block this kind of traffic. A better way to communicate between applications is over HTTP, because HTTP is supported by all Internet browsers and servers. SOAP was created to accomplish this. SOAP provides a way to communicate between applications running on different operating systems, with different technologies and programming languages.
SOAP
REST Representational State Transfer (REST) However, there exists an even less restrictive form of SOA than a web service representational state transfer (REST). Described by Roy Fielding in his doctoral dissertation, (web browser and web server). InREST each service (called resource in REST) is viewed as resource identified by a URL. only operations allowed are the HTTP GET (Read), PUT (Update), POST(Create) and DELETE (Delete) Client-Server: Stateless:. Caching No Interface Definition As there is no interface definition (like in SOAP), it becomes mandatory for a Client and Server to have a mutual understanding of the messages being transmitted between them.
Connecting to cloud Basically two techniques A web browser A proprietary application The application can run on a server, PC, a mobile device. Three basic methods of security Use a secure protocol such as SSL, FTPS, SSH Use a VPN Encryption Gbridge, a collaborative sharing mechanism through gtalk
Applications This section discusses one of the problems of distributed web environment which is statelessness of standard protocols. Example HTTP get and put are standalone instructions. - MakeMyTrip - Chat Servers - Any web application Cloud computing adds more complexity with focus on virtualization. Couple of important terms Orchestration Service Bus