Gedistribueerd

maandag, 11 oktober 2004
De Java EJB architectuur is me onnodig complex.

Ballast

Het uitgangspunt dat processing gedistribueerd moet kunnen zijn maakt Java nodeloos complex:

Waarom zijn EJB's zo'n succes?

Alternatief

Het kan eenvoudiger. Het moet simpeler.

Niet vanwege de wedijver om het grootste systeem, maar om de mobiliteit. Internet wordt mobiel. Distributed processing heeft de toekomst. PDA's en telefoons krijgen steeds meer functionaliteit, veel verschillende platforms, perfect voor Java.

Java moet eenvoudiger worden om een grote groep software ontwikkelaars te kunnen blijven aanspreken.

    Nieuwe uitgangspunten:
  1. Elk object draait maar op één machine. Objecten op verschillende machines kennen elkaar nooit.
  2. Een object kan wel een bericht sturen naar een andere machine, maar nooit specifiek aan één object gericht, altijd in de vorm van primitieve data, nooit objecten.
  3. Het is wel mogelijk om class definities te downloaden van andere machines. Die class definities staan het liefst maar op één locatie om het software beheer eenvoudig te houden.

Eenvoud

De uitgangspunten leiden tot een verbazingwekkende eenvoud, zonder verlies van functionaliteit of technische mogelijkheden.

Praktijkvoorbeeld

Onlangs heeft SUMit een geavanceerde routeplanningsapplicatie gebouwd in Java.
Voorbeeld Client Server Webserver

Routeplanning in Java
1. De client vraagt de server om adres informatie 2. De server stuurt de adres info van class files van bulk input parameters.  
3. De client laadt de nodige class files van de webserver.   4. De webserver verzorgt file accessen voor de .class files
5. De client verzoekt de server om de bulk input, ruwe data voor de routeplanning. 6. De server haalt ruwe data op stuurt deze in een afgesproken formaat.  
7. De client maakt objecten aan. Die client objecten voeren een complex routeplanning algoritme uit.    
8. De client stuurt de gegenereerde routes naar de server. 9. De server slaat de route op.  
In dit voorbeeld is de client een Java applet die de Java class files van een webserver downloadt. De server side code is in PHP geprogrammeerd, prettig transparant voor de Java client.

Tot de volgende noot,
Henk Jan Nootenboom