O Doug Tidwell Cloud Computing Evangelist IBM Building Applications with the Simple Cloud API.

Slides:



Advertisements
Similar presentations
JAAS AuthN Tokens in uPortal and Beyond or The JAAS Singer.
Advertisements

OPeNDAP in the Cloud Optimizing the Use of Storage Systems Provided by Cloud Computing Environments OPeNDAP James Gallagher, Nathan Potter and NOAA/NODC.
TANDBERG Content Server January Organizational Challenges Corporations have struggled in the past:  Achieving unified communications within a global.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
SOAP: Simple Object Access Protocol CS 795/895. Reference links Video: 2-M.
Management Framework for Amazon EC2 Speaker: Frank Bitzer
1 Frameworks. 2 Framework Set of cooperating classes/interfaces –Structure essential mechanisms of a problem domain –Programmer can extend framework classes,
CS 415 N-Tier Application Development By Umair Ashraf July 6,2013 National University of Computer and Emerging Sciences Lecture # 9 Introduction to Web.
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
Struts 2.0 an Overview ( )
1 Spidering the Web in Python CSC 161: The Art of Programming Prof. Henry Kautz 11/23/2009.
A Brief Overview by Aditya Dutt March 18 th ’ Aditya Inc.
J2EE Web Fundamentals Lesson 1 Introduction and Overview
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Building Data Driven Applications Using WinRT and XAML Sergey Barskiy, Magenic Microsoft MVP – Data Platform Principal Consultant Level: Intermediate.
Fall, Privacy&Security - Virginia Tech – Computer Science Click to edit Master title style Design Extensions to Google+ CS6204 Privacy and Security.
Web Services 101 Introduction to Web Services Computer Networks Natawut Nupairoj, Ph.D. Department of Computer Engineering Chulalongkorn University.
Creating Databases for Web Applications Work session Open Source versus Proprietary important topics HW: finish* projects. Look at final quiz guide. Final.
Introducing Axis2 Eran Chinthaka. Agenda  Introduction and Motivation  The “big picture”  Key Features of Axis2 High Performance XML Processing Model.
Raffaele Di Fazio Connecting to the Clouds Cloud Brokers and OCCI.
Web services: Why and How OOPSLA 2001 F. Curbera, W.Nagy, S.Weerawarana Nclab, Jungsook Kim.
M i SMob i S Mob i Store - Mobile i nternet File Storage Platform Chetna Kaur.
Windows Azure Tour Benjamin Day Benjamin Day Consulting, Inc.
95-843: Service Oriented Architecture 1 Master of Information System Management Service Oriented Architecture Lecture 10: Service Component Architecture.
Presentation: SOAP in a distributed object framework, Application Servers & AXIS SOAP.
© 2006 IBM Corporation IBM WebSphere Portlet Factory Architecture.
1 HKU CSIS DB Seminar: HKU CSIS DB Seminar: Web Services Oriented Data Processing and Integration Speaker: Eric Lo.
Cloud Use Cases, Required Standards, and Roadmaps Excerpts From Cloud Computing Use Cases White Paper
Gary MarsdenSlide 1University of Cape Town Human-Computer Interaction - 3 Programmer Support Gary Marsden ( ) July 2002.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
ILDG Middleware Status Chip Watson ILDG-6 Workshop May 12, 2005.
10/25/20151 Single Sign-On Web Service Supervisors: Viktor Kulikov Alexander Sherman Liana Lipstov Pavel Bilenko.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
Presentation: SOAP/WS in a distributed object framework, Application Servers & AXIS SOAP.
Chapter 10 Intro to SOAP and WSDL. Objectives By study in the chapter, you will be able to: Describe what is SOAP Exam the rules for creating a SOAP document.
© 2002 IBM Corporation Confidential | Date | Other Information, if necessary June, 2011 Made available under the Eclipse Public License v Mobile.
Mike Jackson EPCC OGSA-DAI Architecture + Extensibility OGSA-DAI Tutorial GGF17, Tokyo.
S imple O bject A ccess P rotocol Karthikeyan Chandrasekaran & Nandakumar Padmanabhan.
Database Management Systems (DBMS)
Building Mobile Phone Applications With Windows Azure Nick HarrisWindows Azure Technical Evangelist Microsoft Blog:
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
Polytechnic University of Tirana Faculty of Information Technology Computer Engineering Department A MULTITHREADED SEARCH ENGINE AND TESTING OF MULTITHREADED.
Mobile + Cloud: Building Mobile Applications with Windows Azure Wade Wegner Blog:
A Technical Overview Bill Branan DuraCloud Technical Lead.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Mach-II Primer Ben Edwards An Introduction to Mach-II: An event-based, implicit invocation web-application framework.
Copyright 2007, Information Builders. Slide 1 iWay Web Services and WebFOCUS Consumption Michael Florkowski Information Builders.
ODATA DESIGN PRINCIPLES July 26, BUILD ON HTTP, REST OData is a RESTful HTTP Protocol Build on HTTP Entities modeled as Resources Relationships.
EWS Redesign Business Case A look at creating a reports client for new or small market participants.
July 19, 2004Joint Techs – Columbus, OH Network Performance Advisor Tanya M. Brethour NLANR/DAST.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Amazon Web Services. Amazon Web Services (AWS) - robust, scalable and affordable infrastructure for cloud computing. This session is about:
Added Value to XForms by Web Services Supporting XML Protocols Elina Vartiainen Timo-Pekka Viljamaa T Research Seminar on Digital Media Autumn.
Java Web Services Orca Knowledge Center – Web Service key concepts.
Data Bridge Solving diverse data access in scientific applications
WEB SERVICES.
Data Virtualization Tutorial… CORS and CIS
Data Virtualization Tutorial… OAuth Example using Google Sheets
Outline SOAP and Web Services in relation to Distributed Objects
Unit – 5 JAVA Web Services
Server Concepts Dr. Charles W. Kann.
The Client/Server Database Environment
Outline SOAP and Web Services in relation to Distributed Objects
Ashish Pandit IT Architect, Middleware & Integration Services
What’s changed in the Shibboleth 1.2 Origin
Saranya Sriram Developer Evangelist | Microsoft
Introduction of Week 11 Return assignment 9-1 Collect assignment 10-1
Middleware, Services, etc.
JAAS AuthN Tokens in uPortal and Beyond
Plug-In Architecture Pattern
Presentation transcript:

o Doug Tidwell Cloud Computing Evangelist IBM Building Applications with the Simple Cloud API

21 July Agenda Portability and interoperability How standards work A few words about APIs The Simple Cloud API Bonus: Controlling VMs with Apache libcloud Resources / Next steps

o The problem

21 July Vendor lock-in If there’s a new technology, any talented programmer will want to use it. ▪Maybe the shiny new thing is appropriate for what we’re doing. ▪Maybe not. ▪We’re probably going to use it anyway. The challenge is to walk the line between using the newest, coolest thing and avoiding vendor lock-in.

21 July Portability and Interoperability In writing flexible code for the cloud, there are two key concepts: ▪Portability is the ability to run components or systems written for one cloud provider in another cloud provider’s environment. ▪Interoperability is the ability to write one piece of code that works with multiple cloud providers, regardless of the differences between them.

o How standards work

21 July How standards work For a standards effort to work, three things have to happen: ▪The standard has to solve a common problem in an elegant way. ▪The standard has to be implemented consistently by vendors. ▪Users have to insist that the products they use implement the standard.

21 July How standards work All three things have to happen.All three things have to happen. ▪If the standard doesn't solve a common problem, or if it solves it in an awkward way, the standard fails. ▪If the standard isn't implemented by anyone, the standard fails. ▪If customers buy and use products even though they don't implement the standard, the standard fails.

o A few words about APIs

21 July Levels of APIs How developers invoke a service: ▪Level 1 – Write directly to the REST or SOAP API. ▪Level 2 – Use a language-specific toolkit to invoke the REST or SOAP API. ▪Level 3 – Use a service-specific toolkit to invoke a higher-level API. ▪Level 4 – Use a service-neutral toolkit to invoke a high-level API for a type of service.

21 July Level 1 – The Wire Developers write directly to the REST or SOAP API. ▪Developers must deal with all the details of the request, including URL formats, XML parsing, and HTTP headers and response codes. ▪Writing code at this level is rarely done today in the SOAP world. REST services (simple ones in particular) are still invoked this way.

21 July Level 1 IMFS GG Application 1 /ws/IMFS/listFolder.ashx&folderPath=/cs1 Application 2 /cs1 S3

21 July Level 2 – Language-specific Developers use a language-specific toolkit to build the REST or SOAP requests. ▪Slightly higher-level than writing directly to the REST or SOAP APIs. ▪Details such as managing HTTP error codes or XML parsing are handled by the toolkit.

21 July Level 2 GG Application 1 RestClient->listFolder() Application 2 SoapClient->listFolder() IMFS S3

21 July Level 3 – Service-specific Developers use objects that wrapper a particular service. ▪Developers don’t know if they’re using REST or SOAP. ▪Developers focus on using a particular service to get something done.

21 July Level 3 GG Application 1 $s3->getObjectsByBucket('cs1') IMFS S3

21 July Level 4 – Service-neutral Developers use objects that wrapper a particular type of service. ▪Developers have no idea which service they’re using. ▪Developers focus on getting something done.

21 July Level 4 GG Application 1 $storage->listItems('cs1') IMFS S3

o The Simple Cloud API simplecloud.org

21 July The Simple Cloud API A joint effort of Zend, GoGrid, IBM, Microsoft, Nirvanix and Rackspace ▪But you can add your own libraries to support other cloud providers. The goal: Make it possible to write portable, interoperable code that works with multiple cloud vendors. There’s an article on the Simple Cloud API in the developerWorks Open Source zone: bit.ly/1bSkTx

21 July The Simple Cloud API Covers three areas: ▪File storage (S3, Nirvanix, Azure Blob Storage, Rackspace Cloud Files) ▪Document storage (SimpleDB, Azure Table Storage) ▪Simple queues (SQS, Azure Table Storage) Uses the Factory and Adapter design patterns ▪A configuration file tells the Factory object which adapter to create.

21 July Vendor-specific APIs Listing all the items in a Nirvanix directory: $auth = array('username' => 'your-username', 'password' => 'your-password', 'appKey' => 'your-appkey'); $nirvanix = new Zend_Service_Nirvanix($auth); $imfs = $nirvanix->getService('IMFS'); $args = array('folderPath' => '/dougtidwell', 'pageNumber' => 1, 'pageSize' => 5); $stuff = $imfs->ListFolder($args); All of these lines of code are specific to Nirvanix.

21 July Vendor-specific APIs Listing all the items in an S3 bucket: $s3 = new Zend_Service_Amazon_S3 ($accessKey, $secretKey); $stuff = $s3->getObjectsByBucket($bucketName); All of these lines of code are specific to S3.

21 July The Simple Cloud API Listing all the items in a Nirvanix directory or S3 bucket: listItems $credentials = new Zend_Config_Ini($configFile); $stuff = Zend_Cloud_StorageService_Factory ::getAdapter($credentials)-> listItems (); These lines of code work with Nirvanix and S3. ▪Which adapter is created and which storage is used is defined in the configuration file.

21 July Dependency injection The Simple Cloud API uses dependency injection to do its magic. A sample configuration file: storage_adapter = "Zend_Cloud_StorageService_Adapter _Nirvanix" auth_accesskey = "338ab839-ac72870a" auth_username = "skippy" auth_password = remote_directory = "/dougtidwell"

21 July Exciting demonstrations! Prepare to be astounded by the Simple Cloud API in action! ▪Due to cost constraints, we are unable to provide tissues for those moved to tears by the demonstration. ▪Persons prone to hyperventilation or motion sickness are advised to look away. Be advised the management cannot be held responsible for your medical expenses.

21 July Issues Not all storage services support renaming files. ▪You can hack this, but.... Not all storage services support listing containers.

21 July Issues How many messages are in a queue? ▪SQS lets you ask, Azure doesn’t. Can I peek a message? ▪Azure lets you peek, SQS doesn’t. What’s the best way to handle this? ▪Introspection? ▪ instanceof ? ▪XSLT style? system-property ('xsl:is-schema-aware')

o Bonus: Controlling VMs with Apache libcloud

21 July Apache libcloud A common library for controlling VMs in the cloud ▪Create, destroy, reboot and list instances, list and start images incubator.apache.org/libcloud

21 July Apache libcloud Find all the VMs I have running in the IBM, Slicehost and Rackspace clouds: IBM = get_driver(Provider.IBM) Slicehost = get_driver(Provider.SLICEHOST) Rackspace = get_driver(Provider.RACKSPACE) drivers = [ IBM('access key id', 'secret key'), Slicehost('api key'), Rackspace('username', 'api key') ] # Now do what you like with your running VMs

21 July The libcloud interface list_images() list_sizes() list_locations() create_node() list_nodes() reboot_node() Other calls for querying UUIDs, locations, setting passwords, etc.

21 July Openness in action IBM has contributed a Java implementation of libcloud: ▪ libcloud/sandbox/java/trunk/ The Java implementation includes the basic framework plus an adapter for the IBM Smart Business Cloud. ▪Other adapters are underway...

o Summary / Resources / Next steps

21 July Get Involved! Simple Cloud API ▪Download the code, build a prototype, submit requirements / new adapters / bug reports ▪simplecloud.org libcloud ▪incubator.apache.org/libcloud

21 July cloudusecases.org The Cloud Computing Use Cases group is focused on documenting customer requirements. Covers Security, SLAs, developer requirements and cloud basics. Join us!Join us!

21 July Also available in Chinese

21 July cloudusecases.org Chinese discussion group on LinkedIn: ▪linkedin.com/groups?gid= & trk=myg_ugrp_ovr Japanese discussion group and translated paper coming soon!

21 July developerWorks cloud zone Dozens of articles on cloud computing, including introductions, code samples, tutorials and podcasts. ibm.com/developerworks/cloud

21 July Summary Cloud computing will be the biggest change to IT since the rise of the Web. But to make the most of it, we have to keep things open. And everybody has to get involved to make that happen.

o Thanks! Doug Tidwell Cloud Computing Evangelist IBM