HØit Nr. 2-96
Previous article Next article TOC: Nr. 2, 1996 Previous Issue Next Issue About HØit

Java!


Jimmy Olsen og Raymond Jensen

Jimmy Olsen og Raymond Jensen har i vår semesteret 1996 gjennomført et prosjekt om Java. De har sett på Java som fenomen og hvilke muligheter som finnes med Java. Det er blitt implementert to prosjekter, ImageMap og Tabell klasser.

Av utstyr som er blitt benyttet i prosjektet finner vi Pc 486 med Windows '95 og Mac AV 7.5. Utviklingsverktøy ble hentet fra Sun microsystems Inc sin Java avdeling, JavaSoft. Java Development Kit (JDK) i versjon 1.0.2 er tilgjengelig for gratis nedlasting på http://java.sun.com/.

JDK består av klassebiblioteker, verktøy for å teste, debugge og kompilere applets og stand-alone programmer. I tillegg finnes verktøy for disassembling, dokumentering og til å kommunisere med native kode (f.eks C, C++ kode).

Dette var litt om hva som er benyttet av verktøy i prosjektet. Men hva er nå egentlig Java? Kan det brukes til noe eller er det bare for å lage pynt på Web-sider. La oss ta en titt under panseret.

Vi starter med en forklaring på hva Java er og hvorfor det ble laget. Java er utviklet i utviklingslaben hos Sun microsystems Inc. Utgangspunktet var et behov for å lage programvare som kunne kjøres på ulike typer for hardware plattformer, i første omgang var det tv-dekodere o.l som var målgruppen. Det ble bestemt at det skulle lages et nytt programmeringsspråk som hadde støtte for utvikling av sikker programvare som kunne kjøres over nettverk. Java som programmeringsspråk har mye til felles med C++ og Objekt C. Den største forskjellen mellom disse språkene er Java's sterke objektorientering.

Java's store styrke er at kode er plattform uavhengig, kode kan kjøres på flere plattformer uten å måtte rekompileres. Java bruker et kodesystem for å kode kompilert Javakode, byte-code. Byte-code blir så interpretert på klienten. Det eneste som trengs er en Java interpreter på plattformen du skal kjøre Java koden din.

Ideen om et nytt programmeringsspråk ble sådd på våren 1991, altså en god stund før internet og www ble tilgjengelig for massene. Først i 1994 ble Java som vi kjenner det i dag unnfanget. I forhold til www har Java startet en revolusjon for å flytte fokus på prosessering fra server og over til klienten. Dette er helt i tråd med Sun's visjon om at nettet er en stor datamaskin.

Helt fra starten har Java prosjektet tilpasset seg nye markeder, fra set-top-box markedet til www, og nå fra www til operativsystemet og prosessoren. Hele tiden er grunn ideen om arkitektur-uavhengighet blitt holdt i live. I forbindelse med www kan vi linke Java applets til web sider. Når web sidene blir lastet ned til klienten kommer Java appleten med på lasset og blir så kjørt (interpretert) av www browseren når den er blitt lastet ned. Java appleten bruker www browserens klientområde til å vise seg frem i.

I løpet av prosjektet er det blitt implementert to løsninger, ImageMap og Tabell. ImageMap klassens primærmål er å vise Java's fortreffelighet til å løse vanlige www behov som til nå er blitt ivaretatt av server-basert plattform-avhengig programvare. Tabell klassen er ment som et forsøk på å sette fokus på det å benytte internet som harddisk. Ønsket er å benytte internet på samme måte som harddisken i vår lokale pc. I første omgang i retning mot distribuert datafangst. Hvorfor skal data lagres i fastlagte formater når vi kan la programvare finne ut av dette på egenhånd. La Java applikasjonen søke etter datakilder på nettet og selv finne ut av hvordan data er lagret.

Hvor går veien videre for fenomenet Java? Blir Java værende i www-browseren verdenen eller kan vi forvente å finne igjen Java i operativsystemet, eller kanskje helt nede på prosessor nivået?

Hvis vi skulle laget et kart over Java slik som det fremstår i dag, ville vi fått mye uoversiktlig og kupert terreng å passere. Java er foreløpig et ganske uoversiktlig terreng å orientere seg i, men det er tegn som viser at det er en lysning i terrenget.

På utviklingssiden kan vi forvente bedre grafiske RAD (Rapid Application Development) verktøy, med større komponent utvalg enn hva vi har i JDK. Det vil blir betraktelig enklere å utvikle Java applets og applikasjoner når RAD verktøyene kommer. Det snakkes om en like stor revolusjon på utviklingssiden siden Visual basic ble lansert på Windows plattformen. På kompilator siden kommer det stadig bedre og raskere produkter.

Et stadig tilbakevendende problem er hastigheten på interpretert kode. For å lette på dette får vi "Just-In-Time" kompilatorer, som øker hastigheten på interpretert kode. Det er også snakk om "Flash-memory" kompilatorer som kompilerer koden "on-the-fly" slik at vi slipper prosessen med interpreteren. Koden kompileres idet den blir lastet ned til maskinen. Produsenten for denne kompilatoren oppgir at hastigheten vil komme ned på samme nivå som programkode laget i C++. Med en slik teknologi finnes det ingen unnskyldning for at hastigheten skal stå i veien for utvikling av større kontorstøtte applikasjoner i Java.

I disse dager er det blitt lansert et operativsystem som er utviklet i Java, JavaOS. JavaSoft har vært ansvarlig for javasoft utviklingen. Målsetningen med dette operativsystemet er at det skal benyttes på de nye nettverksmaskinene (Network Computers) som vil dukke opp utover høsten og vinteren. JavaOS har arvet egenskapene til programmeringsspråket Java med tanke på arkitektur uavhengigheten. JavaOS skal kunne kjøres på et bredt spekter av prosessor plattformer.

Java vil også bli bygd inn i eksisterende operativsystem for å gjøre det mulig for andre applikasjoner enn kun www browseren å hente ned å kjøre Java applets og applikasjoner. Det er en lang liste med produsenter av operativsystem som har annonsert at de skal bygge Java motoren inn i neste versjon av sitt operativsystem.

Nettverksmaskiner vil bli et hett tema utover høsten og vil berøre det meste av det som skjer i internet verden fremover. Vi vil se løsninger fra tilnærmet vanlige pc'er til hybride pc/tv/telefon løsninger for å kommunisere over internet. Det er allerede en del produsenter av programvare som har annonsert at de skal lage produkter for denne plattformen, blant disse kan vi nevne Corel som har planlagt en suite av applikasjoner, med hovedvekt på office produkter som tekstbehandling, regneark, database og grafikk.

Det er et område som diskuteres livligere enn andre i disse dager og det er distribuerte objekter. CORBA (Common Object Request Brokerage Architecture) som står for innføring av klient/server applikasjoner over internet er en av flere standarder. CORBA vil påvirke hvordan vi ser på applikasjoner som kjøres over internet. CORBA er en standard for definisjon av et felles grensesnitt for hvordan objekter fra forskjellige leverandører skal kunne kommunisere over ulike plattformer.

En annen standard er OLE/COM objekter fra Microsoft. I neste versjon av CORBA er lovet støtte for at CORBA baserte objekter skal kunne kommunisere med OLE/COM objekter.

Med CORBA teknologien flytter vi oss fra en desktop sentrert internet verden, hvor Java applets lastes ned til desktop for å bli kjørt der, til en desentralisert internet verden hvor vi kan dele ressurser mellom flere maskiner. Vi kan benytte objekter uansett hvor de måtte befinne seg i verden og koble våre egne objekter til disse uten å tenke på hvordan disse er implementert og på hvilken hardware som objektet kjøres på. Klient / Server vil bli stikkordet for hvordan applikasjoner på internet opererer i fremtiden.

Previous article Next article TOC: Nr. 2, 1996 Previous Issue Next Issue About HØit
HØit Nr. 2-96


Copyright: 1996, Høgskolen i Østfold. Last Update: 28.06.97, Thomas Malt.