Diffusion 6.2 has been released

The latest update to the Diffusion™ Intelligent Data platform is now available.

There are a number of exciting new features in Diffusion 6.2, allowing users to simplify development of multi-user and collaborative applications; control security policies with greater flexibility; fetch and stream large data sets; and apply data compression to all topic messages.

New Platform Functionality

Security

New security functionality for Authentication and Authorization handling provides substantial flexibility and control for managing security policies across client connections.  Privileged clients can now change the security roles assigned to other clients, facilitating real-time changes to security policies across connections.  This is particularly important and valuable for applications that require elevated security on a limited time basis in back-end Enterprise and intranet environments. This functionality can be used for any type of event-driven responsive security increase or decrease. In addition, detailed user analytics can be performed, based on client metadata, to do targeted messaging.

  • Client proposed session properties
    Clients can now provide application-specified properties when connecting to Diffusion, enabling applications to identify and interact with sessions based on arbitrary metadata. The client proposed session properties feature is available in the JavaScript, .NET, Java, Android and C client libraries. It will be added to the Apple client in a future release.
  • New $Roles fixed session property
    The assigned authorization roles of sessions are now exposed, allowing applications to identify and interact with all sessions that belong to a specific role.
  • New Authenticator Interface
    Provides the ability to validate and filter client proposed session properties, as well as the ability to change certain fixed session properties. This greatly improves control over how sessions may be identified by an application for any purpose.
    The authenticator interface is available in the .NET, Java, Android, and C client libraries. It will be added to the JavaScript and Apple clients in a future release.
  • Change roles operation
    Privileged clients can now change the security roles assigned to other clients, facilitating real-time changes to security policies across connections.
    The change roles operation is available in the .NET, Java, and Android client libraries. It will be added to the JavaScript, C, and Apple clients in a future release.

Update API

The new Diffusion Update API introduces flexible options for handling of concurrent updates for shared data. The Concurrent Update API allows collaborative multi-user applications, including multiplayer games, collaboration applications, and chat and messaging applications, to safely deliver data in real-time across a shared data model, simplifying development and increasing the reliability of end-user experiences.

New functionality includes:

  • Conditional updates with opt-in constraints allow multiple clients to update shared topics while guaranteeing correctness of data, enabling real-time interactive & collaborative applications.
  • Updates can be tied to session-scoped locks, making it easy for applications to enforce data consistency by applying appropriate optimistic or pessimistic locking schemes across clusters.
  • Update streams remove a class of potential application bugs by validating value types before sending to the server, as well as increasing the efficiency of updates and considerably reducing bandwidth requirements for producers of data through use of ‘delta’ updates.
  • On-demand creation of topics with updates improves usability and reduces the complexity of application code.

The new Update API is available in the JavaScript, .NET, Java, Android and C client libraries. It will be added to the Apple client in a future release.

A new revised update API allows clients more flexible options when updating topic values. It adds conditional updates, non-exclusive update streams, and topic creation on demand through the update API. Update streams allow multiple clients to safely update topics without exclusive locking. This supports more interactive collaborative updates. The topic type for updates is enforced on the client, and checked by the server, removing a class of potential application bugs. Opt-in constraints allow applications to choose an appropriate optimistic or pessimistic locking scheme. The conditional constraints include the use of session locks thus allowing a cross-cluster locking scheme to be applied when updating topics. Update streams are generally more efficient and take advantage of ‘delta’ calculations so that only the difference from the last update needs to be sent to the server, which can result in considerable reductions in bandwidth requirements for topic updaters.

The revised update API is available in the JavaScript, .NET, Java, Android and C client libraries. It will be added to the Apple client in a future release.

Fetch API

The new Fetch API reduces application complexity for developers with on-demand access to a shared data model, facilitating complex end-user features that seamlessly mix static and streaming data together, with batching and pagination capabilities.  This functionality is particularly useful for transitioning REST-based applications to streaming data applications because it decouples the front-end and back-end systems and eliminates the need for a rewrite of the entire application stack.

The new fetch API is available in the JavaScript, .NET, Java, Android, C and Apple client libraries.

Automatic Compression of Topic Updates

Message compression is now available for all streaming data. With no code changes required, the automatic message compression reduces bandwidth usage up to an additional 25%, on top of the existing bandwidth savings from the Diffusion platform’s proprietary delta streaming functionality, lowering cost of data and speeding delivery of application data to all subscribers.  The added compression is high value when distributing large data payloads for applications that do: shared document editing, distribute rich media (images and graphical content), telemetry, mapping, geolocation tracking.

Updates are compressed for a session when the receiving client library supports compression. The JavaScript library supports compression when the zlib library is downloaded; it is packaged separately to reduce the download size of the core client. Compression support will be added to the Apple client in a later release.

And much more..

Including:

  • Java 9, 10 and 11 Support in Java Client
  • Request/Response Messaging in the C API
  • Client APIs streamlined and simplified with deprecated components removed.

Diffusion 6.2 represents a further consolidation of the client APIs with much more flexibility and power.