IOS, alweer een REBOLutie

ArticleCategory:

Applications

AuthorImage:

Georges Tarbouriech

TranslationInfo:[Author and translation history]

original in en Georges Tarbouriech 

en to nl Floris Lambrechts 

AboutTheAuthor

Georges is al jaren Unix-gebruiker. Hij heeft een zwak voor die echt innovatieve producten die onze manier van werken helemaal kunnen veranderen.

Abstract:

IOS staat voor Internet Operating System. Het is een commercieel product, bedoeld om samenwerking op afstand makkelijker te maken. Rebol is het bedrijf achter deze ongelofelijke software. LinuxFocus kreeg de kans om een evaluatie-versie gedurende 30 dagen te testen. Dit artikel is het verslag van deze REBOLutie.

ArticleIllustration:

IOS

ArticleBody:[The article body]

Het idee

Eén van de vele dingen die REBOL speciaal maken, is de extreem kleine grootte van de toepassingen die je ermee kan maken. Je kunt een kijkje nemen in dit eerdere artikel om een idee te krijgen van het gebruiksgemak waarmee je toepassingen kan maken voor 40 verschillende platformen. Rebol/View, bijvoorbeeld, is 587 kB en het bevat bijna alles wat je nodig hebt. Het is gratis te downloaden vanop de Rebol website. Er zijn ook meer dan 300 voorbeeld-scripts waarvan je veel (alles?) kan leren.
Met geen enkele andere taal kan je je programma's zo klein maken. IOS is ontstaan vanuit dezelfde filosofie. Meer bepaald, een dedicated (toegewijde, gespecialiseerde) server levert alles wat je nodig hebt, en als client krijg je gedistribueerde toepassingen op een zeer lichte desktop, die draait op ongeveer 25 verschillende besturingssystemen. En natuurlijk kan je naar behoefte je eigen programma's schrijven. Hiernaast kan IOS nog veel meer, dit is slecht een zeer kort overzicht.

De feiten

Veel jonge (en oudere) lezers zullen zich afvragen: waar heeft hij het over? De grootte maakt toch niks meer uit tegenwoordig? Vandaag de dag hebben we schijven van 20 of 40 GB, enorm veel RAM, "flitsende" processoren, waarom moet alles dan zo klein blijven? Het heersende gevoel is: komaan, oude man, de wereld is veranderd! Volkomen mee eens... MAAR, wat dan met het Internet?
Je hebt waarschijnlijk al gemerkt dat het Internet steeds populairder wordt. Er wordt gesurft en gemaild dat het een lieve lust is, en al die dingen kosten bandbreedte. Het gevolg is dat zelfs met kabel- en DSL verbindingen, het Internet steeds trager wordt.
Ik weet het wel, niemand trekt zich er iets van aan! Wie doet nog de "moeite" om tekst of HTML te versturen in plaats van die @#%*$ Word of Excel documenten, of wie let erop om JPEG afbeeldingen op te sturen in plaats van BMP's? Het zijn er weinig! Praten we niet constant over websites die dingen "aanbieden" als geluid, video, grote afbeeldingen, enz. Als gevolg daarvan wordt werken op afstand elke dag moeilijker.
Nochtans werken steeds meer mensen vanop afstand. Grote multinationale bedrijven, wereld-organisaties, enzoverder, en laten we vooral de vrije software gemeenschap niet vergeten (voor software ontwikkeling, documentatie en dergelijke). Ik bedoel, al die mensen werken op verschillende plaatsen en moeten met elkaar communiceren, bij voorkeur in real-time. En het gebeurt al... ook zonder Rebol. Dus, nogmaals, waarom?

De REBOLutie

Om op afstand te werken gebruik je vandaag de dag de gekende tools: 50 MB browsers, 20 MB mailprogramma's, 10 MB conferentie-software, 10 MB messenger software, 1 GB grote databanken... om data te versturen in verschillende formaten. Meestal veel te grote formaten (zie hoger!). Wat is er dan nieuw aan Rebol? Niks! Mijn vrienden zeiden: met de messenger kun je boodschappen versturen, de mailer stuur mail, de taakbeheerder beheert de taken...
En weeral, ze hebben gelijk! Het verschil is dat de mailer 2915 bytes groot is (geen typfout!), de messenger is 14,5 kB, de 'who' is 7372 bytes, het conferentie-pakket is 14,41 kB, en zo voort! Al deze programma's zijn beschikbaar op je desktop door een programma van 610 kB dat verbinding legt met de server. Dit is de grootte van de Linux client; op andere platformen (25 op dit moment) verschilt het niet veel.
En zo ziet het eruit:

desk


Om het volledige concept te begrijpen, moet je goed onthouden dat REBOL eigenlijk een heel gamma producent heeft, waarmee je zeer verschillende dingen kan doen. We hebben eerder al Rebol/View vermeld (gratis, of zeer goedkoop voor de uitgebreidere versie), maar er is ook nog Rebol/Core (gratis) en Rebol/Command (commercieel, dus niet gratis) wat bedoeld is om te gebruiken in combinatie met een RDBMS (Relational Database Management System) of bijvoorbeeld om cgi scripts te maken. En natuurlijk kun je al die producten ook binnen het IOS gebruiken. Ze vormen een zeer nuttige "gereedschapskist": een fantastische programmeer- en messaging-taal, de mogelijkheid om je programma's (reblets genoemd) te laten communiceren met bestaande databanken of web servers of wat dan ook, enzoverder. Zoals in het vorige artikel al werd gezegd: de enige beperking is die van je eigen verbeelding. Een voorbeeld kan misschien nog wat meer helderheid brengen.

De test

Rebol was zo vriendelijk ons op aanvraag een evaluatieversie van IOS te geven. Vervolgens kregen we 3 client-accounts op de server van Rebol. Uiteraard konden we de server zelf niet testen; later meer daarover. Omdat we van LinuxFocus zijn, gebruikten we de Linux client.
Het enige dat we moesten doen, was een klein uitvoerbaar bestand downloaden en het draaien (ja, ik haat executables, maar in dit geval - laten we gewoon zeggen dat ik Rebol wel vertrouw). Dit installeert de client op je computer; het duurt minder dan een minuut!
Als bijvoorbeeld Rebol/View al geïnstalleerd is, hoef je de client zelfs niet meer configureren - al de informatie is al beschikbaar. Dat is meerbepaald het email adres, de adressen van de pop en smtp servers... Als laatste stap moet je nog de gebruikersnaam en wachtwoord geven die je van Rebol hebt gekregen. Dat is alles: we zijn klaar!
Je kan alle toepassingen op de desktop gebruiken: de messenger, de mail, de conferentie-software, enz. Merk trouwens op dat er regelmatig nieuwe reblets bijkomen. Kleine handigheidjes zitten er ook in, zoals een rekenmachine, een clipboard, een info-paneel, etc. Hier zie je ze:

deskutil


Met de verschillende knoppen op de desktop kun je alles bereiken, bijvoorbeeld alle toepassingen en de documentatie. Vooral de knop 'users' is handig, omdat je daar je eigen map(pen) in kan maken. Je kan opgeven welke gebruikers hier toegang tot hebben, je moet enkel hun naam typen in de juiste velden. En verder schrijf je in deze map alles wat je wilt. Dat kunnen programma's zijn, foto's, documenten... Eigenlijk kan je deze map zien als een "wereldwijd" NFS (Network File System)... maar dan zonder veiligheidsgaten! Beter gezegd, de gebruiker kan enkel lezen en schrijven volgens de permissies die jij gegeven hebt. Natuurlijk is alles tegelijkertijd ook beschikbaar op je harde schijf. Je kan het dus ook offline gebruiken.
Wat zat er nu bij ons in?
Een kleine toepassing waarmee je het laatste nummer van LinuxFocus kunt bereiken, analoog aan wat je in het eerdere artikel kon lezen, behalve dat het leidt naar een ander nummer van LF. Waarom heb ik net hetzelfde programma gemaakt? Wel, de syntax is lichtjes veranderd tegenover vorige keer. Hier is de nieuwe broncode.

Hoe ziet het eruit?

lfissue


Dit programma is maar 2182 bytes groot, maar eigenlijk bevat het enkel tekst, knoppen, URLs en een achtergrond... en niet veel code. Niet echt indrukwekkend dus.
We proberen iets beter.
Ook deze keer nemen we LF als voorbeeld. Zoals altijd maken we een eenvoudige databank aan. Die moet de gebruikers, als ze daar de toestemming voor hebben, toelaten om gegevens te bekijken, in te voegen en te verwijderen. Omdat het een eenvoudig voorbeeld is laten we de moeilijke dingen weg, zoals zoekopdrachten, en kun je ook telkens maar één selectie maken. Alle gegevens zitten in een bestand genaamd articles.r .
Het programma zelf heet lfdb.r en "weegt" slechts 5983 bytes !
Het is een beetje gebaseerd op rebodex.r van Carl Sassenrath (de stichter van Rebol), dat één van de voorbeeld-scripts is die we eerder al besproken.
Hier is de broncode

En hier is hoe het werkt:

deskdb


Zoals je ziet is er niet veel speciaals aan, maar het werkt en het is zeer klein. Dat betekent dat je er vanop afstand snel mee kunt werken, ongeacht wat voor een verbinding je hebt.
Met andere woorden, met IOS en Rebol kun je op korte tijd dingen maken die gebruikt kunnen worden door mensen aan de andere kant van de aardbol alsof ze in het kantoor zelf aanwezig zijn. En je kunt nog steeds verderwerken als je offline gaat doordat alles op je harde schijf staat.
Uiteraard is dit een eenvoudig voorbeeld, maar nogmaals, je kan met IOS alles maken wat je maar kunt bedenken. Je kunt bijvoorbeeld via Rebol/Command een RDBMS server gebruiken.
Dit is slechts één manier om IOS te gebruiken, er zijn er nog andere ook. Stel je voor wat een geavanceerde toepassingen je kunt maken met IOS...
En nu over naar het belangrijkste aspect: hoe zit het met de veiligheid?

De veiligheid

Wanneer het over Intenet-communicatie gaat, is het veiligheidsrisico per definitie zeer groot. Hoe gaat Rebol daarmee om?
Zoals gewoonlijk houden ze de zaken simpel, gemakkelijk en betrouwbaar.

De server

Zoals eerder gezegd konden we de IOS server niet testen. Maar er is wel een 'admin guide' beschikbaar in de IOS desktop documentatie. En verder zijn de mensen van Rebol zo vriendelijk om alle vragen te beantwoorden (wat vrij zeldzaam is, daarom vermelden we het even). Ze antwoorden zelfs in real time via de IOS messenger, niet slecht... (trouwens, wanneer slapen die mensen eigenlijk? Het tijdsverschil tussen mij en hen is 9 uur! )
De server, om te beginnen, draait op veel systemen. De meeste Unix- of Windos servers zijn geschikt. De server is verantwoordelijk voor de veiligheid van het IOS-systeem en integreert zich zonder aanpassingen in je bestaande netwerk. Laten we hopen dat je netwerk reeds is uitgerust met een firewall, proxy, NIDS (Network Intrusion Detection System), tunneling, enz.
IOS gebruikt HTTP-tunnels en draait dus bovenop de webserver. Die webserver wordt gebruikt als een gateway om verbinding te leggen met de IOS server. Een cgi programma speelt voor proxy en stuurt de data door van de webserver naar de IOS server. Alle communicatie wordt versleuteld en de data wordt opgeslagen door de IOS server. Nog een ander proces synchroniseert de gegevens tussen de server en de client. Dus: nieuwe data wordt automatisch op je harde schijf geplaatst.
Als je al een werkende webserver hebēt, duurt de installatie van de IOS server maar 5 minuten.
Dit is natuurlijk een korte uitleg, maar je ziet wel in dat ook hier de Rebol filosofie toegepast wordt. En daar komt nog bij dat er speciale reblets zijn die de administratie nog makkelijker maken.

De client

We hebben het al gehad over de eenvoudige installatie van de client. Daar is niet veel aan toe te voegen, per slot van rekening duurt het maar een minuutje.
De client maakt verbinding met de server via unieke sessie-sleutels, zodat de authenticiteit gegarandeerd blijft. Bovendien wordt alle netwerkverkeer ook nog eens versleuteld. De verbindingen kunnen worden beperkt tot een bepaald IP adres en zelfs bepaalde poorten (ingaand en uitgaand). Voor de rest lijkt het meer op een een peer-to-peer verbinding.
De permissies van de de bestanden en directories zijn heel eenvoudig in te stellen. De toegang blijft beperkt tot een bepaald gebied; een gebruiker kan standaard enkel zijn eigen bestanden zien. En zoverder.
Over de veiligheid valt zoveel te vertellen dat we er een paar artikelen mee kunnen vullen.
Om het kort te houden: het zit goed in mekaar. Ik heb de gegevensoverdracht getest met tcpdump en ik zag enkel de verbinding zelf. Ik heb de server gescand met nmap en kreeg geen enkel antwoord. Dit betekent evenwel niet dat er geen veiligheidsgaten kunnen zijn - de beveiliging kan nooit 100% zijn - maar we zien wel dat Rebol mooi werk heeft geleverd.

Het "commerciële" gedeelte

OK, Rebol verkoopt hun software voor geld. Uiteraard, ze moeten namelijk een inkomen verdienen, zelfs al krijg je veel dingen gratis. Bij IOS ligt het anders; ze verkopen een heel gamma IOS producten.
IOS Express is voor grote/middelgrote ondernemingen.
IOS Lite is voor kleine bedrijven.
IOS Host wordt door Rebol gehostē op hun servers.
IOS Alliance is een ondersteuningsprogramma voor commerciële ontwikkelaars.
Uiteraard hangt de prijs af van de formule die je kiest. De instap-prijs is $2000 voor de server en 10 clients. Bijkomende clients kosten $100 per stuk. Voor grote klanten kunnen er kortingen worden bekomen.
Dit is zuiver ter informatie en kan op elk moment veranderen, in overeenstemming met het aantal toepassingen beschikbaar voor IOS.

Back to the future

Terug naar de toekomst.
IOS is zijn tijd zo ver vooruit, en tegelijk zo eenvoudig... het wordt moeilijk om al de voordelen op te noemen. Mensen die de producten van vandaag gebruiken zien niet in dat het eigenlijk niet de meest geschikte dingen zijn. Ofwel zitten ze eraan vast, ofwel zijn ze niet nieuwsgierig genoeg om nieuwe dingen te proberen. Soms hebben ze zelfs geen vrije keus. Producten zoals IOS zijn een echte revolutie vergeleken met de toepassingen van vandaag. Voor dit prachtig stukje software heeft Rebol geen enkele concurrentie. Het probleem van je tijd ver vooruit zijn is echter, dat de concurrentie veel te snel kan profiteren van je werk. De computerwereld kent duizenden van zulke voorbeelden.
We zullen, zoals gewoonlijk, even off-topic gaan.
Rebol's stichter, Carl Sassenrath, werkte vroeger voor Commodore, een grote computermaker, voor hen die hen niet gekend hebben. Eén van hun producten was de Amiga computer. Het Amiga besturingssysteem (Amiga OS) was één van de modernste van die tijd: de eerste computer met multitasking, de eerste multimedia computer, de eerste die meerdere chips tegelijk kon gebruiken, etc. Commodore heeft er weinig voordeel uit kunnen halen. Het duurde jaren voor de concurrentie op hetzelfde niveau was, maar die "anderen" slaagden er wél (beter) in om hun producten - soms met dwang - aan de man te brengen.
Carl was een van de mensen achter dit prachtige Amiga OS.

Later werkte hij, nog steeds voor Commodore, aan de CDTV, min of meer de vader van de set-top boxes van vandaag. En ook hier weer slaagde Commodore er niet in om het te verkopen. Nochtans, een paar maanden later kwam een concurrent met een vergelijkbaar product... en kende er veel succes mee. Om maar duidelijk te maken dat Carl altijd een stapje vóór was, maar misschien net iets te ver. Wat een voordeel had moeten zijn, werd een soort nadeel. Later profiteerden anderen van zijn werk.

Een ander voorbeeld zou NeXT kunnen zijn, en hun besturingssysteem, NeXTSTEP. Meer dan tien jaar na datum ontdekken mensen MacOS X, dikwijls zonder te weten dat het al een oud systeem is... namelijk NeXTSTEP. Hier liggen de zaken wel anders, omdat voor beide systemen wel dezelfde man verantwoordelijk is.
Maar toch blijkt dat ver vooruit zijn slecht kan aflopen. De volgende zin vat het mooi samen: "we doen niet aan plagiaat, we proberen gewoon om niet dezelfde fouten te maken als zij die ermee begonnen zijn" (de echte is misschien wel een beetje anders). Twee keer raden wie dit gezegd heeft! Enig idee?

Deze analyse leidt ons tot de volgende vraag: zal het werk van Carl en zijn vrienden ooit van nut zijn voor andere mensen? Wel, op dit moment snappen veel mensen nog niet hoe geavanceerd IOS en Rebol eigenlijk zijn. Maar het zou wel bepaalde mensen op ideeën kunnen brengen. Maar wat ze niet zullen kunnen overnemen, is de grootte van de toepassingen en de taal om ze te maken. Daar ik niet geloof dat de snelheid van het Internet op korte termijn zal verbeteren, denk ik dat Rebol de enige is die het probleem echt begrijpt. Ik weet wel dat het Internet heel snel kan zijn, maar wanneer zal die snelheid echt voor iedereen beschikbaar zijn? En dan hebben we het nog niet over de kosten.
Natuurlijk zijn kabel- en DSL-verbindingen een hele verbetering tegenover de telefoonlijn en ISDN (meestal tenminste). Toch zullen de kleine toepassingen altijd het snelste blijven, zelfs met een goede verbinding. En dat is voor bedrijven heel belangrijk: het betekent lagere kosten (minder communicatie), meer efficiëntie (collega's kunnen offline werken en hoeven geen megabytes te downloaden), meer veiligheid (veel servers zijn gewoonweg zeven), en zoverder.

En laten we ook niet vergeten dat de veiligheid geregeld wordt vanaf de IOS server; je hoeft dus zelf niets af te weten van netwerkbeveiliging. Dus, als jouw netwerk ook een zeef is, kun je toch nog een redelijke veiligheid bereiken door de IOS server degelijk te installeren... alhoewel ik deze situatie niet kan aanraden!

Het einde

Samenwerken op afstand wordt meer en meer de standaard. Er bestaan veel beproefde oplossingen maar dikwijls zijn ze duur en zwaar om te gebruiken. Rebol geeft ons een nieuwe manier om te werken en te denken: enorm lichte, gedistribueerde toepassingen. De nadruk op gedistribueerde toepassingen is niet nieuw, maar wel de combinatie met 'lichtgewicht'.
Producten zoals IOS volgen een heel nieuwe aanpak. Zoals gewoonlijk is er "more than one way to do it", maar de Rebol manier is echt ongelofelijk. Ik zeg niet dat je andere talen en oplossingen maar meteen moet dumpen; ik hou bijvoorbeeld nog altijd evenveel van Perl en MySQL. Maar Rebol is anders: in combinatie met Rebol/Core, Rebol/View en Rebol/Command, wordt het het ideale gereedschap voor samenwerking op afstand.
Natuurlijk lees je op dit moment LinuxFocus, en wij hebben de gewoonte om het vaak te hebben over vrije software. Toch mogen we de niet-vrije software, wanneer ze echt vernieuwend is, niet buitensluiten, zeker niet wanneer ze op zoveel verschillende platformen draait.
Ontwikkelingen als deze negeren zou zeer ongepast zijn.
Verder zijn de mensen van Rebol niet alleen vriendelijk en behulpzaam, maar ook heel open-minded, wat niet altijd het geval is, ook niet in de vrije software gemeenschap. Sorry, maar ook dat is een feit!
Suggestie: test de Rebol producten en, zoals Apple zegt, "think different". Vergeet je oude gewoontes en probeer wat Rebol software uit. Ik ben er zeker van dat je er geen spijt van zult hebben. Voor een goede start, bezoek de Rebol website. Download Rebol/View en de voorbeeldscripts, en je zult de REBOLutie begrijpen.
Je kan ook het boek "Rebol" lezen, van mijn maat Olivier Auverlot van het Franse magazine "Login". Het is een Frans boek, maar een Engelse vertaling is onderweg en zou zeer binnenkort moeten verschijnen (als het al niet verschenen is op het moment van publicatie).
Meer informatie over IOS kun je vinden op de Rebol website. Het scenario is aanbevolen lectuur omdat het een voorbeeld is van wat een middelgroot bedrijf aan kan vangen met IOS.
Veel plezier!
Leven we niet in een geweldige tijd?