10/15/2013

Striking a balance between reliability and availability

Can you achieve one without
sacrificing the other?
Maybe it's just me, but a lot of people seem to use reliability and availability interchangeably. I often hear people say 99.999% reliability when, in fact, they are referring to availability.

So what is the difference between the two? And why is that difference important? I'm glad you asked. :-)

In a software-based system, availability refers to how often the system responds to events or stimuli in a timely manner; reliability, on the other hand, refers to how often the responses are correct. The distinction can be a matter of life or death. For instance, in some medical devices, it is preferable to have no response (where little or nothing happens to the patient) than a wrong response (where the device harms the patient irreparably). Whereas in other systems, any response of sufficient accuracy or quality may be preferable to no response at all.

But here's the thing. Regardless of whether a system is more sensitive to availability or reliability, it should still take pre-defined (and carefully considered) actions when a dangerous condition arises. For instance, if the control system for a high-speed train fails, it will move to its design safe state, which will probably involve applying the brakes.

So far, so good. The problem is, many systems are components of larger systems. So even when a component is avoiding a genuinely dangerous situation, its behavior may put stress on the larger system and lower that system's availability.

Moreover, the behavior of an overall system when an unanticipated condition occurs can be very difficult to predict, for the simple reason that the system depends on multiple, largely independent, components moving to their design safe states. None of those components, and their safe states, can be considered in isolation. For instance, in 1993, Lufthansa Flight 2904 overran a runway because the reverse thrust deployment system operated exactly to specification. Unfortunately, the system designers hadn't anticipated conditions during a cross-wind landing.

Enough from me. I invite you read the ECN article "Balancing reliability and availability", written by my colleague and senior software developer Chris Hobbs. Chris discusses how it's possible to strike a balance between reliability and availability — and why designing safe software can require the ability and willingness to think from the outside in.

QNX announces support for new Intel Atom E3800 processor family

In 2008, the Intel Intelligent Systems Alliance presented QNX Software Systems with an "Award of Excellence, Most Innovative Software" for its fastboot support of the Intel Atom Processor. Fast forward to this morning, when QNX announced that it will extend its Atom support to include the new Intel Atom E3800 product family, which was created to address the high performance-per-watt demands of medical devices, building automation panels, industrial control systems, in-car infotainment systems, and other smart devices.

Said Sam Cravatta, product line manager at Intel, "Stellar graphics support is crucial for application and intelligent system development. The Atom processor E3800 product family is the first to take advantage of Intel’s Gen 7 graphics, complementing QNX Software Systems’ graphics framework, tools, and runtime components for creating sophisticated displays that feature improved 2D and 3D graphics rendering with little CPU overhead.”

Highlights of the Intel Atom E3800 family include high I/O connectivity, an integrated memory controller, virtualization, error correcting code (ECC), and a thermal design power range of 5W to 10W2.

Read the QNX press release and read more about the E3800 product family.

10/08/2013

Time to blast some space debris!

If you're the proud owner of a BlackBerry 10 smartphone, here's a new game that you won't find on any other platform. It involves space debris, the International Space Station, and some quick thinking on your part — because unless you act fast, the space station will rapidly become an ex-station. And we don't want that, do we?

The game is called Ablative Air. To be honest, the name threw me off at first, as it would anyone who has studied Latin, a language in which "ablative" is just one of six noun cases (and people wonder why it's a dead language). But in the context of the game, ablative refers to the verb "ablate" — you know, vaporizing something to kingdom come. Which is what you get to do to the space debris.

The game's author is none other than Andy Gryc, whom many of you know through the QNX auto blog. Now here's the thing: some of you may assume, incorrectly, that the game was inspired by the new movie Gravity, which involves more space debris than you can shake a shuttle at. But, in fact, the near-simultaneous releases of the game and the movie are pure serendipity — or, if you prefer, synchronicity. Andy was at work on Ablative Air long before Gravity made its debut, and he didn't even hear about the movie until after he posted the game on BlackBerry World.

Enough of my blather. Check out this review, posted by the folks at CrackBerry. Then check out the links below to learn more about (and purchase!) Ablative Air.



Download Ablative Air from BlackBerry World, check out Andy's Facebook page, and visit his developer blog.


Postscript

As I was finishing this post, Andy Gryc sent me a message, saying that Ablative Air has just been granted "Built for BlackBerry" status. This signifies that an app or game satisfies a number of criteria, including user experience, performance, security, localization, and service integration. Congratulations, Andy!

Adding sound to eliminate sound: a new solution for noisy engines

Car engines have been getting noisier.
But chances are, you haven't noticed. That's because automakers have been taking measures to mask the noise.

So where is the noise coming from? Automakers need to reduce fuel consumption. And to do that, they are employing techniques such as variable cylinder management and operating the engine at lower RPM. These techniques can result in more "boom" that permeates the car's interior.

So how are automakers masking the noise? Well, it's not by adding damping materials. In fact, many automakers are removing such materials to help make their cars lighter and more fuel efficient — a practice that can allow more engine sound to reach the driver and passengers.

The weapon of choice is, paradoxically, sound. By playing “anti-noise” (i.e. sound that is directly proportional but inverted to the offending engine tones) over the car’s speakers, automakers can, in effect, make engine noise disappear. This approach is similar to noise-cancelling headphones, but targeted specifically at engine sounds. It's also more complicated, as it must take into account the unique acoustic properties of each vehicle model — properties that change when you open and close windows, add or remove passengers, and so on.

Now here's the thing: The active noise control (ANC) systems currently used by automakers require dedicated hardware. This adds cost and complexity. So the acoustics engineers at QNX have come up with a different approach: a software-based solution that can run on existing infotainment or audio hardware. The result is significantly lower Bill of Materials costs and an ANC solution that integrates better with other audio tasks, including hands-free calling.

Mind you, there are other benefits as well. But don't take it from me. Check out this blog post from my inestimable colleague Tina Jeffrey, who provides the full skinny on the new QNX Acoustics for Active Noise Control product and why it offers a better approach to traditional solutions.