High Performance Messaging for Web-Based Trading Systems

Total Page:16

File Type:pdf, Size:1020Kb

High Performance Messaging for Web-Based Trading Systems High Performance Messaging for Web-based Trading Systems Frank Greco - @frankgreco Director of Technology, Kaazing Outline § Background § Trading Systems and the Web § Requirements § Web Messaging for Trading Apps § Layered Approach to Web Protocols § New Requirements § The Web beyond the Browser © 2013 Kaazing Corporation Background § Financial Services – Capital Markets § Desktop trading systems – Swing/Java/TIBCO, et al § Customer use cases – FX, Commodity desks § Director of Technology @ Kaazing § Chairman NYJavaSIG (javasig.com) § Largest JUG in North America 7,000+ members § [email protected], @frankgreco © 2013 Kaazing Corporation Web Trading Systems FX Trader Application – front office demo.kaazing.com/forex © 2013 Kaazing Corporation What is a Web Trading System § Trading System – A set of rules governing buying/selling § An application that expedites a trading system § Modern Web Trading requirements - HTML5 – no more plugins - UI/UX – Sencha/extJS, GWT, jQuery, GPU acceleration, etc - Usable application cache - Fast, reliable, secure - Minimal impact to back-end services - Works with pub/sub brokers and data feeds - High message rate, small payload – equity ticks, watchlist, currency pairs, etc. © 2013 Kaazing Corporation Everything sounds do-able, except… § Designed for document transfer – HTTP - Short-lived Request / Response interaction § Bidirectional, but half-duplex - Traffic flows in only one direction at a time § Stateless - Large amounts of metadata resent for each request Web was not designed for “real-time”, event-based services… © 2013 Kaazing Corporation Some things age well… HTTP TCP © 2013 Kaazing Corporation …and some things don’t Oldies Hits - AJAX and the Comet Pollers - 2006 © 2013 Kaazing Corporation High-Level Trading Systems Architecture iOS/Android Pricing Feeds Mobile Authentication Authorization Browser/Native Client Make Net me Msg News/Alerts Web Broker friendly Browser JMS/AMQP etc… Trade Exec What everyone does… Desktop Java/.NET Reports © 2013 Kaazing Corporation High-Level Trading Systems Architecture iOS/Android Pricing Feeds Mobile Authentication Authorization Browser/Native Client Make Net me Msg News/Alerts Web Broker friendly Browser JMS/AMQP etc… Trade Exec Developers want a secure version of this Desktop architecture so they Java/.NET can focus on the app Reports © 2013 Kaazing Corporation Real-time Client/Server Architecture Instead, we try this traditional solution Trading App Broker Just have to open some ports… Merely deploy Java/.NET on Only need to traverse several client… proxies between the endpoints… Easy, right?... © 2013 Kaazing Corporation Middleware for the Middleware Or we try to proxy things over the web ticker plant Scalability Issues… Protocol mismatches… Inefficient… Latency Issues… © 2013 Kaazing Corporation Things aren’t looking too good… © 2013 Kaazing Corporation Welcome HTML5 (aka The New Web)! § Users are Demanding more from Apps § UI/UX Requirements are more sophisticated § API Explosion § Browser Enhancements § Web no longer just about Documents but the existing infrastructure reflects this legacy The New Web is a Foundation for Enterprise-grade Applications 14 © 2013 Kaazing Corporation WebSocket • “Real-Time”, bi-directional connectivity • IETF Protocol - RFC 6455 – Dec 2011 • W3C API • Easily add event-based (trading) data to web apps • Avoids polling • Avoids HTTP meta-data overhead • Shares port with HTTP (80/443) • Peer protocol to HTTP (both use TCP) • Most Important API in HTML5 • Facilitates other protocols • Puts the web in a better place… © 2013 Kaazing Corporation WebSocket Standards § W3C API – Candidate Recommendation - http://www.w3.org/TR/websockets/ § IETF Formal Protocol (RFC 6455) - Event-driven JavaScript API - Full-duplex communication protocol § Integrates HTTP addressing - ws://yourcompany.com/collaboration_svc - wss://anothercompany.com/marketdata_svc § Traverses firewalls, proxies, routers securely § Text and Binary § Leverages Cross-Origin Resource Sharing (CORS) © 2013 Kaazing Corporation The WebSocket Handshake © 2013 Kaazing Corporation For Real-Time, Event-based Web Communication… Legacy HTTP vs WebSocket Seems like a no-brainer for trading apps… 18 © 2013 Kaazing Corporation Java API for WebSocket - JSR 356 § Creation of WebSocket Java components to handle bi-directional WebSocket conversations § Handling WebSocket events § Creation and consumption of WebSocket text and binary messages § Allows for WebSocket protocols and content models for an application § Configuration and management of WebSocket sessions, like timeouts, retries, cookies, connection pooling § Specification of how WebSocket application will work within the Java EE security model! § Official Java SE WebSocket API in the works… © 2013 Kaazing Corporation Why do I Care? What does this really have to do with high- performance messaging? © 2013 Kaazing Corporation Legacy Web Half Duplex - HTTP Full duplex Web Browser Web Tier Middleware Msg Broker Live Web Full duplex - WebSocket Full duplex Web WebSocket Msg Broker Server © 2013 Kaazing Corporation Scalability – more traders, more services Complexity More Traders More Services More…More… Growth Greco’s Law! Scalability = Growth / Complexity Simple things scale… 22 © 2013 Kaazing Corporation 22 HTML5 WebSocket API © 2013 Kaazing Corporation HTML5 WebSocket API But… Dealing with WebSocket is like dealing with TCP. It’s a streams-based model. You need to understand how to handle streams-based data over the wire. So how do I do publish/subscribe for my trading system? © 2013 Kaazing Corporation What is Missing? Where is the Application-level Protocol? • Who handles retries? • How do we handle publish/subscribe semantics? • How do we handle market data? • Is guaranteed delivery possible (trades)? • What if the client is not active? • How do we handle [fill in with favorite semantics] • What about partials? • Who’s responsible for entitlements? How do I manage that? • etc… © 2013 Kaazing Corporation But wait… Protocol Layering is Possible! Whoa… Its just like TCP! Huzzah! Browser and Native Applications JMS XMPP AMQP B2B FTP VNC mktdata etc WebSocket TCP Internet WebSocket WebSocket Gateway Gateway © 2013 Kaazing Corporation Anything Else Missing? Other Considerations… • Need to handle multiple WS versions • Need to handle multiple (and legacy) browser versions • Can’t have business logic in the DMZ • Have to work in multiple DMZs • AuthN/AuthZ has to work multiple times • High-availability topology • Concerns about open ports with back-end service • Services architecture needs to be consistent • Native, HTML5 and hybrid environments • Integrate easily with non-messaging services • XaaS integration – the Web beyond the browser • Bandwidth management • etc… All things you need for a real enterprise app © 2013 Kaazing Corporation Publish/Subscribe over the Web for Trading Systems Java Message Service (JMS) over WebSocket A 60-second Tutorial In case you haven’t heard of JMS… © 2013 Kaazing Corporation Java Message Service (JMS) • Java EE Message Oriented Middleware • JMS 1.0 2001, JMS 1.1 2002, JMS 2.0 (Feb 26, 2013) • Asynchronous Messaging vs. RPC • Loosely coupled vs. Tightly coupled • Pub/Sub, Topics, Queues • Transactions, Reliable © 2013 Kaazing Corporation Basic Inside-the-Firewall JMS conn = createConnection(); sess = conn.createSession(); topic = jndiContext.lookup(topic); pub = sess.createProducer(topic); pub.send(“hey Frank”); conn = createConnection(); sessconn = conn.createSession();= createConnection(); sessconn = conn.createSession();= createConnection(); topicsess = jndiContext.lookup(topic); = conn.createSession(); subtopic = sess.createConsumer(topic);= jndiContext.lookup(topic); subtopic = sess.createConsumer(topic);= jndiContext.lookup(topic); sub.setMessageListener(this);sub = sess.createConsumer(topic); …sub.setMessageListener(this); …sub.setMessageListener(this); public… void onMessage(Message m) { publicString voids = m.getText(); onMessage(Message m) { msg publicString voids = m.getText(); onMessage(Message m) { … doString stuff s… = m.getText(); broker } … do stuff… } … do stuff… } © 2013 Kaazing Corporation Now… JMS API for JavaScript 1. Create connection from ConnectionFactory see tutorial.kaazing.com 2. Create session 3. Create topic or queue 4. Create producer 5. Create consumer 6. Create message listeners (function to handle messages) 2 session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); 3 var myTopic = session.createTopic("/topic/myTopic"); 4 topicProducer = session.createProducer(myTopic); 5 topicConsumer = session.createConsumer(myTopic); 6 topicConsumer.setMessageListener(handleTopicMessage); © 2013 Kaazing Corporation JMS API for JavaScript 7. Send messages var doSend = function(message) { message.setStringProperty(MESSAGE_PROPERTIES.userId, userId); topicProducer.send(null, message, DeliveryMode.NON_PERSISTENT, 3, 1, function() sendFromQueue(); }); }; 8. Process messages: the message listener function: handleTopicMessage() var handleTopicMessage = function(message) { if (message.getStringProperty(MESSAGE_PROPERTIES.userId) != userId) { $("#slider").val(message.getText()); $("#pic").width(message.getText()); } }; © 2013 Kaazing Corporation WebSocket Projects, OSS, Vendors • Kaazing • Node.js/socket.io • ActiveMQ • Tomcat • Jetty • Oracle Glassfish • Java EE • Play Framework • Rabbit MQ • JBoss • IIS/ASP .NET 4.5 • PHP, Objective-C, Ruby, Python, C/C++, JVM-langs… • Many more… © 2013 Kaazing Corporation Futures What’s next for Trading Systems and the Web?
Recommended publications
  • M3AAWG Best Common Practices for Mitigating Abuse of Web Messaging Systems, Version 1.1 Updated March 2019 (2010)
    Messaging, Malware and Mobile Anti-Abuse Working Group (M3AAWG) M3AAWG Best Common Practices for Mitigating Abuse of Web Messaging Systems, Version 1.1 Updated March 2019 (2010) The reference URL for this document is www.m3aawg.org/WebMessagingAbuse Table of Contents Updated in this Version ......................................................................................................................................................... 1 Introduction ........................................................................................................................................................................... 1 Typical Attacks ...................................................................................................................................................................... 2 Monitoring and Alerting ....................................................................................................................................................... 2 Proactive Defense .................................................................................................................................................................. 3 UI Access ........................................................................................................................................................................................................... 3 Web Application Security ..............................................................................................................................................................................
    [Show full text]
  • Cross-Domain Communications
    CSE 361: Web Security Cross-domain Communication Nick Nikiforakis 2 A World Without Separation between Sites http://kittenpics.org https://gmail.com 3 The Same-Origin Policy for JavaScript • Most basic access control policy • controls how active content can access resources • Same-Origin Policy for JavaScript for three actions • Script access to other document in same browser • frames/iframes • (popup) windows • Script access to application-specific local state • cookies, Web Storage, or IndexedDB • Explicit HTTP requests to other hosts • XMLHttpRequest 4 The Same-Origin Policy for JavaScript • Only allows access if origins match Protocol Hostname Port • Origin defined by protocol, hostname, and port http://example.org:80/path/ Originating document Accessed document Non-IE Browser Internet Explorer http://example.org/a http://example.org/b http://example.org http://www.example.org http://example.org https://example.org http://example.org http://example.org:81 5 Domain Relaxation • Two sub-domains of a common parent domain want to communicate • Notably: can overwrite different port! • Browsers allow setting document.domain property • Can only be set to valid suffix including parent domain • test.example.org -> example.org ok • example.org -> org forbidden • When first introduced, relaxation of single sub-domain was sufficient • Nowadays: both (sub-)domains must explicitly set document.domain 6 Domain Relaxation http://sub.kittenpics.org http://kittenpics.org document.domain = "kittenpics.org" document.domain = "kittenpics.org" 7 Domain Relaxation http://sub.kittenpics.org http://kittenpics.org document.domain = "kittenpics.org" Cross-Origin Communication 9 Cross-origin communication • Subdomains of the same domain can use domain relaxation when they want to talk to one another.
    [Show full text]
  • A Trusted Infrastructure for Symbolic Analysis of Event-Driven Web
    A Trusted Infrastructure for Symbolic Analysis of Event-Driven Web Applications Gabriela Sampaio Imperial College London, UK [email protected] José Fragoso Santos INESC-ID/Instituto Superior Técnico, Universidade de Lisboa, Portugal Imperial College London, UK [email protected] Petar Maksimović Imperial College London, UK [email protected] Philippa Gardner Imperial College London, UK [email protected] Abstract We introduce a trusted infrastructure for the symbolic analysis of modern event-driven Web applica- tions. This infrastructure consists of reference implementations of the DOM Core Level 1, DOM UI Events, JavaScript Promises and the JavaScript async/await APIs, all underpinned by a simple Core Event Semantics which is sufficiently expressive to describe the event models underlying these APIs. Our reference implementations are trustworthy in that three follow the appropriate standards line-by-line and all are thoroughly tested against the official test-suites, passing all the applicable tests. Using the Core Event Semantics and the reference implementations, we develop JaVerT.Click, a symbolic execution tool for JavaScript that, for the first time, supports reasoning about JavaScript programs that use multiple event-related APIs. We demonstrate the viability of JaVerT.Click by proving both the presence and absence of bugs in real-world JavaScript code. 2012 ACM Subject Classification Software and its engineering → Formal software verification; Software and its engineering → Software testing and debugging Keywords and phrases Events, DOM, JavaScript, promises, symbolic execution, bug-finding Digital Object Identifier 10.4230/LIPIcs.ECOOP.2020.28 Acknowledgements Fragoso Santos, Gardner, and Maksimović were partially supported by the EPSRC Programme Grant ‘REMS: Rigorous Engineering for Mainstream Systems’ (EP/K008528/1) and the EPSRC Fellowship ‘VetSpec: Verified Trustworthy Software Specification’ (EP/R034567/1).
    [Show full text]
  • Get Started with HTML5 ● Your Best Bet to Experiment with HTML5 – Safari – Chrome As of – Beta: Firefox 4 and IE 9
    BibhasBibhas BhattacharyaBhattacharya CTO,CTO, WebWeb AgeAge SolutionsSolutions [email protected]@webagesolutions.com www.webagesolutions.com/trainingwww.webagesolutions.com/training Get Started With HTML5 ● Your best bet to experiment with HTML5 – Safari – Chrome As of – Beta: FireFox 4 and IE 9. October 2010 ● Test your browser: – html5test.com – html5demos.com – www.findmebyip.com/litmus ● JavaScript library to test for HTML5 features – www.modernizr.com Browser Support ● Dreamweaver CS5 11.0.3 update will install HTML5 compatibility pack. ● CS4 and CS3 users should download the pack from Dreamweaver Exchange. ● See a demo: – www.youtube.com/watch?v=soNIxy2sj0A DreamWeaver Story - The canvas element - Custom audio & video player - New semantic elements - Geolocation (header, section, footer etc.) - Local data storage - New form input elements - Web SQL & IndexedDB (e-mail, date, time etc.) - Offline apps - Audio and video - Messaging - CSS3 - Web worker - Push using WebSocket For web page designers For developers What's New in HTML5? SimplifiedSimplified <!DOCTYPE html> DOCTYPEDOCTYPE <html> <head> <title>Page Title</title> Simplified <meta charset="UTF-8"> Simplified charsetcharset settingsetting </head> <body> <p>Hello World</p> </body> </html> Basic HTML 5 Document ● Elements that have no special visual styling but are used to provide structure and meaning to the content. ● HTML4 semantic elements – div (block) – span (in line) ● HTML5 semantic elements – header, footer, section, article, aside, time and others..
    [Show full text]
  • Web Messaging and Notification System Between Journalists And
    FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO Web messaging and notification system between journalists and citizens Cláudia Margarida da Rocha Marinho Mestrado Integrado em Engenharia Informática e Computação Supervisor: Maria Teresa Magalhães da Silva Pinto de Andrade Second Supervisor: Pedro Miguel da Silva Santos July 19, 2019 Web messaging and notification system between journalists and citizens Cláudia Margarida da Rocha Marinho Mestrado Integrado em Engenharia Informática e Computação Approved in oral examination by the committee: Chair: Jorge Manuel Gomes Barbosa (Assistant Professor) External Examiner: Paula Viana (Coordinator Professor) Supervisor: Maria Teresa Andrade (Assistant Professor) July 19, 2019 Abstract Over the recent years, live streaming has become a popular trend among events’ attendees, al- lowing them to share their own experiences of the event with people around the world. Realizing that this might be an opportunity for content providers to enrich their coverage of large events by making use of the attendees’ contributions, MOG Technologies started a project in a partnership with INESC TEC, Jornal de Notícias and OSTV. The idea of the project is to offer simple means for the event attendees, who can be general public or professional reporters, to send video streams in real-time to the TV producer who is covering the event and live broadcasting it to the public. The video streams are captured with the smartphones of the attendees through an intuitive web app. On the production side, the intention is to allow the TV event producer to continuously browse through the different received feeds using a drag-and-drop web-based GUI and, at any instant, to select a given feed to be inserted automatically in the main broadcast stream, which can also appear in the on-site large TV screens.
    [Show full text]
  • Audioworklet: the Future of Web Audio
    AudioWorklet: The future of web audio Hongchan Choi Google Chrome [email protected] ABSTRACT 1.2 Web Audio API processing model To appreciate the advantages of AudioWorklet over Script- This paper presents a newly introduced extension to the ProcessorNode, it is helpful to understand how Web Audio Web Audio API that enables developers to author custom API operates internally. The following is a quick recap of audio processing on the web. AudioWorklet brings JavaScript- the processing model embodied in the API specification. based audio processing that is fast, reliable and secure while addressing numerous problems found in the earlier Browser main thread High priority thread ScriptProcessorNode. AudioWorklet’s design is discussed, followed by technical aspects, usage examples, and what Control thread Render thread the new functionality offers to the computer music commu- User script nity. Audio graph code change update 1. BACKGROUND Command AudioNodes queue 1.1 What is AudioWorklet? Asynchronous messaging Since its birth in 2010, the Web Audio API [1] has trans- formed the web browser into a platform for interactive ap- Figure 1. The processing model of the Web Audio API plications for music and audio. Although it has been rea- sonably successful in accommodating various use cases Two crucial premises of the Web Audio API rendering with its highly dynamic design, there has been a major mechanism are that 1) the audio rendering needs to be per- criticism pointing out its lack of flexibility and extensi- formed on a dedicated thread with high priority and 2) the bility. Besides built-in features for basic audio processing rendering pipeline must have a fixed size render quantum and synthesis, the API also provided developers with a way of 128 frames.
    [Show full text]
  • Standards for Web Applications on Mobile: Current State and Roadmap
    Standards for Web Applications on Mobile: current state and roadmap January 2014 Latest version http://www.w3.org/Mobile/mobile-web-app-state/ This version http://www.w3.org/2014/01/mobile-web-app-state/ (PDF version) Previous version http://www.w3.org/2013/09/mobile-web-app-state/ Web technologies have become powerful enough that they are used to build full-featured applications; this has been true for many years in the desktop and laptop computer realm, but is increasingly so on mobile devices as well. This document summarizes the various technologies developed in W3C that increase the capabilities of Web applications, and how they apply more specifically to the mobile context. A good subset of these technologies are described and explained in the W3C on-line training on programming Web applications. 1. Graphics ...................................................................................................................................................................................3 2. Multimedia.............................................................................................................................................................................10 3. Device Adaptation .................................................................................................................................................................14 4. Forms .....................................................................................................................................................................................17
    [Show full text]
  • Challenges for Enabling Targeted Multi-Screen Advertisement for Interactive TV Services for the Fourth W3C Web and TV Workshop
    Position Paper: Challenges for enabling targeted multi-screen advertisement for interactive TV services for the Fourth W3C Web and TV Workshop Christopher Krauss, Louay Bassbouss, Stefan Pham, Stefan Kaiser, Stefan Arbanowski, Stephan Steglich Fraunhofer Institute for Open Communication Systems Kaiserin-Augusta-Allee 31, 10589 Berlin, Germany ffi[email protected] February 3, 2014 The Fraunhofer Institute FOKUS1 Competence Center Future Applications and Media FAME2 re- searches and develops in the fields of interactive smart and social media services, cross-platform applica- tions as well as personalized service offerings. All technical solutions comply with applicable international standards, such as DASH IF, the Open IPTV Forum, HbbTV and W3C. In this context, the theme of the FAME organized 4th FOKUS Media Web Symposium3 on May 8 - 9, 2014 is "Internet delivered Media and Multi-screen Technologies and Standards". In this position paper we will address the challenges and missing standards for enabling targeted multi-screen advertisement for interactive TV services. Furthermore, we will outline and discuss the limitations and difficulties of building cross-platform and multi-screen TV services. We will also propose potential solutions for closing the gap between the web and TV domains based on the following use case: Alice and Bob are watching a Formula 1 race on the TV. The broadcaster offers a service which allows users watch the race from different camera perspectives, where the TV displays the perspective of the main camera and a companion device may be used to display the perspective of the on-board camera of a selected driver (user can select which driver).
    [Show full text]
  • Http Mailbox - Asynchronous Restful
    Old Dominion University ODU Digital Commons Computer Science Theses & Dissertations Computer Science Summer 2013 HTTP aiM lbox - Asynchronous Restful Communication Sawood Alam Old Dominion University Follow this and additional works at: https://digitalcommons.odu.edu/computerscience_etds Part of the Computer Sciences Commons, and the Digital Communications and Networking Commons Recommended Citation Alam, Sawood. "HTTP aiM lbox - Asynchronous Restful Communication" (2013). Master of Science (MS), thesis, Computer Science, Old Dominion University, DOI: 10.25777/wh13-fd86 https://digitalcommons.odu.edu/computerscience_etds/28 This Thesis is brought to you for free and open access by the Computer Science at ODU Digital Commons. It has been accepted for inclusion in Computer Science Theses & Dissertations by an authorized administrator of ODU Digital Commons. For more information, please contact [email protected]. HTTP MAILBOX - ASYNCHRONOUS RESTFUL COMMUNICATION by Sawood Alam B.Tech. May 2008, Jamia Millia Islamia, India A Thesis Submitted to the Faculty of Old Dominion University in Partial Fulfillment of the Requirements for the Degree of MASTER OF SCIENCE COMPUTER SCIENCE OLD DOMINION UNIVERSITY August 2013 Approved by: Michael L. Nelson (Director) Michele C. Weigle (Member) Ravi Mukkamala (Member) ABSTRACT HTTP MAILBOX - ASYNCHRONOUS RESTFUL COMMUNICATION Sawood Alam Old Dominion University, 2013 Director: Dr. Michael L. Nelson Traditionally, general web services used only the GET and POST methods of HTTP while several other HTTP methods like PUT, PATCH, and DELETE were rarely utilized. Additionally, the Web was mainly navigated by humans using web browsers and clicking on hyperlinks or submitting HTML forms. Clicking on a link is always a GET request while HTML forms only allow GET and POST methods.
    [Show full text]
  • HTML5 and Java Technologies
    HTML5 and Java Technologies Peter Doschkinow Senior Java Architect The following is intended to outline our general product direction. It is intended for information purposes only, and may not be incorporated into any contract. It is not a commitment to deliver any material, code, or functionality, and should not be relied upon in making purchasing decisions. The development, release, and timing of any features or functionality described for Oracle’s products remains at the sole discretion of Oracle. Agenda . Motivation . HTML5 Overview – Related Java Technologies . Thin Server Architecture . Demo Motivation . Need for clarification Gartner’s 2012 Emerging Technologies Hype Cycle – What is behind the hype . Architectural consequences of new trends . What does the Java platform offer to meet the new challenges . Building of common understanding Web Technology History . 1991 HTML . 1995 JavaScript @ Netscape . 1994 HTML2 . 1996 ECMAScript 1.0, 1.1 . 1996 CSS1 . 1997 ECMAScript 1.2 . 1997 HTML4 . 1998 ECMAScript 1.3 . 1998 CSS2 . 2000 ECMAScript 3 . 2000 XHTML1 . 2010 ECMAScript 5 . 2002 Tableless Web Design . Next: ECMAScript 6 Harmony . 2005 AJAX . 2009 HTML5: as of Dec 2012 W3C CR HTML5 Features W3C / Web Hypertext Application Technology Working Group(WHATWG) . Markup – Semantic markup replacing common usages of generic <span>, <div> . <nav>, <footer>,<audio>, <video>, ... API – Canvas 2D (for immidate mode 2D drawing),Timed media playback – Offline Web Applications, Local Srorage and Filesystem, Web Storage – Geolocation, Web Storage, IndexedDB – File API, Drag-and-Drop, Browser History – ... HTML5 Features Offloaded to other specs, originally part of HTML5 . WebSocket API, Server-Sent Events(SSE), Web Messaging, Web Workers, Web Storage (Web Apps WG ) .
    [Show full text]
  • An Expressive Model for the Web Infrastructure: Definition and Application to the Browserid SSO System
    An Expressive Model for the Web Infrastructure: Definition and Application to the BrowserID SSO System∗ Daniel Fett, Ralf Küsters, Guido Schmitz University of Trier, Germany {fett,kuesters,schmitzg}@uni-trier.de Abstract The web constitutes a complex infrastructure and as demonstrated by numerous attacks, rigorous analysis of standards and web applications is indispensable. Inspired by successful prior work, in particular the work by Akhawe et al. as well as Bansal et al., in this work we propose a formal model for the web infrastructure. While unlike prior works, which aim at automatic analysis, our model so far is not directly amenable to automation, it is much more comprehensive and accurate with respect to the standards and specifications. As such, it can serve as a solid basis for the analysis of a broad range of standards and applications. As a case study and another important contribution of our work, we use our model to carry out the first rigorous analysis of the BrowserID system (a.k.a. Mozilla Persona), a recently developed complex real-world single sign-on system that employs technologies such as AJAX, cross-document messaging, and HTML5 web storage. Our analysis revealed a number of very critical flaws that could not have been captured in prior models. We propose fixes for the flaws, formally state relevant security properties, and prove that the fixed system in a setting with a so-called secondary identity provider satisfies these security properties in our model. The fixes for the most critical flaws have already been adopted by Mozilla and our findings have been rewarded by the Mozilla Security Bug Bounty Program.
    [Show full text]
  • CTA Specification, CTA-5000) and W3C (As a Final Community Group Report), by Agreement Between the Two Organizations
    CCTTAA SSppeecciiffiiccaattiioonn Web Application Video Ecosystem – Web Media API Snapshot 2017 CTA-5000 December 2017 NOTICE Consumer Technology Association (CTA)™ Standards, Bulletins and other technical publications are designed to serve the public interest through eliminating misunderstandings between manufacturers and purchasers, facilitating interchangeability and improvement of products, and assisting the purchaser in selecting and obtaining with minimum delay the proper product for his particular need. Existence of such Standards, Bulletins and other technical publications shall not in any respect preclude any member or nonmember of the Consumer Technology Association from manufacturing or selling products not conforming to such Standards, Bulletins or other technical publications, nor shall the existence of such Standards, Bulletins and other technical publications preclude their voluntary use by those other than Consumer Technology Association members, whether the document is to be used either domestically or internationally. WAVE Specifications are developed under the WAVE Rules of Procedure, which can be accessed at the WAVE public home page (https://cta.tech/Research-Standards/Standards- Documents/WAVE-Project/WAVE-Project.aspx) WAVE Specifications are adopted by the Consumer Technology Association in accordance with clause 5.4 of the WAVE Rules of Procedures regarding patent policy. By such action, the Consumer Technology Association does not assume any liability to any patent owner, nor does it assume any obligation whatever to parties adopting the Standard, Bulletin or other technical publication. This document does not purport to address all safety problems associated with its use or all applicable regulatory requirements. It is the responsibility of the user of this document to establish appropriate safety and health practices and to determine the applicability of regulatory limitations before its use.
    [Show full text]