Tag: software development

Apple to head towards separately-delivered security updates for iOS

Article

Your iPhone or iPad will have security and software-quality updates delivered separately from the main functionality upgrades

Apple Could Soon Split iOS Updates And Security Updates | Ubergizmo

My Comments

A trend that is increasing in relationship to software maintenance and quality assurance is to assure the ubiquitous availability of critical security, software-quality and compliance updates for a device or program. This is through delivering such updates under separate cover from major updates that primarily add features and functionality.

You may think of these critical updates as just security patches for the device or program but these can include general bugfixes, software refinements to to have the program run more efficiently or compliance modifications such as to update daylight-saving-time rules for a particular jurisdiction.

Microsoft, Google and Apple headed that way with Windows 10, Android and with MacOS respectively.  This approach benefits the software developer and the user equally because the security, software-quality or compliance patches are usually small files. The software developer can assure guaranteed delivery and installation even with older devices that aren’t able to take newer versions of the software thus hardening the device’s platform against security exploits.

Similarly the user can choose not to install a functionality update if they don’t see fit or may find that it offers a steep learning curve due to significant user-experience changes. It is more so where a user would rather run with a highly-stable version of the operating system than the latest “rushed-out” version that carries bugs.

Apple will be taking this approach with iOS soon. Previously, the iOS mobile operating system was maintained using the delivery of major versions offering major functionality. But Apple would deliver iOS bugfixes and security patches as a minor or “point” version dependent on a major version, something that was considered orthodox in the world of software maintenance and quality assurance.

But if they were to “reach” older iOS versions with a security or compliance update, they would need to offer a minor or “point” version for a prior major version as a separate software package. This is an issue that affects people who maintain older iOS devices, especially iPads or iPod Touch devices that are less likely to take newer major versions of iOS.

Through the development of iOS 14.5, Apple has looked in to the idea of “splitting” the critical updates from the main software package so that these can be delivered under separate cover. This could also allow Apple to package one of these updates to touch multiple major versions of the operating systems.

It could also be a chance for Apple to see a long service life out of iOS devices especially where older devices may not run the latest major version of iOS. This would be very applicable to iPad and iPod Touch users who see long-term use out of those devices or families who pass down older iPhones to their children. It could also be a chance for Apple to keep multiple hardened codebases for iOS going but able to support different device abilities.

It will also encourage Apple to deliver frequent software patches to iOS users especially if they can be installed without restarting the device. This is more so if Apple wants to create a tighter software-quality-assurance regime for their platforms.

But Apple also has to provide separate critical-update delivery to their tvOS operating system which drives their recent Apple TV devices and their watchOS operating system that drives their Apple Watch products. It can then be about creating a robust software quality-assurance approach across all of their products but catering to people who maintain older products.

Google improving on their simplified cross-platform software development platform

Article

Samsung Galaxy Tab Active 8" business tablet press picture courtesy of Samsung

It will become easy to develop apps to run on smartphones..

Microsoft helps with Google’s Flutter 2 update to improve apps on Surface Duo | Windows Central

Google’s Flutter 2 update could be a major win for apps on Windows 10 | Windows Central

My Comments

Now with three major desktop computing platforms and two mobile computing platforms on the market, there is a demand to create software that can run on all of them. It also means that the software has to operate in a manner that suits the different user experiences that different computing devices offer.

Lenovo Yoga Tablet 2 tablet

.. and tablets

The differing factors for the user experiences include screen size and general aspect ratio as in “portrait” or “landscape”; whether there is a keyboard, mouse, stylus or touchscreen as a control interface; or, nowadays, whether there are two or more screens. Then you have to think of whether to target a mobile use case or a regular-computer use case and optimise your software accordingly. You may even have to end up targeting “small mobile” (smartphone), “large mobile” (iPad or similar tablet), “desktop” (desktop or laptop computer including 2-in-1 convertibles) or “lean-back” (smart TV / set-top / games console) use cases at once.

Dell XPS 13 Kaby Lake

.. and laptops with the same codebase

Google and Microsoft have established a partnership to make Google’s Flutter 2 software development platform as something to create desktop+mobile software solutions. It is building on Microsoft’s foundation stones like their BASIC interpreters which got most of us in to personal computing and software development.

Here it is about creating common codebases for native apps that target iOS, Android, Windows 10, MacOS and Linux; alongside Web apps to work with Chrome, Firefox, Safari and Edge. But the question that could be raised is if an app is targeted for Google Chrome, would this work fully with other Chromium-based Web browsers like the new Microsoft Edge browser, the Opera browser or Chromium for Linux.

The creation of Web apps may be about being independent of platform app stores which have a strong upper hand on what appears there. Or it may be about reaching devices and platforms that don’t have any native software development options available to average computer programmers.

Some of the targeted approaches for this new platform would include “progressive Web apps” that can run on many platforms using Web technology and omit the Web-browser “chrome” while these apps run.

The new Flutter 2 platform will also be about creating apps that take advantage of multiple-screen and foldable setups. This is in addition to creating fluid user interfaces that can run on single-screen desktop, tablet and smartphone setups. The idea of creating a user interface for multiple-screen and foldable setups is seen as catering to a rare use case because of fewer foldable devices like the Microsoft Surface Duo on the market let alone in circulation. Another question that can crop up is multiple-screen desktop-computing setups and how to take advantage of them when creating software.

What I see of this is the rise of software-development solutions that are about creating software for as many different computing platforms as possible.

Do I see regular computing target i86 and ARM microarchitectures?

Lenovo Yoga 5G convertible notebook press image courtesy of Lenovo

Lenovo Flex 5G / Yoga 5G convertible notebook which runs Windows on Qualcomm ARM silicon – the first laptop computer to have 5G mobile broadband on board

Increasingly, regular computers are moving towards the idea of having processor power based around either classic Intel (i86/i64) or ARM RISC microarchitectures. This is being driven by the idea of portable computers heading towards the latter microarchitecture as a power-efficiency measure with this concept driven by its success with smartphones and tablets.

It is undertaking a different approach to designing silicon, especially RISC-based silicon, where different entities are involved in design and manufacturing. Previously, Motorola was taking the same approach as Intel and other silicon vendors to designing and manufacturing their desktop-computing CPUs and graphics infrastructure. Now ARM have taken the approach of designing the microarchitecture themselves and other entities like Samsung and Qualcomm designing and fabricating the exact silicon for their devices.

Apple MacBook Pro running MacOS X Mavericks - press picture courtesy of Apple

Apple to move the Macintosh platform to their own ARM RISC silicon

A key driver of this is Microsoft with their Always Connected PC initiative which uses Qualcomm ARM silicon similar to what is used in a smartphone or tablet. This is to have the computer able to work on basic productivity tasks for a whole day without needing to be on AC power. Then Apple intended to pull away from Intel and use their own ARM-based silicon for their Macintosh regular computers, a symptom of them going back to the platform’s RISC roots but not in a monolithic manner.

As well, the Linux community have established Linux-based operating systems on ARM microarchitectore. This has led to Google running Android on ARM-based mobile and set-top devices and offering a Chromebook that uses ARM silicon; along with Apple implementing it in their operating systems. Not to mention the many NAS devices and other home-network hardware that implement ARM silicon.

Initially the RISC-based computing approach was about more sophisticated use cases like multimedia or “workstation-class” computing compared to basic word-processing and allied computing tasks. Think of the early Apple Macintosh computers, the Commodore Amiga with its many “demos” and games, or the RISC/UNIX workstations like the Sun SPARCStation that existed in the late 80s and early 90s. Now it is about power and thermal efficiency for a wide range of computing tasks, especially where portable or low-profile devices are concerned.

Software development

Already mobile and set-top devices use ARM silicon

I will see an expectation for computer operating systems and application software to be written and compiled for both classic Intel i86 and ARM RISC microarchitectures.  This will require software development tools to support compiling and debugging on both platforms and, perhaps, microarchitecture-agnostic application-programming approaches.  It is also driven by the use of ARM RISC microarchitecture on mobile and set-top/connected-TV computing environments with a desire to allow software developers to have software that is useable across all computing environments.

WD MyCloud EX4100 NAS press image courtesy of Western Digital

.. as do a significant number of NAS units like this WD MyCloud EX4100 NAS

Some software developers, usually small-time or bespoke-solution developers, will end up using “managed” software development environments like Microsoft’s .NET Framework or Java. These will allow the programmer to turn out a machine-executable file that is dependent on pre-installed run-time elements for it to run. These run-time elements will be installed in a manner that is specific to the host computer’s microarchitecture and make use of the host computer’s needs and capabilities. These environments may allow the software developer to “write once run anywhere” without knowing if the computer  the software is to run on uses an i86 or ARM microarchitecture.

There may also be an approach towards “one-machine two instruction-sets” software development environments to facilitate this kind of development where the goal is to simply turn out a fully-compiled executable file for both instruction sets.

It could be in an accepted form like run-time emulation or machine-code translation as what is used to allow MacOS or Windows to run extant software written for different microarchitectures. Or one may have to look at what went on with some early computer platforms like the Apple II where the use of a user-installable co-processor card with the required CPU would allow the computer to run software for another microarchitecture and platform.

Computer Hardware Vendors

For computer hardware vendors, there will be an expectation towards positioning ARM-based silicon towards high-performance power-efficient computing. This may be about highly-capable laptops that can do a wide range of computing tasks without running out of battery power too soon. Or “all-in-one” and low-profile desktop computers will gain increased legitimacy when it comes to high-performance computing while maintaining the svelte looks.

Personally, if ARM-based computing was to gain significant traction, it may have to be about Microsoft encouraging silicon vendors other than Qualcomm to offer ARM-based CPUs and graphics processors fit for “regular” computers. As well, Microsoft and the Linux community may have to look towards legitimising “performance-class” computing tasks like “core” gaming and workstation-class computing on that microarchitecture.

There may be the idea of using 64-bit i86 microarchitecture as a solution for focused high-performance work. This may be due to a large amount of high-performance software code written to run with the classic Intel and AMD silicon. It will most likely exist until a significant amount of high-performance software is written to run natively with ARM silicon.

Conclusion

Thanks to Apple and Microsoft heading towards ARM RISC microarchitecture, the computer hardware and software community will have to look at working with two different microarchitectures especially when it comes to regular computers.

What do I mean by a native client for an online service?

Facebook Messenger Windows 10 native client

Facebook Messenger – now native on Windows 10

With the increasing number of online services including cloud and “as-a-service” computing arrangements, there has to be a way for users to gain access to these services.

Previously, the common way was to use a Web-based user interface where the user has to run a Web browser to gain access to the online service. The user will see the Web browser’s interface elements, also known as “chrome” as part of the user experience. This used to be very limiting when it came to functionality but various revisions have allowed for a similar kind of functionality to regular apps.

Dropbox native client view for Windows 8 Desktop

Dropbox native client view for Windows 8 Desktop- taking advantage of what Windows Explorer offers

A variant on this theme is a “Web app” which provides a user interface without the Web browser’s interface elements. But the Web browser works as an interpreter between the online service and the user interface although the user doesn’t see it as that. It is appealing as an approach to writing online service clients due to the idea of “write once run anywhere”.

Another common approach is to write an app that is native to a particular computing platform and operating system. These apps, which I describe as “native clients” are totally optimised in performance and functionality for that computing platform. This is because there isn’t the need for overhead associated with a Web browser needing to interpret code associated with a Web page. As well, the software developer can take advantage of what the computing platform and operating system offers even before the Web browser developers build support for the function in to their products.

There are some good examples of online-service native clients having an advantage over Web apps or Web pages. One of these is messaging and communications software. Here, a user may want to use an instant-messaging program to communicate with their friends or colleagues while using graphics software or games which place demands on the computer. Here, a native instant-messaging client can run alongside the high-demand program without the overhead associated with a Web browser.

The same situation can apply to online games where players can see a perceived improvement in their performance. As well, it is easier for the software developer to write them to take advantage of higher-performance processing silicon. It includes designing an online game for a portable computing platform that optimises itself for either external power or battery power.

This brings me to native-client apps that are designed for a particular computing platform from the outset. One key application is to provide a user interface that is optimised for “lean-hack” operation, something that is demanded of anything that is about TV and video content. The goal often is to support a large screen viewed at a distance along with the user navigating the interface using a remote control that has a D-pad and, perhaps a numeric keypad. The remote control describes the primary kind of user interface that most smart TVs and set-top boxes offer.

Another example is software that is written to work with online file-storage services. Here, a native client for these services can be written to expose your files at the online file-storage service as if it is another file collection similar to your computer’s hard disk or removeable medium.

Let’s not forget that native-client apps can be designed to make best use of application-specific peripherals due to them directly working with the operating system. This can work well with setups that demand the use of application-specific peripherals, including the so-called “app-cessory” setups for various devices.

When an online platform is being developed, the client software developers shouldn’t forget the idea of creating native client software that works tightly with the host computer platform.

Microsoft to improve user experience and battery runtime for mobile gaming

Article – From the horse’s mouth

Candy Crush Saga gameplay screen Android

Microsoft researching how games like Candy Crush Saga can work with full enjoyment but not demanding much power

Microsoft Research

RAVEN: Reducing Power Consumption of Mobile Games without Compromising User Experience (Blog Post)

My Comments

A common frustration that we all face when we play video games on a laptop, tablet or smartphone is that these devices run out of battery power after a relatively short amount of playing time. It doesn’t matter whether we use a mobile-optimised graphics infrastructure like what the iPad or our smartphones are equipped with, or a desktop-grade graphics infrastructure like the discrete or integrated graphics chipsets that laptops are kitted out with.

What typically happens in gameplay is that the graphics infrastructure paints multiple frames to create the illusion of movement. But most games tend to show static images for a long time, usually while we are planning the next move in the game. In a lot of cases, some of these situations may use a relatively small area where animation takes place be it to show a move taking place or to show a “barberpole” animation which is a looping animation that exists for effect when no activity takes place.

Microsoft is working on an approach for “painting” the interaction screens in a game so as to avoid the CPU and graphics infrastructure devoting too much effort towards this task. This is a goal to allow a game to be played without consuming too much power and takes advantage of human visual perception for scaling frames needed to make an animation. There is also the concept of predictability for interpreting subsequent animations.

But a lot of the theory behind the research is very similar to how most video-compression codecs and techniques work. Here, these codecs use a “base” frame that acts as a reference and data that describes the animation that takes place relative to that base frame. Then during playback or reception, the software reconstructs the subsequent frames to make the animations that we see.

The research is mainly about an energy-efficient approach to measuring these perceptual differences during interactive gameplay based on the luminance component of a video image. Here, the luminance component of a video image would be equivalent to what you would have seen on a black-and-white TV. This therefore can be assessed without needing to place heavy power demands on the computer’s processing infrastructure.

The knowledge can then be used for designing graphics-handling software for games that are to be played on battery-powered devices, or to allow a “dual-power” approach for Windows, MacOS and Linux games. This is where a game can show a detailed animation with high performance on a laptop connected to AC power but allow it not to show that detailed animation while the computer is on battery power.

Two ways to put indie games on the map

Article

GOG Galaxy client app (Windows)

One of the indie games markets out there

Calling all indie developers in the US & Canada: sign up for the Google Play Indie Games Festival in San Francisco | Google Android Developers Blog

Google Play announces 2017 Indie Games Festival for US and Canadian developers | 9to5 Google

Jump aims to be “Netflix for indie games” while still benefiting developers | KitGuru

Previous coverage

Competition arises for the online games storefront

My Comments

An issue that may face a games developer who wants to work the independent path is how they can put the game on the map as far as the public is concerned. For some developers, the importance is about avoiding heading to the “Hollywood of electronic games” where computer games become very similar in quality to the Hollywood blockbuster movies or popular American network and cable TV shows which ends up with the same-old content amid questionable ethics.

Google Play Store

Google Play Store – a step towards the indie game market

One way would be to put the games on one or more platform-specific app stores like the iTunes App Store, Google Play or Microsoft Store. On the other hand, if the game is to be targeted at regular computers, it may be about offering the games to indie-focused software markets like GOG Galaxy or the upcoming Jump subscription-driven market.

The second option appeals to those who want to keep it purely without mainstream influence, as if it is like offering indie-music records through the inner-urban record stores and having it played on community radio stations or by venues visited by the target audience like the cool cafes. It may also include making the games downloadable through the developer’s own Website. But it may only appeal for Windows, Linux or Mac regular-computing platforms rather than mobile devices or consoles and set-top devices.

But Google has taken a process similar to a mainstream full-line music outlet running and promoting an “indie” genre. Here, they are running the “Indie Games Festival” in San Francisco to draw out indie games developers and have them offer the Android platform the best software they can provide. What I see of this is it is a way to stimulate the indie games market especially courting those developers that are writing for mobile platforms.

I even see the Microsoft Store in a better position to court the indie games developer who doesn’t mind going down the second path by encouraging them to develop games for the Windows platform and the XBox One console in a “write-once” approach. Here, they could take a similar approach to Google by running a dedicated festival for indie games developers who want to approach regular-computer and games-console platforms.

At the moment, when it comes to the games for the regular computer, being able to use a dedicated indie-game market or using an established games market like Microsoft Store, iTunes Mac App Store or Steam are the viable games options. But when it comes to targeting other devices like mobile devices, games consoles or set-top devices, the only way would be to use the platform-specific app stores and unless the platform encourages quality independent software development, these will be very limiting for the indie games developer.

There still needs to be interest in and support for the indie games market from many app stores and games markets so that electronic gaming is an environment for high-quality electronic games that appeal to all people.

Challenges that face the Windows 10 2-in-1 user

Dell Inspiron 13 7000 2-in-1 in viewer mode

These 2-in-1s are as important as the iPads and Android tablets out there

The Windows-10-based 2-in-1 portable computer like the Dell Inspiron 13 7000 Series that I reviewed just lately is appealing as a viable alternative to the iPad or Android tablet. For some users, it may be about a single device that they can use for creating material like writing that memoir; or enjoying content including playing some casual games like Words With Friends or watching online video. The same can also hold true for people who use clamshell laptops, especially the thin-and-light or entry-level variety and want to engage in these activities.

Here, these computers are seen by Microsoft and developers as another “PC-class” device i.e. a regular computer in the same vein as the typical desktop or laptop computer. It is in contrast to how the iPad and Android tablets are seen by their respective operating systems as a distinct mobile device which can be developed for separately.

Apple iPad Pro 9.7 inch press picture courtesy of Apple

But there is a lot more casual games, catch-up TV front-ends and other software being developed for these devices

But the mobile platforms have acquired a large range of software behind them that appeals to people who want to consume content. Here, the iOS App Store and the Google Play Store are replete with many respected social-play and casual games along with official native client apps for various media and information services including catch-up TV or video-on-demand services.

As well, most if not all, communications platforms and social networks implement a native client for the mobile platforms with a large percentage running a Windows 10 native client that can work on a regular computer and available through the Microsoft Store.

Let’s not forget that the Microsoft Store is full of the well-known games with different variants providing different user experiences and capability levels for these games, For example, no personal computing platform has ever existed without one or more variants of the common board games like chess or backgammon that you play against a hard-to-beat computer opponent.

SBS On Demand Windows 10 platform app

SBS On-Demand – one of the few catch-up TV / video-on-demand apps on the Windows 10 PC platform

But there are some online media services, games and apps that have been engineered for the touch experience but haven’t been ported to Windows 10 as Universal Windows Platform applications that can run on the 2-in-1 computers. If an app or game is ported to Windows 10, it typically may just be ported to the Mobile variant which means the Windows-10-based mobile phones. This affects some of the popular mobile-platform games like Plants vs Zombies or Piano Tiles, along with the “TV Everywhere” or “catch-up TV” apps that TV broadcasters and pay-TV platforms offer.

Similarly, a lot of the smart-home devices that work on the app-cessory model offer most of these apps only on the iOS App Store or the Google Play Store. Here, I have had to run an article about how to use the Web to set up or manage an Amazon Echo but most of the other devices wouldn’t work further without an app from these stores.

The only other option that people have for playing a favourite casual game or using an online media service is to use Web-based resources such as playing a Web-app version of the game or visiting the service’s Web page. In some cases, the pages aren’t really optimised for a touch-driven user interface like what these computers offer, nor do they take full advantage of what Windows and your 2-in-1 computer has to offer. Similarly, some of these services use Adobe Flash as the preferred advanced user interface rather than HTML5 and this has been highlighted as a security and performance risk.

Time to port those apps to Windows 10 PC

Microsoft is now simplifying the process for porting mobile-platform apps from iOS or Android to the Windows 10 Universal Windows Platform and having them available through the Windows Store thanks to Xamarin or Apache Cordova or various Windows Bridge frameworks. Some of these tools also simplify the process of writing and targeting an app to Windows 10, iOS and Android all at once, something that can work for those of us who are writing an app from scratch with the goal to target those platforms.

The challenge here for developers who have written iPad or other tablet apps would be to port them to Windows 10 and maintain a similar user experience to the iPad package. Then the developers would benefit from making tweaks to the app to exploit the Live Tiles and other Windows 10 user-interface features.

There also has to be some importance towards maintaining the same level of “touch-ability” between the tablet platforms thus yielding the same experience. Let’s not forget the issue of maintaining the same level of performance and playability across the different platforms so you are not finding that the Windows 10 port of that iPad game appears more sluggish than the original version.

By making sure that the mobile apps and games are available across iOS, Android and Windows 10 UWP including PC users who use the 2-in-1s, it can be feasible for app developers to cover all their bases and reach every platform effectively. In some cases, it could place the likes of the Dell Inspiron 13 7000 2-in-1 as viable personal-computer devices for the family house where Grandma lives.

Microsoft dropping features from Windows 10 Fall Creators Update

Article

Acer Switch Alpha 12 2-in-1 with keyboard press image courtesy of Acer

There is the risk of over-promising and under-delivering when there is a short time between major operating system updates

Where do we stand with features for the Windows 10 Fall Creators Update? | Supersite Windows

My Comments

An increasing trend for regular-computer and mobile operating systems is for them to be updated on a regular basis along the model of “software-as-a-service”.

With this model, the companies behind these operating systems will typically license the operating system with new hardware, but not require the user to pay to acquire newly-developed functionality. It is in conjunction with making sure that all bugs and security exploits are removed from the system.

A problem that has been found with this method of delivery is that it can be easy to over-promise and under-deliver as what Microsoft commonly does. This has shown up more so with the Fall Creator’s Update of Windows 10 where Microsoft removed Windows Timeline and Cloud-Powered Clipboard, two highly-promised features, from the feature list for that update.

What is underscored here is the frequency of major updates that add significant amounts of functionality to an operating system, along with calling out the promised improvements for these updates. Apple and Google implement a yearly cycle when it comes to delivering major operating-system updates that are about adding extra features while Microsoft undertakes this on a six-monthly basis.

The advantage of the long lead-time that Apple and Google run with is that they can deliver on their promises by writing in the code and subjecting it to a long debug and optimisation cycle including delivering it in publicly-available beta-test packages. This is conversant with Microsoft calling out features for a major functionality update and having to have all of them work to expectation by the time the update is considered “feature complete”.

But how can Microsoft and others who implement the short lead times for major functionality updates avoid the issue of over-promising? Here they could announce that some features are being destined for the upcoming functionality update while others are being destined for the subsequent update.

Similarly, they could deliver the functionality in an “out-of-band” form such as free-to-install apps provided through the platform’s app store, a practice Google is undertaking with the Android platform. In the case of functionality dependent on a particular peripheral class, it may be delivered as part of the onboarding process that the operating system performs when that peripheral is connected for the first time.

Personally, I would like to see some effort put towards fine-tuning the peripheral and network interface software code to encourage more “driver-free” peripheral connectivity that occurs in a secure stable manner to the latest specifications for that device class.

What is being highlighted here is the risk of over-promising and under-delivering when it comes to delivering major functionality updates for an operating system.

Cortana gets skilled up to fight Alexa

Articles

Amazon Echo on kitchen bench press photo courtesy of Amazon USA

The Amazon Alexa platform now faces some healthy competition from Microsoft

Here’s What Cortana Will Do in Devices | Tom’s Guide

HP and Intel are building Cortana-powered devices | Engadget

HP is also building its own Cortana speaker | The Verge

More Cortana-powered devices are on the way from HP and Intel | Windows Central

Harman Kardon’s Invoke speaker is a Cortana-powered take on an Amazon Echo | The Verge

Microsoft shows how Cortana will work in speakers and cars | The Verge

From the horse’s mouth

Harman-Kardon

Invoke speaker

Product Page

Microsoft

Cortana Skills

Catalogue Page

Development Kit Web page

Windows Developer blog post (Skills Kit and Devices SDK)

Windows Developer blog post (Skills Kit)

My Comments

Amazon Alexa is now facing real competition from Microsoft’s Cortana.

More devices with Cortana

This is coming about through Microsoft making it easy for device manufacturers to add the Cortana voice-driven personal assistant to their designs, including allowing vehicle builders to integrate her in to their vehicles’ infotainment systems.

Harman-Kardon, now part of Samsung, have premiered the Invoke smart speaker which is driven by Cortana while HP and Intel have registered interest in building Cortana-driven devices. Even BMW and Nissan have registered interest in integrating Cortana in their vehicles’ infotainment systems, most likely something that will be offered as an option.

The Creators Update build of Windows 10 IoT Core edition will have integrated Cortana support, but Microsoft has released the Cortana Devices SDK to make it feasible to have Cortana on more devices from other device manufacturers. It is also worth knowing that this functionality also extends to providing Skype IP telephony support to these devices, placing Cortana and Alexa on an even footing.

Microsoft are taking this concept further by making it feasible to “carry” an action between Cortana-equipped devices. The example cited in the press coverage highlighted a situation where an email comes in while you are driving. Here, you could instruct her to read a summary of this email to you or to remind you about it when you log in to your Windows-equipped regular computer at the office so you can read and reply to it there.

Ability to develop more Skills for Cortana

As well Microsoft have made available a development kit so that online services and Internet-Of-Things vendors can add “skills” to Cortana as they could with Alexa. But these will allow the Skills to run on multiple devices and cater to devices that implement different user interfaces. For example, you could implement a restaurant-recommendations Skill in to Cortana and ask her for a list of local eateries of a particular cuisine kind. In this case, if your device has a screen, you would see a list of these eateries with a name and address while she reads out the names. Or she could simply read out their names in the order of locality and star-rating so you can simply book a table there.

Of course, there is the ability for those of us who have created Skills for the Amazon Alexa ecosystem to easily port them to the Cortana ecosystem. Here, a developer could get things going so that their voice-driven online-service or device interface program can run on both an Amazon Echo or a Cortana-based device.

The question that is yet to arise is how Alexa and Cortana will compete with each other on the capabilities, user interfaces, number of Skills, number of devices supporting each platform and other aspects.

Designing for highly-compatible Internet Of Things

Article

D-Link DCH-3150 myDLink motion sensor

Smart Home and Internet Of Things devices need to be designed for compatibility and security before they become popular

How to bring true interoperability to the Internet of Things | Network World

My Comments

Increasingly, the concept of the “smart home” or Internet Of Things is becoming very real. Here, we are seeing a lot more consumer-electronics devices, home appliances and similar devices become connected to the home network and the Internet.

The “app-cessory” approach to network-controlled devices, where the only way to control these devices via your home network is through a manufacturer-supplied mobile-platform app, has now had its day. This typically asked that the device to be connected to your iOS or Android smartphone or tablet using one of three paths: a Bluetooth connection to the mobile device in the same vein as a Bluetooth headset; a Wi-Fi network created by the device that is controlled by the mobile-platform device; or the home network’s Wi-Fi segment.

The trend that is affecting these devices is to interlink them with a platform-based voice-driven “home assistant” of the Amazon Alexa or Google Home ilk. Here, the requirement is for the manufacturer to provide a “skill” or something similar to the “home-assistant” platform so that Alexa, for example, can interact with the device.

But the article is now highlighting the requirement for increased compatibility with the Internet Of Things. This is where the same device can operate across a range of different network setups and operating platforms.

Use of highly-capable hardware interfaces at the media-connection level

A direction that has assured “out-of-the-box” interoperability for regular-class and mobile-class computer devices along with an increasing number of consumer-electronics devices is to implement one or more multi-mode front-ends when handling the different interface types.

In the case of radio, it can mean being able to handle Wi-Fi, Bluetooth, Zigbee or similar technologies concurrently.With the wired networks, it would be about working with different media protocols over the same kind of wire, being Cat5 unshielded twisted pair, TV-antenna coaxial cable, AC wires used to power your appliances or traditional telephone wires.

Devolo Home Control Central Unit (Zentrale) press photo courtesy of Devolo

Devolo Home Control Central unit connected to router

In the case of a wireless connection, this is represented by the use of Bluetooth for peripheral-class device connection and Wi-Fi wireless networking to the latest standard for connecting to the home network and the Internet. Smartphones and some tablets will also implement a mobile-broadband modem that works across recent cellular mobile-telephony standards as well. As well, some consumer-electronics devices may implement a multifunction radio front-end that supports Zigbee or Z-Wave, typically to provide support for an RF-based remote control.

There are a significant number of “smart-home” or “Internet Of Things” devices that are designed to work solely with Bluetooth, Zigbee or Z-Wave. Examples of these range from temperature sensors, smart locks and movement sensors. These devices, typically battery-operated devices, use one of these technologies because of the fact that they are very thrifty on battery power thus allowing them to work on up to 3 AA Duracells or a 3V “pill-size” battery for months at an end or to work only on “harvested” power like kinetic energy.

But, if they want to liaise with your home network and the Internet, they have to deal with a gateway device that links between them and the home network. It is because, at the time of writing, no-one has effectively brought a Wi-Fi-capable single-mode or multimode radio front-end chipset that permits a battery-operated device to work in a power-efficient manner.

But another approach being called for is to have an Internet gateway device i.e. a home or small-business router being equipped with support for Bluetooth, Zigbee and / or Z-Wave along with Wi-Fi and Cat5 Ethernet for the home network. To the same extent, a Wi-Fi infrastructure device like an access point or range extender could simply be a bridge between other radio-network types like Zigbee or Bluetooth and the home network facilitated by the Wi-Fi or wired home-network connection.

Some manufacturers even have an “IoT hub” or gateway that links their Bluetooth, Zigbee or Z-Wave devices to your home network via an Ethernet connection. Here, this is offered as part of enabling their devices for online control via a Web dashboard or mobile-platform app. The current situation with most of these hubs is that they have the online-service hub that works with the manufacturer’s device.

There needs to be the ability to facilitate setups involving multiple gateways that link the home network with Zigbee or similar “IoT” radio segments. This is a reality with most of these devices being limited in their radio coverage in order to conserve battery power because they are expected to run on a commodity battery supply like two or three AA Duracells for months at a time or, in some cases, work on harvested electrical energy. You may find that having one of the gateways located near an IoT endpoint device like a smart lock may assure reliable connected operation from that device.

In these setups, there needs to be the ability to see a collection of these “IoT-specific” radio segments as one logical segment, along with the ability to discover and enumerate each device no matter which gateway or bridge device it is connected to and what kind of networks is used as the backbone.

Flexible software to the application level

Kwikset Kevo cylindrical deadbolt in use - Kwikset press image

To provide extended monitoring and control to the Kwikset Kevo deadbolt, you have to use a Bluetooth bridge supplied by Kwikset

Another issue raised regarding the Internet Of Things is compatibility across multiple software platforms and protocols.

A design practice that has been known to be successful was for recent network-connected home-AV equipment like Wi-Fi wireless speakers to support Apple AirPlay, Google Chromecast and DLNA “out of the box”. Here, you could stream content to these devices using most computer devices, whether it be your iPhone, Android tablet or Windows computer, or whether it is hosted on your NAS device.

Here, the goal is for a device to support many different software platforms, frameworks and protocols that are needed to do its job. To the same extent, it could be feasible for a device to work with different cloud services like Google Home, Amazon Alexa or IFTTT. What this can mean is that a device can work with different control and display surfaces from different manufacturers. It also means that the data that a piece of equipment shares is set in a known standard so that any software developer working on an IoT project can make use of this data in their code.

For example, the Open Connectivity Foundation’s standards which include the UPnP standards and are supported by the “open-frame” computing community, along with the Apple HomeKit framework will be required to be supported by network-connected devices.

Here, it will be about identifying every one of the standards supported by the physical medium that the IoT device uses to link with other devices and the network. Then implementing all of the current standards supported by that medium in a vendor-agnostic manner.

Secure by design

An issue that has been raised recently is the issue of data security practices implemented by the software that runs Internet-Of-Things and dedicated-purpose devices. Situations that have come to the fore include the Mirai botnet that scoped in network videosurveillance cameras and home-network routers to perform distributed denial-of-service attacks against online resources like the Krebs On Security Website and the DNS records held by Dyn, a dynamic-DNS provider, affecting a large number of Internet household names.

Here, the issue being called out is designing the software in this class of device for security along with a continual software-maintenance cycle. But it also includes the implementation of secure-software-execution practices not uncommon with the latest desktop and mobile operating systems. This includes secure-boot, trusted-execution and sandboxing to prevent unwanted code from running along with data-in-transit protection and authentication at the network level.

The concept of a continual software-maintenance approach where the firmware and other software associated with the Internet Of Things is always updated with these updates installed “in the field” as they are available, allows for the removal of software bugs and security exploits as they become known. It also allows the software to be “tuned” for best performance and manufacturers can even roll out newer functionality for their devices.

In some cases, it could even lead to a device being compatible with newer and revised standards and protocols rather than seeing one that ends up being limited because it doesn’t support the newer better protocol. But there can be the question about this kind of software update being used as a way to enforce unpopular device-design requirements upon an existing installed base of devices and changes how they operate. This could be brought about by a government mandate or an industry expectation, such as an eco-requirement for HVAC equipment required by a state energy-conservation department or a digital-rights-management expectation required at the behest of Hollywood.

To make the IoT hardware and software ecosystem work properly, there needs to be an underscored requirement for compatibility with prior and newer devices along with the ability to work securely and with properly-maintained software.