Platform as a Service lecture 2

Size: px
Start display at page:

Download "Platform as a Service lecture 2"

Transcription

1 Politecnico di Milano Platform as a Service lecture 2 Building an example application in Google App Engine Cloud patterns Elisabetta Di Nitto

2 Developing an application for Google App Engine (GAE)! Install Eclipse and GAE SDK! Create GAE project! The tool automatically creates a simple example

3 GuestbookServlet package guestbook; import java.io.ioexception; import javax.servlet.http.*; public class GuestbookServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse resp) } } throws IOException { resp.setcontenttype("text/plain"); resp.getwriter().println("hello, world");

4 Web.xml <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE web-app PUBLIC "-//Oracle Corporation//DTD Web Application 2.3//EN" " <web-app xmlns=" version="2.5"> <servlet> <servlet-name>guestbook</servlet-name> <servlet-class>guestbook.guestbookservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>guestbook</servlet-name> <url-pattern>/guestbook</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>

5 appengine-web.xml <?xml version="1.0" encoding="utf-8"?> <appengine-web-app xmlns=" appengine.google.com/ns/1.0"> <application></application> <version>1</version> </appengine-web-app>

6 Running the project! Can be run locally in the debugging environment! Can be uploaded on Google App Engine! You need to register

7 package guestbook; Modifying GuestbookServlet to use google user accounts import java.io.ioexception; import javax.servlet.http.*; import com.google.appengine.api.users.user; import com.google.appengine.api.users.userservice; import com.google.appengine.api.users.userservicefactory; public class GuestbookServlet extends HttpServlet { public void doget(httpservletrequest req, HttpServletResponse resp) throws IOException { UserService userservice = UserServiceFactory.getUserService(); User user = userservice.getcurrentuser(); } } if (user!= null) { resp.setcontenttype("text/plain"); resp.getwriter().println("hello, " + user.getnickname()); } else { resp.sendredirect(userservice.createloginurl(req.getrequesturi())); }

8 Entity creation Using the datastore Entity greeting = new Entity("Greeting", guestbookkey); greeting.setproperty("user", user); greeting.setproperty("date", date); greeting.setproperty("content", content); Datastore service instantiation DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); datastore.put(greeting); Retrieving entities from datastore Query query = new Query("Greeting, guestbookkey).addsort("date,query. SortDirection.DESCENDING); List<Entity> greetings = datastore.prepare(query).aslist(fetchoptions.builder.withlimit(5));

9 Task queues in GAE! Task are queued and their execution if performed based on their order in the queue! Note: queue does not contains data but references to code + parameters! Push semantics (default): Code (task) is pushed out of the queue and executed! Processing rate for tasks in a queue can be defined! App Engine scales computing resources according to the number of tasks in your queue! Pull semantics: allows an alternate task consumer to process tasks at a specific time! Task consumer can be either in or outside App Engine! Application needs to care about scaling of workers based on processing volume, as well as delete tasks after processing.

10 Task queue definition! queue.xml <queue-entries> <total-storage-limit>50m</total-storage-limit> <queue> <name>greetingprocessingqueue</name> <rate>1/s</rate> <max-concurrent-requests>1</max-concurrent-requests> <bucket-size>10 </bucket-size> <retry-parameters> <task-retry-limit>7</task-retry-limit> <min-backoff-seconds>10</min-backoff-seconds> <max-backoff-seconds>200</max-backoff-seconds> <max-doublings>2</max-doublings> </retry-parameters> </queue> </queue-entries>

11 Putting a task in a queue (1) Queue queue = QueueFactory.getQueue("GreetingProcessingQueue"); TaskOptions taskoptions = TaskOptions.Builder.withUrl("/processGreeting").param("userName", user.getnickname()).param("content,content).method(method.post); queue.add(taskoptions); NB: /processgreeting has to correspond to a servlet

12 Putting a task in a queue (2) In web.xml <servlet> </servlet> <servlet-name>processgreeting</servlet-name> <servlet-class>guestbook.processgreetingservlet</servlet-class> <servlet-mapping> <servlet-name>processgreeting</servlet-name> <url-pattern>/processgreeting</url-pattern> </servlet-mapping> Servlet processgreeting is activated asynchronously after the corresponding task is put in the queue

13 processgreetingservlet code (dopost) UserService userservice = UserServiceFactory.getUserService(); User user = userservice.getcurrentuser(); String guestbookname = req.getparameter("guestbookname"); Key guestbookkey = KeyFactory.createKey("Guestbook", guestbookname); String content = req.getparameter("content"); Date date = new Date(); Entity greeting = new Entity("Greeting", guestbookkey); greeting.setproperty("user", user); greeting.setproperty("date", date); greeting.setproperty("content", content);

14 processgreetingservlet code (dopost) - cont DatastoreService datastore = DatastoreServiceFactory.getDatastoreService(); datastore.put(greeting); // Create Task and push it into Task Queue Queue queue = QueueFactory.getQueue("GreetingProcessingQueue"); TaskOptions taskoptions = TaskOptions.Builder.withUrl("/processGreeting").param("userName", user.getnickname()).param("content", content).method(method.post); queue.add(taskoptions); resp.sendredirect("/guestbook.jsp?guestbookname=" + guestbookname);

15 Cloud architectural patterns! Provide suggestions on how to design, build, and manage applications that use these cloud services.! Are independent of the actual technologies and cloud services that they are using.

16 Classification of patterns! Basic Architectural Patterns! Composite Application! Loose Coupling! Stateless Component! Idempotent Component! Elasticity Patterns! Map Reduce! Elastic Component! Elastic Load Balancer! Elastic Queue! Availability Patterns! Watchdog! Update Transition! Multi-Tenancy Patterns! Single Instance Component! Single Configurable Instance Component! Multiple Instance Component

17 Composite application! Context! An application shall be composed out of multiple independent components.! Challenge! Divide at impera always useful! In a cloud environment each application service should be able to scale independently from the others! Solution! Divide the application functionality into multiple independent components that are integrated by the same means as if they were completely individual applications.

18 Composite application! The application is extendable right from the beginning! The integration of other applications is simplified.! Critical design decision: the distribution of functionality among components.! Too few components: reduced flexibility! Too many components: communication overhead

19 ! Context Loose Coupling! A componentized application or a set of applications that shall be integrated.! Challenge! Dependencies among components should be reduced. The addition, removal, failure, or update of one component should have minimal or no impact on other components.! This is especially true when low availability compute nodes are used! Solution! Decouple components by reducing the assumptions one component makes about another one when they exchange information.

20 Loose Coupling! Price: performance reduction.! Overhead to the information exchanged.! Longer communication path.! Asynchronous communication! Intermediary handles communication format transformation and message routing.! NB: in elastic clouds this can be overcome easily

21 Stateless components! Context! A componentized application subsumes components that can fail.! Challenges! Cloud resources can display low availability.! Component instances can be added and removed regularly when the demand changes.! Solution! Implement the components in a way that they do not contain any internal state, but completely rely on external persistent storage.

22 Stateless components! No data is lost if an instance fails! Multiple components have a common internal state! The scalability of the central data store becomes the major challenge! Distributed data stores

23 ! Context Idempotent component! Communication partners exchange messages via a Message Oriented Middleware (MOM)! Challenges! MOM could not guarantee the exactly-once delivery semantics! Even if it guarantees this through a reliable mechanism, we could have some legacy component unable to work with this guarantee! Solution! Implement the receiver so that it can receive a message multiple times safely,! through a filter that removes duplicates or! by adjustment of message semantics

24 Idempotent component! Filter-based solution! Messages are associated with a unique identifier that is stored upon receiving a message! duplicates are detected based on the identifier! Adjustment of message semantics! Message are modified so that they produce the same effect even when they are received multiple times! E.g., in a bank transfer app, message carries the new balance, not the quantity of which it should be modified! Out of order messages should be handled properly

25 Map reduce! Context! A cloud based application using data storage that does not support complex queries, such as NoSQL storage.! Challenge! In many cloud computing storage querying capabilities are limited. This leads to larger data sets being returned to the applications that need to be handled efficiently! To support scalability, handling of complex queries has to be distributed among multiple compute nodes.! Solution! Map the data set into smaller sets and distribute it among multiple compute nodes, each executing the complex query on the assigned data set.! Then reduce the solutions into one common data set that matches the complex query.

26 Map reduce! See lecture on Cloud storage! Often to query large amounts of weakly structured data for analysis purposes.! E.g., analysis of web service logs to determine user access statistics or! analysis of order information to find popular products.

27 Elastic component! Context! A componentized application uses multiple compute nodes provided by an elastic infrastructure.! Challenges! To benefit from the elastic infrastructure, the management process to scale-out a componentized application has to be automated.! Manual resource scaling would not support pay-per-use nor quickly changing workload! Solution! Monitor the utilization of compute nodes that host application components and automatically adjust their numbers using the provisioning functionality provided by the elastic infrastructure.

28 Elastic component! If the utilization of compute nodes exceeds a specified threshold, additional hosting components are provisioned that contain the same application component.! If the components are implemented as stateless components, the operations for adding and removal of components are significantly simplified.

29 Elastic load balancer! Context! A componentized application uses multiple compute nodes provided by an elastic infrastructure.! Challenges! As for elastic component! Service requests are a good indicator of workload and therefore shall be used as a basis for scaling decisions! Solution! Use an elastic load balancer that determines the amount of required resources based on numbers of requests and provisions the needed resources accordingly using the elastic infrastructure s API

30 Elastic load balancer! The number of requests that can be handled by a computing node is a crucial design parameter! It has to be adjusted at run time! Information about the time needed to provision new compute nodes can also be necessary to deduct effective scaling actions

31 Elastic queue! Context! A componentized application uses multiple compute nodes provided by an elastic infrastructure! Challenges! If the application components handle asynchronous requests additional optimization of the workload execution can be performed by delaying some of them! This is useful if resources costs fluctuate or the elasticity of the environment is reduced (see private or small clouds)! Solution! Use an elastic queue that is used to distribute requests among application components and that scales these components depending on the number and type of messages it contains

32 Elastic queue! The elastic queue can contain different message types that are handled by different components! It determines the number of computing nodes to be provisioned based on queue content! It takes into account environmental information, such as the overall utilization of the elastic infrastructure or resource prices! So it can choose if to provision new resources or if to delay non-critical messages

33 Watchdog! Context! An application is build upon a cloud infrastructure that offers a low availability, but it should assure a higher availability! Challenges! Sometimes, (high) availability is only expressed regarding the possibility to start new compute nodes! Thus, the application architecture needs to be adjusted to enable redundancy and fault-tolerant structures! Solution! Application architecture includes redundant compute nodes performing the same functionality! High available communication between these nodes is assured, for example by a messaging system! Compute nodes are monitored and replaced in case of failure

34 Watchdog! Messaging system and data stores have to be highly available! Each component extracts data from input queue and produces data into the output queue within a transaction! If transaction fails, data appear again in the input queue and can be taken by the next component

35 Update transition! Context! A componentized application that has to be highly available and that uses multiple compute nodes provided by an elastic infrastructure! Challenge! To reduce unavailability of application to the minimum when updates are needed! Solution! Introduce new versions while the old versions are still running! Afterwards, shutdown the old compute nodes

36 Update transition! Images for compute nodes with the new software version are created, tested, then provisioned! Potential problems:! Incompatibilities between versions! Different versions cannot handle requests at the same time

37 Single instance component! Context! A componentized application is provided to multiple customers! Challenge! Sharing application instances can save costs and imply a more efficient use of resources! This can happen is applications are configured equally for all tenants! Solution! Deploy components with equivalent configuration for all tenants only once and share it between tenants

38 Single instance component! Multiple tenants access the same application component pool! Sometimes customer requirements do not allow sharing! shared components have to be provided as multiple instances

39 ! Context Single configurable instance component! A componentized application is provided to multiple customers that may configure it! Challenges! Sharing application instances can save costs and imply a more efficient use of resources! However, customers need to apply individual configurations to shared components! E.g.: shared component is a DBMS. Each tenant has its own DB schema! Solution! Deploy one component that uses individual configurations for each tenant

40 Single configurable instance component! The component adjusts its functionality according to a configuration that is determined by the tenant accessing it! If sharing is not allowed by customer or if configurations differ too much shared components have to be provided as multiple instances

41 Multiple Instance Component! Context! A componentized application is provided to multiple customers that may configure it and deploy individual instances! Challenges! Tenants have similar needs but they cannot share the same components! Solution! Deploy individual component implementations and configurations for each tenant

42 Multiple Instance Component! Tenants can adjust components very freely! However, this pattern hinders resource sharing between tenants! Whenever possible, prefer single instance or single configurable component

43 References! Google App Engine! Tutorial gettingstarted/! Code labs Cloud computing patterns! Christoph Fehling, Frank Leymann, Jochen Rütschlin and David Schumm, Pattern-Based Development and Management of Cloud Applications, Future Internet, April 2012, pages futureinternet

Cloud Computing Platform as a Service

Cloud Computing Platform as a Service HES-SO Master of Science in Engineering Cloud Computing Platform as a Service Academic year 2015/16 Platform as a Service Professional operation of an IT infrastructure Traditional deployment Server Storage

More information

Cloud Computing Patterns & Best Practices. Ezhil Arasan Babaraj Director of R&D Labs CSS Corp, India

Cloud Computing Patterns & Best Practices. Ezhil Arasan Babaraj Director of R&D Labs CSS Corp, India Cloud Computing Patterns & Best Practices Ezhil Arasan Babaraj Director of R&D Labs CSS Corp, India About CSS Corp 100% Referenceable Customers Driving Technology Innovation and adoption Technology OpEx

More information

Google App Engine HOWTO

Google App Engine HOWTO This presentation is available for download from: http://ciurana.eu/tssjse2009 Google App Engine HOWTO Eugene Ciurana Open Source Evangelist CIME Software Labs http://ciurana.eu/contact About Eugene...

More information

Lab 10. Google App Engine. Tomas Lampo. November 11, 2010

Lab 10. Google App Engine. Tomas Lampo. November 11, 2010 Lab 10 Google App Engine Tomas Lampo November 11, 2010 Today, we will create a server that will hold information for the XML parsing app we created on lab 8. We will be using Eclipse and Java, but we will

More information

So far, Wednesday, February 03, :47 PM. So far,

So far, Wednesday, February 03, :47 PM. So far, Binding_and_Refinement Page 1 So far, 3:47 PM So far, We've created a simple persistence project with cloud references. There were lots of relationships between entities that must be fulfilled. How do

More information

Session 8. Introduction to Servlets. Semester Project

Session 8. Introduction to Servlets. Semester Project Session 8 Introduction to Servlets 1 Semester Project Reverse engineer a version of the Oracle site You will be validating form fields with Ajax calls to a server You will use multiple formats for the

More information

GAE Google App Engine

GAE Google App Engine GAE Google App Engine Prof. Dr. Marcel Graf TSM-ClComp-EN Cloud Computing (C) 2017 HEIG-VD Introduction Google App Engine is a PaaS for building scalable web applications and mobile backends. Makes it

More information

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services.

Course Outline. Lesson 2, Azure Portals, describes the two current portals that are available for managing Azure subscriptions and services. Course Outline Module 1: Overview of the Microsoft Azure Platform Microsoft Azure provides a collection of services that you can use as building blocks for your cloud applications. Lesson 1, Azure Services,

More information

Session 9. Introduction to Servlets. Lecture Objectives

Session 9. Introduction to Servlets. Lecture Objectives Session 9 Introduction to Servlets Lecture Objectives Understand the foundations for client/server Web interactions Understand the servlet life cycle 2 10/11/2018 1 Reading & Reference Reading Use the

More information

Universität Stuttgart

Universität Stuttgart Universität Stuttgart Fakultät Informatik, Elektrotechnik und Informationstechnik Processes for Human Integration in Automated Cloud Application Management David Schumm 1, Christoph Fehling 1, Dimka Karastoyanova

More information

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev

Transactum Business Process Manager with High-Performance Elastic Scaling. November 2011 Ivan Klianev Transactum Business Process Manager with High-Performance Elastic Scaling November 2011 Ivan Klianev Transactum BPM serves three primary objectives: To make it possible for developers unfamiliar with distributed

More information

Developing Microsoft Azure Solutions: Course Agenda

Developing Microsoft Azure Solutions: Course Agenda Developing Microsoft Azure Solutions: 70-532 Course Agenda Module 1: Overview of the Microsoft Azure Platform Microsoft Azure provides a collection of services that you can use as building blocks for your

More information

Large Scale Computing Infrastructures

Large Scale Computing Infrastructures GC3: Grid Computing Competence Center Large Scale Computing Infrastructures Lecture 2: Cloud technologies Sergio Maffioletti GC3: Grid Computing Competence Center, University

More information

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led

Course Outline. Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led Developing Microsoft Azure Solutions Course 20532C: 4 days Instructor Led About this course This course is intended for students who have experience building ASP.NET and C# applications. Students will

More information

WINDOWS AZURE QUEUE. Table of Contents. 1 Introduction

WINDOWS AZURE QUEUE. Table of Contents. 1 Introduction WINDOWS AZURE QUEUE December, 2008 Table of Contents 1 Introduction... 1 2 Build Cloud Applications with Azure Queue... 2 3 Data Model... 5 4 Queue REST Interface... 6 5 Queue Usage Example... 7 5.1 A

More information

Developing Solutions for Google Cloud Platform (CPD200) Course Agenda

Developing Solutions for Google Cloud Platform (CPD200) Course Agenda Developing Solutions for Google Cloud Platform (CPD200) Course Agenda Module 1: Developing Solutions for Google Cloud Platform Identify the advantages of Google Cloud Platform for solution development

More information

INTRODUCTION TO GOOGLE APP ENGINE

INTRODUCTION TO GOOGLE APP ENGINE INTRODUCTION TO GOOGLE APP ENGINE Sam Guinea guinea@elet.polimi.it http://servicetechnologies.wordpress.com/exercises/ A special thanks to my friends at GoCloud Outline General Architecture Software as

More information

Techno Expert Solutions

Techno Expert Solutions Course Content of Microsoft Windows Azzure Developer: Course Outline Module 1: Overview of the Microsoft Azure Platform Microsoft Azure provides a collection of services that you can use as building blocks

More information

Large-Scale Web Applications

Large-Scale Web Applications Large-Scale Web Applications Mendel Rosenblum Web Application Architecture Web Browser Web Server / Application server Storage System HTTP Internet CS142 Lecture Notes - Intro LAN 2 Large-Scale: Scale-Out

More information

Developing Microsoft Azure Solutions (MS 20532)

Developing Microsoft Azure Solutions (MS 20532) Developing Microsoft Azure Solutions (MS 20532) COURSE OVERVIEW: This course is intended for students who have experience building ASP.NET and C# applications. Students will also have experience with the

More information

Servlets by Example. Joe Howse 7 June 2011

Servlets by Example. Joe Howse 7 June 2011 Servlets by Example Joe Howse 7 June 2011 What is a servlet? A servlet is a Java application that receives HTTP requests as input and generates HTTP responses as output. As the name implies, it runs on

More information

20532D: Developing Microsoft Azure Solutions

20532D: Developing Microsoft Azure Solutions 20532D: Developing Microsoft Azure Solutions Course Details Course Code: Duration: Notes: 20532D 5 days Elements of this syllabus are subject to change. About this course This course is intended for students

More information

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS

ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS ARCHITECTING WEB APPLICATIONS FOR THE CLOUD: DESIGN PRINCIPLES AND PRACTICAL GUIDANCE FOR AWS Dr Adnene Guabtni, Senior Research Scientist, NICTA/Data61, CSIRO Adnene.Guabtni@csiro.au EC2 S3 ELB RDS AMI

More information

Testing Your Application on / for Google App Engine

Testing Your Application on / for Google App Engine Testing Your Application on / for Google App Engine Narinder Kumar Inphina Technologies 1 Agenda Problem Context App Engine Testing Framework Local DataStore Testing Authentication API Testing Memcache

More information

Introduction to Servlets. After which you will doget it

Introduction to Servlets. After which you will doget it Introduction to Servlets After which you will doget it Servlet technology A Java servlet is a Java program that extends the capabilities of a server. Although servlets can respond to any types of requests,

More information

Cloud Computing Architecture

Cloud Computing Architecture Cloud Computing Architecture 1 Contents Workload distribution architecture Dynamic scalability architecture Cloud bursting architecture Elastic disk provisioning architecture Redundant storage architecture

More information

VMware Join the Virtual Revolution! Brian McNeil VMware National Partner Business Manager

VMware Join the Virtual Revolution! Brian McNeil VMware National Partner Business Manager VMware Join the Virtual Revolution! Brian McNeil VMware National Partner Business Manager 1 VMware By the Numbers Year Founded Employees R&D Engineers with Advanced Degrees Technology Partners Channel

More information

RELIABILITY & AVAILABILITY IN THE CLOUD

RELIABILITY & AVAILABILITY IN THE CLOUD RELIABILITY & AVAILABILITY IN THE CLOUD A TWILIO PERSPECTIVE twilio.com To the leaders and engineers at Twilio, the cloud represents the promise of reliable, scalable infrastructure at a price that directly

More information

DISTRIBUTED SYSTEMS [COMP9243] Lecture 8a: Cloud Computing WHAT IS CLOUD COMPUTING? 2. Slide 3. Slide 1. Why is it called Cloud?

DISTRIBUTED SYSTEMS [COMP9243] Lecture 8a: Cloud Computing WHAT IS CLOUD COMPUTING? 2. Slide 3. Slide 1. Why is it called Cloud? DISTRIBUTED SYSTEMS [COMP9243] Lecture 8a: Cloud Computing Slide 1 Slide 3 ➀ What is Cloud Computing? ➁ X as a Service ➂ Key Challenges ➃ Developing for the Cloud Why is it called Cloud? services provided

More information

Middleware and Web Services Lecture 3: Application Server

Middleware and Web Services Lecture 3: Application Server Middleware and Web Services Lecture : Application Server doc. Ing. Tomáš Vitvar, Ph.D. tomas@vitvar.com @TomasVitvar http://vitvar.com Czech Technical University in Prague Faculty of Information Technologies

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

An Introduction to Software Architecture. David Garlan & Mary Shaw 94

An Introduction to Software Architecture. David Garlan & Mary Shaw 94 An Introduction to Software Architecture David Garlan & Mary Shaw 94 Motivation Motivation An increase in (system) size and complexity structural issues communication (type, protocol) synchronization data

More information

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies

CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies CPET 581 Cloud Computing: Technologies and Enterprise IT Strategies Lecture 8 Cloud Programming & Software Environments: High Performance Computing & AWS Services Part 2 of 2 Spring 2015 A Specialty Course

More information

Google Cloud Platform for Systems Operations Professionals (CPO200) Course Agenda

Google Cloud Platform for Systems Operations Professionals (CPO200) Course Agenda Google Cloud Platform for Systems Operations Professionals (CPO200) Course Agenda Module 1: Google Cloud Platform Projects Identify project resources and quotas Explain the purpose of Google Cloud Resource

More information

White Paper. Major Performance Tuning Considerations for Weblogic Server

White Paper. Major Performance Tuning Considerations for Weblogic Server White Paper Major Performance Tuning Considerations for Weblogic Server Table of Contents Introduction and Background Information... 2 Understanding the Performance Objectives... 3 Measuring your Performance

More information

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions

Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions Chapter 1: Solving Integration Problems Using Patterns 2 Introduction The Need for Integration Integration Challenges

More information

Developing Microsoft Azure Solutions

Developing Microsoft Azure Solutions Course 20532C: Developing Microsoft Azure Solutions Course details Course Outline Module 1: OVERVIEW OF THE MICROSOFT AZURE PLATFORM This module reviews the services available in the Azure platform and

More information

Cloud Offerings: A Systematic Review

Cloud Offerings: A Systematic Review Cloud Offerings: A Systematic Review Dr. Reema Ajmera Asst. Professor School of Computer Sciences and Applications, JECRC University, Jaipur, India Rudra Gautam Application Architect Vertex Business Services

More information

Developing with the Cloud

Developing with the Cloud Developing with the Cloud Aben Kovoor Developer & Platform Group Microsoft Corporation Middle East & Africa Developer & Platform Group SESSION GOALS A brief overview of the history and our customer challenges

More information

The DataNucleus REST API provides a RESTful interface to persist JSON objects to the datastore. All entities are accessed, queried and stored as

The DataNucleus REST API provides a RESTful interface to persist JSON objects to the datastore. All entities are accessed, queried and stored as REST API Guide Table of Contents Servlet Configuration....................................................................... 2 Libraries.................................................................................

More information

Lab session Google Application Engine - GAE. Navid Nikaein

Lab session Google Application Engine - GAE. Navid Nikaein Lab session Google Application Engine - GAE Navid Nikaein Available projects Project Company contact Mobile Financial Services Innovation TIC Vasco Mendès Bluetooth low energy Application on Smart Phone

More information

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko

Containers, Serverless and Functions in a nutshell. Eugene Fedorenko Containers, Serverless and Functions in a nutshell Eugene Fedorenko About me Eugene Fedorenko Senior Architect Flexagon adfpractice-fedor.blogspot.com @fisbudo Agenda Containers Microservices Docker Kubernetes

More information

Cloud Computing and Service-Oriented Architectures

Cloud Computing and Service-Oriented Architectures Material and some slide content from: - Atif Kahn SERVICES COMPONENTS OBJECTS MODULES Cloud Computing and Service-Oriented Architectures Reid Holmes Lecture 20 - Tuesday November 23 2010. SOA Service-oriented

More information

Western Michigan University

Western Michigan University CS-6030 Cloud compu;ng Google App engine Sepideh Mohammadi Summer II 2017 Western Michigan University content Categories of cloud compu;ng Google cloud plaborm Google App Engine Storage technologies Datastore

More information

AWS Lambda: Event-driven Code in the Cloud

AWS Lambda: Event-driven Code in the Cloud AWS Lambda: Event-driven Code in the Cloud Dean Bryen, Solutions Architect AWS Andrew Wheat, Senior Software Engineer - BBC April 15, 2015 London, UK 2015, Amazon Web Services, Inc. or its affiliates.

More information

Getting Started with Amazon EC2 and Amazon SQS

Getting Started with Amazon EC2 and Amazon SQS Getting Started with Amazon EC2 and Amazon SQS Building Scalable, Reliable Amazon EC2 Applications with Amazon SQS Overview Amazon Elastic Compute Cloud (EC2) is a web service that provides resizable compute

More information

for Multi-Services Gateways

for Multi-Services Gateways KURA an OSGi-basedApplication Framework for Multi-Services Gateways Introduction & Technical Overview Pierre Pitiot Grenoble 19 février 2014 Multi-Service Gateway Approach ESF / Increasing Value / Minimizing

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

High Availability/ Clustering with Zend Platform

High Availability/ Clustering with Zend Platform High Availability/ Clustering with Zend Platform David Goulden Product Manager goulden@zend.com Copyright 2007, Zend Technologies Inc. In this Webcast Introduction to Web application scalability using

More information

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK Term 1, 2016/17 IERG 4080 Building Scalable Internet-based Services Lecture 7 Asynchronous Tasks and Message Queues Lecturer: Albert C. M. Au Yeung 20 th & 21

More information

Developing Microsoft Azure Solutions (70-532) Syllabus

Developing Microsoft Azure Solutions (70-532) Syllabus Developing Microsoft Azure Solutions (70-532) Syllabus Cloud Computing Introduction What is Cloud Computing Cloud Characteristics Cloud Computing Service Models Deployment Models in Cloud Computing Advantages

More information

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none.

RFC 003 Event Service October Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none. Ubiquitous Computing Bhaskar Borthakur University of Illinois at Urbana-Champaign Software Research Group Computer Science Department October 2001 Request for Comments: 0003 Obsoletes: none The Event Service

More information

Distributed KIDS Labs 1

Distributed KIDS Labs 1 Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database

More information

CS 112 Introduction to Programming

CS 112 Introduction to Programming CS 112 Introduction to Programming Web Programming: Backend (server side) Programming with Servlet, JSP Yang (Richard) Yang Computer Science Department Yale University 308A Watson, Phone: 432-6400 Email:

More information

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE

Seminar report Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE A Seminar report On Google App Engine Submitted in partial fulfillment of the requirement for the award of degree Of CSE SUBMITTED TO: SUBMITTED BY: www.studymafia.org www.studymafia.org Acknowledgement

More information

Servlet for Json or CSV (or XML) A servlet serving either Json or CSV (or XML) based on GET parameter - This version uses org.json

Servlet for Json or CSV (or XML) A servlet serving either Json or CSV (or XML) based on GET parameter - This version uses org.json Servlet for Json or CSV (or XML) A servlet serving either Json or CSV (or XML) based on GET parameter - This version uses org.json A Servlet used as an API for data Let s say we want to write a Servlet

More information

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware

MOM MESSAGE ORIENTED MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS. MOM Message Oriented Middleware MOM MESSAGE ORIENTED MOM Message Oriented Middleware MIDDLEWARE OVERVIEW OF MESSAGE ORIENTED MIDDLEWARE TECHNOLOGIES AND CONCEPTS Peter R. Egli 1/25 Contents 1. Synchronous versus asynchronous interaction

More information

3. The pool should be added now. You can start Weblogic server and see if there s any error message.

3. The pool should be added now. You can start Weblogic server and see if there s any error message. CS 342 Software Engineering Lab: Weblogic server (w/ database pools) setup, Servlet, XMLC warming up Professor: David Wolber (wolber@usfca.edu), TA: Samson Yingfeng Su (ysu@cs.usfca.edu) Setup Weblogic

More information

DS 2009: middleware. David Evans

DS 2009: middleware. David Evans DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between

More information

Groovy and Grails in Google App Engine

Groovy and Grails in Google App Engine Groovy and Grails in Google App Engine Benefit from a Java-like dynamic language to be more productive on App Engine Guillaume Laforge Head of Groovy Development Guillaume Laforge Groovy Project Manager

More information

Developing Microsoft Azure Solutions

Developing Microsoft Azure Solutions Developing Microsoft Azure Solutions Duration: 5 Days Course Code: M20532 Overview: This course is intended for students who have experience building web applications. Students should also have experience

More information

Connecting your Microservices and Cloud Services with Oracle Integration CON7348

Connecting your Microservices and Cloud Services with Oracle Integration CON7348 Connecting your Microservices and Cloud Services with Oracle Integration CON7348 Robert Wunderlich Sr. Principal Product Manager September 19, 2016 Copyright 2016, Oracle and/or its affiliates. All rights

More information

A RESTful Java Framework for Asynchronous High-Speed Ingest

A RESTful Java Framework for Asynchronous High-Speed Ingest A RESTful Java Framework for Asynchronous High-Speed Ingest Pablo Silberkasten Jean De Lavarene Kuassi Mensah JDBC Product Development October 5, 2017 3 Safe Harbor Statement The following is intended

More information

Today: Distributed Middleware. Middleware

Today: Distributed Middleware. Middleware Today: Distributed Middleware Middleware concepts Case study: CORBA Lecture 24, page 1 Middleware Software layer between application and the OS Provides useful services to the application Abstracts out

More information

Advanced Internet Technology Lab # 4 Servlets

Advanced Internet Technology Lab # 4 Servlets Faculty of Engineering Computer Engineering Department Islamic University of Gaza 2011 Advanced Internet Technology Lab # 4 Servlets Eng. Doaa Abu Jabal Advanced Internet Technology Lab # 4 Servlets Objective:

More information

Distributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi

Distributed Systems. Characteristics of Distributed Systems. Lecture Notes 1 Basic Concepts. Operating Systems. Anand Tripathi 1 Lecture Notes 1 Basic Concepts Anand Tripathi CSci 8980 Operating Systems Anand Tripathi CSci 8980 1 Distributed Systems A set of computers (hosts or nodes) connected through a communication network.

More information

Distributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs

Distributed Systems. Characteristics of Distributed Systems. Characteristics of Distributed Systems. Goals in Distributed System Designs 1 Anand Tripathi CSci 8980 Operating Systems Lecture Notes 1 Basic Concepts Distributed Systems A set of computers (hosts or nodes) connected through a communication network. Nodes may have different speeds

More information

Azure Development Course

Azure Development Course Azure Development Course About This Course This section provides a brief description of the course, audience, suggested prerequisites, and course objectives. COURSE DESCRIPTION This course is intended

More information

Cloud Computing introduction

Cloud Computing introduction Cloud and Datacenter Networking Università degli Studi di Napoli Federico II Dipartimento di Ingegneria Elettrica e delle Tecnologie dell Informazione DIETI Laurea Magistrale in Ingegneria Informatica

More information

Google GCP-Solution Architects Exam

Google GCP-Solution Architects Exam Volume: 90 Questions Question: 1 Regarding memcache which of the options is an ideal use case? A. Caching data that isn't accessed often B. Caching data that is written more than it's read C. Caching important

More information

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc.

When the Servlet Model Doesn't Serve. Gary Murphy Hilbert Computing, Inc. When the Servlet Model Doesn't Serve Gary Murphy Hilbert Computing, Inc. glm@hilbertinc.com Motivation? Many decision makers and programmers equate Java with servlets? Servlets are appropriate for a class

More information

Introduction to Cloud Computing. [thoughtsoncloud.com] 1

Introduction to Cloud Computing. [thoughtsoncloud.com] 1 Introduction to Cloud Computing [thoughtsoncloud.com] 1 Outline What is Cloud Computing? Characteristics of the Cloud Computing model Evolution of Cloud Computing Cloud Computing Architecture Cloud Services:

More information

Developing a Mobile Web-based Application with Oracle9i Lite Web-to-Go

Developing a Mobile Web-based Application with Oracle9i Lite Web-to-Go Developing a Mobile Web-based Application with Oracle9i Lite Web-to-Go Christian Antognini Trivadis AG Zürich, Switzerland Introduction More and more companies need to provide their employees with full

More information

The Gearman Cookbook OSCON Eric Day Senior Software Rackspace

The Gearman Cookbook OSCON Eric Day  Senior Software Rackspace The Gearman Cookbook OSCON 2010 Eric Day http://oddments.org/ Senior Software Engineer @ Rackspace Thanks for being here! OSCON 2010 The Gearman Cookbook 2 Ask questions! Grab a mic for long questions.

More information

Deep Dive Amazon Kinesis. Ian Meyers, Principal Solution Architect - Amazon Web Services

Deep Dive Amazon Kinesis. Ian Meyers, Principal Solution Architect - Amazon Web Services Deep Dive Amazon Kinesis Ian Meyers, Principal Solution Architect - Amazon Web Services Analytics Deployment & Administration App Services Analytics Compute Storage Database Networking AWS Global Infrastructure

More information

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps.

This tutorial will teach you how to use Java Servlets to develop your web based applications in simple and easy steps. About the Tutorial Servlets provide a component-based, platform-independent method for building Webbased applications, without the performance limitations of CGI programs. Servlets have access to the entire

More information

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use

More information

ServletConfig Interface

ServletConfig Interface ServletConfig Interface Author : Rajat Categories : Advance Java An object of ServletConfig is created by the web container for each servlet. This object can be used to get configuration information from

More information

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master

1Z Oracle. Java Enterprise Edition 5 Enterprise Architect Certified Master Oracle 1Z0-864 Java Enterprise Edition 5 Enterprise Architect Certified Master Download Full Version : http://killexams.com/pass4sure/exam-detail/1z0-864 Answer: A, C QUESTION: 226 Your company is bidding

More information

Advances in Data Management - NoSQL, NewSQL and Big Data A.Poulovassilis

Advances in Data Management - NoSQL, NewSQL and Big Data A.Poulovassilis Advances in Data Management - NoSQL, NewSQL and Big Data A.Poulovassilis 1 NoSQL So-called NoSQL systems offer reduced functionalities compared to traditional Relational DBMSs, with the aim of achieving

More information

Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack

Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack Course 10995: Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack Page 1 of 1 Configuring and Operating a Hybrid Cloud with Microsoft Azure Stack Course 10995: 4 days; Instructor-Led Introduction

More information

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led

Course Outline. Introduction to Azure for Developers Course 10978A: 5 days Instructor Led Introduction to Azure for Developers Course 10978A: 5 days Instructor Led About this course This course offers students the opportunity to take an existing ASP.NET MVC application and expand its functionality

More information

Getting started with Winstone. Minimal servlet container

Getting started with Winstone. Minimal servlet container Getting started with Winstone Minimal servlet container What is Winstone? Winstone is a small servlet container, consisting of a single JAR file. You can run Winstone on your computer using Java, and get

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 9 Asynchronous Tasks & Message Queues Lecturer:

More information

Enroll Now to Take online Course Contact: Demo video By Chandra sir

Enroll Now to Take online Course   Contact: Demo video By Chandra sir Enroll Now to Take online Course www.vlrtraining.in/register-for-aws Contact:9059868766 9985269518 Demo video By Chandra sir www.youtube.com/watch?v=8pu1who2j_k Chandra sir Class 01 https://www.youtube.com/watch?v=fccgwstm-cc

More information

Software as a Service (SaaS) Platform as a Service (PaaS) Infrastructure as a Service (IaaS)

Software as a Service (SaaS) Platform as a Service (PaaS) Infrastructure as a Service (IaaS) Cloud computing is the present fast developing purpose built architecture created to support computer users. The cloud addresses three main areas of operation: Software as a Service (SaaS) Platform as

More information

WHY COMPOSABLE INFRASTRUCTURE INSTEAD OF HYPERCONVERGENCE

WHY COMPOSABLE INFRASTRUCTURE INSTEAD OF HYPERCONVERGENCE WHY COMPOSABLE INFRASTRUCTURE INSTEAD OF HYPERCONVERGENCE WHO WE ARE GOAL: Composable Infrastruture HEADQUARTERS: Toronto - Canada COMPANY FOCUS: Composable infrastructure True Software Defined Datacenter

More information

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature

INTRODUCTION TO SERVLETS AND WEB CONTAINERS. Actions in Accord with All the Laws of Nature INTRODUCTION TO SERVLETS AND WEB CONTAINERS Actions in Accord with All the Laws of Nature Web server vs web container Most commercial web applications use Apache proven architecture and free license. Tomcat

More information

Reactive Microservices Architecture on AWS

Reactive Microservices Architecture on AWS Reactive Microservices Architecture on AWS Sascha Möllering Solutions Architect, @sascha242, Amazon Web Services Germany GmbH Why are we here today? https://secure.flickr.com/photos/mgifford/4525333972

More information

Model-Driven Geo-Elasticity In Database Clouds

Model-Driven Geo-Elasticity In Database Clouds Model-Driven Geo-Elasticity In Database Clouds Tian Guo, Prashant Shenoy College of Information and Computer Sciences University of Massachusetts, Amherst This work is supported by NSF grant 1345300, 1229059

More information

Event Streams using Apache Kafka

Event Streams using Apache Kafka Event Streams using Apache Kafka And how it relates to IBM MQ Andrew Schofield Chief Architect, Event Streams STSM, IBM Messaging, Hursley Park Event-driven systems deliver more engaging customer experiences

More information

2. What is Google App Engine. Overview Google App Engine (GAE) is a Platform as a Service (PaaS) cloud computing platform for developing and hosting web applications in Google-managed data centers. Google

More information

Flexible Process-based Applications in Hybrid Clouds

Flexible Process-based Applications in Hybrid Clouds Institute of Architecture of Systems Flexible Process-based s in Hybrid Clouds Christoph Fehling 1, Ralf Konrad 2, Frank Leymann 1, Ralph Mietzner 1, Michael Pauly 2, David Schumm 1 1 Institute of Architecture

More information

3C05 - Advanced Software Engineering Thursday, April 29, 2004

3C05 - Advanced Software Engineering Thursday, April 29, 2004 Distributed Software Architecture Using Middleware Avtar Raikmo Overview Middleware What is middleware? Why do we need middleware? Types of middleware Distributed Software Architecture Business Object

More information

Developing Enterprise Cloud Solutions with Azure

Developing Enterprise Cloud Solutions with Azure Developing Enterprise Cloud Solutions with Azure Java Focused 5 Day Course AUDIENCE FORMAT Developers and Software Architects Instructor-led with hands-on labs LEVEL 300 COURSE DESCRIPTION This course

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]

More information

AWS Solution Architecture Patterns

AWS Solution Architecture Patterns AWS Solution Architecture Patterns Objectives Key objectives of this chapter AWS reference architecture catalog Overview of some AWS solution architecture patterns 1.1 AWS Architecture Center The AWS Architecture

More information

Architectural challenges for building a low latency, scalable multi-tenant data warehouse

Architectural challenges for building a low latency, scalable multi-tenant data warehouse Architectural challenges for building a low latency, scalable multi-tenant data warehouse Mataprasad Agrawal Solutions Architect, Services CTO 2017 Persistent Systems Ltd. All rights reserved. Our analytics

More information

High Availability Distributed (Micro-)services. Clemens Vasters Microsoft

High Availability Distributed (Micro-)services. Clemens Vasters Microsoft High Availability Distributed (Micro-)services Clemens Vasters Microsoft Azure @clemensv ice Microsoft Azure services I work(-ed) on. Notification Hubs Service Bus Event Hubs Event Grid IoT Hub Relay Mobile

More information

Connecting the RISC Client to non-javascriptinterfaces

Connecting the RISC Client to non-javascriptinterfaces Connecting the RISC Client to non-javascriptinterfaces Motivation In industry scenarios there is the necessity to connect the RISC client to client side subdevices or interfaces. Examples: serial / USB

More information