Friday, October 16, 2015

Weswit Becomes Lightstreamer

We are so thrilled to announce that Weswit, the company behind the Lightstreamer product family, has been renamed as Lightstreamer.

Weswit pioneered the real-time web since the early 2000s and its flagship product, Lightstreamer, has become the absolute leader among commercial products in the Internet messaging space, in terms of market share. The Lightstreamer brand is now very well known globally. It makes total sense to identify the company and the product with the same name, for the sake of clarity and simplicity.

We are now growing our product family, enlarging our team of brilliant engineers, and starting up brand new ideas. Innovation remains the key to all that we do.

Our fabulous new headquarter at Copernico, in Milan, Italy.

Now, when dealing with real-time messaging and data streaming, a single word needs to be remembered: Lightstreamer!

Thursday, October 15, 2015

New Client APIs for iOS and OS X

When the iOS SDK came out in 2009, our choice at Lightstreamer was to build a new client library from scratch. We took as a reference the Java client library and started developing an entirely new Objective-C codebase, trying to merge the best object-oriented design we had at that time with a new language and environment.

This had both advantages and disadvantages. On one side, native integration with iOS led to good performance and useful features, like network availability monitoring to avoid battery drainage. On the other hand, the slow process of discovering and fixing corner-conditions and bugs, which the Java library had passed through already, had to be repeated all over again. Moreover, as new features were introduced in the server, they had to be introduced in the client libraries multiple times.

For these reasons, when the opportunity to rewrite the iOS client came in, we decided to try a different approach: transpile (i.e. trans-compile) a single Java codebase, in common with the Java client (now mostly dedicated to Android) and fill in the gaps with well designed wrappers and dependency injection. We explored this possibility before, but tools were not mature enough. Now they are, trans-compilaiton is a reality thanks to j2objc, an impressive tool made by the Google team, and transpiled code works and performs very well.

So, today we are proud and excited to announce the availability of the alpha version of iOS and OS X client libraries version 2.0, both developed from a highly engineered codebase in common with the Java/Android client. The library's core is written in Java, transpiled to Objective-C and then wrapped and integrated with especially written native code, providing a natural and seamless interface to iOS and OS X developers.

Version 2.0 adheres to the so-called Lightstreamer Unified Client API Model, i.e. an API designed to be the same across all environments: Javascript, Java/Android, iOS/OS X, .NET and so on. Developers will be able to switch between different platforms sure to find the same objects and methods, behaviors and features.

Let's see how it works and how to port your code.

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

Monday, September 28, 2015

Meet our Customers: ImageTrend

A short interview with Lindsey Phillips, Project Manager at ImageTrend, a software development company which offers a wide range of Web-based solutions for industries as diverse as government, medical, human resources, business, education and non-profit.

ImageTrend has been listed in the Inc. 5000 Fastest Growing Private Companies in America in each year from 2007 through 2010. Customers include Russell Athletic, Goodyear Tire, HealthEast Care System, the University of Minnesota, Cargill, and FirstComp Insurance.

Let’s talk about your organization. What is your core business?

"ImageTrend, Inc. is dedicated to enterprise-level data management and analysis through the innovative use of technology. ImageTrend’s applications serve a variety of industries, but is primarily based in the healthcare and emergency response community. Based in Lakeville, Minnesota, ImageTrend combines business analysis, creative design and database-driven architecture to offer innovative, scalable solutions and strategies for today and the future."

Thursday, July 16, 2015

New Client APIs for Android and Java SE

We are very excited to announce early availability of brand new client APIs for Android and Java SE. The new APIs follow the Lightstreamer Unified Client API model, which was first introduced with the JavaScript client API.

This means that developers of applications for different client platforms will be given the same programming model when using a Lightstreamer client library. Same abstractions, same interfaces, same features, and same internal mechanisms. Developers will be able to move from a client platform to another seamlessly, without having to learn a new Lightstreamer API, or having to deal with caveats specific to each platform. At the same time, the Unified Client API implementations respect all the peculiarities of each platform, in terms of naming conventions, packaging, etc. So, developers of each platform will feel "at home" when using the new APIs.

Monday, July 13, 2015

Lightstreamer and OpenFin Integration

When it comes to fast changing data for online financial applications, software developers know how challenging it can be to deliver excellent performance, especially when web technologies are involved. On the one hand, real-time data must be streamed efficiently over the Internet through firewalls and proxies to reach the users' desktop or mobile device. On the other hand, the data must be rendered smoothly to provide the best possible user experience.

Lightstreamer and OpenFin joined forces to show, through a demo, how both these challenges can be addressed by combining their respective solutions: Lightstreamer for real-time data transport and OpenFin for real-time data visualization using HTML5.

Friday, June 26, 2015

It's Now Easier to Upgrade to Lightstreamer 6.0

It has been five months since the public release of Lightstreamer 6.0. To make the upgrade process simpler and faster, a few weeks ago we made available an online tool, which automatically converts Lightstreamer 5.1.2 configuration files to version 6.0.

Thursday, April 30, 2015

Full Market Depth with Lightstreamer

In the recent past we have received inquiries from customers and other people asking us to show how to implement full Market Depth, an advanced financial trading feature, with Lightstreamer. We think this is the time to present an example that, in addition to the classic StockList Demo and Portfolio Demo, demonstrates how well the Lightstreamer technology can satisfy the needs of this type of applications.

Market depth is an electronic list of buy and sell orders, organized by price level and updated to reflect real-time market activity. Market depth data are also known as Level II, Depth Of Market (DOM), and the order book.

Friday, February 27, 2015

Meet our Customers: OOCL

A short interview with Ronald Chan, responsible for enterprise framework design and maintenance at OOCL, a world leader in logistics and transportation. OOCL opted for Lightstreamer to deliver important business information and tasks to the organization.

Let’s talk about your organization. What is your core business?

"Hong Kong-based OOCL is an International Container Transport and Logistics service provider. OOCL provides transportation services to companies throughout Asia, Europe, North America, the Mediterranean, the Indian sub-continent, the Middle East, and Australia/New Zealand."

 Could you let us know any further information?
"OOCL is a wholly-owned subsidiary of Orient Overseas (International) Limited (OOIL), publicly listed on the Hong Kong Stock Exchange. The company has more than 280 offices in 55 countries around the world, providing 78 services covering international trading markets with a fleet of more than 270 ships, including Grand Alliance member line vessels, feeder and OOCL-owned and operated vessels. In 2014 the company has recorded an impressive 5,585,516 TEUs lifted, and almost 6 billion USD in revenues (source). As a leader in its industry, the number of awards and accoladed won by OOCL so far is huge."

Thursday, February 26, 2015

Introduction to Mobile Push Notifications with Lightstreamer 6.0

With the release of version 6.0 final, mobile push notifications (MPN for short) are now an integral part of Lightstreamer. Since our original post about 6.0 alpha, the MPN APIs have been streamlined, enhanced and extended to Android. With this blog post we take a second look at these new functionality, with code samples for both iOS/OS X and Android.

How MPNs Are Handled in Lightstreamer 6.0

Mobile push notifications are simply real-time push notifications diverted to a different channel. For this reason, they share many properties with their real-time counterpart:
  • they are initiated on the client with a subscription and terminated with an unsubscription;
  • each notification is originated by a data adapter real-time update.

This means that any subscription to any existing data adapter may be used for MPNs, with only a few restrictions:
  • COMMAND and RAW modes may not be used;
  • the unfiltered mode is not supported;
  • the selector is not supported.

Wednesday, February 18, 2015

New NSError Pattern Support in iOS and OS X Clients

Remember our blog post about developing iOS apps with Swift and Lightstreamer? It was 7 months ago, Swift had been introduced by Apple only a few weeks before, and object-oriented programming fans (like me) were wondering why there was no support for structured exception handling.

Our iOS and OS X client libraries used to rely on exceptions. Both to maintain an interface reasonably similar to other client libraries (Java/Android, mainly), and to use a well-established pattern for error handling.

Now, seven months have passed and there are still no traces of exception handling in Swift. Not even in the just-announced version 1.2 of the language. So, with version 1.4 of the iOS client library, and version 1.2 of the OS X, we have introduced an alternative signature for exception-throwing methods that supports the common NSError pattern of Cocoa and Cocoa Touch. To the benefit of developers using Swift and of all the developers out there that simply don't like exceptions (and there are many).

Tuesday, February 17, 2015

Writing Remote PHP Adapters for Lightstreamer

As most (if not all) of you know, PHP is a widely adopted server-side scripting language, mainly focused on web development through the availability of web server native's module.

However, PHP could also be used for command-line scripting through the PHP Commnad Line Interface. This way you can leverage its power and simplicity to create general-purpose applications running in a shell.

In this post we will use such feature to illustrate the development of custom Remote Adapter Sets for Lightstreamer, written in PHP.

Wednesday, January 28, 2015

A Simple Ember.js Demo for Lightstreamer

In this post we are going to make a simple exercise to show how quickly you can integrate Lightstreamer with Ember.js, a popular JavaScript MVC framework aimed at making easier the development of so-called Single Page Applications.

Wednesday, January 21, 2015

Lightstreamer 6.0 Is Out!

We are extremely excited to announce that Lightstreamer 6.0 is now publicly available.

Many new features and improvements have been included in this release.

Here is a very quick summary of what's new.

Wednesday, January 14, 2015

A Python Client Example for Lightstreamer

Recently, some folks asked on our forum for some advice on how to properly create a Lightstreamer client based on the Python language.

An official release of a Lightstreamer Python client is not available yet, so it seems a good moment to show an example of a simple client application written in this wonderful language.

The proposed script provides a very simple version of the well known Stock-List demo. In this new adaption, soon after submitting a single subscription to a set of items with related fields, the real-time data coming from the server are displayed on the console until the user hits the CR key.

Tuesday, December 23, 2014

Lightstreamer 6 Is Coming...

We over here at Lightstreamer would like to extend our warmest wishes to all our clients, partners, supporters, and friends for an amazing holiday season and a prosperous new year.

2015 will begin with big news from our team. Lightstreamer 6 will be released in the course of January, with tons of new features and improvements. Stay tuned!

The Lightstreamer Team

Thursday, October 30, 2014

Authentication & Authorization With Lightstreamer

This short article will guide you through authentication and authorization in Lightstreamer and will introduce a live example with full source code.


Most, if not all, Lightstreamer applications will, at some point, require some sort of authentication mechanism to validate their users. Moreover, there usually is an authentication mechanism already in place when Lightstreamer is introduced in the system.

So, let's see how to introduce Lightstreamer in an environment where Authentication is already handled by a Web/Application server.

Thursday, October 16, 2014

Protecting Lightstreamer Against POODLE (SSLv3)

Google's researchers recently discovered a new vulnerability affecting the SSL protocol. POODLE, which stands for Padding Oracle On Downgraded Legacy Encryption, allows an attacker (a man-in-the-middle) to decrypt ciphertext using a padding oracle side-channel attack. Full details are available in this Google paper.

POODLE affects older standards of encryption, specifically Secure Socket Layer (SSL) version 3.0. It does not affect Transport Layer Security (TLS), the newer encryption mechanism.

Lightstreamer relies on the underlying Java Virtual Machine (JVM) for the implementation of the SSL and TLS encryption and cipher suites. While waiting for the availability of a JVM upgrade that avoids SSL 3.0 by default, we recommend configuring Lightstreamer Server to prevent the use of SSL 3.0 for all HTTPS and WSS connections.

Thursday, September 25, 2014

Meet our Customers: Finanex

A short interview with Dejan Milosevic, CTO at Finanex.

Let’s talk about your organization. What is your core business?

"Finanex is a financial services company that allows individual investors to trade on an equal basis, without facing dealers as counterparts through its TargetTrade platform, which will be launched soon".

 Could you let us know any further information?

"The company intends to license its TargetTrade trading platform to white labels".

Tuesday, July 22, 2014

Lightstreamer 5.1.2 Released

A maintenance release of Lightstreamer is now publicly available for download. It contains several fixes and improvements.

For paid editions, no license updates are necessary to upgrade, provided that a license for server 5.1 and JS client 6.1 is already in use and the maintenance contract is active.

Please contact if you have any questions.

Below is a list of the changed components.

Friday, July 18, 2014

Developing Swift Apps on iOS with Lightstreamer

Unless you have been living under a rock in the last month or so, you should know Apple introduced a new programming language during WWDC 2014. Like a typical Steve Jobs' "One more thing" move, Craig Federighi introduced Swift at the very end of the keynote. The intention of the new language is to leave behind some of the C legacy that burdens Objective-C.

So far, Swift has been welcomed by developers and has generated a lot of articles in popular platforms like Stack Overflow. The aim of this article is to contribute to the growing popularity of the language with some sample code to connect, subscribe and send messages to Lightstreamer. 

The code presented here has been written and tested with Xcode 6.0 beta3 and the Lightstreamer iOS client 1.3 (due to be released shortly), but it is compatible with client version 1.2.x (released with Server 5.x).

If you prefer a complete example, in place of a step by step tutorial, take a look at the iOS Swift Chat demo. More informations at the end of the article.