Java-platformen for verdens computere

Det oprindelige Java-programmeringssprog er udviklet til at være en generel platform for Internet med millioner af computere. Vi beskriver RMI og Jini, der er Suns teknologier til at samle programmer i funktionelle helheder over netværk.

Java overalt

Java er Suns bud til hele computerverdenen. Hvordan vil Sun binde den globale Java-verden sammen, så det ikke kun er enkeltstående maskiner, der hver for sig kører stand-alone-programmer? Vi præsenterer her tre svar med RMI, Jini og nævner Brazil til slut.

Internet er computersystemet i verden, der er samlet af netværk og fordelt på millioner af millioner af cmptuere. Fra meget store servere til ganske små indbyggede processorer i apparater. Sun har en meget ambitiøs strategi, hvor Java skal være platformen for det hele. Med sloganet "write once - run everywhere" lover de verdens programmører, at når først programmet er skrevet i Java, så vil det kunne køre på alle computere.

Ambitionerne er store i Java-miljøet, og aktiviteterne er mange. Men problemerne er der også. I denne artikel om Java som platform, starter vi med et overblik over de elementer, der indgår i denne store vision.

  • Java er oprindelig et programmeringssprog, som vi har omtalt i artiklen: Sprog-valg: Java giver jobmuligheder i programmering.
  • Java kan integreres i dynamiske web-sider, Java Server Pages, som vi beskrev i artiklen: Hæld kaffe i webserveren: Java Server Pages.
  • Platformene J2EE, Java 2 Enterprice Edition og J2ME, omtalte vi i artiklen: Krigen om Java - XML-servere og mobiltelefoner.
  • Små softwarekomponenter findes i JavaBeans og Enterprise JavaBeans på serveren.
  • Der udvikles Java-mikroprocessorer, som kører Java som grundlæggende maskinkode

    En del af Java-teknologien fra Sun bygger på generelle softwaremodeller. Du kan for eksempel godt skrive JavaBeans i Visual Basic programmeringssproget. Nok er Java det samlende element, men insisterer du på at anvende C++, så har Sun givet plads til det i platformen. Hvordan kan Java være det samlede led i alle disse systemer?

    Run everywhere

    Java-platformen

    Java som platform er ensbetydende med, at alle computere i netværket kan køre Java-programmer. Java-programmer er den fælles platform, for du kan skrive et Java-program, som alle maskiner kan køre.

    Det kan Windows-pc'er også. Læser du denne artikel i en nyere browser, kan den køre Java-programmer. Internet explorer 5.5 har Java JIT-compiler (Just in Time compiler) indbygget, som den bruger til at køre programmerne. Java-programmer kan distribueres over Internet og køres af Windows-maskiner.

    Denne afvikling i browsere er en af metoderne, hvormed Java er blevet meget udbredt. Men denne udbredelse har også kostet meget ydelse. Java bliver afviklet af en compiler, der er indlejret i en browser, som igen kører på Windows. Windows er styresystemet, der kontrollerer hele forløbet. Alt i systemet kontrolleres af Windows, afviklingen af Java-programmer sker på styresystemets præmisser. Principielt kan det siges på den måde, at Java-programmer kan anvende de funktioner i styresystemet, som Windows stiller til rådighed.

    Men ideen i Java-platformen, som vi finder den i RMI, Remote Method Invokation, og i Jini går imod sådanne centrale styresystemer, der kontrollerer computeren og kun har en minimal kommunikation via netværk. Ideen i RMI er, at programmerne selv kan samarbejde direkte uden anden kontrol.

    RMI

    Java Remote Method Invocation - RMI

    Med Java Remote Method Invocation (RMI) kan du skrive distribuerede objekter i Java. RMI er ligesom CORBA en komponentmodel, der specificerer kommunikationen mellem programkomponenter. Vi beskrev CORBA i artiklen: Systemintegration med CORBA.

    Modsætningen til remote kommunikation mellem programmer finder vi ved produktion af små programmer, der compileres og sammenbygges i en proces med alle funktioner, objekter og klasser. Alle objekterne, som compileren skal behandle, og al interaktion med styresystemet er kendt, når det endelig program skal lænkes sammen til en helhed. I modsat fald standser compileren.

    Med RMI og CORBA får udviklerne nogle generelle modeller, hvor der anvendes programobjekter i andre systemer. Udviklerne kan anvende programobjekter på helt andre systemer, hvor de kun kender grænsefladen. RMI beskriver den model, som er påkrævet for at udviklerne kan lave programmer, som i kørselssituationen senere hen er i stand til at kommunikere sammen.

    RMI anvender Remote Procedure Call (RPC), der er en protokol, som programmer anvender til at arbejde direkte sammen. Det kan kort kaldes procedurekald eller funktionskald. Der findes flere modeller for disse kald af funktioner på tværs af programmer. I Java RMI er funktionskaldene tilpasset, så Java programmører lettere kan arbejde med det. Med Javas såkaldte native methods, JNI, kan man skrive programmer i C++ til RMI-systemer.

    RMI tilbyder udviklerne at bygge softwareobjekter med komplekse datatyper, som altså kan udveksles direkte mellem de kørende programmer.

    RMI-CORBA

    RMI overfor CORBA

    Sat i relation til Suns konflikter med Microsoft, kunne man tro, at CORBA og RMI var allierede. Det er dog en sandhed med modifikationer. CORBA er sprogneutral, hvor Sun prioriterer Java frem for andre programmeringssprog i RMI.

    Men Sun leverer en kobling til CORBA med en protokol kaldet Internet Inter-ORB Protocol, IIOP. RMI over IIOP kombinerer CORBA med RMI, således at overgangen for udviklerne mellem RMI og CORBA bliver flydende. Med IIOP er det muligt at integrere programkomponenter skrevet i C++, Smalltalk eller et andet sprog under CORBA. Disse programkomponenter kan køre og kommunikere med Java platformen.

    Udviklere, der har anvendt CORBA med andre programmeringssprog kan bruge RMI-IIOP til at koble de to komponentplatforme sammen. Sun har såvel dokumentation som compilere til dette på deres web-side.

    Der findes yderligere materiale om Java og RMI hos Sun på web-adressen. http://www.sun.com/ samt på Java-web-stedet: http://java.sun.com/.

    Jini

    Jini

    Ideen med Jini kan beskrives som plug-and-play for opkoblede netværksenheder. Computerenheder forsynes med software, der ikke fylder meget mere end en 1.44MB diskette, så der tænkes på små enheder.

    Denne ide, som også kaldes for et spontant netværkssystem betyder, at når enheder tilsluttes netværket, bliver de identificeret af netværket og tilgængelig for anvendelser. Der er ingen enheder, som kontrollerer andre enheder. Det er som at sætte en lampe til et stik i væggen, som derefter lyser. Det kræver ikke drivere og installation i elmåleren, for at få lampen til at lyse. Der er intet centralt styresystem i Jini, som først skal have identificeret enheden og kontrollere den. For så vidt kan Jini betegnes som et styresystem, der er distribueret decentralt ud i netværket. De enkelte enheder er selvstyrende, og fungere via kommunikation og ikke kontrol.

    Jini fokuserer endnu mere på netværk og kommunikation end Java-sproget og RMI. Ideen i Jini er, at det er netværket, som styrer systemet og ikke styresystemet. Jini bygger videre på RMI, der varetager kommunikationen mellem komponenterne.

    Derudover har Jini protokoller til såkaldte boot, join og discover protokoller, som gør det muligt for enhederne at melde sig ind på netværket. Endvidere har Jini funktioner til at håndtere fejl.

    Da Jini blev kendt i 1999, blev det modtaget som en god og meget lovende ide. Der findes i dag produkter og anvendelser, men den praktiske succes er til at overse indtil videre. I diskussionen af Jini nævnes trådløse anvendelser, hvor små enheder kan melde sig ind på det trådløse netværk. Men hvis industrien og brugerne er tilfredse med web-baserede løsninger som WAP og i-Mode, hvad skal de så med Jini? Jini bliver da nævnt ved de helt små enheder, som kobles sammen med Bluetooth.

    Softwaredesigneren Dave Sag har februar 2001 publiseret en artikel på O'Reilly's web-sted for java ON Java: http://www.onjava.com/, hvor han beskriver Jini-tilhængeres kritik af XML som et "Microsoft-plot". I sin artikel argumenterer han for, at Jini-folkene istedet skulle samarbejdede med XML, så ville Jini stå mere centralt som simpel og ideal ide.

    Sun har dokumentation samt udviklingsværktøjer til Jini liggende på adressen: http://www.sun.com/jini/.

    Brazil

    Brazil

    Sun har yderligere en platform på vej, der kaldes Brazil. Også her er det målet, at programmerne skal køre på tværs af platforme som genbrugelige softwarekomponenter, der afvikles og fungerer over netværk. I forhold til det ovenstående er Brazil web-baseret og koblet til XML-sproget.

    ZDnet bemærker, at med Brazil lægger Sun kursen mod to protokoller, som andre softwarefirmaer anvender. Det gælder IBM og Microsoft, hvor sidstnævnte bygger .Net på samme ide. De to protokoller er SOAP (Simple Object Access Protocol), som er web-baseret og anvender XML, samt UDDI (Universal Description, Discovery and Integration), der bygger ovenpå SOAP for at lave en informationstjeneste, der kan minde om en telefonbog.

    Vi omtalte Brazil kort i artiklen: Sun lancerer konkurrent til .NET. Flere oplysninger fra Sun findes på web-adressen: http://www.sun.com/research/brazil/.

  • Læses lige nu
      Computerworld Events

      Vi samler hvert år mere end 6.000 deltagere på mere end 70 events for it-professionelle.

      Ekspertindsigt – Lyt til førende specialister og virksomheder, der deler viden om den nyeste teknologi og de bedste løsninger.
      Netværk – Mød beslutningstagere, kolleger og samarbejdspartnere på tværs af brancher.
      Praktisk viden – Få konkrete cases, værktøjer og inspiration, som du kan tage direkte med hjem i organisationen.
      Aktuelle tendenser – Bliv opdateret på de vigtigste dagsordener inden for cloud, sikkerhed, data, AI og digital forretning.

      It-løsninger | Nordhavn

      SAP Excellence Day 2026

      Få konkrete erfaringer med S/4HANA, automatisering og AI i praksis. Hør hvordan danske virksomheder realiserer gevinster og etablerer effektive SAP-løsninger. Vælg fysisk deltagelse hos SAP eller deltag digitalt.

      Infrastruktur | København

      Datacenterstrategi 2026

      Denne konference bidrager med viden om, hvordan du balancerer cloud, on-premise og hybrid infrastruktur med fokus på kontrol, compliance og forretning.

      Sikkerhed | Aarhus C

      Identity Festival 2026 - Aarhus

      Er du klar til en dag, der udfordrer din forståelse af, hvad Identity & Access Management kan gøre for din organisation? En dag fyldt med indsigt, inspiration og løsninger, der sætter kursen for, hvordan vi arbejder med IAM i de kommende år.

      Se alle vores events inden for it

      Navnenyt fra it-Danmark

      Idura har pr. 1. januar 2026 ansat Martin Ingolf Broberg, 43 år,  som webmaster. Han skal især beskæftige sig med at få idura.eu til at spille på alle digitale tangenter og sikre, at siden genererer nye leads. Han kommer fra en stilling som team lead hos Danmarks Radio. Han har tidligere beskæftiget sig med blandt andet at stifte og lede et analyseteam i DR med fokus på web og lyd. Nyt job
      Forte Advice har pr. 19. januar 2026 ansat Karoline Lotz Jonassen som Head of Business Design. Karoline skal især beskæftige sig med business design, og hvordan kunder strategisk innoverer eller arbejder med nye forretningsområder. Karoline kommer fra en stilling som Future Commerce Lead hos IMPACT Commerce. Nyt job

      Karoline Lotz Jonassen

      Forte Advice