310 likes | 470 Views
jWebSocket as Enterprise Middleware. jWebSocket – The Real-time Communication and Messaging Framework. Alexander Schulze Founder jWebSocket CEO Innotrade GmbH Herzogenrath, Germany. DWX Developer Week June, 25th 2013 NCC Ost , Nürnberg. Today‘s Session. Agenda
E N D
jWebSocketas Enterprise Middleware jWebSocket – The Real-time Communication and Messaging Framework Alexander Schulze Founder jWebSocket CEO Innotrade GmbHHerzogenrath, Germany DWX Developer Week June, 25th 2013 NCC Ost, Nürnberg
Today‘s Session Agenda • jWebSocket as Middleware,Communication and Messaging • Architectures and Integration • Security and Performance • Demos (ExtJS, jQuery Mobile) • Discussion, Questions and Answers jWebSocket as Enterprise Middleware
Middleware Message Oriented Middleware (MOM) • Separate Software-Level,Decoupling of Apps and Services • Intermediate and Support forDistributed Applications • Service Oriented Architectures • Message Queue, Transactions,Persistence and Durability jWebSocket as Enterprise Middleware
Communication & Messaging Java Perl .NET Browser Android iOS Java Browser JMS STOMP AMQP WebSocket WebSocket WebSocket WebSocket WebSocket OpenWire STOMP AMQP WebSocket jWebSocket Server Message Broker ( ActiveMQ ) Filesys. JDBC SMTP Application ERPSystem MessagePersistence DB ServiceHost FileServer DatabaseServer MailServer jWebSocket as Enterprise Middleware
Status of Web Communication HTTP Protocol • Designed for document transmission • Cumbersome, nearly real-time tricks • Polling, Long-Polling • Reverse-AJAX, Comet etc. • Ultimately non-standardized hacks • Remains a Request/Response mechanism jWebSocket as Enterprise Middleware
WebSockets - Technology WebSocket Protocol • Permanent TCP connections, bidirectional, full-duplex 4oo times less overhead⅓ of latency • Standardized in HTML5 by W3C and IETF protects investments • Single TCP Port saves 50% server resources jWebSocket as Enterprise Middleware
WebSockets - Technology WebSocket Protocol • No Rules for Content Text/Binary Frames, Chunking/Compression Encryption (SSL/TLS) • No Limits for Formats/Sub-Protocols JSON, XML, CSV, Map, Object… • No Restrictions for Processing Responsible for Logic, Security jWebSocket as Enterprise Middleware
WebSockets - Technology Compared with HTTP quicker cheaper more portable jWebSocket as Enterprise Middleware
jWebSocket - Online Collaboration • Experience the Performance!Share a Whiteboardlive in this Session! • Click our Demo • http://jwebsocket.org/dwx_sw 25.06.2013 jWebSocket as Enterprise Middleware
WebSockets - Technology Technology-State? • Available on allBrowsers (RFC 6455),Fallbacks for older ones • Available on all Platforms,continuously extended • Java, C# and Python • New: STOMP over WebSockets & jWebSocket JMS Gateway jWebSocket as Enterprise Middleware
jWebSocket - Integration Tool-Support? Closed Integration into existing Frameworks 25.06.2013 jWebSocket as Enterprise Middleware 11
jWebSocket - Integration Integration ofRealtime-Comm.into Sencha ExtJS Check out our Demo • http://jwebsocket.org/dwx_ej 25.06.2013 jWebSocket as Enterprise Middleware 12
jWebSocket - Integration • Sencha/ExtJS Integration • Integration of WebSockets intoexisting Sencha/ExtJS-Applications • Replaces AJAX/XHR-Proxy by jWebSocket-Proxy • Worldwide Data Synchronization in Realtime • jWebSocket and Sencha/ExtJS as Basisfor Online-Collaboration 25.06.2013 jWebSocket as Enterprise Middleware 13
jWebSocket - Plug-ins jWebSocket Plug-ins (Open Source, Apache 2 Licence) • Models: Channels, Events, JMS, MQ with STOMP, AMQP • Interfaces: JDBC, SMTP, SMS, CGI, Scripting (JavaScript) • Security: Quota, Captcha, Filters, Spring Auth, SSO, SSL/TLS • Remote Procedure Calls: C2S-, S2C- and C2C-RPCs • Sharing: Data Persistence/Synchronization and Filesharing • Social: Chat, Twitter, Instant Messaging (XMPP) • Administration: JMX, Logging, Statistics, Monitoring, Reporting, Clustering jWebSocket as Enterprise Middleware
WebSockets - Technology WebSocket Summary • Designed for highly interactiveWeb Applications, high level of freedom • Supports stationary & mobile,browser based & native apps • Not just a protocol, but a new paradigmRequest/Response Real-Time Comm. • Perfect Basis for Low-LatencyCommunity and Enterprise Middleware jWebSocket as Enterprise Middleware
Middleware - Goals Demand from Developers, Providers and Users • CompatibilityInteroperability • IndependencyIntegratability • ReliabilitySecurity jWebSocket as Enterprise Middleware
Middleware - Goals Demand from Developers, Providers and Users • AvailabilityScalability • ExtendabilityFlexability • SimplicityMaintainability jWebSocket as Enterprise Middleware
jWebSocket - Middleware jWebSocket Middleware • Combining Real-Time Communicationwith Message Queuing • Integration: Web Frameworks, Devices, Clients, Servers, Services • Abstraction: Tokens, Plug-Ins, Apps • Decoupling: Interfaces • Security: Roles, Filters, Quotas, Encryption jWebSocket as Enterprise Middleware
Middleware - Queues/Topics Queues and Topics • Queues forPoint-2-PointConnections • Topics for Publish/SubscribeEnvironments Producer Consumer Producer Consumer Queue Producer Consumer Producer Consumer Producer Consumer Producer Consumer Topic Producer Consumer Producer Consumer jWebSocket as Enterprise Middleware
Middleware - Selectors/Advisory Message Selectors • Source-Id und Target-Id(z.B. targetId = “JDBCService“) Advisory Topics • Connect / Disconnect(Service Availability) • Message Expiration • No Cosumer Listening • Further Destination Policies ProducersourceId = 1 ConsumertargetId = 1 ProducersourceId = 2 ConsumertargetId = 2 Topic ProducersourceId = 3 Consumer targetId = 3 Messagewith sourceId = 3and targetId = 2 ProducersourceId = 4 ConsumertargetId = 4 EndPointendPointId = 1 P EndPointendPointd = 3 P C C Topic EndPointendPointId = 2 EndPointendPointId = 4 P P C C jWebSocket as Enterprise Middleware
Middleware - Persistence/Durability Message Persistence & Durability • Acknowledge & Auto Acknowledge • ExpirationOption Notification via Advisory-Topic • Persistence:„Survive a Broker Restart“ • Durable Subscriptions„Survive a Endpoint Restart“ jWebSocket as Enterprise Middleware
Middleware - Persistence/Durability Message Persistence & Durability • Acknowledge & Auto Acknowledge • ExpirationOption Notification via Advisory-Topic • Persistence:„Survive a Broker Restart“ • Durable Subscriptions„Survive a Endpoint Restart“ jWebSocket as Enterprise Middleware
Middleware - Messaging Demo Live Slideshow • A typical Topic Messaging Application • One or multiple Producers:„The Presenters“ • Many Consumers:„The Audience“ http://jwebsocket.org/dwx_aw jWebSocket as Enterprise Middleware
jWebSocket - JMS Gateway Web-Browser Java Perl/Ruby/.. .NET App Web-Browser JMS STOMP AMQP JavaScript JavaScript OpenWiretcp://host:61616 WebSocketws://host:8787 STOMPstomp://host:61613 AMQPstomp://host:5672 STOMP over WebSocketsws://host:61614 Message Broker (Active MQ) JMS Gateway jWebSocket Server Filesys. JDBC SMTP ... FileServer DatabaseServer MailServer jWebSocket as Enterprise Middleware
jWebSocket - Abstraction Tokens (Abstraction) • Endpoints are stupid • Common languageto understand messages • DataformatsJSON, XML or CSV • Solution:Abstract Data Objects, in jWebSocket Token Endpoint Endpoint Browser Native Client STOMP JMS WebSocket WebSocket CSV JSON JSON XML JMS Gateway jWebSocketEngines CSV JSON JSON XML Message Abstraction Layer( Token-Processors, extendable ) Token Message Security Layer( Token-Filters, extendable ) jWebSocketCore App App App Plug-in Plug-in Plug-in jWebSocket as Enterprise Middleware
STOMP over WebSockets • Simple Text Oriented Messaging Protocol • Clients for...Ruby, Perl, C, C++, C#, .Net, Flash, Delphi, Java, Objective C,Python, PHP, JavaScript • STOMP over WebSocketsThanks to Jeff Mesnil and Jeff Lindsayhttp://jmesnil.net/stomp-websocket/doc/ jWebSocket Perl Browser JMS Gateway STOMP WebSocket OpenWire/JMStcp://host:61616 STOMP stomp://host:61613 STOMP over WebSocketsws://host:61614 JMS AMQP STOMP WebSocket Active MQ MessagePersistence DB jWebSocket as Enterprise Middleware
Middleware - Security Security Instances • EncryptionTransport encryption via SSL/TLS • AuthenticationAgainst the Broker, many sources (LDAP, JAAS, JDBC, XML … ) • Authorization for QueueRoles for Read, Write and Administration • Message Level AuthorizationRouting Permissons, Validation of ContentMessageAuthorizationPolicy, isAllowedToConsume • More sophisticated mechanims via plug-insSecurity Instances decoupled from Applications jWebSocket as Enterprise Middleware
jWebSocket - Security jWebSocket Security • Encryption SSL/TLS • ws:// and wss:// • Inbound/Outbound Filter • Role based Authenticationand Authorization with Spring Security • Quotas and Captchas WebSocket Client / JMS Endpoint Token In Custom-/Admin Filter Out Administrator In System-Filter Out Plug-ins (Chain) jWebSocket Server Authentication & Authorization jWebSocket as Enterprise Middleware
Middleware - Scaling Middleware Scaling failover (tcp:host1,tcp:host2) failover (tcp:host1,tcp:host2) JMS Service JMS Client Active MQ Active MQ JMS Queues/Topics Cluster Gateway Message Persistence Database Cluster Web Client jWebSocket jWebSocket FileServer MailServer Database Server/Cluster jWebSocket as Enterprise Middleware
jWebSocket as Middleware Summary • WebSocket replaces HTTP Higher Speed & User Experience • jWebSocket integrates Web Frameworks Simple & Rapid Implementation • Messaging for Reliability & Scalability Higher Availability & Security for Services Middleware Solution for Community & Enterprises jWebSocket as Enterprise Middleware
Thankyouforyourattention! Questions & Answers Alexander Schulzea.schulze@jwebsocket.org Forum & Download: http://jwebsocket.org, @jWebSocket jWebSocket as Enterprise Middleware