News Archive (1999-2012) | 2013-current at LinuxGizmos | Current Tech News Portal |    About   

Article: Guest editorial: Pondering our Linux/Java future

Jul 15, 2001 — by Rick Lehrbaum — from the LinuxDevices Archive — views

Predicting the future is a mug's game at the best of times.

The Internet landscape is littered with the carcasses of strange little start-up companies who thought they could predict the future. But then again, the kind of future they foresaw presupposed limitless supplies of cash from angel investors who never really bothered to check whether there was a reasonable business plan behind the ideas.

But the industry wised up, and reality slid back into place with an audible thump. Who knows: perhaps in a parallel universe, the boom actually carried on?

So our world is perhaps a bit wiser now. Certainly, in any case, it is more parsimonious. And, consequently, the “we'll do the whole darned thing ourselves” attitude of some companies has been replaced by one of “adapt and prosper”.

This, then, is one reason the open source (and yes, “free”) aspect of Linux will be (and already is) so attractive to the embedded market. And also why the cross platform nature of Java will become more and more popular as time goes on.

So, despite my better judgment, I'm going to attempt to predict the future . . . well, at least a future I'd personally like to see.

The future

You've no doubt already read predictions about the house of the future: network enabled devices connected to each other and to the Internet. The fridge that orders milk when you run out. The washing machine that knows when it's about to run out of powder and emails a distress call to the pantry.

But have you sat back and thought about how some of these ideas might actually work in the next few years — rather than some indeterminate time in the next decade or so?

The backbone of the connected home will obviously be a computer of some sort. This computer (or “home services gateway” as I've heard it referred to) won't be the desktop PC sitting on the end of your desk that crashes half the time you install new software on it, or gets infected by a virus every time your children download a new game from the Internet.

It probably won't need much of a graphical user interface (GUI) itself, if it needs one at all. Hence, it won't need to be that powerful. I've already come across several projects where older PCs are ripped apart and turned into Linux MP3 players — so there's no reason why the obsolete computers of tomorrow can't also be pulled apart and turned into stable Linux servers for the connected home.

And what's this home gateway connected to? To put it simply: everything.

From the smallest device with no interface and a Java processor (that executes Java bytecode directly) with little else, to the smart power meter with a small-footprint embedded Linux OS and a Java-based user interface, up to the set-top box that runs a relatively full-featured Linux and again uses Java for its GUI.

Science fiction?

Imagine, if you will, it's the middle of winter. You're running late from work, and you've got unexpected guests coming over for dinner, but you don't have time to get the extra shopping done for the meal.

Using your Linux/Java PDA, you bring up a house-controller application which shows a small map of the rooms in your home. You click on the lounge and kitchen areas, then click on the heating icon, then enter a start time. The house-controller app connects to your home services gateway, sending the necessary instructions. The gateway calls the heater in the lounge (a “model 2” heater) and sets the time it should switch on. The heater in the kitchen is a “model 1” however, so it only has a simple on/off switch; therefore the gateway will wait until the specified time to send an “on” signal.

Using another application, you skim through your recipe list and choose something suitable. Your gateway already has a list of the items in your pantry and fridge, emailed to it by the supermarket at the same time they were delivered, so it sends a list of the missing ingredients to a couple of “emergency supermarkets” on your subscribed list. The price is returned (probably in XML format) and the gateway chooses the cheapest of the two.

A confirmation email from the supermarket arrives while you drive home and is read to you by your car — the shopping will arrive 20 minutes before you get home. You pull over (because the driver's side console won't work while the car is moving), open the house controller app and click on the laundry area, then click on the security button to switch that zone off. You set a once-only access code for the laundry door, and reply to the supermarket confirmation email with the code in the special instructions area.

The problems of the evening have been sorted out with a minimum of fuss!

Science fact

Did any of that sound like science fiction?

It shouldn't. Nothing I've described is particularly innovative, and most of it is within a few years (or much less) reach. Consider . . .

  • A Linux/Java PDA has recently been announced by Sharp and is due out later this year. In addition, Compaq's iPAQ also has Linux/Java support, and others are on the horizon.

  • Back in January, DaimlerChrysler demoed a concept car with four internal computers running Red Hat Linux along with a standard Java Virtual Machine running Espial's DeviceTop environment, allowing passengers to browse the web, do their email, listen to MP3s, and so on.

  • Here in the UK, a number of supermarkets already have Internet shopping and home delivery services, so it's not too much of a stretch to think that your shopping can be tied into a application sitting on your gateway which monitors your weekly purchases and remembers what you need.

  • The home-controller app I've described doesn't necessarily need a PDA to run on. Your J2ME-capable mobile phone (available now from several providers) would run it just as well.

  • Java processors might still be relatively expensive now, but will inevitably drop in price. A small Java controller might conceivably plug into your existing heating unit and connect to your gateway through your home's AC power cables, to be controlled by a centralized device.

  • PC-controlled home security systems aren't new, but they also are not going to be child's play to install — not for your average homeowner. In a networked home, however, if you want to add another sensor in your lounge you just plug it into a network point (or better yet a wireless unit might simply plug itself in) and the security software will do the rest.

  • Again, electronic locks aren't new — networked electronic locks are already in common use by hotels and businesses. So connecting these into a home automation system could easily be accomplished right now by anyone with a bit of technical know-how. A good example of this is a locking system using iButtons from Dallas Semiconductor.
So why Linux, in particular? . . . and Java on Linux?

I've already mentioned several reasons why these two technologies are important in the embedded space. I believe one of the most important reasons for using Linux, is that an open source operating system can be adapted with relative ease to fit a particular environment — without the need to write the whole OS yourself. A couple of additional reasons jump immediately to mind: stability and reliability.

But why add Java to embedded Linux?

I think the answer to this lies in the extraordinary adaptability of Linux. The ability to use Linux in such a wide range of smart devices and embedded applications makes using Java particularly important.

Why? One of Java's main selling points has been “Write Once, Run Anywhere”. Grant it, the phrase has devolved to “Write Once, Test Everywhere”; but certainly I've never worked with another language where I could develop on one platform and then move my apps across to another without having to put serious thought (and effort) into it.

Consider, for example, that you own a PDA running one OS, but a piece of software you want to use is only available for a competing OS (e.g. Win CE or Palm). Short of requesting that the developer port the software across, there's not much you can do.

However, if the software is written in Java, then as long as there is a virtual machine available for your PDA, you can use it. When you start to think about how many applications there are going to be out there for embedded technology — everything from a telematics system in an automobile, to a touch-screen GUI for a fridge — you start to get an idea of just how enormous the scope for variety in these various devices there really is.

And you also begin to realize the usefulness of an application environment and programming language which is relatively decoupled from the hardware it is running on.



Author's bio: Jason Briggs is the J2ME Editor for Java Developers Journal. He has been developing in Java for a number of years, and whereas he has also used UNIX for some considerable time, he is a relative newcomer to the joys of Linux. He is currently based in London, living in a shoebox-sized apartment with his wife.



 
This article was originally published on LinuxDevices.com and has been donated to the open source community by QuinStreet Inc. Please visit LinuxToday.com for up-to-date news and articles about Linux and open source.



Comments are closed.