distributed systems 2015 – assignment 2€¦ · resources: identified by uris ! state and...

23
| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015 Leyna Sadamori [email protected] Distributed Systems 2015 – Assignment 2 1

Upload: others

Post on 05-Aug-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

Leyna Sadamori [email protected]

Distributed Systems 2015 – Assignment 2

1

Page 2: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015 2

Web Services

Page 3: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Quick walkthrough of Web application architectures §  WS-* Web Services §  Representational State Transfer (REST)

§  Exercise 2

§  Overview §  Tasks §  Hints & Anchors

Overview

3

Page 4: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Definition:

“A Web service is an application component accessible over open protocols”

Web Services

4

Server Client

Offer Services Invoke calls

Page 5: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

Web Services in a Nutshell

5

Lookup-Service

UDDI

WSDL WSDL

SOAP

lookup

request/reply

publish

Server Client

Service-Oriented Architecture (SOA)

Page 6: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  For the exercise, we let the service publish its WSDL without going through a UDDI...

Web Services in a Nutshell

6

SOAP

lookup

request/reply

WSDL

Server Client

Page 7: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  WSDL: Web Services Description Language describes:

§  What a Web service can do §  Where it resides §  How to invoke it

§  Explore WSDL

§  Example: http://vslab.inf.ethz.ch:8080/SunSPOTWebServices/SayHello?Tester

Types, Messages, PortType, Binding, Service, Port, Definition

Web Services - WSDL Overview

7

Page 8: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

[http://www.innoq.com/soa/ws-standards/poster/innoQ%20WS-Standards%20Poster%202007-02.pdf] 8

Page 9: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Most IDEs provide code generators

§  Server-side §  Java annotations §  Automatic generation of WSDL file

§  Client-side §  Parsing of WSDL file §  Automatic generation of client stubs

Programming WS-* Clients

9

NetBeans Example

Page 10: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  REST is a lightweight architectural style for designing networked applications

§  HTTP 1.1 implements the REST architectural style §  It uses HTTP for CRUD (Create/Read/Update/Delete) operations

§  Platform independent §  Language independent §  Open standard-based

REST: Representational State Transfer

10 10

Page 11: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Resources: Identified by URIs §  State and functionality are represented using resources

§  A web of resources: Resources are linked §  Similar to the interconnection of Web pages in the WWW §  When relevant, resources should link to additional information

§  Stateless communication protocol: §  Each new request must carry all the information required to

complete it

REST Architecture

11

e.g., a sensor node: http://vslab.inf.ethz.ch:8081/sunspots/Spot1

[http://code.google.com/p/hcsfsp/]

Page 12: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

RESTful Server Structure

12

ResourceHandler

Sensor

ResourceHandler

Database

… Resource Handler

HTTP Server

/sensors/Spot1 à ResourceHandlerSpot1 /db/credits/Account1 à ResourceHandlerAccount1 … URI à ResourceHandler

Request Response

Request Response

Resource-Oriented Architecture (ROA)

Page 13: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Objectives: §  Learn to develop distributed Web applications §  Use the two different paradigms seen in the lecture:

§  Representational State Transfer (REST) §  Web Services (WS-*)

§  Dates: §  Exercise begins: Now (October 9, 2015) §  Exercise is due: 9:00 am, October 19, 2015

Assignment 2 – Overview

13

[http://code.google.com/p/hcsfsp/]

Page 14: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Access Sun SPOTs through WS-* and REST §  Sun SPOTs: Wireless sensor nodes (temp, acc, light,...)

Assignment 2 – System Setup

14

[http://code.google.com/p/hcsfsp/]

Mobile Phone

2. SOAP Request

Basestation2:

WS-* APP Server

Spot4 Spot3

WS-* Spots

1. HTTP Request

Basestation1: Web Server

Spot2 Spot1

RESTful Spots

WS HTTP VSLAB Server

Page 15: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

Experimenting with RESTful Web Services (2P) §  Create an HTTP request

a)  “manually” (i.e., without the use of an HTTP library) b)  using org.apache.http.*

§  Use HTTP content negotiation to get machine-readable data §  Connect to a Sun SPOT and retrieve the temperature value §  Hint: Use AsyncTask to do network operations (be careful with

accessing UI Elements!) §  Hint: Use the HTTP header “Connection: close” to avoid blocking

behavior

Assignment 2 – Task 1

15

Page 16: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

Experimenting with WS-* Web Services (2P) §  Explore WSDL, create SOAP requests §  Connect to a Sun SPOT and retrieve the temperature value. §  Hint: Apply hints from Task 1 §  Hint: Use the Android verion of the kSOAP2 library

§  http://code.google.com/p/ksoap2-android/

§  Hint: Important classes are: SoapObject, SoapSerializationEnvelope

§  Hint: You do not have to implement the decoding of the WSDL file

Assignment 2 – Task 2

16

Page 17: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Interfaces for Sensors §  Separate UI from logic §  Increase of code reuse §  Each subtask is a new class that implements the Sensor interface

Code Skeleton

17

Server HTT

P C

lient

Sensor Temperature Luminance …

Request Update

Response onUpdate

Act

ivity

implements SensosListener

informs all registered SensosListeners

Page 18: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

Your Phone as a Server (4P) §  Implement a Web server on your phone that allows to access the

sensors and actuators of the phone §  Hint: Use a Service to implement the server §  Hint: Use Intents and BroadcastReceiver, or Bound Services, to

communicate between Service and Activity §  Hint: When you are using an existing WiFi network, make sure the

ports you are using are not blocked!

Assignment 2 – Task 3

18

Hardware Resource HTTP Server

Page 19: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  See exercise sheet for details §  code.zip §  answers.pdf

§  Filesize limit §  Submit the .apk file with your code

<project>/app/build/outputs/apk/app-debug.apk

§  Delete the build folder from your application <project>/app/build

Deliverables

19

Page 20: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Internet Media Types §  text/html, text/xml §  application/xml, application/json

§  ROA – Resource-Oriented Architecture §  REST – Representational State Transfer

§  SOA – Service-Oriented Architecture §  SOAP – Simple Object Access Protocol §  WSDL – Web Services Description Language

Assignment 2 Hints - Relevant Terminology

20

Page 21: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  http://www.infoq.com/articles/rest-introduction

§  RESTful Web Services (Leonard Richardson und Sam Ruby) §  Available at D-INFK library

§  Apache HTTP library (simplest sample code alive... J) §  http://svn.apache.org/repos/asf/httpcomponents/httpclient/trunk/httpclient/

src/examples/org/apache/http/examples/client/ClientWithResponseHandler.java

REST Hints

21

Page 22: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Firefox extensions §  HttpRequester §  Poster §  RESTClient §  SOA Client

§  Chrome extensions §  Simple REST client

§  Wireshark

Noteworthy Tools

22

Page 23: Distributed Systems 2015 – Assignment 2€¦ · Resources: Identified by URIs ! State and functionality are represented using resources ! A web of resources: Resources are linked

| | Distributed Sysyems – Introduction Assignment 2 Leyna Sadamori October 9, 2015

§  Android Debug Bridge (adb tool) §  You can find the adb tool in <sdk>/platform-tools/ §  http://developer.android.com/tools/help/adb.html

§  Android Emulator §  http://developer.android.com/tools/devices/emulator.html

§  Setting up a port forwarding §  adb forward tcp:port1 tcp:port2 §  forwards the local port port1 on the machine to port2 on the emulator. §  Example: adb forward tcp:12345 tcp:8088

§  JUnit Testing §  http://tools.android.com/tech-docs/unit-testing-support

Android SDK Tools

23