Once the Network Was the Computer. Now the Network Is the World.
TOM WILLIAMS, EDITOR-IN-CHIEF
Page 1 of 1
It is sometimes amazing how things develop in ways we never expected. Let us consider the humble “app.” Now, the word “app” is nothing new. It has long been used as an abbreviation to signify an application. However, with the rise of tablets and smartphones—and especially with Apple reportedly copyrighting the phrase, “There’s an app for that,” the word has taken on a more specific meaning. Namely, it has come to mean an application or operation that can be started by touching one of the icons on a smart screen, usually on an Apple or Android-based smartphone or tablet.
In the world of Android, at least, such apps are supposed to be written in Java and executed by the resident Dalvik JVM, which has been integrated into the Android operating system. It is from here that the app accesses any other hardware or software resources that may be available on that particular device. For example, that could be a graphics processor that was integrated with the particular version of the ARM architecture used in the device. For example, the Nvidia Tegra family consists of multicore ARM processors into which an Nvidia GPU has been integrated. Drivers targeted to access this peripheral have been included in the Android build for the device.
But now we find that there are further possibilities and that they potentially relate to embedded devices. In a very interesting article in this issue from Viosoft, the author explains that since Android is based on an underlying version of Linux, programs written in C and C++ can be invoked from the Android user interface and run in the Linux environment. They can even take advantage of specific hardware resources that may not be accessible by the Java code but are made useful by means of Linux drivers that can be called by the compiled C programs.
Now let’s go one step further. No one is claiming this yet, but suppose we have a device built on a multicore processor (Android has now been ported to the x86-based AMD G Series as well), and that one of those cores has been dedicated to running an RTOS. That RTOS has access to specific memory and hardware resources and can, when needed, run in a partition separately from the rest of the system, communicating over well-defined protocols with a Linux-based program, which in turn sends and receives user data to and from the Java app.
And here, Android doesn’t even have to be in mobile devices. It can offer a well-known and well-understood user experience for many deeply embedded local devices that can also be remotely connected via the same user interface. Yet connectivity is now everywhere and even more resources are available in the Cloud—resources that, when needed by an app, can be accessed by touching that same little icon on the screen wherever that screen may be.
Since most tablets and (presumably) all phones have some form of wireless connectivity, apps have access to Cloud-based resources as well. These resources can make huge apps out of “small” ones. For example, almost any app that needs to use and present geographical data could utilize a cloud-based service like Google Earth. At some point, Google does charge for such utilization, but, really, would you prefer to write your own global satellite mapping program or pay Google? Thus, a utility company can have its meters deployed, get the readings and use the mapping program to get any location-related information.
Cloud-based hardware resources are becoming available as well. As Cloud applications ramp up, more computing and processing resources become available online. These can be made available during off periods, such as during the night hours when the Wall Street crowd is not using them, and they can be used by apps or by contracting parties such as scientific institutions. But theoretically, even such resources could be accessed by the humble icon on the screen whose underlying app could tap those and diverse other resources and even other apps available and linked to the goals of the app that was invoked.
Conversely, the vast amounts of data collected by even small but numerous and distributed embedded systems are available to higher level applications that may reside in business, scientific and IT settings, depending on what they do. And the really cool part is that the availability of such data and resources can easily trigger ideas about how they can be further combined, exploited, used and linked to other apps in ways that had not even been thought of when their collection was originally started. And all of it, all of it is conceivably available right there on that little screen.