Push Technology continues to push the limits of speed and scale for data delivery with web, mobile and even IoT apps. Push’s Diffusion data distribution platform adds a new cloud-based version, along with updated features to make it easier for developers to build apps ready to stream real-time data to millions of devices. IDN speaks with Push CTO Dr. Andy Piper.

Push Technology continues to push the limits of speed and scale for data delivery with web, mobile and even IoT apps.

“The key problem we’re addressing with Diffusion is timeliness of data for thousands, even millions of users,” Push Technology’s CTO Dr. Andy Piper told IDN. “The data we’re pushing has a huge time-value dimension, so this means the older the data is – the less valuable it is.”

Today, many developers spend lots of time working to give their web or mobile apps high-performance – especially at scale. Push targets these use cases.

“We provide the high-performance messaging glue at the backend. We’re taking away the operational requirements of managing backend infrastructure. You test your app with Diffusion, and you know it will scale,” Piper said. “That lets customers focus on adding functionality and business value to their apps – and not worry about those complicated [app infrastructure] issues.”

The Diffusion server handles all the complexity of distributing large volumes of data to and from huge numbers of connected apps. From the app client side, Diffusion sends and receives data using a server connection provided via a simple, lightweight library.

Inside Diffusion’s ‘Stateful Messaging’ Middleware, Data Cache

At its core, Push’s Diffusion technology consists of a Java-based server application that acts as an intelligent message broker and data cache.

Architecturally, Push designed Diffusion to serve as Java middleware, based in large part on what Push calls “stateful messaging” a term the company coined to describe its up-to-date and optimized version of the pub/sub messaging model.

“We’re not simple pub/sub. But, like any messaging system, we have a hierarchical topic tree and so we have a stateful topic tree. We cache the [data values] in the topic tree, and we can then do clever things because we’re not treating messages as black boxes,” Piper said. “We know the delta state of the [content of] the message.”

This knowing about the data is another part of the magic of Push’s Diffusion. It senses and is able to send only the updated and most relevant data, instead of a full snapshot, which can be bandwidth- and CPU-intensive, Piper said. Whenever the data changes in the topic, the subscribed client only receives that updated data. As for speed, the app subscribing to that topic gets the updated snapshot instantly via the Diffusion server cache, he explained.

Sending only targeted data updates not only cuts down on latency; it can even help eliminate complete data blackouts or crashes, Piper said.

This attention to “stateful messaging” and data context means Diffusion’s performance and scale is optimized for delivering real-time data to millions of discreet apps and users – whether a web app, a mobile app or even an IoT device or stream, Piper added.

”You can get incredible performance and a massive amount out of modern CPU architectures if you design your code the right way,” he told IDN. Speaking of optimized code, the Diffusion code is also optimized to match the cache lines on the underlying CPU architectures to avoid performance-hitting cache misses, he explained.

Push’s latest update, Diffusion 5.5, supplies some key features for developers and admins.

Simplicity & Control. It adds a JavaScript version of the Unified API, as well as APIs for Windows and OSX support for the C Unified API; Proxy support (.NET Unified API) and Flow control (.NET Unified API).

The new API contains both control and standard capabilities, allows customers to control Diffusion remotely, offering a cleaner way to build applications.

Cloud. Push is also putting the power Diffusion into the cloud. The “Diffusion-as-a-Service” option, called Reappt, is an enterprise-class messaging service that distributes data scalably, reliably, and in real-time for web, mobile and even IoT (Internet of Things) apps. “We’ve taken our Diffusion middleware and put it in the cloud,” Piper said. “We’re taking away the operational requirements of managing Diffusion and backend infrastructure. It is all managed by us.” Reappt runs as a hosted service in the IBM SoftLayer.

Like the Diffusion on-prem version, Reappt provides a complete set of tools, including APIs and client libraries. In fact, the new API support (above) also creates a seamless experience for using Push’s on-premises and cloud versions. “With the new API features, our customers can now develop applications using our Internet Messaging service, Reappt, and then switch seamlessly to our on-premise solution.” Piper noted.

Security. For better security, Diffusion 5.5 uses a role-based model where actions performed on the server by client sessions are controlled by permissions. “The new capabilities allow much finer-grained control over who can do what in a Diffusion server, according to Piper.

To access the Diffusion console users must now authenticate with a principal and a password. The information that can be viewed through the console, as well as the actions that can be taken, are now controlled by the permissions assigned to the roles associated with that principal. In addition, information about client sessions is now available to Unified API clients using control features.

Diffusion 5.5 also adds a new console interface to let end users easily authenticate.

This combo of security features helps organizations ensure sensitive data is distributed only to those end users with permission to access it. The approach also helps companies meet compliance restrictions.

Survey: Performance Becomes More Important to Mobile App Users

Push’s latest updates coincide with the release of a survey of 3,000+ mobile users in the U.S. and Europe, conducted by Dimensional Research for Hewlett-Packard, which finds performance taking on more importance.

The survey found a whopping 80% of mobile users said they’d only attempt to use a mobile app three times (or less) before giving up on the app – and moving on to other options. Nearly half of users (48%) said they would uninstall a slow app, and 32% would look for an alternative.

Other notable findings included:

Users expect peak performance. Some 61 percent expect apps to load in four seconds or less, and 39 percent of respondents expect apps to fire up in four seconds or more.

After an app loads, 49 percent expect it to respond in two seconds or less, while 51 percent expect it to take three seconds or more.

Users were also asked how often they experience “issues” with mobile apps. In this instance, 30 percent said never; 22 percent said multiple times a year; 19 percent said multiple times a month; and 29 percent said multiple times a day or week.

“Expectations are changing, and getting higher,” Piper said. “Given these high stakes, performance should be at the top of developers’ priorities.”

Performance, especially for mobile apps, is often judged by two high-touch factors: user interface and timely data refresh. Interestingly, Piper says these two factors are increasingly connected.

“We’ve found that often when UI rendering is slow, it’s because [the app] is trying to retrieve data, often from a backend. Data refresh is the same problem, Piper said. “With Diffusion, we’re taking away the complexity customers face when trying to build their apps to more quickly get at the data they need.”