Implementing Oath s CMP JS

Size: px
Start display at page:

Download "Implementing Oath s CMP JS"

Transcription

1 Implementing Oath s CMP JS A Guide For Third Party Publishers - V1.1 Table of contents Implementing Oath s CMP JS A Guide For Third Party Publishers - V What s new in this version? What is CMP JS? P Publisher integration and initialisation of CMP JS Consent UI CMP JS configuration for consent UI Modal iframe integration Standalone UI integration Vendor List API Publisher hosted vendor list API 8(9) Oath hosted vendor list API Reprompting for consent Ad Call/Pixel Integration of CMP JS Checking for the existence of CMP JS Same frame integration Iframe integration safeframe integration Frequently Asked Questions Appendix Removed sections Multi-domain support (only supported for direct pub relationships!) For more information, contact your Oath representative Oath Inc. All rights reserved 1

2 What s new in this version? V1.1 of this integration guide contains: An updated cmp3p.js stub tag Updated script in the Iframe Integration section Added details for publisher hosted vendor list API Added details for reprompting for user consent Added link to CMP consent UI reference implementation on GitHub VERSION DATE UPDATES 1.0 4/19/2018 Issued /1/2018 Updated CMP Stub Tag Updated script in the IFrame Integration section Added details for publisher hosted vendor list API Added details for reprompting for user consent Added link to CMP consent UI reference implementation Removed support for a default consent UI hosted by Oath Oath Inc. All rights reserved 2

3 What is CMP JS? Oath s CMP JS is a client-side JavaScript interface. It facilitates the requesting, storage and sharing of information about vendors and their approved consent to allow their data to be gathered, mined, and used. To comply with the European Union s General Data Protection Regulation (GDPR) we collect and present the vendor information in a standardised format sanctioned and developed by the IAB. Detailed information on the IAB CMP JS API v1.1 spec can be found here. Publishers should implement the integration instructions described in the 3P Publisher integration and initialisation of CMP JS section. Consumers of consent data (ad calls, pixel calls, etc) should implement the integration instructions described in the Ad call/pixel integration of CMP JS. Oath Inc. All rights reserved 3

4 3P Publisher integration and initialisation of CMP JS There are two steps that must be taken. 1 Add the following tags to your pages. The first tag is a stubbed version of CMP JS which will queue up any CMP JS requests. The queued requests will be executed once CMP JS has finished loading. This tag should be included in the page header above any script tags that would need to access the CMP. Both an unminified version and a minified version of this tag are listed below. <!-- Consent Manager Tag : Stubbed (updated T17:00) --> <script type="text/javascript"> (function () { var gdprappliesglobally = false; function addframe() { if (!window.frames[' cmplocator']) { if (document.body && document.body.firstchild) { var body = document.body, iframe = document.createelement('iframe'); iframe.style.display = 'none'; iframe.height = iframe.width = 0; addframe(); iframe.name = ' cmplocator'; body.insertbefore(iframe, body.firstchild); else { settimeout(addframe, 5); function stubcmp() { var b = arguments; cmp.a = cmp.a []; if (!b.length) return cmp.a; else if (b[0] === 'ping') { b[2]({ "gdprappliesglobally": gdprappliesglobally, "cmploaded": false, true); else { cmp.a.push([].slice.apply(b)); Oath Inc. All rights reserved 4

5 function cmpmsghandler(event) { var msgisstring = typeof event.data === "string"; var json = event.data; if (msgisstring) { try { json = JSON.parse(event.data); catch (e) { if (json. cmpcall) { var i = json. cmpcall; window. cmp(i.command, i.parameter, function (retvalue, success) { var returnmsg = { " cmpreturn": { "returnvalue": retvalue, "success": success, "callid": i.callid ; event.source.postmessage(msgisstring? JSON.stringify(returnMsg) : returnmsg, '*'); ); if (typeof ( cmp)!== 'function') { window. cmp = stubcmp; cmp.msghandler = cmpmsghandler; if (window.addeventlistener) window.addeventlistener('message', cmpmsghandler, false); else window.attachevent('onmessage', cmpmsghandler); )(); </script> <!-- End Consent Manager Tag : Stubbed --> <!-- Consent Manager Tag : Stubbed (minified) (updated T17:00) --> <script type="text/javascript">!function(){var e=!1;function a(e){var a="string"==typeof e.data,t=e.data;if(a)try{t=json.parse(e.data)catch(e){if(t. cmpcall){var n=t. cmpcall;window. cmp(n.command,n.parameter,function(t,c){var i={ cmpreturn:{returnvalue:t,success:c,callid:n.callid;e.source.postmessag e(a?json.stringify(i):i,"*"))!function e(){if(!window.frames. cmplocator)if(document.body&&document.body.firstchild ){var a=document.body,t=document.createelement("iframe");t.style.display="none",t.h eight=t.width=0,t.name=" cmplocator",a.insertbefore(t,a.firstchild)else settimeout(e,5)(),"function"!=typeof cmp&&(window. cmp=function(){var a=arguments;if( cmp.a= cmp.a [],!a.length)return cmp.a;"ping"===a[0]?a[2]({gdprappliesglobally:e,cmploaded:!1,!0): cmp.a.p ush([].slice.apply(a)), cmp.msghandler=a,window.addeventlistener?window.add EventListener("message",a,!1):window.attachEvent("onmessage",a))();</script> <!-- End Consent Manager Tag : Stubbed (minified) --> Oath Inc. All rights reserved 5

6 The second tag loads the CMP JS script asynchronously to mitigate any performance impact to the page load time. This tag can be included anywhere on the page after the stub tag, but it is recommended that this tag be included early in the page to avoid impacting initial ad load time. Note that IE does not support the async attribute and therefore loads the script synchronously. To avoid this, you may choose to include this script at the end of the page or via javascript. <!-- Consent Manager Tag : Script --> <script type="text/javascript" src=" async></script> 2 Initialize CMP JS by calling the init method <script type="text/javascript"> /** * Triggers the trap logic, and initializes CMP for * other scripts (such as ad calls) to access consent data * * The config object format for 3rd party publishers * { * gdprappliesglobally: boolean - true for EU targeted sites * pubvendorlistapi: string - full API URL for the publisher hosted * vendor list API * pubvendorlistversionapi: string - full API URL for the publisher hosted * latest vendor list version API * customconsentui: { * url: string - URL to publisher's consent UI * displayinmodal: boolean - true (default) if consent UI should * be rendered in a modal iframe * false if consent UI should be rendered as standalone page * customparams: object - used for providing any publisher specific * parameters to the consent UI * * * {object config */ window. cmp('init', config); </script> Oath Inc. All rights reserved 6

7 Consent UI You can easily integrate your CMP consent UI with Oath s CMP. The consent UI is responsible for capturing user consent. Once captured, the consent is passed to the CMP. The consent UI can be integrated as an iframe rendered in a modal directly on the site, or as a standalone page that the CMP would redirect to. Oath has implemented a reference implementation of the CMP consent UI. It is available on Github at CMP JS configuration for consent UI The following is a sample initialization with your own consent UI where consent.cmp.publisher.com refers to your hosted consent capture flow initialized as a modal on. window. cmp('init', { customconsentui: { url: 'consent.cmp.publisher.com', displayinmodal: true, customparams: {,... ); Modal iframe integration When the CMP requires the user to provide consent, it will load the publisher provided config.customconsentui.url in an iframe. It will then post a message to the iframe with the following message format. cmpuicall: { command: 'renderconsentui', parameter: customparams, // this is the config.customconsentui.customparams object passed into the init call. callid: uniqueid Oath Inc. All rights reserved 7

8 The consent UI should listen for this message, then initialize the UI. Once the user has saved their consent, the consent UI should post a message back to the parent window with the following format. cmpuireturn: { returnvalue: consentstring, // bsee64 encoded consent string success: boolean, // true if success was captured, false if some error occurred. callid: uniqueid // same uniqueid passed in the cmpuicall message Once the CMP receives the cmpuireturn message, it will destroy the iframe. Standalone UI integration (using redirects) When the CMP requires the user to provide consent, it will redirect to config.customconsentui.url with a redirect_url query parameter. Once the user has saved their consent, the UI should redirect back to the redirect_url passing an EuConsent query parameter with the value of the base64 consent string. Vendor List API As part of the user experience for collecting consent under GDPR, a user should be able to select the vendors a publisher works with who they consent to share their data with. Each publisher should provide their own list of vendors with which they share data. The vendor list information is used by both the publisher s CMP consent UI and the CMP JS. To enable this support, publishers have 2 options. 1 Publishers may host an API that would be called by both the publisher s CMP UI as well as the Oath CMP JS. 2 Publishers may provide their vendor list to Oath and utilize Oath s hosted CMP Service API for managing the vendor list. Oath Inc. All rights reserved 8

9 Publisher hosted vendor list API The benefit of publishers hosting their own vendor list API is that it makes it easier for them to manage their vendor list independently. The API should include 2 endpoints. One to provide the vendor list. The other to provide the latest vendor list version. Vendor List API This API enables the client to retrieve the publisher vendor list. API path - The recommended API path is [domain]/cmp/v0/vendor_list, but there is no requirement for this format. version query parameter - This optional query parameter should be supported. If specified, the API should return the requested version. Otherwise, the response should contain the latest vendor list. If an invalid version is specified, the API should respond with a 404 status code. Response format - The response format is as defined by the IAB, with the addition of 1 property. The IAB spec for the vendor list format can be found here. As defined by the IAB spec, the vendor list response object should include the following properties. vendorlistversion - version of the global vendor list used to generate the publisher vendor list lastupdated - date/time when the publisher vendor list was updated purposes - list of purposes any of the publisher s vendors may use the data for vendors - list of vendors the publisher shares user data with The additional required property is publishervendorlistversion - a version number for this publisher vendor list. This should be an number starting at 0 and incremented by 1 with each updated list. Latest Vendor List Version API This API provides the version number of the latest vendor list. This is used by the CMP JS to determine when to reprompt the user for consent. New versions typically mean new vendors have been added and require consent. API path - The recommended API path is [domain]/cmp/v0/vendor_list/latestversion, but there is no requirement for this format. Response format - The response format is an object with a version property set to the publishervendorlistversion of the latest publisher vendor list. For example, { version : 3. Oath Inc. All rights reserved 9

10 Integrating publisher hosted APIs with CMP JS The CMP JS needs to be configured to reference both of these APIs. This is done in the config passed to the cmp( init, config) command when initializing the CMP. See the section above on initializing the CMP for details on this configuration. Oath hosted vendor list API Publishers may choose to utilize Oath s CMP Service API to host their vendor list. To enable this, publishers would follow a process for providing their vendor list (and updates to the list) to Oath. For additional information on this process, please contact your Oath representative. Reprompting for consent For compliance with EU law and IAB policies, users must have an opportunity to modify or revoke their consents. The CMP JS supports this with a command called renderconsents. To reprompt the user, call the following command. window. cmp( renderconsents, callback); The callback argument is optional. If provided, 2 arguments will be passed to the callback function after the user has updated their consent preferences. The callback function signature is shown below, where consentstring is the base64 encoded IAB consent string and success is a boolean specifying whether the consent capture flow was completed successfully. Function callback(consentstring, success) { Oath Inc. All rights reserved 10

11 Ad Call/Pixel Integration of CMP JS This section describes how you or your partners who wish to read consent from the CMP can query the CMP API to get consent parameters. Any partners running on your sites who support the Transparency & Consent Framework can check consent using the JS API. This may also be helpful if you work with partners who cannot read consent automatically from the CMP JS. In this case, you may need to read the consent parameters directly so that you can populate those into your partner tags. Checking for the existence of CMP.js If your code is always in the same frame as CMP JS, you can check for the presence of a function named cmp. For code that may be running in an iframe, sample code is provided in the iframe integration section below for locating the frame containing CMP JS. Same frame integration 1. Retrieve the consent information by calling the getconsentdata method 2. Append consent string and EU jurisdiction flag in ad / pixel calls window. cmp('getconsentdata', null, function (result) { // consentdata contains the base64-encoded consent string var consentdata = result.consentdata; // gdprapplies specifies whether the user is in EU jurisdiction var gdprapplies = result.gdprapplies; ); // pass these 2 values to all ad / pixel calls Oath Inc. All rights reserved 11

12 Iframe integration 1. Retrieve the consent information by posting a message to the parent frame 2. Append consent string and EU jurisdiction flag in ad / pixel calls The postmessage() function can be used from an iframe to send calls to a parent's (or ancestor's) frame s cmp() function. The frame to send the postmessage to can be determined by the ancestor with a.frames[" cmplocator"] child iframe present. CMP tags will install an event handler to call cmp() for postmessage events, returning the data via a postmessage event. This is included as part of the CMP stub tag, so that postmessage events can be handled as early as possible. Below is a wrapper function that emulates the same frame cmp() call. It locates the ancestor frame running the CMP, performs the postmessage and listens for the return message and passes its values to the callback: // (updated T08:00) if (!window. cmp) { // find the CMP frame var f = window; var cmpframe; while (!cmpframe) { try { if (f.frames[" cmplocator"]) cmpframe = f; catch (e) { if (f === window.top) break; f = f.parent; var cmpcallbacks = {; /* Set up a cmp function to do the postmessage and stash the callback. This function behaves (from the caller's perspective) identically to the same frame cmp call */ window. cmp = function (cmd, arg, callback) { if (!cmpframe) { callback({msg: "CMP not found", false); return; var callid = Math.random() + ""; var msg = { cmpcall: { command: cmd, parameter: arg, callid: callid ; Oath Inc. All rights reserved 12

13 cmpcallbacks[callid] = callback; cmpframe.postmessage(msg, '*'); /* when we get the return message, call the stashed callback */ window.addeventlistener("message", function (event) { var msgisstring = typeof event.data === "string"; var json = event.data; if (msgisstring) { try { json = JSON.parse(event.data); catch (e) { if (json. cmpreturn) { var i = json. cmpreturn; cmpcallbacks[i.callid](i.returnvalue, i.success); delete cmpcallbacks[i.callid];, false); /* example call of the above cmp wrapper function */ window. cmp('getconsentdata', null, function (result, success) { if (success) { // consentdata contains the base64-encoded consent string var consentdata = result.consentdata; ); // gdprapplies specifies whether the user is in EU jurisdiction var gdprapplies = result.gdprapplies; // pass these 2 values to all ad / pixel calls else { // either CMP is not on the publisher's page or an error occurred. safeframe integration Information on accessing the CMP from within a safeframe can be found in the IAB CMP JS API spec here. Oath Inc. All rights reserved 13

14 Frequently Asked Questions Do I need to host the CMP JS script on my site domain? No, as long as the CMP JS script loads in the 1st-party domain, the CMP will be able to store consent as a 1stparty cookie. For server to server ad calls that take place before content is returned to the browser, do I need to add CMP JS to my pages? For more information, please contact your Oath representative. Yes, include CMP JS because occasional downstream creatives and pixels may need to obtain consent. However, if you are confident your property only conducts S2S ad calls you may opt out. My buyers sometimes provide HTML-based creatives which initiate third-party integrations, some of which will now need access to the consent parameters I would pass. Could these third parties use JavaScript to retrieve consent parameters within a creative? Yes. The interface is standardised so that any client-side component that ingests and interprets consent can get this from the CMP JS. How does CMP JS work with creatives inserted into iframes? The IAB spec specifies iframe communication to and from the CMP JS be allowed via postmessage()/safeframes. See the example above in the Ad Call/Pixel integration section. Oath Inc. All rights reserved 14

Transparency & Consent Framework

Transparency & Consent Framework Transparency & Consent Framework Consent Manager Provider JS API v1.0 Table of Contents Introduction... 2 About the Transparency & Consent Framework... 2 About the Transparency & Consent Standard... 3

More information

Integration guide. Contents. Consentmanager.net

Integration guide. Contents. Consentmanager.net Integration guide Contents How to start?... 2 Setup your website and CMP... 2 Create own Design/s... 3 Aligning Texts... 4 Further customization of the CMP... 4 Integrating the CMP into your website/s...

More information

Consent Management Platform (CMP) Full Documentation

Consent Management Platform (CMP) Full Documentation Consent Management Platform (CMP) 1.1.0 Full Documentation (Effective May, 2018) Introduction This document contains instructions to install the Rakuten Consent Management Platform (CMP) on your site.

More information

Transparency & Consent Framework

Transparency & Consent Framework Transparency & Consent Framework FAQ http://advertisingconsent.eu/ 1 Table of Contents Introduction 5 FAQ 7 Section One: WHY WAS THE FRAMEWORK CREATED AND HOW WILL IT BE USED? 7 Section Two: PUBLISHERS

More information

Node.js. Node.js Overview. CS144: Web Applications

Node.js. Node.js Overview. CS144: Web Applications Node.js Node.js Overview JavaScript runtime environment based on Chrome V8 JavaScript engine Allows JavaScript to run on any computer JavaScript everywhere! On browsers and servers! Intended to run directly

More information

Transparency & Consent Framework

Transparency & Consent Framework Transparency & Consent Framework FAQ http://advertisingconsent.eu/ 1 Table of Contents Introduction 5 FAQ 7 Section One: WHY WAS THE FRAMEWORK CREATED AND HOW WILL IT BE USED? 7 Section Two: PUBLISHERS

More information

Transparency & Consent Framework

Transparency & Consent Framework Transparency & Consent Framework FAQ WORK IN PROGRESS NOT FINAL NOT LEGAL ADVICE The IAB Europe GDPR Implementation Working Group ( GIG ) has created this document for discussion and collaboration purposes.

More information

iframe programming with jquery jquery Summit 2011

iframe programming with jquery jquery Summit 2011 iframe programming with jquery jquery Summit 2011 who invited this guy? name s ben strange last name work at disqus co-author, Third-party JavaScript disqus? dis cuss dĭ-skŭs' third-party commenting platform

More information

The individuals that use the system can be divided into two main groups; Customers and Users, typically employed by Customers of Brand Metrics

The individuals that use the system can be divided into two main groups; Customers and Users, typically employed by Customers of Brand Metrics Privacy Design The guideline at Brand Metrics for personal information is to avoid it. When implementing features where personal information needs to be stored top management must review and approve the

More information

Transparency & Consent Framework

Transparency & Consent Framework Transparency & Consent Framework Cookie and Vendor List Format v1.0a Table of Contents Introduction... 2 About the Transparency & Consent Framework... 2 About the Transparency & Consent Standard... 3 License...

More information

Forms. GDPR for Zoho Forms

Forms. GDPR for Zoho Forms GDPR for Zoho Forms The What The General Data Protection Regulation (GDPR) is a regulation that empowers the residents of the European Union (EU) with better transparency, access and control of their personal

More information

AJAX ASYNCHRONOUS JAVASCRIPT AND XML. Laura Farinetti - DAUIN

AJAX ASYNCHRONOUS JAVASCRIPT AND XML. Laura Farinetti - DAUIN AJAX ASYNCHRONOUS JAVASCRIPT AND XML Laura Farinetti - DAUIN Rich-client asynchronous transactions In 2005, Jesse James Garrett wrote an online article titled Ajax: A New Approach to Web Applications (www.adaptivepath.com/ideas/essays/archives/000

More information

Contact center integration with CRM. White paper and best practice for Daktela V6 setup with internal CRM system

Contact center integration with CRM. White paper and best practice for Daktela V6 setup with internal CRM system Contact center integration with CRM White paper and best practice for Daktela V6 setup with internal CRM system 1. Introduction The goal of this document is to provide brief description on the CRM integration

More information

Xignite CloudStreaming overview

Xignite CloudStreaming overview Xignite CloudStreaming overview Objectives Terminology Zero footprint Easy to implement Open standards Sample code Simple javascript implementation Handling patch messages Including error handling Using

More information

CISC 1600 Lecture 2.4 Introduction to JavaScript

CISC 1600 Lecture 2.4 Introduction to JavaScript CISC 1600 Lecture 2.4 Introduction to JavaScript Topics: Javascript overview The DOM Variables and objects Selection and Repetition Functions A simple animation What is JavaScript? JavaScript is not Java

More information

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How!

JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! TS-6824 JavaServer Faces Technology, AJAX, and Portlets: It s Easy if You Know How! Brendan Murray Software Architect IBM http://www.ibm.com 2007 JavaOne SM Conference Session TS-6824 Goal Why am I here?

More information

DIGITAL ADVERTISING TRANSPARENCY, CONTROL, CONSENT:

DIGITAL ADVERTISING TRANSPARENCY, CONTROL, CONSENT: DIGITAL ADVERTISING TRANSPARENCY, CONTROL, CONSENT: CMPs IN THE IAB EUROPE TRANSPARENCY & CONSENT FRAMEWORK AOP CMP Show & Tell Friday 13 th April 2018 Townsend Feehan CEO, IAB Europe Technical standard

More information

Live Agent Developer Guide

Live Agent Developer Guide Live Agent Developer Guide Version 41.0, Winter 18 @salesforcedocs Last updated: November 30, 2017 Copyright 2000 2017 salesforce.com, inc. All rights reserved. Salesforce is a registered trademark of

More information

Pay with Amazon Express Integration Guide

Pay with Amazon Express Integration Guide Pay with Amazon Express Integration Guide Pay with Amazon Express Integration Guide Copyright 2014-2015 Amazon.com, Inc. or its affiliates. AMAZON, AMAZON PAYMENTS, and AMAZON.COM are registered trademarks

More information

Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error

Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error Jquery.ajax Call Returns Status Code Of 200 But Fires Jquery Error The request returns http 200 OK, but the xhr status is 0, error. jquery Ajax Request to get JSON data fires error event to make an ajax

More information

Controller/server communication

Controller/server communication Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication

More information

Jquery Manually Set Checkbox Checked Or Not

Jquery Manually Set Checkbox Checked Or Not Jquery Manually Set Checkbox Checked Or Not Working Second Time jquery code to set checkbox element to checked not working. Apr 09 I forced a loop to show checked state after the second menu item in the

More information

CGS 3066: Spring 2015 JavaScript Reference

CGS 3066: Spring 2015 JavaScript Reference CGS 3066: Spring 2015 JavaScript Reference Can also be used as a study guide. Only covers topics discussed in class. 1 Introduction JavaScript is a scripting language produced by Netscape for use within

More information

HTML5 Creatives. MediaMath now supports HTML5 Creatives. Each T1AS HTML5 Creative must be uploaded with the following 2 components:

HTML5 Creatives. MediaMath now supports HTML5 Creatives. Each T1AS HTML5 Creative must be uploaded with the following 2 components: HTML5 Creatives MediaMath now supports HTML5 Creatives. Each T1AS HTML5 Creative must be uploaded with the following 2 components: Component HTML5 Asset Package: The zip file for the T1AS HTML5 creative.

More information

Lead Forensics Software Data Compliance Policy

Lead Forensics Software Data Compliance Policy Lead Forensics Software Data Compliance Policy The Lead Forensics Product The Lead Forensics product is a market leading B2B sales and marketing enablement tool. It is SaaS (Software as a Service) and

More information

API DOCUMENTATION. IMPROVE DIGITAL API DOCUMENTATION Version 1.2 January BIDDING OVERVIEW

API DOCUMENTATION. IMPROVE DIGITAL API DOCUMENTATION Version 1.2 January BIDDING OVERVIEW IMPROVE DIGITAL API Version 1.2 January 2014 1. BIDDING OVERVIEW With RTB bidding, the price is determined by a server side API call between the RTB bidder and Improve Digital. The ad tag provided by the

More information

ScholarOne Manuscripts Release Notes. Production Release v4.23

ScholarOne Manuscripts Release Notes. Production Release v4.23 ScholarOne Manuscripts Release Notes Production Release v4.23 ScholarOne Manuscripts Release 4.23 Date of issue: May 2018 ScholarOne Manuscripts v4.23 Release Notes 2 Authors Chris Heid Product Lead, Publishing

More information

BEST PRACTICES HTML5 SPECIFICATIONS. what's next in data-driven advertising. File Types. HTML5: HTML, JS, CSS, JPG, JPEG, GIF, PNG, and SVG

BEST PRACTICES HTML5 SPECIFICATIONS. what's next in data-driven advertising. File Types. HTML5: HTML, JS, CSS, JPG, JPEG, GIF, PNG, and SVG SPECIFICATIONS HTML5 creatives are a type of display creative that must follow the same guidelines as display creatives with some additional recommendations. The IAB Display Advertising Guidelines (https://www.iab.com/newadportfolio/)

More information

Sarri Gilman Privacy Policy

Sarri Gilman Privacy Policy Sarri Gilman Privacy Policy Sarri Gilman, Sole Proprietor ( Company, we, or us ) respects your privacy and is committed to protecting it through this Privacy Policy. This Privacy Policy governs your access

More information

CD STRENGTH LLC. A MASSACHUSETTS, USA BASED COMPANY

CD STRENGTH LLC. A MASSACHUSETTS, USA BASED COMPANY CD STRENGTH LLC. A MASSACHUSETTS, USA BASED COMPANY PRIVACY POLICY This Privacy Policy will be effective as of May 23, 2018 for all new users and users in EU and EEA member countries. For all other users,

More information

HTTP Security Headers Explained

HTTP Security Headers Explained HTTP Security Headers Explained Scott Sauber Slides at scottsauber.com scottsauber Audience Anyone with a website Agenda What are HTTP Security Headers? Why do they matter? HSTS, XFO, XSS, CSP, CTO, RH,

More information

StratumGS Documentation

StratumGS Documentation StratumGS Documentation Release 0.1.0 Dave Korhumel May 14, 2016 Contents 1 Documentation 3 1.1 Design.................................................. 3 1.2 Guides..................................................

More information

Ajax HTML5 Cookies. Sessions 1A and 1B

Ajax HTML5 Cookies. Sessions 1A and 1B Ajax HTML5 Cookies Sessions 1A and 1B JavaScript Popular scripting language: Dynamic and loosely typed variables. Functions are now first-class citizens. Supports OOP. var simple = 2; simple = "I'm text

More information

CS 498RK FALL RESTFUL APIs

CS 498RK FALL RESTFUL APIs CS 498RK FALL 2017 RESTFUL APIs Designing Restful Apis blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/ www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api Resources

More information

Controller/server communication

Controller/server communication Controller/server communication Mendel Rosenblum Controller's role in Model, View, Controller Controller's job to fetch model for the view May have other server communication needs as well (e.g. authentication

More information

TechTarget, Inc. Privacy Policy

TechTarget, Inc. Privacy Policy This Privacy Policy (the Policy ) is designed to inform users of TechTarget, Inc., and its affiliates (collectively TechTarget ) network of websites about how TechTarget gathers and uses information provided

More information

Privacy Policy and GDPR Compliance

Privacy Policy and GDPR Compliance Privacy Policy and GDPR Compliance The following privacy policy describes how we collect, use and share your personal information when you visit or make an online order at laoudis.gr and at laoudis.com

More information

JavaScript Specialist v2.0 Exam 1D0-735

JavaScript Specialist v2.0 Exam 1D0-735 JavaScript Specialist v2.0 Exam 1D0-735 Domain 1: Essential JavaScript Principles and Practices 1.1: Identify characteristics of JavaScript and common programming practices. 1.1.1: List key JavaScript

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

JavaScript Introduction

JavaScript Introduction JavaScript Introduction Web Technologies I. Zsolt Tóth University of Miskolc 2016 Zsolt Tóth (UM) JavaScript Introduction 2016 1 / 31 Introduction Table of Contents 1 Introduction 2 Syntax Variables Control

More information

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material.

The course is supplemented by numerous hands-on labs that help attendees reinforce their theoretical knowledge of the learned material. Lincoln Land Community College Capital City Training Center 130 West Mason Springfield, IL 62702 217-782-7436 www.llcc.edu/cctc WA2442 Introduction to JavaScript Objectives This intensive training course

More information

WELCOME TO STEELHOUSE NEW CLIENT QUICK START GUIDE

WELCOME TO STEELHOUSE NEW CLIENT QUICK START GUIDE WELCOME TO STEELHOUSE NEW CLIENT QUICK START GUIDE STEELHOUSE QUICK START GUIDE Follow us along the path to higher conversion 3 New Client Checklist 4 What You Need to Know 5 What Your Engineers Need to

More information

Extending the Web Security Model with Information Flow Control

Extending the Web Security Model with Information Flow Control Extending the Web Security Model with Information Flow Control Deian Stefan Advised by David Herman Motivation: 3rd party libraries Password-strength checker Desired security policy: Password is not leaked

More information

PRIVACY NOTICE INFORMATION COLLECTED

PRIVACY NOTICE INFORMATION COLLECTED PRIVACY NOTICE Iberian Property is responsible for the sites available at the domain iberian.property, as well as for its subdomains (collectively named websites ). Iberian Property takes the privacy and

More information

Privacy Policy. Optimizely, Inc. 1. Information We Collect

Privacy Policy. Optimizely, Inc. 1. Information We Collect Privacy Policy Posted: Nov. 19, 2015; Effective Date: Nov. 19, 2015 Optimizely, Inc. This privacy policy applies to Optimizely s Virtual Experience website owned and/or operated for Optimizely, Inc., currently

More information

Technical Specifications Leaderboard + Mobile Leaderboard. 27/12/2018 Tech Specs 1

Technical Specifications Leaderboard + Mobile Leaderboard. 27/12/2018 Tech Specs 1 27/12/2018 Tech Specs 1 27/12/2018 Screenshot 2 Format Device Width*Height Extensions Max. weight Animation Clicktag Leaderboard Desktop / Tablet 728*90 HTML5/GIF/JPG 70 kb 3 loops in 15 clicktag Mobile

More information

AJAX: Asynchronous Event Handling Sunnie Chung

AJAX: Asynchronous Event Handling Sunnie Chung AJAX: Asynchronous Event Handling Sunnie Chung http://adaptivepath.org/ideas/ajax-new-approach-web-applications/ http://stackoverflow.com/questions/598436/does-an-asynchronous-call-always-create-call-a-new-thread

More information

IAB Europe Transparency & Consent Framework Policies

IAB Europe Transparency & Consent Framework Policies IAB Europe Transparency & Consent Framework Policies This document lays out policies applicable to participants in the Transparency & Consent Framework ( Policies ). Participants may include publishers,

More information

Configuring Anonymous Access to Analysis Files in TIBCO Spotfire 7.5

Configuring Anonymous Access to Analysis Files in TIBCO Spotfire 7.5 Configuring Anonymous Access to Analysis Files in TIBCO Spotfire 7.5 Introduction Use Cases for Anonymous Authentication Anonymous Authentication in TIBCO Spotfire 7.5 Enabling Anonymous Authentication

More information

JavaScript CS 4640 Programming Languages for Web Applications

JavaScript CS 4640 Programming Languages for Web Applications JavaScript CS 4640 Programming Languages for Web Applications 1 How HTML, CSS, and JS Fit Together {css} javascript() Content layer The HTML gives the page structure and adds semantics Presentation

More information

CSP ODDITIES. Michele Spagnuolo Lukas Weichselbaum

CSP ODDITIES. Michele Spagnuolo Lukas Weichselbaum ODDITIES Michele Spagnuolo Lukas Weichselbaum ABOUT US Michele Spagnuolo Lukas Weichselbaum Information Security Engineer Information Security Engineer We work in a special focus area of the Google security

More information

Ajax- XMLHttpResponse. Returns a value such as ArrayBuffer, Blob, Document, JavaScript object, or a DOMString, based on the value of

Ajax- XMLHttpResponse. Returns a value such as ArrayBuffer, Blob, Document, JavaScript object, or a DOMString, based on the value of Ajax- XMLHttpResponse XMLHttpResponse - A Read only field Returns a value such as ArrayBuffer, Blob, Document, JavaScript object, or a DOMString, based on the value of XMLHttpRequest.responseType. This

More information

Discovery Service Infrastructure for Test- bädden

Discovery Service Infrastructure for Test- bädden Discovery Service Infrastructure for Test- bädden för EID 2.0 Implementation guidelines Version 0.70 2013-04-24 This document describes the discovery service infrastructure for testbädden for EID 2.0 and

More information

Table of Contents. Developer Manual...1

Table of Contents. Developer Manual...1 Table of Contents Developer Manual...1 API...2 API Overview...2 API Basics: URL, Methods, Return Formats, Authentication...3 API Errors...4 API Response Examples...6 Get Articles in a Category...6 Get

More information

PASS4TEST 専門 IT 認証試験問題集提供者

PASS4TEST 専門 IT 認証試験問題集提供者 PASS4TEST 専門 IT 認証試験問題集提供者 http://www.pass4test.jp 1 年で無料進級することに提供する Exam : 70-480 Title : Programming in HTML5 with JavaScript and CSS3 Vendor : Microsoft Version : DEMO Get Latest & Valid 70-480 Exam's

More information

D&B Web Visitor ID for Adobe Analytics Deployment Guide

D&B Web Visitor ID for Adobe Analytics Deployment Guide D&B Web Visitor ID for Adobe Analytics Deployment Guide VERSION 1.2 FOR ADOBE ANALYTICS JANUARY, 2017 Dun & Bradstreet is a trademark or registered trademark of Dun & Bradstreet, Incorporated. Other trademarks

More information

Platform. Custom Embedded Tabs. Custom Embedded Tab Definitions. Custom Embedded Tabs, page 1

Platform. Custom Embedded Tabs. Custom Embedded Tab Definitions. Custom Embedded Tabs, page 1 Custom Embedded Tabs, page 1 Custom Embedded Tabs Applies to Cisco Jabber for desktop and mobile clients. Custom embedded tabs display HTML content in the client interface. Learn how to create custom embedded

More information

Guides SDL Server Documentation Document current as of 05/24/ :13 PM.

Guides SDL Server Documentation Document current as of 05/24/ :13 PM. Guides SDL Server Documentation Document current as of 05/24/2018 04:13 PM. Overview This document provides the information for creating and integrating the SmartDeviceLink (SDL) server component with

More information

General Data Protection Regulation (GDPR) and the Implications for IT Service Management

General Data Protection Regulation (GDPR) and the Implications for IT Service Management General Data Protection Regulation (GDPR) and the Implications for IT Service Management August 2018 WHITE PAPER GDPR: What is it? The EU General Data Protection Regulation (GDPR) replaces the Data Protection

More information

Sparrow Client (Front-end) API

Sparrow Client (Front-end) API Sparrow Client (Front-end) API Service API Version 3.6.0 (Build 8062) Released May 2017 Revision History Date Revision Comments Author 2017-05-22 1.0 Initial document Ilya Tretyakov 2 Table of Contents

More information

Melis Platform V2. Back-Office. Functionment of modules. Content: Date Version 2.0

Melis Platform V2. Back-Office. Functionment of modules. Content: Date Version 2.0 4, rue du Dahomey 75011 Paris, France (+33 972 386 280 Melis Platform V2 Back-Office Functionment of modules Content: This document explains how to create a module for Melis Platform's backoffice. Date

More information

Xerox Audio Documents App

Xerox Audio Documents App Xerox Audio Documents App Additional information, if needed, on one or more lines Month 00, 0000 Information Assurance Disclosure 2018 Xerox Corporation. All rights reserved. Xerox, Xerox,

More information

Asynchronous Method Calls White Paper VERSION Copyright 2014 Jade Software Corporation Limited. All rights reserved.

Asynchronous Method Calls White Paper VERSION Copyright 2014 Jade Software Corporation Limited. All rights reserved. VERSION 7.0.10 Copyright 2014 Jade Software Corporation Limited. All rights reserved. Jade Software Corporation Limited cannot accept any financial or other responsibilities that may be the result of your

More information

Guides SDL Server Documentation Document current as of 04/06/ :35 PM.

Guides SDL Server Documentation Document current as of 04/06/ :35 PM. Guides SDL Server Documentation Document current as of 04/06/2018 02:35 PM. Overview This document provides the information for creating and integrating the SmartDeviceLink (SDL) server component with

More information

ANGULARJS - MOCK TEST ANGULARJS MOCK TEST II

ANGULARJS - MOCK TEST ANGULARJS MOCK TEST II http://www.tutorialspoint.com ANGULARJS - MOCK TEST Copyright tutorialspoint.com This section presents you various set of Mock Tests related to AngularJS Framework. You can download these sample mock tests

More information

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON

Developing a Web Server Platform with SAPI support for AJAX RPC using JSON 94 Developing a Web Server Platform with SAPI support for AJAX RPC using JSON Assist. Iulian ILIE-NEMEDI Informatics in Economy Department, Academy of Economic Studies, Bucharest Writing a custom web server

More information

Client Side JavaScript and AJAX

Client Side JavaScript and AJAX Client Side JavaScript and AJAX Client side javascript is JavaScript that runs in the browsers of people using your site. So far all the JavaScript code we've written runs on our node.js server. This is

More information

Lewis Weaver. Nell Waliczek. Software Engineering Lead. Program github.

Lewis Weaver. Nell Waliczek. Software Engineering Lead. Program  github. Nell Waliczek Software Engineering Lead Lewis Weaver Program Manager @NellWaliczek github.com/nellwaliczek @lew_weav github.com/leweaver Mixed Reality on the web using WebVR Available October 17 th WebVR

More information

ethnio tm Technical Overview VERSION NO. 6 CREATED AUG 22, 2018 ETHNIO, INC W SUNSET BLVD LOS ANGELES, CA TEL (888)

ethnio tm Technical Overview VERSION NO. 6 CREATED AUG 22, 2018 ETHNIO, INC W SUNSET BLVD LOS ANGELES, CA TEL (888) ethnio tm Technical Overview VERSION NO. 6 CREATED AUG 22, 2018 ETHNIO, INC. 6121 W SUNSET BLVD LOS ANGELES, CA 90028 TEL (888) 879-7439 Summary Ethnio works by displaying a survey-like screener to your

More information

GDPR and digital advertising: Strategies and best practices for implementing GDPR compliance

GDPR and digital advertising: Strategies and best practices for implementing GDPR compliance IP, Tech & Data GDPR and digital advertising: Strategies and best practices for implementing GDPR compliance Presented by: Gerard M. Stegmaier, Partner, Washington, D.C. October 17, 2018 What is GDPR,

More information

Privacy Notice

Privacy Notice www.soaringsoftware.com Privacy Notice This Privacy Policy covers the privacy practices of Soaring Software Solutions, Inc., an Ohio company, along with the Sites on which this Privacy Policy is posted

More information

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message.

CGI Architecture Diagram. Web browser takes response from web server and displays either the received file or error message. What is CGI? The Common Gateway Interface (CGI) is a set of standards that define how information is exchanged between the web server and a custom script. is a standard for external gateway programs to

More information

What's new in AppScan Standard version

What's new in AppScan Standard version What's new in AppScan Standard version 9.0.3.5 IBM Audio Security Connection support dialog by Open access Mic the Slides and more information: http://www.ibm.com/support/docview.wss?uid=swg27049311 February

More information

AJAX: The Basics CISC 282 March 25, 2014

AJAX: The Basics CISC 282 March 25, 2014 AJAX: The Basics CISC 282 March 25, 2014 Synchronous Communication User and server take turns waiting User requests pages while browsing Waits for server to respond Waits for the page to load in the browser

More information

Version 11 Release 0 May 31, IBM Interact - GDPR IBM

Version 11 Release 0 May 31, IBM Interact - GDPR IBM Version 11 Release 0 May 31, 2018 IBM Interact - GDPR IBM This edition applies to version 11.0 of IBM Interact and to all subsequent releases and modifications until otherwise indicated in new editions.

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

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery.

This course is designed for web developers that want to learn HTML5, CSS3, JavaScript and jquery. HTML5/CSS3/JavaScript Programming Course Summary Description This class is designed for students that have experience with basic HTML concepts that wish to learn about HTML Version 5, Cascading Style Sheets

More information

Oracle. Field Service Cloud Mobile Plug-in Framework

Oracle. Field Service Cloud Mobile Plug-in Framework Oracle Field Service Cloud Release August 2017 Field Service Cloud Part Number: E89523-02 Copyright 2017, Oracle and/or its affiliates. All rights reserved Authors: The Field Service Cloud Information

More information

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services

Contents. Demos folder: Demos\14-Ajax. 1. Overview of Ajax. 2. Using Ajax directly. 3. jquery and Ajax. 4. Consuming RESTful services Ajax Contents 1. Overview of Ajax 2. Using Ajax directly 3. jquery and Ajax 4. Consuming RESTful services Demos folder: Demos\14-Ajax 2 1. Overview of Ajax What is Ajax? Traditional Web applications Ajax

More information

ACCESS NetFront TM Browser

ACCESS NetFront TM Browser Security for Access to Device APIs from the Web - W3C Workshop 10-11 December 2008, London ACCESS NetFront TM Browser Marcin Hanclik, R&D, ACCESS CO., LTD. Widgets NetFront Browser Widgets (hereafter NFBW)

More information

Oracle. Field Service Cloud Mobile Plug-in Framework 18B

Oracle. Field Service Cloud Mobile Plug-in Framework 18B Oracle Field Service Cloud 18B Part Number: E94747-02 Copyright 2018, Oracle and/or its affiliates. All rights reserved Authors: The Field Service Cloud Information Development Team This software and related

More information

Oracle. Field Service Cloud Mobile Plug-in Framework 18A

Oracle. Field Service Cloud Mobile Plug-in Framework 18A Oracle Field Service Cloud 18A Part Number: E92209-02 Copyright 2018, Oracle and/or its affiliates. All rights reserved Authors: The Field Service Cloud Information Development Team This software and related

More information

CERTIFICATE IN WEB PROGRAMMING

CERTIFICATE IN WEB PROGRAMMING COURSE DURATION: 6 MONTHS CONTENTS : CERTIFICATE IN WEB PROGRAMMING 1. PROGRAMMING IN C and C++ Language 2. HTML/CSS and JavaScript 3. PHP and MySQL 4. Project on Development of Web Application 1. PROGRAMMING

More information

Index LICENSED PRODUCT NOT FOR RESALE

Index LICENSED PRODUCT NOT FOR RESALE Index LICENSED PRODUCT NOT FOR RESALE A Absolute positioning, 100 102 with multi-columns, 101 Accelerometer, 263 Access data, 225 227 Adding elements, 209 211 to display, 210 Animated boxes creation using

More information

Privacy Policy V2.0.1

Privacy Policy V2.0.1 Privacy Policy V2.0.1 Effective date 25/5/2018 1. Introduction ParkMagic values the trust our users and customers place in us when they give us access to their Personal Information. The Privacy Policy

More information

! The final is at 10:30 am, Sat 6/4, in this room. ! Open book, open notes. ! No electronic devices. ! No food. ! Assignment 7 due 10pm tomorrow

! The final is at 10:30 am, Sat 6/4, in this room. ! Open book, open notes. ! No electronic devices. ! No food. ! Assignment 7 due 10pm tomorrow Announcements ECS 89 6/1! The final is at 10:30 am, Sat 6/4, in this room! Open book, open notes! No electronic devices! No food! Assignment 7 due 10pm tomorrow! No late Assignment 7 s! Fill out course

More information

DFP Mobile Ad Network and Rich Media API

DFP Mobile Ad Network and Rich Media API DFP Mobile Ad Network and Rich Media API v2.0, 12 June 2012 Background DFP Mobile is adopting a single open API for integrating with all ad networks and rich media vendors. This has the following benefits:

More information

AJAX Programming Chris Seddon

AJAX Programming Chris Seddon AJAX Programming Chris Seddon seddon-software@keme.co.uk 2000-12 CRS Enterprises Ltd 1 2000-12 CRS Enterprises Ltd 2 What is Ajax? "Asynchronous JavaScript and XML" Originally described in 2005 by Jesse

More information

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang

WEB SECURITY WORKSHOP TEXSAW Presented by Solomon Boyd and Jiayang Wang WEB SECURITY WORKSHOP TEXSAW 2014 Presented by Solomon Boyd and Jiayang Wang Introduction and Background Targets Web Applications Web Pages Databases Goals Steal data Gain access to system Bypass authentication

More information

General Data Protection Regulation (GDPR) FAQ

General Data Protection Regulation (GDPR) FAQ General Data Protection Regulation (GDPR) FAQ At Salesforce, trust is our #1 value and the protection of our customers data is paramount. We know that many organizations have questions about the GDPR and

More information

How A Website Works. - Shobha

How A Website Works. - Shobha How A Website Works - Shobha Synopsis 1. 2. 3. 4. 5. 6. 7. 8. 9. What is World Wide Web? What makes web work? HTTP and Internet Protocols. URL s Client-Server model. Domain Name System. Web Browser, Web

More information

API Spec Sheet For Version 2.5

API Spec Sheet For Version 2.5 INTRODUCTION The Wholesale SMS API is ideally suited for sending individual sms messages and/or automated responses through our premium routes. To send bulk messages through the API you can set your server

More information

Captivacruises.com Privacy policy

Captivacruises.com Privacy policy Captivacruises.com Privacy policy We have created this Privacy Policy and Legal Notice ( Privacy Policy ) in order to demonstrate our firm commitment to privacy. The following discloses our information

More information

Pop-up. File format/ size: Must provide (.gif or.jpg) still image - max. 75KB for Mobile - max. 400KB for Tablet

Pop-up. File format/ size: Must provide (.gif or.jpg) still image - max. 75KB for Mobile - max. 400KB for Tablet Pop-up Dimensions: Mobile: 640 (W) x 960 (H) pixels Tablet Portrait - 1536 (W) x 2048 (H) pixels [For mytv SUPER only] Tablet Landscape - 2048 (W) x 1536 (H) pixels [For mytv SUPER only] File format/ size:

More information

Fritztile is a brand of The Stonhard Group THE STONHARD GROUP Privacy Notice The Stonhard Group" Notice Whose Personal Data do we collect?

Fritztile is a brand of The Stonhard Group THE STONHARD GROUP Privacy Notice The Stonhard Group Notice Whose Personal Data do we collect? Fritztile is a brand of The Stonhard Group THE STONHARD GROUP Privacy Notice For the purposes of applicable data protection and privacy laws, The Stonhard Group, a division of Stoncor Group, Inc. ( The

More information

Writing Secure Chrome Apps and Extensions

Writing Secure Chrome Apps and Extensions Writing Secure Chrome Apps and Extensions Keeping your users safe Jorge Lucángeli Obes Software Engineer Keeping users safe A lot of work going into making browsers more secure What about users' data?

More information

If you have any questions or concerns, please contact us with the information provided in the Contact Information section of this Policy.

If you have any questions or concerns, please contact us with the information provided in the Contact Information section of this Policy. Effective August 1st 2017 Welcome to Moderno Design LP. Your privacy is important to us. Moderno Design LP ("AppsYouLove", "us", "our" or "we") is dedicated to protecting the privacy rights of our users

More information

ethnio tm IMPLEMENTATION GUIDE ETHNIO, INC W SUNSET BLVD LOS ANGELES, CA TEL (888) VERSION NO. 3 CREATED JUL 14, 2017

ethnio tm IMPLEMENTATION GUIDE ETHNIO, INC W SUNSET BLVD LOS ANGELES, CA TEL (888) VERSION NO. 3 CREATED JUL 14, 2017 ethnio tm IMPLEMENTATION GUIDE VERSION NO. 3 CREATED JUL 14, 2017 ETHNIO, INC. 6121 W SUNSET BLVD LOS ANGELES, CA 90028 TEL (888) 879-7439 SUMMARY Getting Ethnio working means placing one line of JavaScript

More information

Content Security Policy

Content Security Policy About Tim Content Security Policy New Tools for Fighting XSS Pentester > 10 years Web Applications Network Security Products Exploit Research Founded Blindspot Security in 2014 Pentesting Developer Training

More information

PubNub Training Webinar. Introduction to PubNub JavaScript SDK

PubNub Training Webinar. Introduction to PubNub JavaScript SDK PubNub Training Webinar Introduction to PubNub JavaScript SDK Course Agenda Participation What is PubNub? JavaScript API Resources Upcoming Events Q & A What is PubNub? Globally distributed Realtime Data

More information