Friday, April 6, 2018

Data Streaming vs. Push Notifications

When dealing with mobile apps, the difference between real-time data streaming and push notifications is not always clear to everybody. Let's try to delve into this topic.
  1. With data streaming, the server sends real-time data directly to the app, leveraging WebSockets and/or HTTP. This requires the app to be running and, with iOS, to be in foreground.
     
  2. With push notifications, the server sends messages to Google's and Apple's servers, which deliver them to the mobile devices. Notifications are received by the device even if the app that subscribed to them is not in foreground or is not even running.

Friday, March 2, 2018

Lightstreamer 7.0 Released

We are delighted to announce that Lightstreamer 7 has been publicly released.

You can download it right now from https://www.lightstreamer.com/download/

The official Docker image and the Amazon EC2 AMI are available too.

Lightstreamer 7 and the client SDKs include hundreds of improvements and fixes, covering performance, features, compatibility, and licensing. This makes Lightstreamer more solid and faster than ever. Below are some highlights but you can check out the full list in the change log.

Friday, February 16, 2018

New watchOS SDK Now Available

If you are one of our customers (and if you are not, what are you waiting for?), you know the Lightstreamer company is customer driven. Whenever a customer requests a new feature, we do all we can to comply.

So, when a customer asked us if we had a watchOS Client Library on the roadmap, during Fall 2017, we scheduled it for Q1 2018. Now, we are happy to announce it is available and ready for integration in your WatchKit extensions.

The new watchOS SDK derives from the iOS SDK version 4.0.0 and retains the same version number. It includes all the APIs and features of the iOS SDK, with the single exception of WebSocket support (due to limitations of the watchOS platform).

Let's dig into some examples.

Note: if you need download and example pointers, jump directly to the end of the post ("Get the SDK").

Monday, February 12, 2018

Cloud License Manager

Starting from Lightstreamer 7, a new license verification mechanism has been introduced, called Cloud License Manager (CLM). With CLM, licensing happens online, with no more need for license files bound to the MAC address of the hosting machine. The increase in flexibility is tremendous.

Friday, February 9, 2018

Switching to the New Lightstreamer 7 Editions

For the last few years, Lightstreamer has been organized into four different editions, which got their names from Italian musical tempo terms, namely Moderato, Allegro, Presto, and Vivace. Now, with the upcoming release of Lightstreamer 7, the editions are going to change, to offer maximum flexibility to our customers.

In this post, we will explain how the old editions map onto the new ones for existing customers.

Thursday, January 11, 2018

Mobile Push Notifications with Lightstreamer Server 7.0 and Client SDKs 4.0

With the upcoming release of Lightstreamer 7.0, and its beta 2 already available for you to test, Mobile Push Notifications APIs jump on the Unified Client API model with SDKs version 4.0, employing a new asynchronous model and delivering all the latest features of iOS and Android push notifications.

In this blog post we take a look at the new APIs, with code examples and use cases for both Objective-C and Java.

Note: if you need download and example pointers, jump directly to the end of the post ("Get the SDKs").

Thursday, September 7, 2017

Version 3.0.0 of iOS, macOS and tvOS SDKs Now Out of Beta

After a month of beta testing, we released the final version of our SDKs for iOS, macOS and tvOS version 3.0.0.

Version 3.0.0 introduces:
  • Support for WebSockets.
  • Revised API documentation.
  • Improved cookie handling

Check the beta introductory article for full details and examples.

The new SDKs are available through CocoaPods or via direct download, as usual. Native demo projects on GitHub and on the App Store have also been updated to version 3.0.0 of the client library. Check them out.

Note: if you need download and example pointers, jump directly to the end of the post ("Get the SDKs").


Thursday, July 27, 2017

New 3.0.0 beta SDKs for iOS, macOS and tvOS

We have recently released a new version of the SDKs for iOS, macOS and tvOS: 3.0.0 beta.

This version introduces a new major feature: support for WebSockets, together with a completely revised documentation and a plethora of minor improvements and bug fixes.

See below for more details.

Note: if you need download and example pointers, jump directly to the end of the post ("Get the SDKs").

Wednesday, July 19, 2017

Welcome, Kotlin!

Google recently made Kotlin an official application development language for Android. We are very excited to announce that the new version of the Lightstreamer client API for Android embraces Kotlin. By ensuring full support for both Kotlin and Java, the library enables developers to choose their favorite programming language or even mix them.

Wednesday, June 21, 2017

Meet Our Customers: goFLUENT

"Lightstreamer technology is a vital part of our products and has enabled us to offer top-notch services." - A short interview with Edward Watson, Digital Marketing Manager/Specialist at goFLUENT, a leading eLearning company, which leveraged Lightstreamer for their Virtual Classroom solution.

Lightstreamer enabled the creation of a reliable and secure real-time chat/messaging system, working seamlessly behind proxies and firewalls on both the web and mobile apps.

Friday, February 10, 2017

What's New With Lightstreamer 6.1

We are very excited to announce general availability of Lightstreamer Server 6.1, which includes many new features and improvements.

Lightstreamer now speaks a brand new protocol, called TLCP. The Android and Java SE client libraries use the new protocol and natively support WebSockets. The iOS client library has become more Swift-friendly. A new client library is available for Microsoft .NET PCL, replacing older .NET, Windows Phone, and WinRT libs. In addition, several fixes and optimizations have been added to most components.

It's super easy to check out Lightstreamer 6.1. You can either download the installation package, or run the official Docker image, or launch the official AWS AMI.

Tuesday, January 31, 2017

One More Step Towards Swift Developers

The Swift language is designed to be as interoperable as possible with Objective-C. This goal is generally fulfilled, but an area still remains where the two languages don't interoperate as well as one would expect: exception handling.

Objective-C provides complete try-catch-finally semantics for exception handling, with full stack unwinding. While Cocoa and CocoaTouch conventions discourage their use for runtime errors (originally for performance reasons), they are of common use also in Apple's frameworks for programmer errors (i.e. logic errors, such as accessing an out-of-bounds element of an NSArray).

Swift, on the other hand, provides similar do-try-catch semantics, but its errors (do not call them exceptions) are actually passed back as an out parameter and does not provide a stack unwinding mechanism. Moreover, as of Swift 3.x, Objective-C exceptions are left completely out of Swift error handling: they are uncatchable in this language, and cause a direct crash of the application or the service. For the rationale behind this choice, and its corresponding discussion, see this dissertation on the Swift GitHub repository.

Tuesday, November 29, 2016

SDKs for iOS, macOS and tvOS Updated

We recently released version 2.1.0 of our SDKs for iOS, macOS and tvOS. This version introduces some important changes:
  • You now have again control on the maximum number of concurrent sessions on the same Server. This feature was part of SDKs version 1.x, but couldn't be included in version 2.0.x.
  • You now have again a connection event specific for authentication challenges. This feature too was part of SDKs version 1.x, but couldn't be included in version 2.0.x.
  • Minimum OS requirements have been raised to 10.9 for macOS and 8.0 for iOS. Thanks to this, we could remove the use of NSURLConnection and all HTTP networking is now done through NSURLSession, reducing the use of threads.
  • The SDKs are now packaged as frameworks, no more as static libraries. Thanks to this, the download size has been reduced and they cohabit better with other libraries when imported via CocoaPods (in particular for projects developed with Swift).
See below for more details.

Note: if you need download and example pointers, jump directly to the end of the post ("Get the SDKs").

Tuesday, August 23, 2016

Benchmarking Lightstreamer JMS Extender vs. Web Services in a Defense Scenario


While Lightstreamer is already well known as a mature solution for Real-Time Data Distribution in a wide range of contexts and industries, it has been also widely used as an academic research tool behind the scenes.

A recent one caught our attention. The research is on interoperability of real-time and non-real-time systems, a well-known topic that has been widely investigated in a large number of domains and industries. In mission-critical fields, performance and reliability of the bridges used to interconnect two different message exchange solutions is crucial. Defense is surely one of the most demanding, thus a perfect and realistic research scenario.

Wednesday, July 20, 2016

Vue.js and Lightstreamer

Vue.js is an open-source JavaScript library for building interactive web interfaces which is rapidly growing in popularity (as evidenced by its GitHub’s stars).
It's basically a view layer for any application, which enables reactive data binding and composable view components (without polyfills, even in browsers that don’t support those features natively) through an extremely simple API.

Vue differs from the alternatives, such as React or Angular, mainly for the great developer experience it provides, which makes them super productive without the need to spend tons of time learning new stuff.

Friday, July 15, 2016

Angular 2 Demo

Last week, we built our first demo in Angular 2. The application implements our evergreen "Basic Stock-List Demo", which shows ten stocks whose market-data are dynamically updated by a random simulator and sent in real time to the web client by the Lightstreamer Server.

Previously, we had done the same exercise using AngularJS (you can see the outcome in this live demo and this GitHub project).

The overall task of integrating Angular 2 and Lightstreamer Web Client API was not difficult at all, notwithstanding the lack of extensive documentation (at the time of writing, Angular 2 is still in beta).

Angular 2 aims to be a complete framework to build sophisticated web interfaces. In the demo we just scratched the surface.

Thursday, May 12, 2016

What's New With Lightstreamer 6.0.2

We are very excited to announce the general availability of Lightstreamer Server 6.0.2, which includes several new and updated components.

Client-side SDKs

More client libraries have been updated to reflect the Lightstreamer Unified Client API model. We recommend upgrading the client code to make use of the new libraries, even if this requires some rework when migrating from non-unified APIs. The big advantage in using the Unified API is that the same consistent interface and behavior are guaranteed across different client platforms. In other words, the same abstractions and internal mechanisms are provided for very different platforms, while respecting the conventions, styles, and best practice of each platform. This will dramatically reduce costs and complexity when maintaining client applications for different platforms.

Tuesday, April 26, 2016

New SDK for Python Adapters

Our family of Adapter Development Kits has been further enriched with the Lightstreamer SDK For Python Adapters, which lets developers write Remote Adapter Sets exploiting the power and flexibility of Python, one of the most widely used general purpose high-level languages.

The new SDK has been developed keeping in mind the same principles and concepts which drove the design and implementation of the SDK for .NET Adapters, the "progenitor" of the successive SDKs for Java Remote Adapters and for Node.js Adapters, all already provided as part of the Lightstreamer distribution. Nevertheless, the Python Adapter SDK must not be considered as a "simple" port to the Python language; on the contrary, it is a brand new implementation, based on the best practices and widespread conventions promoted by the community around the language.

In this post we are going to show a general overview about the development of custom Python Remote Adapter Sets, which should sound quite familiar for those who have already experimented with the others Lightstreamer Adapter SDKs.

Wednesday, April 13, 2016

Dockerizing Lightstreamer


Containerization is one of the most important IT trends over the last two years. Docker heads this technology up, providing an open platform which lets you package up applications with all their dependencies. Applications can be shipped as software containers to enable process isolation, resources optimization, portability, and ease of maintainability and deployment.

As passionate about each new exciting and promising technology, we at Lightstreamer could not miss the opportunity to enter this world, so we tested how well our Server could be "dockerized" and ... Yes, we did it! We published the Docker official image for Lightsteamer Server on Docker Hub.

The aim of this blog post is to show how to use our Docker image as a starting point to build new Lightstreamer Server deployments.

Monday, April 11, 2016

React Native Demo Available

In the past few years, we have seen the diffusion of frameworks like PhoneGap and Titanium, which offer developers the opportunity of building mobile applications using web technologies. The outcome is called a hybrid app.

Web developers can use their skills for mobile development and in addition they can use the same codebase with little changes for multiple platforms - what became known as “Write once, run everywhere”. On the downside, some of these frameworks wrap your JavaScript code in a web view: this results in UI elements that don’t have a native look and feel and fall short when it comes to performance (you are still writing a web app).