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/.




  • Brancheguiden
    Brancheguide logo
    Opdateres dagligt:
    Den største og
    mest komplette
    oversigt
    over danske
    it-virksomheder
    Hvad kan de? Hvor store er de? Hvor bor de?
    TIETOEVRY DENMARK A/S
    Udvikler, sælger og implementerer software til ESDH, CRM og portaler. Fokus på detailhandel, bygge- og anlæg, energi og finans.

    Nøgletal og mere info om virksomheden
    Skal din virksomhed med i Guiden? Klik her

    Kommende events
    Bliv klar til AI Act: Det vil påvirke både din udvikling, drift og organisation

    Fordelene ved at anvende kunstig intelligens bliver stadig mere udtalte, og både som virksomhed og myndighed er det i stigende grad uholdbart ikke at udforske mulighederne. Men der er også risici forbundet på den nye teknologi, og på dette formiddagsseminar ser vi på, hvordan verdens første regulatoriske kompleks – EUs kommende AI Act – adresserer behovet for en etisk, ansvarlig og kontrolleret anvendelse af AI.

    20. august 2024 | Læs mere


    Det Digitale Produktpas

    Kom med og hør om, hvordan du kommer i gang med at sikre din virksomhed er klar til Det Digitale Produktpas. Vi sætter fokus på, hvordan du bliver klædt på til at få styr og struktur på dine data, samt hvilke krav du skal sætte til dine leverandører og andre i din værdikæde, for at sikre den nødvendige information er tilgængelig.

    21. august 2024 | Læs mere


    Cyber Security Summit 2024

    På Cyber Security Summit får du indsigt i det aktuelle trusselslandskab, overblikket over de nyeste værktøjer og trends indenfor sikkerhedsløsninger, indsigt i de relevante rammeværktøjer og krav samt de bedste løsninger og værktøjer til at sikre effektiv drift og høj compliance.

    27. august 2024 | Læs mere