[LinuxFocus-icon]
LinuxFocus article number 230
http://linuxfocus.org

Georges Tarbouriech
by Georges Tarbouriech
<georges.t/at/linuxfocus.org>

About the author:

Georges is a long time Unix user. He likes those really innovative products that are able to change our present way of working.

IOS, another REBOLution

IOS

Abstract:

IOS stands for Internet Operating System. It is a commercial product intended to facilitate collaborative work. Rebol is the conceptor of this incredible piece of software. LinuxFocus has had the opportunity to test an evualation version for a 30 days period. This article tries to present this REBOLution.


_________________ _________________ _________________

 

The idea

Among other things, REBOL has an unique property: the extremely small size of the applications that you can develop with the language. You can have a look at this "old" article to discover how powerful it can be and how easily you can develop working applications for about 40 different platforms. Rebol/View, for instance, is 587 KB and allows you to develop almost everything you need. You can download it for free from the Rebol website. You can also download more than 300 example scripts that will teach you everything.
You'll never find another way to create applications so small in size with any other programming language. IOS was born from the same philosophy. That is, a dedicated server provides you with everything you need, and, as a client, you get many distributed applications on a very light desktop, running under about 25 different OSes. Of course, you can develop your own applications according to your needs. However, this is a very short summary, since IOS is much more than that.

 

The facts

Many young (and older) people may wonder : what is this guy talking about ? What do we care about size ? Today we have 20 or 40 GB hard disks, lot of RAM, "racing" CPUs, why should we keep things small ? They feel like telling me : come on, old man, things have changed ! Absolutely right... BUT, what about the Internet ?
You probably noticed that more and more people use the Internet. Many of them use modems to connect to websites, to send and receive their mail, etc. And, obviously, this consumes a lot of bandwith. That means, even with a cable or a DSL link, connections are getting slower and slower.
I know, nobody cares ! Who makes the "effort" to send text or HTML instead of those @#%*$ Word or Excel documents, or who cares sending JPEG pictures instead of BMP ones ? Very few ones !!! Don't we talk about websites "offering" sound, video, enormous pictures, etc. Accordingly, working remotely, becomes everyday worse.
Nevertheless, more and more people work remotely. Big worldwide commercial firms, world organizations, etc, and don't we forget the free software community (for software development, documentation, and so on). I mean, they have people working all around the world who need to communicate, preferably in real time. This is already true... without Rebol. So what ?

 

The REBOLution

Today, to work remotely, everyone uses well known tools : 50 MB browsers, 20 MB mailers, 10 MB conferencing software, 10 MB messenger software, 1 GB database software... to exchange any type of data. Preferably, very big data (see above !). What's new in Rebol's offer ? Nothing ! My fellows told me : the messenger allows messenging, the mailer sends mail, the taskmanager manages tasks...
Again, it's true ! Except that the mailer is 2915 Bytes (no typing mistake !), the messenger is 14.5 KB, the who is 7372 Bytes, the conferencing software is 14.41 KB, and so on ! All these tools are available on your desktop with a 610 KB executable to connect to the server. This is the size for the Linux client; it's almost the same one for every available platform : 25 at the time of this writing.
Here is what it looks like :

desk


To understand the full concept you must know that REBOL provides you with a range of products allowing almost everything. We already mentioned Rebol/View (free of charge or as enhanced version for a small fee), but you can add Rebol/Core (free download), Rebol/Command (commercial, that is, not free of charge) which is a product to be used in conjunction with RDBMS (Relational Database Manager System) or to manage cgi scripts, for instance. Of course, all these products can be used within IOS. This makes a very great "tool box" : a breathtaking programming (messaging) language, the ability to interface your programs (called reblets) with existing databases or web servers or whatever, and so on. As already said in the previous article : the only limit comes from your imagination. An example should make things a bit more understandable.

 

The test

We asked Rebol for an evaluation IOS version and they have been so kind to accept. We then have been able to get 3 clients accounts hosted on Rebol's server. Obviously, we were unable to test the server side : more on this later. Since it is a LinuxFocus test, we used... the Linux client.
All we had to do was to download a small executable and run it (Yes, I hate executables, but in this case, let's say I trust Rebol). This installs the client on your machine : it takes less than 1 minute !
If Rebol/View, for instance, is installed on your machine, you don't even have to configure the client since the information it needs already exists. That is the email address, the pop and smtp servers addresses... However, you must provide username and password Rebol gave you. That's it : you are ready !
You can use every tool present on the desktop : the messenger, the email, the conferencing software, etc. By the way, new reblets are frequently added. Utilities are also provided, such as a calculator, a clipboard, an info panel, etc. Here it is :

deskutil


The different buttons on the desktop allow to access every provided area for applications, documentation, etc. The users button is the good one for you since you can create you own folder(s) in this workspace. You can specify the users allowed to access this folder, just naming them in the right fields. Then you put in this folder what you feel like it. It can be applications, pictures, documents... You could consider this folder as a "worldwide" NFS (Network File System)... without its security flaws ! That is, the allowed users can read, write to this folder according to the permissions you gave them. Of course, all that stuff is present on your hard disk. In other words you can use it without being connected.
What did we store in there ?
A small application allowing to connect to LinuxFocus last issue. It is the same as the one already seen in the previous article about Rebol, except that it leads to a different LinuxFocus issue. Why did I write the same application ? Because the syntax has slightly changed since the previous article. Here is the new source code

What does it look like ?

lfissue


This program is 2182 Bytes, but we can say it only contains text, buttons, URLs and a background image... and no much code. Not really significative, is it ?
Let's try something a bit more elaborated.
Once again, we will take LinuxFocus as an example. Yet and always, we will make a very simple database. It is supposed to provide allowed users with the rights of consulting, creating, deleting records. Of course, since it is a very simple example, you won't be able to make queries, you can only select a record at once. The records are stored in a text file called articles.r.
The program is called lfdb.r and "wheighs" 5983 Bytes !
It is borrowed from Carl Sassenrath (Rebol's founder) rebodex.r, which is part of the provided examples above mentioned.
Here is the source code

Let's watch it at work :

deskdb


As you can see, nothing extraordinary, but it works and it is very small in size. That means, working on it remotely is quite fast, whatever the type of connection is.
This to say that you can create everything you want in a very short lapse of time and make it usable for people at the other end of the world as if they were in the next office. Remember, they can also use your "creation" once disconnected, since they have the stuff on their hard disk.
Obviously, this is a very simple example, but again, there is no limit to what you can do with IOS. For instance, since we are talking about databases, you could use Rebol/Command to connect to a RDBMS server.
This is only one way of using IOS, there are many others. Just think about the very sophisticated applications you could create with it.
And now, the most important : the one and lonely security side.

 

The security side

As soon as Internet communication is concerned, the security risk is very high. How did Rebol manage this big "affair" ?
As usual, they kept things simple, easy and trustworthy.

The server

As already mentioned, we have not been able to test the IOS server. But an admin guide is available from the IOS desktop documentation. Furthermore, people at Rebol are so nice to answer your questions : this is not that frequent and has to be said. Even more interesting, they answer your question in real time using the IOS messenger application. Not bad, is it ? (By the way, when do they sleep, since the jet lag between them and me is about 9 hours ?)
First of all, the server can run many different OSes. Most Unix or Windos servers can do the job. IOS security is managed from inside and integrates into your existing network without changes to your infrastructure. Let's hope your network is already protected with firewall, proxy, NIDS (Network Intrusion Detection System), tunnelling, etc.
IOS operates on top of the web server, using the HTTP protocol with a tunnelling technique. This web server is used as a gateway to connect to the IOS server. A cgi program acts as a proxy to redirect data from the web server to the IOS server. Every communication is encrypted. The IOS server stores the data. Another process synchronizes the data between the server and the client. That is, the new data is automatically downloaded to your hard disk.
Last but not least, it takes about 5 minutes to install the server if you already have a running web server.
Of course, this is a very short explanation, but it shows that the Rebol philosophy has been applied there too. Let's add Rebol provides you with Reblets making administration even easier.

The client

We already described the ease of the client installation. Nothing much to add, since it takes less than 1 minute.
As a client, you connect to the server with unique session keys, thus authentication is guaranteed. Everything circulating through the network is encrypted. Connections can be restricted to specific IP addresses, to specific ports (incoming, outgoing). It then becomes like a peer-to-peer connection.
Concerning files and directories, the permissions can be managed in a very easy way. The accesses are limited to a local specific area. That is, an user can only access its own area. And so on.
There is much more to say about IOS security scheme, but we would need various articles to cover everything.
To make it short, IOS security is very well thought. I tested the data circulation with tcpdump and saw nothing but the connection itself. I scanned the server with nmap and got no answer at all. Of course, this doesn't mean there are no vulnerabilities : we all know security never reaches 100%, however Rebol did another great job.

 

The "commercial" part

All right, Rebol is providing proprietary software. Of course, it has to sell it for a living, even if you can get many products for free. However, IOS for instance is sold in different ways : here is the range of IOS products.
IOS Express is for large/midsize business.
IOS Lite is for small business.
IOS Host is for hosted business : Rebol hosts on its servers.
IOS Alliance is a support program for commercial developers.
Obviously, according to the choice, the price to pay will be different. The introductory retail pricing is set at $2000 for the server and 10 clients. Additional clients are $100 each. For large amount of clients, a discount can be negociated.
This is for information and could change in a near future, according to the number of applications provided with IOS.

 

Back to the future

IOS is so ahead, while keeping things simple, that it becomes difficult to explain all its advantages. As far as people use different products in everyday's work they can't even notice those products are not the most adapted ones. Either they are stuck to them or they are not curious enough to try something else. Sometimes, they don't even have the choice. Nevertheless, products such as IOS are a true revolution when compared to what we use today. For this great piece of software, Rebol has no competitors. The problem is that being too ahead means that too early other competitors can benefit. The computer world is full of sad examples.
Let's come to the usual off-topic "area".
Rebol's founder, Carl Sassenrath, used to work for Commodore, a very big maker, for those who haven't known. The Amiga computer was one of their product. The Amiga OS was one of the most advanced system at that time : first multitasking personal computer, first true multimedia computer, first using multiple chips, etc. Commodore has been unable to sell it like it deserved. It took years for other makers or editors to reach the same technical level... but these "others" succeeded in selling their products, sometimes "forcing" people to buy them.
Carl was involved in this great work on Amiga OS.

Later on, still for Commodore, Carl worked on the CDTV, let's say the father of the set-top boxes. Again, Commodore has been unable to sell it. However, a few months after the release of the CDTV, another big maker released an equivalent... and succeeded in selling it. All this to say that Carl has always been ahead, but may be too ahead. What should have been an advantage became a drawback (sort of). His work was of benefit to others later on.

Another example could be NeXT and its OS, NeXTSTEP. More than ten years after, people discover MacOS X, often without knowing it is a very old system... called NeXTSTEP. This is a bit different, since the same man is behind both systems.
But again, it seems that being too ahead can produce a negative result. A sentence summarizes the "right" way of working : "we don't copy (plagiarize), we only try not to make the same mistakes than the ones who opened the way" (the true sentence may be a bit different). Guess who said so ! Any idea ?

This digression leads us to a question : will again Carl and friends work benefits to others ? Well, many people don't realize how advanced are IOS and the Rebol range of products. However this could "give" ideas to some editors. But, there is one thing they won't be able to "copy" : the size of the applications and the language to create them. Since I don't really believe that communication speed through the Internet is going to improve tomorrow, I keep thinking Rebol is the only one to understand the problem. I am aware of the very high speed already reached on Internet, but when do you think this will be available for everyone ? Don't we talk about the cost.
Sure, cable and DSL links improve things a bit when compared to modem or ISDN links (at least, sometimes, especially with cable connection). Anyway, even with high speed, small size applications will always be faster than the bigger ones. For a company it is something quite important : it means less cost (communications are shorter), more efficiency (people can work disconnected and without needing to download MBs of data), more security (since many servers all around the world are like sieves), and so on.

Last but not least, most of the security part is managed from IOS server and doesn't require the knowledge needed to secure a network. That is, if your network is like the above mentioned sieves, you will have an acceptable security just properly installing the IOS server... even if I don't recommend this !

 

The end

Collaborative remote work is spreading everyday more. Many well known solutions exist but they often are quite expensive and heavy to implement. Rebol provides us with a new way to work, to think : lightweight distributed applications. The approach concerning distributed applications is not quite new, but when you add "lighweight", it is.
Products such as IOS and friends represent a really new approach. As usual, "there is more than one way to do it", but the Rebol's one is just incredible. I'm not saying that you must get rid of other languages or software. For instance I keep "loving" Perl or MySQL. But IOS is something else : used in conjunction with Rebol/Core, Rebol/View, Rebol/Command, it becomes the ultimate tool for remote collaborative work.
Of course, you are reading LinuxFocus and we usually talk about free software. However, proprietary software, when really innovative, cannot be left apart, especially when it can run under most of the available OSes.
To reject this obvious fact would look like integrism.
Furthermore, people at Rebol, are not only nice and helpful but also very open minded, what is not always true for others, including some people in the today free software community. Sorry, but it's another fact !
Suggestion : try Rebol products and like Apple says "think different". Forget what you are used to and do some testing with different Rebol software. I'm sure you won't regret the time spent. For a good start, go and visit Rebol website. Download Rebol/View and the example scripts : you will understand everything about the REBOLution.
You can also read the book "Rebol" from my fellow Olivier Auverlot from the French magazine "Login". This book was written in French, but an English translation is on its way and should be released very soon (if not already published at the time of this writing).
If you want to know more about IOS, you will find a lot of information at Rebol's website. The scenario is recommended reading since it provides an example of what a medium company can do with IOS.
Enjoy !
Aren't we really living in a great time ?



Webpages maintained by the LinuxFocus Editor team
© Georges Tarbouriech
"some rights reserved" see linuxfocus.org/license/
http://www.LinuxFocus.org
Translation information:
en --> -- : Georges Tarbouriech <georges.t/at/linuxfocus.org>

2005-01-14, generated by lfparser_pdf version 2.51