Posts tagged jms
First steps with jWebSocket – open source Java framework for WebSockets – installation and running samples
Jan 12th
This month, In have been delving into Push architectures for the Web, looking into WebSockets among several other things. WebSockets, a fairly new standard (!) evolved along with HTML 5, specifies a communication protocol that provides an alternative to classic HTTP communication. WebSocket based interaction has lower overhead and – more importantly – is bi-directional which means that push from server to client is really supported (and not just emulated through poll, long poll or streaming responses as is currently the case in comet push style frameworks).
All modern browsers provide support for the WebSocket specification – meaning they can communicate based on the WebSocket protocol (ws:// and wss:// in addition to http:// and https://) and they implement the WebSocket client side (JavaScript) APIs. These API are well defined – http://dev.w3.org/html5/websockets/ – and seem to be truly standard across all browsers.
The WebSocket server side is at this moment not very well defined. Other than the fact that the communication over ws:// and wss:// should be handled by a server, not much has been decided about the server side of WebSockets. Currently, WebSockets is not supported in classic JEE servers although such support seems imminent with JEE 7 through the Servlet 3.1 specification (JSR 340, http://jcp.org/en/jsr/summary?id=340; also read http://antwerkz.com/websockets-and-java-ee/ on how WebSockets my be included in the Servlet API). Initial support for WebSockets has been shown in Jetty and GlassFish, with other JEE containers undoubtedly following suit in next 18 months or so. In the meanwhile, several stand alone WebSocket servers have been released, including Kaazing (a commercial offering which I mentioned in two earlier articles: http://technology.amis.nl/blog/14755/get-going-with-kaazing-websocket-gateway-html5-edition-installing-locally-and-running-demos and http://technology.amis.nl/blog/14777/push-based-synchronized-slideshow-web-application-implemented-using-websockets-and-kaazing-websocket-gateway) and jWebSocket (an open source offering – http://jwebsocket.org/), that I will introduce in this article.

These WebSocket servers are capable of handling WebSocket interaction with a variety of clients – well, the server should not have to care about the type of client but only about the communication. How the WebSocket server should relay WebSocket messages received from a client to a back end service is not well defined, at least not in a standardized way. Vice versa: how back end services can deliver their push messages and events – chat message, JMS message, mail reception, RSS entry, Tweet, database update, business event … – to the WebSocket server for onward routing to interested clients is not covered by an existing standard either. Even integration of WebSocket interaction into regular JEE Web Applications is very much in question. Kaazing spokesmen even suggested that perhaps WebSocket communication provides the foundation for a whole new type of application in which traditional JEE application servers are no longer needed (see: http://www.businesswire.com/news/home/20111019005426/en).
Well, before going to deep into these discussions, let’s take a look at how we can get the jWebSocket server going to at least run a few demo application on our local machine (or at least my local environment).
Get going with Kaazing WebSocket Gateway – HTML5 Edition – installing locally and running demos
Jan 8th
My last few articles on this blog site have all dealt with push architecture and technology in some way. This is an area that I have been investigating into quite bit recently. Part of these investigations had to be of course Kaazing, a specialized commercial offering, specifcally around WebSockets and its application in new HTML 5 application architectures.
Kaazing suggests a new way of implementing multi-tier (web) applications.

Communication between client and back end services happens over WebSockets. The Kaazing Gateway handles all WebSockets communication, turning messages from various back end services based on technologies such RSS, XMPP, JMS into WebSocket events.

Kaazing supports a variety of clients – though HTML 5 (JavaScript) web clients (including those running on mobile devices) are probably the most prominent ones.
(Slides for) Push to the limit – rich and pro-active user interfaces with ADF (Oracle Open World 2011)
Oct 6th
(The slides from) Don’t Call us, We’ll Push you – on Cross Tier Push Architecture (JavaOne 2011)
Oct 5th
I just completed my Birds of a Feather session at JavaOne 2011 about Push in an enterprise application architecture. Over 150 attendees were in the audience, many of them asking questions afterwards. It felt like it went well.
The slides for this session are below. I will post source code for the demos at some later stage.
JavaOne 2010 presentation: Why and how to engage a Complex Event Processor from a Java Web Application
Sep 22nd
Oracle Advanced Queuing and JMS – bridging from AQ to JMS and vice versa
Sep 18th
In preparation for our Oracle Open World session ‘Xenogenetics for PL/SQ – Infusing with Java Best Practices and Design Patterns’ – I have been doing a little work on Advanced Queuing in the Oracle RDBMS, as well as on Java Stored Procedures. The objective of this presentation is to bring best practices, design patterns as well as new functionality to the world of PL/SQL from other worlds, such as Java. Interaction between database applications and the rest of the world is an important part of that. And such interaction, especially when we have a need for decoupled interaction, which we frequently should have, Advanced Queues will be used at the database end to support that interaction.
The concept of queuing – and more generally: messaging – has its Java counterpart in JMS, the Java Message Service. The question I then asked myself is: how exactly can I map AQ to JMS and how can I link the two worlds. How can I expose the AQ Queue or Topic in the RDBMS as a JMS Queue or Topic? And how can I consume messages from JMS into the database, possibly to AQ?

One of my reasons for making the connection between AQ and JMS has to do with another presentation at OOW I will deliver, introducing Complex Event Processing. The database – for example database triggers – is an excellent source for events. And one fine way to database applications to publish their events is through AQ. However, Oracle CEP does not directly tie into AQ, but it does interact with JMS Queues and Topics as event source. By linking AQ to JMS, I can indirectly link AQ to CEP.
Complex Event Processing – Java Magazine – Sources & References
Feb 25th
This article contains the resources for an article on Complex Event Processing (using Oracle CEP) that is published in the March 2010 issue of the Dutch Java Magazine. This article describes the interaction between CEP and Java Applications, using examples of temperature sensors that are monitored (aggregating their readings and looking out for any broken sensors) and web shops that try to determine the most popular and the most efficient search terms as well as the search terms that are quite useless (as they never result in a transaction).
The article is in Dutch – it will be made available for download later on. Note that it is based on Chapter 19 in the upcoming Oracle SOA Suite 11g Handbook (Oracle Press, due Summer 2010).
Sources
Temperatuur Simulator en Temperatuur Sensor Processor: TemperatuurSensorenSimulatorEnProcessor
WebApplicatie Analyzer: WebWinkelAnalyse.zip
References & Resources
Download Oracle CEP en CEP Plugin for Eclipse:
Oracle CEP Server: http://www.oracle.com/technology/software/products/cep/index.html
Oracle CEP Plugin voor Eclipse: http://download.oracle.com/technology/software/cep-ide/11/
Installatie instructies:
Setting up your development environment:http://download.oracle.com/docs/cd/E15523_01/doc.1111/e14476/examples.htm#i1013710
Configuring Eclipse:http://download.oracle.com/docs/cd/E15523_01/doc.1111/e14301/ide_intro.htm#CHDDAADG
Creating CEP Servers in Eclipse:http://download.oracle.com/docs/cd/E15523_01/doc.1111/e14301/ide_serv.htm#CHDEJEHC
Documentatie voor CEP ontwikkelaars:
An evening with Oracle Coherence and Oracle Data Integrator – on Compute Grids, JMS implementations and trickle feed
Sep 1st
The other night I had an interesting dinner date: seated around me were an Oracle ACE Director (Mark) and two Oracle employees, experts on Oracle Coherence (Ewan) and Oracle Data Integrator (Craig) respectively. The dinner was the closing event for all presenters and ACE Directors attending the EMEA SOA Partner Community Forum, put together by Jürgen Kress. A great event, a fine dinner and even better dinner conversation. Apart from discussing the Bejing 2008 and London 2021 (that is not a typo, the gentlemen were fairly pessimistic about the construction schedules for most Olympic venues), Dutch and British politics, American peculiarities, the wonderful Dutch countryside etc. we inevitably found ourselves back on the topics most on our minds: grids and clustering, message and data transport and the likes.
Read the rest of this entry »



