IEMS 5722 Mobile Network Programming and Distributed Server Architecture

Size: px
Start display at page:

Download "IEMS 5722 Mobile Network Programming and Distributed Server Architecture"

Transcription

1 Department of Information Engineering, CUHK MScIE 2 nd Semester, 2016/17 IEMS 5722 Mobile Network Programming and Distributed Server Architecture Lecture 10 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au Yeung 16 th March, 2017

2 Web Sockets 2

3 Limitations of HTTP All of the examples we have gone through in network programming so far can be regarded as using the pull method Communication is always initiated by the client Client pulls data or services from the server when necessary (e.g. when the user launches the app, or presses a button) 1 Client requests to be served by the server Server responds with the data or service requested by the client 2 Application Server (E.g. Web server, server, translation server) 3

4 Limitation of HTTP HTTP is a pull-based protocol Users browse the Web and actively decide which Website to browse, which link to follow A effective and economical way (every user chooses what he needs) However, if some resources are regularly requested, the pull model can put heavy load on the server 4

5 Implementing Push The World Wide Web, and in particular the HTTP protocol, is designed for pull, and additional engineering is required to implement push on the Web Some ways to emulate push on the Web Polling (Periodic pull) The Comet model BOSH WebSockets 5

6 WebSockets A protocol providing full-duplex communications channels between two computers over a TCP connection Designed to be implemented in Web browsers and Web servers HTTP is half-duplex: only one side can send data at a time, like walkie-talkie Communications are done over TCP port 80 (can be used in secured computing environments) Supported in Chrome 14, Safari 6, Firefox 6, IE 10 or later versions Reference: 6

7 WebSockets A persistent connections between a Web browser (or a mobile app) and a server Both sides can send out data to the other side at any time Why WebSocket? Lower latency (avoid TCP handshaking) Smaller overhead (only 2 bytes per message) Less unnecessary communication (data is only sent whenever needed) 7

8 WebSockets WebSocket is part of the HTML5 standard Supported in latest versions of major Web browsers Simple API in JavaScript Libraries also available on ios and Android var host = 'ws://localhost:8000/example'; var socket = new WebSocket(host); socket.onopen = function() { console.log('socket opened'); socket.send('hello server!'); } socket.onmessage = function(msg) { console.log(msg); } socket.onclose = function() { console.log('socket closed'); } Try the game at 8

9 WebSockets Particularly useful when you would like to develop applications such as: Real-time multiplayer games Chat rooms Real-time news feed Collaborative apps (e.g. consider something like Google Documents) Live commenting 9

10 WebSockets Design principles of WebSockets An additional layer on top of TCP Enable bi-directional communication between client and servers Support low-latency apps without HTTP overhead Web origin-based security model for browsers Support multiple server-side endpoints 10

11 WebSockets How does WebSockets work? 1. WebSocket handshake Client sends a regular HTTP request to the server with an upgrade header field GET ws://websocket.example.com/ HTTP/1.1 Origin: Connection: Upgrade Host: websocket.example.com Upgrade: websocket WebSockets uses the ws scheme (or the wss scheme for secure connections, equivalent to HTTPS) If server supports WebSockets, it sends back a response with the upgrade header field HTTP/ WebSocket Protocol Handshake Date: Wed, 16 Oct :07:34 GMT Connection: Upgrade Upgrade: WebSocket 11

12 WebSockets Once the handshake is completed: The initial HTTP connection will be replaced by the WebSockets connection (using the same underlying TCP/IP connection) Both the client and the server can now start sending data to the other side Data are transferred in frames Messages (payload) will be reconstructed once all frames are received Because of the established WebSockets connection, much less overhead will be incurred on the message being transmitted Check whether a browser supports WebSockets: 12

13 socket.io 13

14 socket.io A library based on node.js for real time, bi-directional communication between a server and one or multiple clients Using WebSocket to perform data communication (fall back to older solutions when WebSocket is not supported) Official Website: Originally written for node.js on the sever side and JavaScript on the client side, there are now libraries for Python, Android and ios 14

15 socket.io socket.io has two parts: 1) Server and 2) Client Client libraries are available in JavaScript (Web), Android and ios Allow you to build real-time apps across multiple platforms socket.io-client (JavaScript) socket.io (Server Side) socket.io-client (Android) References ios Client: Android: socket.io-client (ios) 15

16 socket.io Event-driven Once connected, the server and client can communicate with each other by triggering or emitting events Create callback functions to carry out different actions whenever some events happens 16

17 socket.io Flow of creating a server-side program Create Socket.io Server Listen for incoming connections Wait for events to happen Handle events 17

18 socket.io Flow of creating a client-side program Connect to a Socke.io Server Wait for events to happen Handle events 18

19 Flask-SocketIO 19

20 Flask-SocketIO A module that allows you to use socket.io in Flask applications Install using the following command: $ sudo pip install flask-socketio Note: install the concurrent networking library Eventlet as well: $ sudo pip install eventlet 20

21 Flask-SocketIO Initialization You need to provide a secret key for Flask to encrypt data for user sessions from flask import Flask, render_template from flask_socketio import SocketIO app = Flask( name ) app.config['secret_key'] = secretkey socketio = SocketIO(app) Setup the app to use functions of socket.io if name == main : socketio.run(app) This is for debugging purpose, we will discuss how to deploy applications that using socket.io soon 21

22 Flask-SocketIO Remember we mentioned that in Socket.io all communications are based on events We will have to define handlers of events in our Flask application For def handle_message(message): # Actions to be performed when a message is received #... The name of the event (NOTE: some names cannot be used because they already represent some special events) 22

23 Events Both the server and the client can generate events, and if the other side has a handler of that event, the handler will be invoked to carry out some actions In Flask-SocketIO, there are several different types of evetns Special events ( connect, disconnect, join, leave ) Unnamed events ( message or json ) Custom events (a name of your choice, e.g. my event ) 23

24 Events Connection events # Will be invoked whenever a client is def connect_handler(): print "Client connected. # Will be invoked whenever a client is def disconnect_handler(): print "Client disconnected." 24

25 Events Unnamed events # Will be invoked whenever an unnamed event def message_handler(message): print "message received: %s" % message # Will be invoked whenever an unnamed event happens (with JSON def disconnect_handler(json): print "json received: %s" % str(json) 25

26 Events Custom events are events with custom-defined names # Will be invoked when the client emits an event of the type def event001_handler(json): print "json received: %s" % str(json) 26

27 Events The server can send message to clients by creating events using the send() function or the emit() function The send() function is for sending unnamed events The emit() function is for sending custom named events from flask_socketio import send, def handle_message(message): def handle_json(json): send(json, def handle_my_custom_event(json): emit('event001', json) 27

28 Broadcasting Normally, send and emit only send message to Broadcasting allows you to send a message to all clients who are connected to the server For example, in a multi-player game, one user performs an action, and you want this to be known to all other def handle_event001(data): emit('event001', data, broadcast=true) Set broadcast=true when emitting a message 28

29 Rooms In some applications, users may interact with only a subset of other users Examples: Chat application with multiple rooms Multiplayer games (multiple game boards, game rooms, etc.) from flask_socketio import join_room, def on_join(data): username = data['username'] room = data['room'] join_room(room) send('user_join', '%s joined' % username, def on_leave(data): username = data['username'] room = data['room'] leave_room(room) send('user_leave', '%s left' % username, room=room) 29

30 Deploying Flask-SocketIO If you have eventlet installed, you can use the embedded server which is production-ready Invoked by socketio.run(app, host=" ", port=5000) Sample supervisor configuration files: [program:iems5722_socket] command = python app.py directory = /home/albert/iems5722 user = albert autostart = true autorestart = true stdout_logfile = /home/albert/iems5722/app.log redirect_stderr = true 30

31 Deploying Flask-SocketIO If you would like to deploy a single Flask app including both your APIs and the socket.io event handlers, use Gunicorn. For example: [program:iems5722] command = gunicorn --worker-class eventlet -w 1 app:app b localhost:8000 directory = /home/albert/iems5722 user = albert autostart = true autorestart = true stdout_logfile = /home/albert/iems5722/app.log redirect_stderr = true 31

32 What can you do with socket.io? Real-time chat rooms Real-time multiplayer games Real-time event broadcasting (e.g. real-time results of a competition or an event) And a snake game across multiple screens! ( 32

33 Socket.io on Android 33

34 34 socket.io on Android A socket.io client library for Java and Android Source code and set-up guide: To use the library in your Android project, add the following dependency to your build.gradle file under the app directory compile ('io.socket:socket.io-client:0.7.0') { exclude group: 'org.json', module: 'json }

35 socket.io on Android Creating a socket.io client in Android The URL of the socket.io server private Socket public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.my_activity); } try { socket = IO.socket(" } catch (URISyntaxException e) { throw new RuntimeException(e); } socket.on(socket.event_connect_error, onconnecterror); socket.on(socket.event_connect_timeout, onconnecterror); socket.on(socket.event_connect, onconnectsuccess); socket.on("event001", onevent001); socket.connect(); Initiating a connection to the server Define callback functions (handlers) of different events 35

36 socket.io on Android Creating event handlers/listeners: private Emitter.Listener onconnectsuccess = new Emitter.Listener() { }; You must override this function call in your public void call(object... args) { JSONObject data = (JSONObject) args[0]; } This function is called on a new thread, NOT the UI Thread. You should NOT manipulate UI components here. There can be multiple parameters passed to this function (depending on the server). If it is JSON, cast it to a JSONObject or JSONArray. 36

37 socket.io on Android Sending string message back to the server socket.emit( event001, data ); You can also send JSON objects in the emit function: JSONObject json = new JSONObject(); json.put( name, Peter ); json.put( gender, male ); socket.emit( event001, json); 37

38 socket.io on Android Like many other things on Android, you need to manage the socket s life cycle: when the user leaves the activity, you should public void ondestroy() { socket.disconnect(); socket.off(); super.ondestroy(); } Use the off method to remove the event listeners 38

39 Example: Real-time Typing Update 39

40 Example A TextView for displaying what the server has sent out An EditText for user to input text Client receives the event, and update the TextView with what is received from the server Server receives the message, and emit another event to all connected clients When the text in this input area is changed, a event is emitted to the server 40

41 Example Server Application from flask import Flask, render_template from flask_socketio import SocketIO, emit app = Flask( name ) app.config['secret_key'] = 'iems5722 socketio = def update_handler(json): emit( 'update', {'text': json['text']}, broadcast=true) return if name == ' main ': socketio.run(app, host=" ", port=5000) 41

42 Example Android App Source code available at: 42

43 Multithreading and Handlers 43

44 Handlers Handlers is a component in the Android system for managing threads. A Handler object: Is associated with a particular thread and its message queue called looper Receives messages and runs code to handle the message Handler Looper (Message Queue) A reference to the handler of the UI thread handler UI Thread Send message to the queue, which will be processed on the UI thread Thread X 44

45 Handlers A handler will be associated with the thread in which it is created You need to override the handlemessage() method to specify the action(s) to be taken when a message is received public class MyActivity extends Activity { private static class MainHandler extends Handler public void handlemessage(message msg) {... } } Handler handler = new MainHandler();... Manipulation of UI components can be done here, as this will be performed on the UI thread 45

46 Handlers When you want to ask the UI thread to perform something, send a message to its handler... Runnable runnable = new Runnable() { public void run() {... String data = Message to send. ; Message msg = handler.obtainmessage(action_code, data); msg.sendtotarget(); } };... 46

47 Handlers A message can be created by using the Handler.obtainMessage(...) method You can supply up to four parameters to this method obtainmessage(int what, int arg1, int arg2, Object obj) A user-defined message code for identifying the type of message For passing integer parameters to the handler An arbitrary object to be sent to the handler Reference: 47

48 Handlers To extract parameters from the message in the handlemessage() method:... mhandler = new Handler() public void handlemessage(message msg) { if (msg.what == ACTION_CODE_1) { int arg1 = msg.arg1; int arg2 = msg.arg2; MyObject = (MyObject)msg.obj;... } else if (msg.what == ACTION_CODE_2) {... }... } }; Reference: 48

49 Embedding Data in Messages You can also embed data in the message using the setdata() method... Message msg = new Message(); Bundle data = new Bundle(); data.putstring( PARAM_1, String... ); data.putint( PARAM_2, 100);... msg.setdata(data); msg.what = ACTION_CODE_1; handler.sendmessage(msg); Then in the handlemessage() method you can retrieve the data like this: String str = msg.getdata().getstring( PARAM_1 ); 49

50 Example Android App Using handler and messages to handle communications between threads 50

51 Authentication & Authorization 51

52 User Authentication It is very likely that you would like your users to create an account in your app, and sign in to use its services Reasons: It is necessary: if your app needs to uniquely identify every user Track user s usage of the app Allow users to retrieve their data on different devices Present more personalised information and services... 52

53 User Authentication How should you implement your system to enable user authentication in your app? Basic functions Register an account by (or phone number) Validate user s address by sending him/her an activation Sign in using (or user name) and chosen password Authenticate the user whenever the app makes API requests 53

54 Registration A typical registration process: 6 Browser redirects the user back to the app to sign in App Browser 1 User registers using his/her address and a chosen password 2 Server Application Server creates a new entry in the database, with an activation code Database User reads the verification and opens the URL to finish the process 4 Client 3 Server sends a verification to the user s mailbox 5 Server updates the database and sets account to be activated 54

55 Sign In A typical sign-in process: User enters and password to sign in his/her account App and password sent to server for authentication Server Application Server checks whether the and password match any user record Database App stores the token for future use (e.g. for making other API calls) Server responds with the token generated for this user and device If a record is found, generate a token for the client 55

56 User Authentication Best practices for privacy and security concerns Do not store the password clear text in your database, hash it with a salt before sending it out from the app (e.g. using MD5 or SHA1, or more secure ones) Do not store user password in the device Use HTTPS whenever possible Validate user s input (e.g. and password), before sending them to the server References: 56

57 Authorization When using third party libraries, SDKs or APIs in your app, usually it requires the user to authorize your app to use data in another application Example: Retrieve your friend list from Facebook Retrieve your name and address from Google Retrieve your posts from Twitter or Weibo 57

58 Authorization For most Internet services, SDKs for Android and ios are available for integrating sign-in process in your app: Facebook Twitter Google+ Wechat 58

59 Authorization For asking for authorization to use data in another app, you should always use their latest SDK whenever possible These SDKs wrapped the process of asking authorization from the user Most of services perform authorization using OAuth2 (Open Authorization Version 2) It is not likely that you will have to implement the flow by yourself, but let s still take a look at it 59

60 Open Authorization (OAuth) To access a user s account and the data within, you need to have the user s username and password Does the following make sense? User gives your app his login information Your App Your app signs into the service on behalf of the user Third Party App / Service User Your app receives the data needed from the service 60

61 Open Authorization (OAuth) Never ask users to give away their password OAuth allows you to get access to user s data in another service without the need to ask the user for his user account Let s consider a scenario: You have developed a social app, and you want to access the user s friend list in Facebook, so that you can build up the social network in your app quickly 61

62 Open Authorization (OAuth) In OAuth, we have three entities: Resource Owner This is the user who is using your app Resource and Authorization Server In our case this is Facebook s server, which will authorize your app and serve the user s data to your app Client Your app, the application that the user is using 62

63 Open Authorization (OAuth) The flow of OAuth2 Resource Owner (User) 1 User accesses a function in your app that requires data from Facebook Your app redirect the user to Facebook s page, which will ask the user his /password, and ask whether he grants permission to your app 2 Client (Mobile App) 3 4 Facebook redirects the user back to your app, with an access token that your app can use to retrieve data Your app uses the token to access APIs exposed by Facebook Authorization Server Resource Server 63

64 Best Practices in Android Programming 64

65 Best Practices References Best Practices Android Best Practices for Performance Android 65

66 End of Lecture 10 66

IERG 4080 Building Scalable Internet-based Services

IERG 4080 Building Scalable Internet-based Services Department of Information Engineering, CUHK MScIE 2 nd Semester, 2015/16 IERG 4080 Building Scalable Internet-based Services Lecture 9 Web Sockets for Real-time Communications Lecturer: Albert C. M. Au

More information

CSC443: Web Programming 2

CSC443: Web Programming 2 CSC443: Web Programming Lecture 20: Web Sockets Haidar M. Harmanani HTML5 WebSocket Standardized by IETF in 2011. Supported by most major browsers including Google Chrome, Internet Explorer, Firefox, Safari

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 7 Instant Messaging & Google Cloud Messaging Lecturer:

More information

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Semester 2

IEMS 5722 Mobile Network Programming and Distributed Server Architecture Semester 2 IEMS 5722 Mobile Network Programming and Distributed Server Architecture 2016-2017 Semester 2 Assignment 3: Developing a Server Application Due Date: 10 th March, 2017 Notes: i.) Read carefully the instructions

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 1 Course Introduction Lecturer: Albert C. M. Au

More information

Module 6 Node.js and Socket.IO

Module 6 Node.js and Socket.IO Module 6 Node.js and Socket.IO Module 6 Contains 2 components Individual Assignment and Group Assignment Both are due on Wednesday November 15 th Read the WIKI before starting Portions of today s slides

More information

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary

INTERNET ENGINEERING. HTTP Protocol. Sadegh Aliakbary INTERNET ENGINEERING HTTP Protocol Sadegh Aliakbary Agenda HTTP Protocol HTTP Methods HTTP Request and Response State in HTTP Internet Engineering 2 HTTP HTTP Hyper-Text Transfer Protocol (HTTP) The fundamental

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

Enabling Full-Duplex Communications in APEX

Enabling Full-Duplex Communications in APEX Enabling Full-Duplex Communications in APEX Me Curt Workman - workmancw@ldschurch.org Education University of Utah Work Micron Electronics Evans&Sutherland The Church of Jesus Christ of Latter-Day Saints

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 12 Tutorial 3 Part 1 Twitter API In this tutorial, we will learn

More information

Lecture 18. WebSocket

Lecture 18. WebSocket Lecture 18. WebSocket 1. What is WebSocket? 2. Why WebSocket? 3. WebSocket protocols 4. WebSocket client side 5. WebSocket on server side 1. Case study, WebSocket on nose.js 2. Case study, WebSocket on

More information

Corey Clark PhD Daniel Montgomery

Corey Clark PhD Daniel Montgomery Corey Clark PhD Daniel Montgomery Web Dev Platform Cross Platform Cross Browser WebGL HTML5 Web Socket Web Worker Hardware Acceleration Optimized Communication Channel Parallel Processing JaHOVA OS Kernel

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 07 Tutorial 2 Part 1 Facebook API Hi everyone, welcome to the

More information

Kaazing. Connect. Everything. WebSocket The Web Communication Revolution

Kaazing. Connect. Everything. WebSocket The Web Communication Revolution Kaazing. Connect. Everything. WebSocket The Web Communication Revolution 1 Copyright 2011 Kaazing Corporation Speaker Bio John Fallows Co-Founder: Kaazing, At the Heart of the Living Web Co-Author: Pro

More information

NIELSEN API PORTAL USER REGISTRATION GUIDE

NIELSEN API PORTAL USER REGISTRATION GUIDE NIELSEN API PORTAL USER REGISTRATION GUIDE 1 INTRODUCTION In order to access the Nielsen API Portal services, there are three steps that need to be followed sequentially by the user: 1. User Registration

More information

Thread. A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables.

Thread. A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables. 1 Thread A Thread is a concurrent unit of execution. The thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at least one main

More information

Application Developer s Guide Release 7.2

Application Developer s Guide Release 7.2 [1]Oracle Communications WebRTC Session Controller Application Developer s Guide Release 7.2 E69517-02 December 2016 Oracle Communications WebRTC Session Controller Application Developer's Guide, Release

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Eric Kutschera University of Pennsylvania March 6, 2015 Eric Kutschera (University of Pennsylvania) CIS 192 March 6, 2015 1 / 22 Outline 1 Web Servers

More information

Semester Project Report Mobile Application for Online Surakarta Battle

Semester Project Report Mobile Application for Online Surakarta Battle Semester Project Report Mobile Application for Online Surakarta Battle COMP4342 Mobile Computing Department of Computing The Hong Kong Polytechnic University CHAU Tsz Ling 15067489D FU Kuo-Hao, 14112466D

More information

Real-time video chat XPage application using websocket and WebRTC technologies AD-1077

Real-time video chat XPage application using websocket and WebRTC technologies AD-1077 Real-time video chat XPage application using websocket and WebRTC technologies AD-1077 Dr Csaba Kiss 02/03/2016 LA-UR-16-20047 Credentials Over 25 years experience in molecular biology Began Xpage application

More information

Enhancing cloud applications by using external authentication services. 2015, 2016 IBM Corporation

Enhancing cloud applications by using external authentication services. 2015, 2016 IBM Corporation Enhancing cloud applications by using external authentication services After you complete this section, you should understand: Terminology such as authentication, identity, and ID token The benefits of

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

Cookies, sessions and authentication

Cookies, sessions and authentication Cookies, sessions and authentication TI1506: Web and Database Technology Claudia Hauff! Lecture 7 [Web], 2014/15 1 Course overview [Web] 1. http: the language of Web communication 2. Web (app) design &

More information

Networking & The Web. HCID 520 User Interface Software & Technology

Networking & The Web. HCID 520 User Interface Software & Technology Networking & The Web HCID 520 User Interface Software & Technology Uniform Resource Locator (URL) http://info.cern.ch:80/ 1991 HTTP v0.9 Uniform Resource Locator (URL) http://info.cern.ch:80/ Scheme/Protocol

More information

OAuth securing the insecure

OAuth securing the insecure Black Hat US 2011 khash kiani khash@thinksec.com OAuth securing the insecure roadmap OAuth flow malicious sample applications mobile OAuth google app web-based OAuth facebook app insecure implementation

More information

shared objects monitors run() Runnable start()

shared objects monitors run() Runnable start() Thread Lecture 18 Threads A thread is a smallest unit of execution Each thread has its own call stack for methods being invoked, their arguments and local variables. Each virtual machine instance has at

More information

CIS192 Python Programming

CIS192 Python Programming CIS192 Python Programming Web Servers and Web APIs Raymond Yin University of Pennsylvania November 12, 2015 Raymond Yin (University of Pennsylvania) CIS 192 November 12, 2015 1 / 23 Outline 1 Web Servers

More information

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul

Quick housekeeping Last Two Homeworks Extra Credit for demoing project prototypes Reminder about Project Deadlines/specifics Class on April 12th Resul CIS192 Python Programming Web Frameworks and Web APIs Harry Smith University of Pennsylvania March 29, 2016 Harry Smith (University of Pennsylvania) CIS 192 March 29, 2016 1 / 25 Quick housekeeping Last

More information

Embedded Systems Programming - PA8001

Embedded Systems Programming - PA8001 Embedded Systems Programming - PA8001 http://goo.gl/ydeczu Lecture 9 Mohammad Mousavi m.r.mousavi@hh.se Center for Research on Embedded Systems School of Information Science, Computer and Electrical Engineering

More information

Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service

Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service Lab 4: create a Facebook Messenger bot and connect it to the Watson Conversation service Overview In this lab, you'll create advanced Node-RED flows that: Connect the Watson Conversation service to Facebook

More information

Software Requirement Specification

Software Requirement Specification Software Requirement Specification Publish/Subscribe System Group-03 Atul Jangra 2010CS50277 Dushyant Behl 2010CS50282 Shantanu 2010CS50295 Utkarsh 2010CS50299 1 1. Introduction Table of Content 1.1 Purpose...

More information

Configuring and Using Osmosis Platform

Configuring and Using Osmosis Platform Configuring and Using Osmosis Platform Index 1. Registration 2. Login 3. Device Creation 4. Node Creation 5. Sending Data from REST Client 6. Checking data received 7. Sending Data from Device 8. Define

More information

Grandstream Networks, Inc. Captive Portal Authentication via Twitter

Grandstream Networks, Inc. Captive Portal Authentication via Twitter Grandstream Networks, Inc. Table of Content SUPPORTED DEVICES... 4 INTRODUCTION... 5 CAPTIVE PORTAL SETTINGS... 6 Policy Configuration Page... 6 Landing Page Redirection... 8 Pre-Authentication Rules...

More information

Small talk with the UI thread. Landon Cox March 9, 2017

Small talk with the UI thread. Landon Cox March 9, 2017 Small talk with the UI thread Landon Cox March 9, 2017 Android threads Thread: a sequence of executing instructions Every app has a main thread Processes UI events (taps, swipes, etc.) Updates the UI Apps

More information

PowerExchange for Facebook: How to Configure Open Authentication using the OAuth Utility

PowerExchange for Facebook: How to Configure Open Authentication using the OAuth Utility PowerExchange for Facebook: How to Configure Open Authentication using the OAuth Utility 2013 Informatica Corporation. No part of this document may be reproduced or transmitted in any form, by any means

More information

Using OAuth 2.0 to Access ionbiz APIs

Using OAuth 2.0 to Access ionbiz APIs Using OAuth 2.0 to Access ionbiz APIs ionbiz APIs use the OAuth 2.0 protocol for authentication and authorization. ionbiz supports common OAuth 2.0 scenarios such as those for web server, installed, and

More information

flask-jwt Documentation

flask-jwt Documentation flask-jwt Documentation Release 0.3.2 Dan Jacob Nov 16, 2017 Contents 1 Links 3 2 Installation 5 3 Quickstart 7 4 Configuration Options 9 5 API 11 6 Changelog 13 6.1 Flask-JWT Changelog..........................................

More information

Distributed Systems. 25. Authentication Paul Krzyzanowski. Rutgers University. Fall 2018

Distributed Systems. 25. Authentication Paul Krzyzanowski. Rutgers University. Fall 2018 Distributed Systems 25. Authentication Paul Krzyzanowski Rutgers University Fall 2018 2018 Paul Krzyzanowski 1 Authentication For a user (or process): Establish & verify identity Then decide whether to

More information

Smashing Node.JS: JavaScript Everywhere

Smashing Node.JS: JavaScript Everywhere Smashing Node.JS: JavaScript Everywhere Rauch, Guillermo ISBN-13: 9781119962595 Table of Contents PART I: GETTING STARTED: SETUP AND CONCEPTS 5 Chapter 1: The Setup 7 Installing on Windows 8 Installing

More information

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial

Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Wireless Vehicle Bus Adapter (WVA) Android Library Tutorial Revision history 90001431-13 Revision Date Description A October 2014 Original release. B October 2017 Rebranded the document. Edited the document.

More information

Harnessing the Power of HTML5 WebSocket to Create Scalable Real-time Applications. Brian Albers & Peter Lubbers, Kaazing

Harnessing the Power of HTML5 WebSocket to Create Scalable Real-time Applications. Brian Albers & Peter Lubbers, Kaazing Harnessing the Power of HTML5 WebSocket to Create Scalable Real-time Applications Brian Albers & Peter Lubbers, Kaazing 1 About Peter Lubbers Director of Documentation and Training, Kaazing Co-Founder

More information

Building Facebook Application using Python

Building Facebook Application using Python Building Facebook Application using Python ECS-15, Fall 2010 Prantik Bhattacharyya Facebook Applications Farmville Game 57.5m users http://www.facebook.com/farmville Causes Issues/Movement 26.4m users

More information

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE

FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE FIREFLY ARCHITECTURE: CO-BROWSING AT SCALE FOR THE ENTERPRISE Table of Contents Introduction... 2 Architecture Overview... 2 Supported Browser Versions and Technologies... 3 Firewalls and Login Sessions...

More information

This tutorial is meant for software developers who want to learn how to lose less time on API integrations!

This tutorial is meant for software developers who want to learn how to lose less time on API integrations! CloudRail About the Tutorial CloudRail is an API integration solution that speeds up the process of integrating third-party APIs into an application and maintaining them. It does so by providing libraries

More information

Oracle Communications WebRTC Session Controller

Oracle Communications WebRTC Session Controller Oracle Communications WebRTC Session Controller Security Guide Release 7.0 E40975-01 November 2013 Oracle Communications WebRTC Session Controller Security Guide, Release 7.0 E40975-01 Copyright 2013,

More information

Integration Service. Admin Console User Guide. On-Premises

Integration Service. Admin Console User Guide. On-Premises Kony Fabric Integration Service Admin Console User Guide On-Premises Release V8 SP1 Document Relevance and Accuracy This document is considered relevant to the Release stated on this title page and the

More information

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation.

Send me up to 5 good questions in your opinion, I ll use top ones Via direct message at slack. Can be a group effort. Try to add some explanation. Notes Midterm reminder Second midterm next week (04/03), regular class time 20 points, more questions than midterm 1 non-comprehensive exam: no need to study modules before midterm 1 Online testing like

More information

Jackalope Documentation

Jackalope Documentation Jackalope Documentation Release 0.2.0 Bryson Tyrrell May 23, 2017 Getting Started 1 Create the Slack App for Your Team 3 2 Deploying the Slack App 5 2.1 Run from application.py.........................................

More information

Chris Guzman. Developer chris-guzman.com

Chris Guzman. Developer  chris-guzman.com WebSocket to me! Chris Guzman Developer Advocate @ Nexmo @speaktochris chris-guzman.com Before... Before... (A few years ago) HTTP Polling TCP/IP Sockets WebSockets /webˈsäkəts/ bi-directional realtime

More information

Oracle Service Cloud. Release 18D. What s New

Oracle Service Cloud. Release 18D. What s New Oracle Service Cloud Release 18D What s New TABLE OF CONTENTS Revision History 3 Overview 3 Feature Summary 3 Agent Browser Channels 4 Chat Transfer Enhancements 4 Agent Browser Workspaces 5 Link and Unlink

More information

CS November 2018

CS November 2018 Authentication Distributed Systems 25. Authentication For a user (or process): Establish & verify identity Then decide whether to allow access to resources (= authorization) Paul Krzyzanowski Rutgers University

More information

JupyterHub Documentation

JupyterHub Documentation JupyterHub Documentation Release 0.4.0.dev Project Jupyter team January 30, 2016 User Documentation 1 Getting started with JupyterHub 3 2 Further reading 11 3 How JupyterHub works 13 4 Writing a custom

More information

Hands-On Lab. Worker Role Communication. Lab version: Last updated: 11/16/2010. Page 1

Hands-On Lab. Worker Role Communication. Lab version: Last updated: 11/16/2010. Page 1 Hands-On Lab Worker Role Communication Lab version: 2.0.0 Last updated: 11/16/2010 Page 1 CONTENTS OVERVIEW... 3 EXERCISE 1: USING WORKER ROLE EXTERNAL ENDPOINTS... 8 Task 1 Exploring the AzureTalk Solution...

More information

flask-jwt-simple Documentation

flask-jwt-simple Documentation flask-jwt-simple Documentation Release 0.0.3 vimalloc rlam3 Nov 17, 2018 Contents 1 Installation 3 2 Basic Usage 5 3 Changing JWT Claims 7 4 Changing Default Behaviors 9 5 Configuration Options 11 6 API

More information

ITP 342 Mobile App Development. APIs

ITP 342 Mobile App Development. APIs ITP 342 Mobile App Development APIs API Application Programming Interface (API) A specification intended to be used as an interface by software components to communicate with each other An API is usually

More information

Services. Marco Ronchetti Università degli Studi di Trento

Services. Marco Ronchetti Università degli Studi di Trento 1 Services Marco Ronchetti Università degli Studi di Trento Service An application component that can perform longrunning operations in the background and does not provide a user interface. So, what s

More information

EIE4432 Web Systems and Technologies Project Report. Project Name: Draw & Guess GROUP 21. WatermarkPDF. shenxialin shen

EIE4432 Web Systems and Technologies Project Report. Project Name: Draw & Guess GROUP 21. WatermarkPDF. shenxialin shen EIE4432 Web Systems and Technologies Project Report s e Project Name: Draw & Guess GROUP 21 SHEN Xialin (Spark) 12131888D Introduction XUE Peng (Raymond) 12134614D This is a multi-player draw and guess

More information

Speed up Your Web Applications with HTML5 WebSockets. Yakov Fain, Farata Systems, USA

Speed up Your Web Applications with HTML5 WebSockets. Yakov Fain, Farata Systems, USA Speed up Your Web Applications with HTML5 WebSockets Yakov Fain, Farata Systems, USA The Plan - HTTP request-response - Demo - Server-Sent Events - Demo - WebSocket - Demo What Do You See? HTTP Hacks

More information

Computer Networking. Chapter #1. Dr. Abdulrhaman Alameer

Computer Networking. Chapter #1. Dr. Abdulrhaman Alameer Computer Networking Chapter #1 Dr. Abdulrhaman Alameer What is Computer Network? It is a collection of computers and devices interconnected by communications channels that facilitate communications among

More information

BECOMING A DATA-DRIVEN BROADCASTER AND DELIVERING A UNIFIED AND PERSONALISED BROADCAST USER EXPERIENCE

BECOMING A DATA-DRIVEN BROADCASTER AND DELIVERING A UNIFIED AND PERSONALISED BROADCAST USER EXPERIENCE BECOMING A DATA-DRIVEN BROADCASTER AND DELIVERING A UNIFIED AND PERSONALISED BROADCAST USER EXPERIENCE M. Barroco EBU Technology & Innovation, Switzerland ABSTRACT Meeting audience expectations is becoming

More information

Services. service: A background task used by an app.

Services. service: A background task used by an app. CS 193A Services This document is copyright (C) Marty Stepp and Stanford Computer Science. Licensed under Creative Commons Attribution 2.5 License. All rights reserved. Services service: A background task

More information

Alteryx Technical Overview

Alteryx Technical Overview Alteryx Technical Overview v 1.5, March 2017 2017 Alteryx, Inc. v1.5, March 2017 Page 1 Contents System Overview... 3 Alteryx Designer... 3 Alteryx Engine... 3 Alteryx Service... 5 Alteryx Scheduler...

More information

Web application Architecture

Web application Architecture 1 / 37 AJAX Prof. Cesare Pautasso http://www.pautasso.info cesare.pautasso@usi.ch @pautasso Web application Architecture 5 / 37 Client Server Backend Response Database File System 2013 Cesare Pautasso

More information

AWS Lambda + nodejs Hands-On Training

AWS Lambda + nodejs Hands-On Training AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your

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

izzati Documentation Release Gustav Hansen

izzati Documentation Release Gustav Hansen izzati Documentation Release 1.0.0 Gustav Hansen Sep 03, 2017 Contents: 1 Why? 3 1.1 Features.................................................. 3 2 Quickstart - Backend 5 2.1 Installation................................................

More information

Vault. Vault. End User Guide END USER GUIDE. L o r e. (For Standard, Professional & Enterprise Editions)

Vault. Vault. End User Guide END USER GUIDE. L o r e. (For Standard, Professional & Enterprise Editions) L o r e L END USER GUIDE (For Standard, Professional & Enterprise Editions) Table of contents 1. Introduction 2. Important terms 3. Sign up instructions 4. Basic settings Initiate sharing Configure two-factor

More information

CMSC436: Fall 2013 Week 4 Lab

CMSC436: Fall 2013 Week 4 Lab CMSC436: Fall 2013 Week 4 Lab Objectives: Familiarize yourself with Android Permission and with the Fragment class. Create simple applications using different Permissions and Fragments. Once you ve completed

More information

Best Practices: Authentication & Authorization Infrastructure. Massimo Benini HPCAC - April,

Best Practices: Authentication & Authorization Infrastructure. Massimo Benini HPCAC - April, Best Practices: Authentication & Authorization Infrastructure Massimo Benini HPCAC - April, 03 2019 Agenda - Common Vocabulary - Keycloak Overview - OAUTH2 and OIDC - Microservices Auth/Authz techniques

More information

Introduction Secure Message Center (Webmail, Mobile & Visually Impaired) Webmail... 2 Mobile & Tablet... 4 Visually Impaired...

Introduction Secure Message Center (Webmail, Mobile & Visually Impaired) Webmail... 2 Mobile & Tablet... 4 Visually Impaired... WEB MESSAGE CENTER END USER GUIDE The Secure Web Message Center allows users to access and send and receive secure messages via any browser on a computer, tablet or other mobile devices. Introduction...

More information

RailsConf Europe 2008 Juggernaut Realtime Rails. Alex MacCaw and Stuart Eccles

RailsConf Europe 2008 Juggernaut Realtime Rails. Alex MacCaw and Stuart Eccles RailsConf Europe 2008 Juggernaut Realtime Rails Alex MacCaw and Stuart Eccles RailsConf Europe 2008 Juggernaut Realtime Rails Alex MacCaw and Stuart Eccles http://www.madebymany.co.uk/ server push HTTP

More information

Programming WebSockets. Sean Sullivan OSCON July 22, 2010

Programming WebSockets. Sean Sullivan OSCON July 22, 2010 Programming WebSockets Sean Sullivan OSCON July 22, 2010 About me Web application developers HTML 5! improved JavaScript implementations! WebSockets! WebSockets? WebSockets a technology that enables

More information

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras

Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Privacy and Security in Online Social Networks Department of Computer Science and Engineering Indian Institute of Technology, Madras Lecture 08 Tutorial 2, Part 2, Facebook API (Refer Slide Time: 00:12)

More information

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2.

Android development. Outline. Android Studio. Setting up Android Studio. 1. Set up Android Studio. Tiberiu Vilcu. 2. Outline 1. Set up Android Studio Android development Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 15 September 2017 2. Create sample app 3. Add UI to see how the design interface works 4. Add some code

More information

Websocket file transfer example

Websocket file transfer example Websocket file transfer example The Problem: Low Latency Client-Server and Server-Client Connections. The Problem: Low Latency Client-Server and Server-Client Connections. // File has seen in the webkit

More information

HTTP, WebSocket, SPDY, HTTP/2.0

HTTP, WebSocket, SPDY, HTTP/2.0 HTTP, WebSocket, SPDY, HTTP/2.0 Evolution of Web Protocols Thomas Becker tbecker@intalio.com 1 Intalio Intalio Jetty Services, Training and Support for Jetty and CometD Intalio BPMS Business Process Management

More information

Junction: A Decentralized Platform for Ad Hoc Social and Mobile Applications. Ben Dodson, Monica Lam, Chanh Nguyen, Te-Yuan Huang

Junction: A Decentralized Platform for Ad Hoc Social and Mobile Applications. Ben Dodson, Monica Lam, Chanh Nguyen, Te-Yuan Huang Junction: A Decentralized Platform for Ad Hoc Social and Mobile Applications Ben Dodson, Monica Lam, Chanh Nguyen, Te-Yuan Huang Motivation Motivation Ad Hoc Bring together devices with no previous contact

More information

NODE.JS MOCK TEST NODE.JS MOCK TEST I

NODE.JS MOCK TEST NODE.JS MOCK TEST I http://www.tutorialspoint.com NODE.JS MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to Node.js Framework. You can download these sample mock tests at

More information

Inland Revenue. Build Pack. Identity and Access Services. Date: 04/09/2017 Version: 1.5 IN CONFIDENCE

Inland Revenue. Build Pack. Identity and Access Services. Date: 04/09/2017 Version: 1.5 IN CONFIDENCE Inland Revenue Build Pack Identity and Access Services Date: 04/09/2017 Version: 1.5 IN CONFIDENCE About this Document This document is intended to provide Service Providers with the technical detail required

More information

CMSC436: Fall 2013 Week 3 Lab

CMSC436: Fall 2013 Week 3 Lab CMSC436: Fall 2013 Week 3 Lab Objectives: Familiarize yourself with the Activity class, the Activity lifecycle, and the Android reconfiguration process. Create and monitor a simple application to observe

More information

VMware Identity Manager Connector Installation and Configuration (Legacy Mode)

VMware Identity Manager Connector Installation and Configuration (Legacy Mode) VMware Identity Manager Connector Installation and Configuration (Legacy Mode) VMware Identity Manager This document supports the version of each product listed and supports all subsequent versions until

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

Aaron Bartell Director of IBM i Innovation

Aaron Bartell Director of IBM i Innovation Watson IBM i WebSockets Aaron Bartell Director of IBM i Innovation albartell@krengeltech.com Copyright 2015 Aaron Bartell This session brought to you by... Consulting - Jumpstart your open source pursuit.

More information

Single Sign-On Showdown

Single Sign-On Showdown Single Sign-On Showdown ADFS vs Pass-Through Authentication Max Fritz Solutions Architect SADA Systems #ITDEVCONNECTIONS Azure AD Identity Sync & Auth Timeline 2009 2012 DirSync becomes Azure AD Sync 2013

More information

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016

Serverless Single Page Web Apps, Part Four. CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 Serverless Single Page Web Apps, Part Four CSCI 5828: Foundations of Software Engineering Lecture 24 11/10/2016 1 Goals Cover Chapter 4 of Serverless Single Page Web Apps by Ben Rady Present the issues

More information

Uber Push and Subscribe Database

Uber Push and Subscribe Database Uber Push and Subscribe Database June 21, 2016 Clifford Boyce Kyle DiSandro Richard Komarovskiy Austin Schussler Table of Contents 1. Introduction 2 a. Client Description 2 b. Product Vision 2 2. Requirements

More information

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2

About 1. Chapter 1: Getting started with odata 2. Remarks 2. Examples 2. Installation or Setup 2. Odata- The Best way to Rest 2 odata #odata Table of Contents About 1 Chapter 1: Getting started with odata 2 Remarks 2 Examples 2 Installation or Setup 2 Odata- The Best way to Rest 2 Chapter 2: Azure AD authentication for Node.js

More information

Connect-2-Everything SAML SSO (client documentation)

Connect-2-Everything SAML SSO (client documentation) Connect-2-Everything SAML SSO (client documentation) Table of Contents Summary Overview Refined tags Summary The Connect-2-Everything landing page by Refined Data allows Adobe Connect account holders to

More information

Topic 15: Authentication

Topic 15: Authentication Topic 15: Authentication CITS3403 Agile Web Development Getting MEAN with Mongo, Express, Angular and Node, Chapter 11 Semester 1, 2018 Secure web apps Security is a primary concern for anyone developing

More information

BLACKBERRY SPARK COMMUNICATIONS PLATFORM. Getting Started Workbook

BLACKBERRY SPARK COMMUNICATIONS PLATFORM. Getting Started Workbook 1 BLACKBERRY SPARK COMMUNICATIONS PLATFORM Getting Started Workbook 2 2018 BlackBerry. All rights reserved. BlackBerry and related trademarks, names and logos are the property of BlackBerry

More information

The Future of the Web: HTML 5, WebSockets, Comet and Server Sent Events

The Future of the Web: HTML 5, WebSockets, Comet and Server Sent Events The Future of the Web: HTML 5, WebSockets, Comet and Server Sent Events Sidda Eraiah Director of Management Services Kaazing Corporation Agenda Web Applications, where are they going? Real time data for

More information

ShowNTell - An easy-to-use tool for answering students questions with voiceover

ShowNTell - An easy-to-use tool for answering students questions with voiceover + ShowNTell - An easy-to-use tool for answering students questions with voiceover recording Dr BHOJAN ANAND LIFT & TEG Grant: Start date: June 2014 End date: Dec 2015 + ShowNTell Problem Statement & Motivation

More information

EWD Lite. Rob Tweed M/Gateway Developments Ltd. Tuesday, 16 July 13

EWD Lite. Rob Tweed M/Gateway Developments Ltd.   Tuesday, 16 July 13 EWD Lite Rob Tweed M/Gateway Developments Ltd Twitter: @rtweed Email: rtweed@mgateway.com 1 EWD Lite Background, History and Aims Underlying Technology & Architecture Comparison with classic EWD Benefits

More information

Security Guide Release 7.1

Security Guide Release 7.1 [1]Oracle Communications WebRTC Session Controller Security Guide Release 7.1 E55124-01 March 2015 Oracle Communications WebRTC Session Controller Security Guide, Release 7.1 E55124-01 Copyright 2013,

More information

MOBILE CLIENT FOR ONLINE DICTIONARY. Constantin Lucian ALDEA 1. Abstract

MOBILE CLIENT FOR ONLINE DICTIONARY. Constantin Lucian ALDEA 1. Abstract Bulletin of the Transilvania University of Braşov Vol 4(53), No. 2-2011 Series III: Mathematics, Informatics, Physics, 123-128 MOBILE CLIENT FOR ONLINE DICTIONARY Constantin Lucian ALDEA 1 Abstract The

More information

Back-end architecture

Back-end architecture Back-end architecture Tiberiu Vilcu Prepared for EECS 411 Sugih Jamin 2 January 2018 https://education.github.com/pack 1 2 Outline HTTP 1. HTTP and useful web tools 2. Designing APIs 3. Back-end services

More information

Streaming API Developer Guide

Streaming API Developer Guide Streaming API Developer Guide Version 43.0, Summer 18 @salesforcedocs Last updated: August 2, 2018 Copyright 2000 2018 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of

More information

Bitnami OSQA for Huawei Enterprise Cloud

Bitnami OSQA for Huawei Enterprise Cloud Bitnami OSQA for Huawei Enterprise Cloud Description OSQA is a question and answer system that helps manage and grow online communities similar to Stack Overflow. First steps with the Bitnami OSQA Stack

More information

StorageGRID Webscale NAS Bridge Management API Guide

StorageGRID Webscale NAS Bridge Management API Guide StorageGRID Webscale NAS Bridge 2.0.3 Management API Guide January 2018 215-12414_B0 doccomments@netapp.com Table of Contents 3 Contents Understanding the NAS Bridge management API... 4 RESTful web services

More information

Programming in Android. Nick Bopp

Programming in Android. Nick Bopp Programming in Android Nick Bopp nbopp@usc.edu Types of Classes Activity This is the main Android class that you will be using. These are actively displayed on the screen and allow for user interaction.

More information