Saturday, 15 April 2017

Hochleistungs Messaging Für Web Basierte Handelssysteme

Hochleistungs-Messaging für webbasierte Handelssysteme. Frank Greco Direktor für Technologie, Kaazing Transkription 1 Hochleistungs-Messaging für webbasierte Handelssysteme Frank Greco Director of Technology, Kaazing 2 Überblick Hintergrund-Trading-Systeme und die Webanforderungen Web Messaging für Trading-Anwendungen Layered-Ansatz für Web-Protokolle Neue Anforderungen Das Web jenseits der Browser 3 Hintergrund Finanzdienstleistungen Kapitalmärkte Desktop-Handelssysteme SwingJavaTIBCO und andere Kunden-Use-Cases FX, Commodity-Desks Director von Kaazing Chairman NYJavaSIG (javasig) Größter JUG in Nordamerika 7.000 4 Web Trading Systeme FX Trader Anwendung Front Office demo. kaazingforex 5 Was ist Ein Web Trading System Trading System Eine Reihe von Regeln für Buyingselling Eine Anwendung, die ein Handelssystem beschleunigt Moderne Web Trading-Anforderungen - HTML5 keine Plugins mehr - UIUX SenchaextJS, GWT, jquery, GPU-Beschleunigung, etc - Verwendbarer Anwendungscache - Schnell, zuverlässig, sicher - Minimale Auswirkung auf Backend-Services - Arbeitet mit Pubsub-Brokern und Daten-Feeds - Hohe Nachrichtenrate, kleine Payload-Equity-Ticks, Watchlist, Währungspaare, etc. 6 Alles klingt machbar, außer Designed für Dokumententransfer HTTP - Kurzlebig Request Response Interaction Bidirektional, aber halbduplex - Traffic fließt in nur einer Richtung zu einem Zeitpunkt Stateless - Große Mengen an Metadaten resent für jede Anfrage Web wurde nicht für Echtzeit-, Ereignis-basierte Dienste entworfen 7 Einige Dinge Alter gut HTTP TCP 8 Und einige Dinge don t Oldies Hits - AJAX und die Comet Pollers 9 High-Level-Handelssysteme Architektur iosandroid Authentifizierung Mobile BrowserNative Client-Net-Autorisierung Machen Sie mir Web-freundlichen Browser Desktop Java. NET Msg Broker JMSAMQP etc Preiskalkulation NewsAlerts Trade Exec Was jeder Berichte 10 High-Level-Trading-Systeme Architektur iosandroid Authentifizierung Mobile BrowserNative Client Net Browser Desktop Java. NET Autorisierung Machen Sie mir Web-freundlichen Msg Broker JMSAMQP usw. Entwickler wollen eine sichere Version dieser Architektur, so dass sie auf die App konzentrieren können Pricing Feeds NewsAlerts Trade Exec Berichte 11 Real - Zeit-Client-Server-Architektur Stattdessen versuchen wir diese traditionelle Lösung Trading App Broker Nur noch einige Ports öffnen Nur die Bereitstellung von Java. NET auf Client Nur die Notwendigkeit, mehrere Proxies zwischen den Endpunkten zu durchlaufen Einfach, rechts. 12 Middleware für die Middleware Oder wir versuchen, Proxy-Sachen über die Web-Ticker-Anlage Protocol Mismatches Ineffiziente Skalierbarkeit Probleme Latenz Probleme 13 Dinge, die nicht zu gut aussehen 14 Willkommen HTML5 (aka The New Web) Benutzer verlangen mehr von Apps UIUX Anforderungen sind anspruchsvoller API Explosion Browser Enhancements Web nicht mehr nur über Dokumente, sondern die bestehende Infrastruktur spiegelt dieses Vermächtnis Das neue Web ist eine Stiftung für Enterprise-Grade-Anwendungen 14 15 WebSocket Echtzeit-bidirektionale Konnektivität IETF-Protokoll - RFC 6455 Dec 2011 W3C-API Leicht hinzufügen Ereignisbasierte (Handels-) Daten an Web-Apps Vermeidung von Abfragen Vermeidet HTTP-Metadaten Overhead-Anteile Port mit HTTP (80443) Peer-Protokoll an HTTP (beide verwenden TCP) Wichtigste API in HTML5 Vereinfacht andere Protokolle Setzt das Web an einen besseren Platz 16 WebSocket Standards W3C API Candidate Recommendation - IETF Formal-Protokoll (RFC 6455) - Event-Driven-JavaScript-API - Vollduplex-Kommunikationsprotokoll HTTP Integrierbar Adressierung - ws: yourcompanycollaborationsvc - WSS: anothercompanymarketdatasvc Traverses Firewalls, Proxies, Router sicher Text und Binary Nutzt Cross - Origin Resource Sharing (CORS) 17 Der WebSocket-Handshake 18 Für Echtzeit-Ereignis-basierte Web-Kommunikation Legacy HTTP vs WebSocket Scheint wie ein Nichts für Brainstorming Anwendungen 18 19 Java-API für WebSocket - JSR 356 Erstellen von WebSocket-Java-Komponenten zu behandeln Bidirektionale WebSocket-Konversationen Handhabung von WebSocket-Ereignissen Erstellen und Verarbeiten von WebSocket-Text - und Binärnachrichten Ermöglicht WebSocket-Protokolle und Inhaltsmodelle für eine Anwendung Konfigurieren und Verwalten von WebSocket-Sitzungen, wie Zeitüberschreitungen, Wiederholungen, Cookies, Verbindungspooling Spezifikation der Funktionsweise von WebSocket Innerhalb des Java EE-Sicherheitsmodells Offizielle Java SE WebSocket API in den Werken 20 Warum ich mich interessiere Was hat dies wirklich mit Hochleistungs-Messaging zu tun 21 Legacy Web Half Duplex - HTTP Vollständiger Duplex-Webbrowser Web Tier Middleware Msg Broker Live Web Vollduplex - WebSocket Vollduplex Web WebSocket Server Msg Broker 22 Skalierbarkeit mehr Händler, mehr Dienstleistungen Komplexität mehr Traders Weitere Dienstleistungen mehr mehr Wachstum Greco s Law Skalierbarkeit Wachstum Komplexität Einfache Dinge skalieren 22 22 23 HTML5 WebSocket API 24 HTML5 WebSocket API Aber mit WebSocket Umgang ist wie mit den Umgang TCP. Es ist ein Streams-basiertes Modell. Sie müssen verstehen, wie Streams-basierte Daten über den Draht zu behandeln. Also, wie mache ich publishsubscribe für mein Trading System 25 Was ist Missing Wo ist das Application-Level-Protokoll Wer behandelt Wiederholungen Wie behandeln wir publishsubscribe Semantik Wie handeln wir Marktdaten ist garantiert Lieferung möglich (Trades) Was ist, wenn der Client nicht aktiv ist Wie können wir behandeln Füllen Sie mit Lieblings-Semantik Was ist mit Partials Who s verantwortlich für Berechtigungen Wie verwalte ich das etc 26 Aber warten Protocol Layering ist möglich Whoa Sein genau wie TCP Huzzah Browser und native Anwendungen JMS XMPP AMQP B2B FTP VNC mktdata etc WebSocket TCP Internet WebSocket Gateway WebSocket Gateway 27 Alles andere fehlt andere Überlegungen Notwendigkeit, mehrere WS-Versionen behandeln Notwendigkeit, mehrere (und ältere) Browser-Versionen behandeln Kann t Business Logik in der DMZ haben, um in mehrere DMZs arbeiten AuthNAuthZ hat mehrfache Hochverfügbarkeit zu arbeiten Topologie Sorgen über offene Ports mit Backend-Service Service-Architektur muss konsistent sein Native, HTML5 und Hybrid-Umgebungen Integrieren Sie problemlos mit Nicht-Messaging-Diensten XaaS-Integration das Web über den Browser Bandbreitenverwaltung usw. Alles was Sie für eine echte Enterprise-App benötigen 28 PublishSubscribe Über das Web für Trading-Systeme Java Message Service (JMS) über WebSocket Ein 60-Sekunden-Tutorial Wenn Sie von JMS 29 Java Message Service (JMS) Java EE Message Oriented Middleware JMS nicht gehört haben. JMS. JMS 2.0 (26. Februar 2013) Asynchronous Messaging vs. RPC Lose gekoppelt vs. Tightly gekoppelt PubSub, Themen, Warteschlangen Transaktionen, zuverlässig 30 Grundlegende Inside-Firewall JMS conn createconnection () sess conn. createsession () topic jndicontext. lookup Thema) pub sess. createproducer (Thema) pub. send (hey Frank) msg ​​Broker conn Create () sess conn conn. createsession () Create () Thema sess conn jndicontext. lookup (Thema) conn. createsession () Create () Unter Thema sess sess. createconsumer (Thema) jndicontext. lookup (Thema) conn. createsession () sub. setmessagelistener (this) Unter Thema sess. createconsumer (Thema) jndicontext. lookup (Thema) sub. setmessagelistener (this) sess. createconsumer (Thema ) Public sub. setmessagelistener (this) void onmessage (message m) String do stuff s m. gettext () do stuff 31 Jetzt JMS-API für JavaScript 1. Erstellen Sie eine Verbindung von ConnectionFactory finden Sie unter tutorial. kaazing 2. Erstellen Sie Sitzung 3. Erstellen Sie Thema oder erstellen Sie Warteschlange 4. Produzent 5. Verbraucher erstellen 6. erstellen Nachricht Hörer (Funktion zu behandeln Nachrichten) Sitzung connection. createsession (false, Session. AUTOACKNOWLEDGE) var MyTopic session. createtopic (quottopicmytopicquot) topicproducer session. createproducer (MyTopic) topicconsumer session. createconsumer (MyTopic) topicconsumer. setmessagelistener (handletopicmessage) 33 WebSocket Projekte, OSS, Verkäufer Kaazing Node. jssocket. io ActiveMQ Tomcat Jetty Oracle Glassfish Java EE Spielen Framework-Kaninchen MQ JBoss IISASP. NET 4.5 PHP, Objective-C, Ruby, Python, CC, JVM-Langs Viele weitere 34 Futures Was kommt als nächstes für Trading Systems und das Web 34 35 Neue Computing-Modell-Clouds 35 36 Neue Computing-Modellspeicherdokumente Cloud-Cloud-Webseiten-Webseiten-Webseitenbanken Regulatory hypothetical Clearance Collaboration Cloud-Wealth-Management-Webserver Unternehmensmeldungen Transaktionen Risikomanagement Cloud Cloud Sentiment-Analyse Cloud FX Analytics 36 37 Inter-Cloud-Konnektivität oder XaaS-Kompatibilität als Dienstleistung Externe Cloud-Clearance als Dienstleistungs-Service Dienstleistungs-Service-Dienstleistung Webservice Regulatory Auditing als Dienstleistungsrisikomanagement als Service ipaas websocket Internetdienstbus Enterprise Enterprise Service Busdienstleistung Service 37 38 Eventbasierte XaaS Alles als Service in Echtzeit-Monitoring als Service-WAN Optimierung als Service-Rechenzentrum als Service-CDN als Service Sentimentanalyse als Service-Datenbank als Service Security als Service EAI als Service Identität als Dienstintegration als Service Enterprise Messaging als Service Backup als Service Risk Analytics als Service Trade Clearance als Service Auditing als Service Governance als Service Testen als Service Windows Desktop als Servicenetzwerk als Servicemeldung as Eine Service-Analytik als Servicetelefonie als Service 38 39 Global Distribution Next Generation CDN 41 Enterprise-Qualitätsmerkmale WebSocket IETF RFC-Konformität Keine Geschäftslogik im Gateway - kann sicher in DMZ installiert werden Erweiterung des Browsers als vollständiger Enterprise-Client JMS Themen, Warteschlangen, , Acks für Garantierte msgs JMS Edition Funktioniert mit jedem JMS-Provider - kein Makler-Lock-In Secure Services können alle eingehenden Ports schließen End-to-End verschlüsselte Nachrichten für mehrere DMZs Vollständige JMS API für JavaScript,.NET, Flash, ios, Android Bald) Client-Timeouts für Mobiltelefone zur Erkennung von Offline-ios-apns amp AndroidGCM-Integration Kerberos über WS Keine Server-Side-API für Messaging für ältere Integration erforderlich Emulation, wenn Intermediäre native WS AuthNAuthZ - und SSO-Integration blockieren 24x7 Globaler Support Kann mit jedem TCP oder UDP verbunden werden Datenquelle Bandbreitenkontrolle Emuliert das WebSocket-Protokoll für alte Browser ohne AbfrageQCon ist eine praxiserprobte Konferenz, die für technische Teamleitungen, Architekten und Projektmanager entwickelt wurde, die Software-Innovation in ihren Teams beeinflussen. Präsentation: Tweet Hochleistungs-Messaging für Web-basierte Handelssysteme Track: Finanzen (Design amp Architecture) Zeit: Donnerstag 14:30 - 15:20 Location: Elizabeth Windsor Bis vor kurzem war der Netzwerk-Stack des Legacy-Web für ungeeignet für - Timequot-Handel und Auktion-basierte Anwendungen. Aber jetzt haben wir jetzt WebSocket, dass eine persistente Verbindung ermöglicht, durchstreicht Netzwerk-Vermittler, hat eine verschlüsselte Geschwister, ist Legacy-Web-kompatibel, verwendet Standard-Ports 80443 und erlaubt anderen traditionellen Anwendungsebene Protokolle über das Internet zu leben. Und wie der Name schon sagt, ist er strombasiert und benötigt Systemingenieure, um gut definierte Protokolle für Anwendungen zu erstellen und zu portieren. Diese Präsentation untersucht WebSocket und wie Trading-Systeme entwickelt werden können, um dieses neue Web-Protokoll für die Zuverlässigkeit, Sicherheit und Leistung für Desktop-, Mobil-, Rechenzentrum und Cloud-Umgebungen nutzen. Frank Greco, Tweet Direktor für Technologie, Kaazing Corporation Biografie: Frank Greco Frank D. Greco ist der Direktor für Technologie für Kaazing Corporation. Er ist verantwortlich für die Cloud-Computing-Strategie von Kaazing und leitet Kunden mit neuen Technologieansätzen, die den Nutzen der Erweiterung von Anwendungsprotokollen über das Internet nutzen und wie der neue Webkommunikations-Stack eine Schlüsselkomponente ist. Frank hat seit über 15 Jahren langjährige Erfahrung in IT-Projekten und arbeitete an globaler Architektur, Gridcloud-Computing, innovativen Benutzeroberflächen und Mobile Computing. Frank ist seit vielen Jahren von SunOracle als java Championquot benannt und leitet die NYJavaSIG (größte Java User Group in Nordamerika) und die NYHTML5 User Groups.


No comments:

Post a Comment