12
2 Java als Sprac he und Plattform Die Programmi ers prache Ja va zeich net sich nic ht nu r d urch ihre k lare objektorien - tie rte St rukt ur a us , sonde rn au ch durch die Plattfo rmun abhängigkeit de r in ihr gc- sehrtebenen Programme: Java-Programme laufen "überall", d.h. unabhä ngig von Be- triebssystem und Pro ze sso r de s Re ch ne rs, auf dem sie ausgeführt werde n sollen. voraussetzeng dafür ist die spezielle Architektur der j uva-La uf zenumgcbung. ln de- r en Z ent rum steht die fara Virflwl Machtue (jV!\D. 2.1 Entwicklung der P rog rammiersprach en Computer und Pr ogrammiersprachen wurden ersonnen, um Aufgaben zu bewäht- gen, die die menschliche Leistungsfähigkeit überfordern. Der M ensch entwickelt Al- gorithmen, j edoch Ill USS die pr aktische zei traubend e Dur chfüh rung meist de m Co m- pur er überlassen we rden . Dabei lassen sieh dre iDomä nen ausmachen, in denen der Computer seine überragende Ges chw indigk eit aussp ielen kann: Re chenin tensive Aufgabenstell u ngen vo r allem im Bereich der technisch- wissenschaftlichen Datcnvcrurbclrung. ßcarbctrung sehr gr oßer Datenmengen. vor allem im Bereich der betriebe- wirtschaftlichen Datenverarbeitung. Es entstehen große Darenbesräncte, in de nen man auch rasch und gezielt auf Informationen zugreif en möchte. R asche Kommunikat ion u nd Vcrsand v on Daten über gr e Entf ern ungen via Int ernet. Involviert sind individuelle Nutzer, die mittels Einz elp latz-PC und tnrcr netbrowscr oder auch Small Dcviccs ( Handy. Smartpho ncj auf webs-rver zu grei f en , um vcrsducdcns re Dat en und Dienste über IITML -St- ' iten abz ufragen. Dabe i ist es Aufgabe der auf dem webserve r laufenden Programme, Daten (meist durch Zugriff auf Daten banken) 7.ll beschaffen, aufzubereiten und an den anfragenden Nutzer zu send en. Durch Computer werd en gr e Datenmengen mittels komplexer Algorithm en bea r- beire t. Die e ntspre che nde n Progr amme sind nicht nur umfa ngreich, sondern auch komp lex , d.h. in Ablauf und Wirkung nicht leicht du rchschaubar. Letztlich werden Programme durch Prozessore n ausgefüh rt. Diese verfügen nur über einen fest definierten Satz el eme ntarer Anweisungen, so dass jedes Programm bei seiner Ausführung in eine Menge solcher Hemenrarbefehle übertrugen ( übe rsetzt) werden muss. Ihbei h:lIlde!t es sich um sogen:m nte Maschinensprache: Unter Masc hine nsprache versteht man elementare Anwe isunge n, die ein bestimmter Prozessor direkt ausführen kann. Die Anweisungen werde n bili är ts xtten, d.h. als Folge von Nullen und Einsen - und sind für Menschen prak- tisch unverständlich. Maschine ncode für einen bestimmten Prozessor ist in der Regel nicht au f a nderen Prozessoren ausführbar, d.h. planforms pez if isch . Bei

Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

2 Java als Sprache und Plattform

Die Programmiersprache Ja va zeichnet sich nic ht nu r d urch ihre klare objektorien­tie rte Struktur a us , sondern auch durc h die Plattfo rmunabhängigkeit der in ihr gc ­sehrtebenen Programme: Java-Programme laufen "überall", d.h. unabhä ngig von Be­triebssystem und Prozesso r de s Rech ne rs, auf de m sie ausgeführt werden sollen.voraussetze ng dafür ist d ie spezielle Arch itektur der j uva-La ufzenumgcbung. ln de­ren Zentrum steht die fara Virflwl Machtue (jV!\D.

2.1 Entwicklung der ProgrammiersprachenComputer un d Programmiersprach en wurden erso nne n, um Aufgaben zu bewäht­gen, die die menschliche Leistungsfähigkeit überfordern. Der Mensch entwickelt Al­gorithmen, jedoch IllUSS die praktische zeitraubende Durchfüh rung meist de m Co m­purer üb erlassen werden. Dabei lassen sieh drei Domä nen ausmache n, in de ne n derComputer seine üb erragende Geschwindigk eit ausspielen kann:

• Rechenintensive Aufgabenstell u ngen vo r allem im Bereich der technisch­wissenschaftlichen Datc nvcrurbclrung.

• ßcarbctrung seh r großer Datenmenge n . vo r allem im Bere ich der betriebe­wirtschaftlichen Datenverarbeitung. Es entstehe n große Darenb esräncte, in denenman au ch rasch un d gezielt auf Info rmationen zugreifen möc hte.

• Rasche Kommunikation und Vcrsand von Daten übe r große Entfernungenvia Internet. Involviert sind individuelle Nutzer, d ie mittels Einzelplatz-PC undtnrcrnetbrowscr oder auch Small Dcviccs (Handy. Smartpho nc j auf webs-rverzugrei fen, um vc rsducdcnsre Daten und Dienste über IITML-St-' iten abzufragen .Dabe i ist es Aufgabe der auf dem webserver laufenden Programm e, Daten(m eist d urch Zugri ff auf Datenbanken ) 7.ll be sch affen, au fzube reiten und an denanfragend en Nutzer zu senden.

Durch Computer werden große Daten mengen mit tels ko mplexer Algor ithmen bear­beire t. Die e ntsprechenden Programme sind nich t nur umfa ngreich, sondern au chkomplex , d .h. in Ablauf und Wirkung n icht le ich t du rchschaubar.

Letztlich werden Programme durch Pro zessoren ausgeführt. Diese ve rfügen nur übereinen fest definierten Satz elementarer Anweisungen , so dass jedes Programm beise iner Ausführung in eine Menge solcher Hemenrarbefehle übertrugen (übersetzt)werden muss . Ihbei h:lIlde!t es sich um sogen:m nte Maschinensprache :

Unter Maschinensprache versteht man e lementare Anwe isungen, die einbestimmter Pro zessor d irekt au sfü hren kan n. Die Anweisungen werden biliärtsxtten, d.h. als Folge von Nullen un d Einse n - und sind für Mensche n prak­tisch un verständlich. Maschine ncode für einen bestimmten Prozessor ist in derRegel nicht au f anderen Prozessoren ausführbar , d.h. planformspezifisch. Bei

Page 2: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

11 2 lm-a als Sprache und Plattform

der Erzeu gu ng von Maschinencode sp richt man auch von de r J:icfp!au/ormfür die der Masch ine ncode ge ne riert wird. lIöhere Programmiersprachen(wie C++ lind Ja va ) ste llen Anwe isungen zur Verfügung , die erst bei Überset­zung in Masc hmcnsprachc in eine Vielza hl elementarer Maschinenbefehleumgesetzt werden. Die Syntax dieser Hochsprachen ist tlbcrschaubnr lindleicht lesbar - und an menschliche Denkweisen angepasst.

Es war und ist das Ziel der Entwick lung vo n Comp utersprachen . dem Progra mmie rere ine Sprache an d ie Hand zu ge he n, d urch de ren Strukturen Komp lexität red uz iertode r zumindes t beherrschba rer werden so llte. Diesem Ziel folgte e ine fortschreiten­de stodutanstenmg der Prog rammiersprache n:

ln klar ge kennzeic hneten Modulen (Prog mnuubaustcincn ) so llen bcsrinuutc Datenund die für ihre Bearbeitu ng vorgesehe ne n Algorithmen (Methoden) zusammenge­fasst rgekapseln werde n. Ungeschützte sogenan nte globale Daten, au f d ie von zahl­reichen Ste llen des Prog ramms durch Algorithmen ode r Anweisungen wenverän­dernd zugegriffen wird , sollen möglichst ve rmiede n werden.

Auch die Kommunikanon zwischen den Modnk-n sollte ge rege lt sei n: j ede s Modulsoll festlegen, Welche se ine r Daten und Methoden von "außen" (durch ande re Modu­lc ) zllgreif- hzw. aufrufbar s ind - und we lche nur der mod ulinternen Verwe ndungzugänglich sind . Man sp richt vo n etngesch räntser Stcbtbartseit: Nich t vo n augcn ZLl ­

greifbare Te ilt: eines Moduls sind de m externen Zugriff entzoge n .

Ein gut lesbares, überschaubares Programm so ll s ich als eine Menge zusamme nwir­kender Module entwerfe n und implementieren lasse n . Dad urch lässt sich scho nbeim Programme nrwurf e ine ko mplexe Prob lemstellung in ein Vielza hl relativ einfa­cher Module gliede rn, durc h deren Zusamme nw irken die komplexe Aufgabe bewäl­tigl w ird - ohne dass e in unentwirrbares Geflecht von Date n, Anweisu ngen undKontrollstrukturen entsteh t.

Ziel der Enlwicklung d er Programmiersprachen ist d ie Redukt ion lindBeherrschbarken vo n Komplexität du rch strikte Modularisicrung und Kapse­lung zusammengehöriger Daten und Algo rithme n. Module enthalten Datenund die mit ihnen arbeitende n Algorithmen. Strikt zu definieren ist , au f wel ­ehe Daten und Algorithmen eines Mod uls du rch andere Module t'von aulkn")zugegriffen we rden kann.

ln Abbildung 2.1 wird d ie Struktur eines so geg liede rten Programms sc-hemat ischdargestellt. Eine Umsetzung des skizzierte n Ideals wurde erreicht in de n obickrortcn­ticrtcn Programmrcrsprachcn. In sogenan nten Klassen werden Daten und die für ih­re Bearbeitung zus tändigen Methoden zusammengefasst. Die ProgrammierspracheJava zeichnet sich dabei d urch eine besonde rs klare objek torien tierte Struktur aus.

Doch ist es nicht so , als gäbe es die beste Progranuntcrsprachc sch lechthin . JedeProg rammiersprache hat Eigenschafte n, die sie zur Lö sung bestimmter Problemequ alifizieren. Prog ram miersp rach en sind nicht einfach besser oder sch lech ter als an ­dere, sonde rn s ie müssen adäquat sein, d .h. der Bewältigung bestimmter Aufgabe nange messen. In Abbild ung 2.2 finde! sich e ine grobe Übe rsicht der Historie de r Pro­grammiersprache n . Es lassen sich ve rschiede ne Stränge au smachen , d ie verschiede -

Page 3: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

2 Iara als Sprache lind Plattform 15

nc n Programmierparadigme n e ntsp reche n. Die Sprache Java reflekti ert zahlre ich eErke nntnisse vora ngegangener objektorientierte r Vorgänger.

Daten Daten

Al gor ithmen Algori thmen

1 1TDaten Daten

Algori thmen Al gori thmen

Jlod l/ I

~lorJul :

\ lm"rpn,gr.llnrn.

KbsSL" .

Allolurit h m us :

~1<.:lh, ,,Jc ,

Funklion,

I'rozLxlur, .

Abb . 2.1: Struktur modularer Program me

2.2 Java als Sprache und PlattformWiI: aus Abbildung 2.2 zu ersehe n, wurde die Sprach e Java vo n ihrer v orgängcrinC++ insp i riert . Man bemüh te sich, d ie Komplexitä t de r Sprache C++ zu vermeiden :Dazu zählen der große, unübe rsicht liche Sprachu mfang vo n C++, die Verwendu ngex pliziter Po inter und d ie durch den Entwick ler zu handhabende Speicherverwal­rung. C++ war der se hr erfo lgreiche Versuch, d ie rein pro zedurale Sprache C um ob­jektor ientierte Eleme nte zu erweitern, so da ss in C++ e ine Mischung aus pro zedura­len und objektor ientierten Ante ilen vo rliegt; man spricht vo n eine r Hybrtdspracheode r heterogenen Sprache.

Dagege n wurde Java vo n Beg inn an objektorientiert ( ho /1/ ogell) entworfe n undzeichnet sich durch ein en sehr iibcrsichtlichc n Sprachumfang au s. Technische Dc­ta ib wie d ie Spe icherverwaltung werden dem Entwickler be wusst abgenommen Linddurch die Laufzeitumgebung selbst organisie rt. Im Vergleich zu C++ ist juva einfa­che r, klare r strukturiert, le ich ter zu erlerne n und zu beherrschen, bk-tet aber weni gertechnis che Ko ntrolle über d ie Programmausführu ng - deckt aber Bereiche ab , fürdie C++ weniger geeigne t ist. Nur be züglich der schieren Ausfüh rungsgeschwind ig­keit von Programmen hat Java ein we nig das Nachsehe n . Jedoc h ist d ie Performanz(Effizienz de r Abarbeinmg ) vo n java-Progranuucn in der Vielzahl pr aktisch relevan ­ter Hille ab solut ausre ich end. Java ist vielleicht e twas langsamer au f dem Rechner,aber schne ller und sicherer anwendbar für den Entwickler.

2,2.1 Verfügbarkeit von Java

Die Sprache java iSI ein frei verfügbares Produkt der Firma Sun. Im j ah r 1990 bc­gfnn t die Entwick lung de r Sprach e Java d urch deren "Väte r", jamcs Gosling und Billjoy. Eine de utliche Ver ände rung e rfuhr Java 199H mit dem j ava Dcvelopmcnt Kit

Page 4: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

16 2 lm-a als Sprache und Plattform

(j DK) 1.2. Die B..: zd ch nung j:lva2 ma rkiert diesen Umbruch. Ist von java die Rede ,so ist damit stets vo n javaz gemeint. Die folgenden JDK-Versio ne n verbessert en Aus­füh rungsgcschwtnd lgken un d grafische Darstel lungsmöglichkeiten.

ABAI' Objects

BCPL

Ic

Obicer PascalABAP/ 4

Java

~(;.

MaschinenspracheAsse ubk-r

I Sim 11:1 67 AI I Lo.ogo go \10

Sma ralk

___ ~r:m Cobol

L1SP ~lg~)l 60 /Basic ?~~ _

PI. 1

IPasca l

Eiffcl

Eifk'I -3Ada-9S

Miranda

lY<;U1')')2

19'":;.]19%]')",H1')(~)

1')621')(141')(,(,19<181')7 01')7219741')761'-)7H19HO19!:l1l ') HOl<)Hl19tH1<)H61')K8lY')Ol y<) 21')<)4191)(,1')') H

llUIzoaz

Abb. 2.2: His to rie der t' rogramnue rsprachcn

Einen Einschnitt marki ert da s Ja hr 2004: Mir dem JD K 1.5 wurden e inige fortgeschrit­tene Spracbkonsrru kre in die Sprache au fgen ommen . Um d ie Erweiterung der Spra­che zu be to nen, änderte Sun die exte rne Releasezählung. D;IS J DK 1.5 hat d ie offi­zielle Bezeichnun g JD K 5. Auch Änderungen an der Laufzeitumgebung Java Virtua lMachtu e ()VI\I) wurdc n vorge nommen. so dass Code, der mit dem Java L'i-Compilcrüb ersetzt wurde, mit ei ne r JV!VI 1.4 nicht mehr ausgeführt werden ka nn .

1m Laufe dc r Jahre wuchs der eigent liche Sprachkcm nur moderat. Bceindruc-ke ndist jcdoch der Umfang der zuxanuucn mit der Sprache zur Ver fügung gestelltc n Pro­granumcrblbhorhc kcn: Mit d iesen Bibliothek en hat man alles zur Hand , um auchprofessionel le Anwend ungen im Be reich Internet , Date nban ke n, verteiltc n Systemenun d Netzwe rkzugriff zu entwickeln.

Das aktuelle komplcne JDK ist fre i vo n der Hornepage der Firma Sun downloadbar[SUN061. Im Grunde lassen sich j ava- Programm e allein damit und e ine m e infache nTex ted ito r entwickeln. Allerdings bie ten erst integrierte Pnrwfcklungsumgcbun ge n( Intcgrarcd Dcvclopmcnt Environment = IDE) di.... Möglich keit, auch komplexe Java­Projekte übers ichtlich zu organisieren. Zahlreiche ausgezeichnete kostenlose profes­sionel le Umgcbungen sind verfügbar. Zu nennen sind tve üsea ns von Still selbst[SUN061 und ticttpse [ECUl61. lnstallunon un d Ko nflgurution des JDK un d Eclipsewird im Zusatzmalerial unserer \X.'eb.seite erläutert.

Page 5: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

2 Iara als Sprache lind Plattform 17

Java ist ei ne großart ige Sprache , mit der sich objektorientiertes Programmieren klarlind einfach erle rnen lässt. Die typischen ob jekto rient ierte n Strukturen von java fin­den sich auch in anderen objektorientie rten Sprachen . w er java beherrscht , der wirdsich auch rasch in verwandre Sprachen (wie C++ und CI>") ei narbeiten k önnen.

2.2.2 Warum ist Java mehr als nur eine Sprache?

Java a ls Programmiersprache

Natürlich ist Java eine echte I'rogrammt crsprachc mit folgende n Eigenschaften:

• Ein übe rschaubarer homogener Sprachumfang mit klare r Syntax.

• Ein (fast) durc hgäng ig ob jekto rientiertes Sprachdesign.

• Komplex e und schwer beherrschbare Sprachelemente (w ie in C++) w urden vonvornhe rei n nicht in die Sprache aufgeno mmen.

• Die Speiebe rverwaltung muss nicht vom Entwickler programmiert werden, son-dern wird weitgehend vom java-Laufzclrsysrem gele istet.

• Eine der besten Sprach en für internetbasie rte Anwendungen.

Java Klassenbibliotheke n

Darüber hinaus jedoch wird mit der re inen Sprache Java auch e ine Menge fertigerKlassenbibliotheken als Tei l des JDK ausgeliefert, de ren Fun ktion alitdr sich in se ihstgesc hr iebenen java-Progr.unmen nutzen lässt. Diese Klassen-! 'a k le könne n (wie Ja ­va-Programme üb er ha upt) plauformübergreffend verwe ndet werden.

Java-Editionen

Die viclfälngen Einsatz möglichkeiten von Java spiegeln sich in versch iedene n faro­Ed itione n. Jede der Ed itionen hat e inen and eren Anwe ndungsfokus.

1. Die J ava Stan da rd Edition (javaSE ) dient der Entwicklung eigenständiger Java ­Applikationen, die typischerweise auf e inem gewöhnliche n pe zur Anwendungko mmen. Die SE ist im JDK der Firma Sun enthalten : das JDK enthält a lles wa s manbe n ötigt , um Java-Programme zu entwickeln, ablauffähig zu machen und ausz ufüh­ren. Dazu ge hö rt u.a . e in Compiler , d ie Java Virtual Machinc un d umfangreicheKlassenbibliotheken. \X'ir vc rv....ende...n da s JDK. Auf der Sun-Webst... itewww.java.sun .com find et sich nicht nur das JDK zum Download . sondern auch dieblose Laufze trumgebung. die J avaS E Runtime Env iro nment URE). Dari n ist einekomplette JV.\! ( inklusive JavaSE-Klassenbibliothek en l entha lte n, um fertige j ava­Applikationen ablau fe n zu lassen , jedoch kein e Entw icklungswerkzeuge zum Ko m­pilie ren von Ja va- Prog rammen .

2. Die J ava Micro Ed it io n (javaME l stellt e ine stark red uzierte, teilw eise aberdurch besond ere Pakete e rgänzte Variante der Standard-Edit ion dar un d dient de rProgrammierun g mobiler Konununikationsnuttc l (Handy ctc.) , d ie nu r über bc­sch ränkten Speicherplatz. Prozessorleistu ng und grafische Möglichkeiten vcrfügcn[ESC02]. Ebenso wie d ie SE kann auch die ME mitsamt nü tzlichen Tools Iu.a. Emula­torcn ) als)avaME wtrclcss Toolk ir bei Sun herunte r ge laden werden.

Page 6: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

18 2 lm-a als Sprache un d Plattform

3. Die jav.l Entcrprtse Edition (javaEEl ist eine von SUIl entwo rfene Spez ifikation,die durc h zertifizie rte I Icrstcllc r imp lementie rt lind als ko mme rzielles Produkt an ge­bot e n wird. Sin n der .Iava EE ist d ie Entwicklung vo n Kompo nenten fü r Servo rappli­kntioncn. Da runter ve rsteht ma n Programme, die au f au sre ichend lei stun gsstarke nRechnern (Servern) laufe n, au f de ren Funk tionen via Netzwerk zahlreic he Einzel­platzrechne r (Clk-nts) gleic hzeitig zugreifen. Es handelt sich um Applikationsserverhandeln, die z.B. be triebswirtschuft liehe Transaktione n du rch führen . Dabei wirdauch au f Datenbanken zugegriffen - lind es muss sicherges tell t se in, dass die Da­renbeständ e ko nsiste nt un d aktuell ge ha llen we rden. Die Java EE definie rt Pro­granuustru krurcn un d Ablaufszena rie n. durch d ie sich diese sire ngen Anfo rderungenprogramnuech msch umse tze n lassen . Die Handhabung der javal-E geht üb er de nRah men dieses Buches deutlich hinau s, jedoch so llte auf se ine r Basis e ine Einarbcl ­tung nicht sch wer fallen l.\lER041. Eine kostenlose Rcfcrcnzimplcmcntlcrung steht heiSun zur v erfüguog.

VerschiedeneJava-Laufzeitumgebungen

Java d ient nicht nur dazu, Programm e auf Einzelplatzrechnern auszu führen, so ndernauch andl' re Laufzeitumgehungen sind für Java-Progr:.lmme vo rgesehe n.

Eine Laufzeltumgebung ist d ie Menge aller tedmischen Rahmenprogramme .auf deren Grundlage z.B. in java geschriebene Programme selbst ausgefü hrtun d abgea rbelre t werden. Die Laufzeitumgebung ste llt da s software tech nischeUmfe ld dar , in dem sieh die Ausführung e ines Programms vo llzieht.

Die Laufze itumgebun g für Java-Progra mme ist stets d ie [ara Virtua l Macbine UVM).Unterschiede bestehen in der An der Anwend ung und der Sysrcm umgebung.

1. Cncnt JRE für komple tte Java-App likationen , d ie au f eine m lokalen voll Einzel­platz rechnet (far d ient) aus geführt werden: Es handelt sieh um vo llständ ige Java­Programm e. Alternativ könn te auch um ein mobiles Gerät (small dcvioc) wie Handyoder Smartphonc vo rliegen. Hier kommt eine spezielle JVM-VarianTl' zur Anwcn­dung, d ie K VM (Kilo Virtual Mach inc ), die :HKh au f Ge räten mit klein em Haup tspei­eher lauffähig ist.

2. Webbrowser mit Applets. Applet s stel len Java-Programme vorgegebener Struk­tur dar, d ie in kom p ilierter Fonn zusammen mit H'l'M l -Seircn in den Browser ge la­den und aufgerufen werden. Browscr verfüge n über eine integ rierte JVM, die d ieAusfüh run g übernimmt. Applcrs sind strenge n Sicherhe itsrestriktionen unterworfen.Informationen zur Applc t-Programmtcrung finden s ich au f der Wehseite des Buches.

3. Wcbserver mit Scrvici z n gtn c. Durch \Vebserve r werden entwe der fe rtig vor­liegen de statische Interne tseiren an den an fo rdernden Clk-nt versendet od er Seiten­inhalt e vor (k m Versende n dynami sch zusammengeste llt. Um Inhalte dynamisch an­zupassen d iene n Scrvlcts - spezielle Java-Klassen, durch die IIT.\H. ge ne riert wird .Eine verwa ndte Techn ik nu tzt Java Server Pagcs ( JSP): Hierbei wird Java Code direktin die IIT;\IL-Seite geschrieben, vo r dem Versenden der Seite auf dem Webse rverausgefü hrt un d dadurch der Inh alt der HTML-Seite dynamisch angepa sst (Server Skk­Scriprin g).

Page 7: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

2 Iara als Sprache lind Plattform 19

4. Bn te rp rfsc Applikations Server mit En tcrp ri sc Java Beans (FJU): Es hande ltsich um )avaEE-Aowcnduogen, die au f eine m Serve r ablaufen lind häufig bc tricbs­wirt schaftlic-h a usgerich tete Dienste für e ine Vielzahl von Clic nts bereitstellen.

Pat Cl ient Browser-Client

r'ronrendberetcle

Cllenranwendungen

)avaSE

)avaME

Mlddlcwarcbc['ckh:

Verbin dungsd iensteim Cllcnr-Scrvcr-

Umfeld

)avaSE

ßackendbcreich:

Serveranwendungen

JavaEE

) V1\1 integriertin w cbbrowscr

Hanlwu .....'

Appl.server

I

Wcbbrowser

Java-FJH-Scrvcr

I lk1ridlSsysll'm I

II

I11;lf<.lw:,rc

I Enrerp r;,;c .1"":1 [kom I

I .laI'<! Vinu"l1>behine I

I [,,,dw,,,,.:

I

Ilardw:lR'

I

Webserver

1l<.·lrid lSSr S1, 'm

1\101 ",.'nhihli, ahckcn

java-Webserver

Java "[nu;!1 ,\b chine

.I<1V'1 Virtual I\b d lim:

Abb. 2.3: Varianten der java-Laufzcttumgcbung und -Edit ioncn

Neben e ine r Klassifikat ion nach Lanfzcirumgcbungcn Hisst sich da s Anwe ndungsfeldvo n java-Progranuncn auch "Anwc ndungsortcn'' zuordnen:

• Prontend-Ijereich. Gemeint sind typische, voll auxgcsrartcre Einzelplatzrechner(local rat dient) indiv id ueller Nutze!" oder nicht ortsgebunde ne Small Dcvtces ,d ie nur über e ine bcgren zrc Hardwareausstauung ve rfüge n (mob ile sJim d ient) ,

Page 8: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

20 2 lm-a als Sprache und Plattform

• Hackend -Bereich: Hierbei ha nde lt es sich um Serverrechner. deren Dienste viaNetzwerk vo n zahlrc k-hcn Clicnrs angefordert werden.

• Midd lcware-ßereich: Unter Middlcwarc versteht man Vermittlungsdienste invert eilten Systemen, d. h. die Menge aller Programme , d urch d ie Kommunikationund Datenaustausch zwischen verschiedenen Programmen hzw. räumlic h ge­trennten Rech nern (z.B. zwisc hen Frontend lind Backend ) erst ermöglicht wird.Dazu zählen au ch der Zugr itf auf Datenbanken und sogenannte Rcmorc Procc­durc Calls (HPe), bei dene n aus einem Program m he raus Funktione n andererProgranune typisc-herweise via Netzwerk aufgerufen werden.

Abbildung 2.3 ste llt j ava-La ufzcilumgebungcn lind -Editionen e inande r gegenüber ,

Chcnt-Scrven Durch d ie Begr iffe Client und Server wird ein Die nstle is­tungsvcrhältn is zwischen zwei Softwa re-Kompone nten lx-schrieben (Abb. 2.4).Dabei handelt es sich typisc-herwe -i se Utll zwe i verschiedene Prog nuu rne bzw.Prozesse (&if!II'(JIV-OriC/lticl1C Sichll: Ein Prog ramm erbringt einen Service(Die nstle istung), der durch ein anderes in Anspruch genommen wird, Auchinnerhalb eines Programms lassen sich Clicnt-Scrvcr-Strukrurc n identifizieren.

wenn die Softwa re-Komponenten auf verschiedenen Rech nern laufe n, dannwerden mit de n Begriffen Client und Server (oder: Hosn au ch die e ntspre­chende n Rechner bezeichnet cttardu-are-ortenttene Stctu). Via Netzwerk greiftder Client auf die Diensie des Servers W. Me ist ist ein Server da zu vorgese­hen , die Anfragen vieler Clients zu bearbeiten. Klassisches Be ispiel iSI derwebserver, der an den Clientrechner angeforde rte HTML-Seiten versendet.

Software-orienti erte Sicht :

ClientA.lfim ft'1"I/ eil/er D ie' lsl/d.<IIOIM

Server

Prozess 1 li ,.hr i ' ''''' /1 d ,"'" I )1" >I.<t l,'I<I" " " Prozt:ss 2servke -lJiL"n~r ~' i rw r Soli ­wu......-K, »uponcnrc .

Hardware -orie nti e rte Sich t :

Clie n t•~A nfordern ennr n ielisl/eisfll ,IM

Netzwerk: IAN I W AN

f.H'riI/Mt''1 eiller nie'lsl/eisIIlIIM

Komponente •

PT<lI.~'SS oder Gruppe"on 1>T<l~~'ss~'n

Abb. 2.4 : Das Clicnt-Scrvcr-Prinz ip

Deutlich wird, dass ein Aspekt der plarrformübcrgrcueodcn Verwendbarkeit von Ja­va bereits dar in besteht, dass java-Progranunc "übe rall" ve rwe nde t werden kö nnen:Vom Han dy bis zum mächngcn Applikationsserver. Durch die \X'ahl der Sprach t: Ja­V: I billt man sich alle Optionen hinsichtlich mög licher Anwendungsfelder offen. ImGrunde ist Java also deutlich mehr als nur e int' Sprache: Dahinter ste ht zugleich ein

Page 9: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

2 Iara als Sprache lind Plattform 21

Verb un d aufeinander abgestimm ter Tech nolog je n. d ie gcc tgnct sind, professionelleverteilte , vielschichtige Systeme zu entwickeln .

Dadurch unte rstützt d ie javu-Tcchnologlc e in fü r die In fo rmatik , Insbesondere abe rd ie Wirtschaftsinformatik zen trales Anliegen: trueg ration reneiner svueme auf derBasis einer möglichst ei nheitlichen Technologie . Fortschritte im Bereic h der Hard­lind Softw aretechnik inn erhalb de r le tzten zwei fahrzehnte führten zu e ine r Abke hrvo n ze ntrali sierten Mainframc-Gro8rcd m c r-Stmkturc n . Ziel ist es, bei de r Realisationkomplexe r ve rt eilter Anwen dungen mit möglich st we nig ve rschiedene n Tcc hnolo­gtcn und auch r'rogrammtcrsp rachen aus zukommen und sich doch nicht auf bc­stimmte IIardworcplatrformcn und Betriebssysteme festlegen zu müssen.

java ist jedoch au ch deshalb universell verwe ndba r weil Iava-I'rogramm c ohne Än­dcrung und Neuerstellung auf allen rele van ten Bcrrlcbssvstcmcn ab lauffähi g sind .Dieser Planformun abhängigkeit verdankt die Sprache j ava ihren Erfolg, insbesondereim Bereich inte rnetorientie rter betrieb liche r Anwendungen.

Die Plauformunabh ängfgken von J a va-Programmen

Die plarrfo rmunabh ängtgc Konzeption der Sprache java Hisst sich im Slogan urueo nce - rlf ll ereryuhere zusammenfassen. Im Grunde bringt java in Fonu der Ja vaVirt uul Machirte ste ts sei ne e igene (abs trakte) Ausfüh run gsplanform mit, die für allewic htige n Prozessoren und Bet riebssysteme verfügbar ist.

Der Entwickler e ines Java-Programms muss sich keine Gedanken über Hardwareode r Betriebssystem des Rechners mac hen, auf dem das fertige Ja va-Program m aus­ge füh rt werden so ll: Es kann z.B. un ter Linux entwickelt und getes tet werden, wä h­rend das weite rgegebene oder zum Downloa d zur Ve!fügung gestellte Programmspäter auf Windows-Rcchncm ge nutzt wird . Grun dsätzlich sorgt d ie j Vtl-1 dafür, dasseinmal gesehrtebene java-I' rogrannuc o hne Änderung auf allen Hardware­Plattformen und Betriebssystemen ab lauffähig sind , für d ie ei ne JVM ve rfügbar undinstallie rt ist. Die JVI\1 ste llt ei ne Art Zu-iscb euscbicbt dar, die das konkrete Bet riebs­system und die Hardware des Rechners vor der Iava-Anwcndung verb irgt.

Somit fun giert die JVM als eigenständige zwische ngeschaltete Plattfo rm, durch diealle Java-Programme ausgefüh rt werden. Aus Sicht des Ja va-Programms erscheint sieals Ausfüh rungsmaschtnc, d ie ihre eigene n Befehle kenn t und interpretiert . Aus Sichtder Plattform (des Rechners au f dem das java-Progranuu läuft) se tzt sie das java­Programm in plattformspezifische Anweisungen um:

• Ein in j ava geschriebenes Programm muss zuerst vo m j ava-Compilc r in speziel­les Codtng für die .I V,V, üb ersetzt werden . Dabei handelt es sich um den sogc­nantcn .I(/l '(/ -}~I·I('C{)de. Dieser Bytecode cruhäh keiner lei pla ttformspezifische In­halte. Er be steht ausschltekltch au s elementaren Anweisungen , d ie ZUIll Spr ach ­umfang de r .JVt\I ge hö ren. Der Bytecode ist absol ut planformun abhängig. Er istdie Maschinenspruche der .IV~1 un d nur an diese r ausgerichte t. (Info rmationenzur Bytecode-Struk tur finden sich auf de r Webseite des Buches.)

• Dieser Bytecode kan n vo n jeder java-VM d irekt Interpre tiert und ausgefüh rtwe rde n und läuft somit auf jeder Plattform für die d ie passende JVI\! be reitsteht.Die .IVM üb ersetzt alle Bytecode-Anweisungen des java-Programms d irekt bei

Page 10: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

22 2 lm-a als Sprache und Plattform

J ...-r Au-führung in e lementa re Befe hle (Maschinensp rache) für die kon kre t vo r­liegende Bcutebssysrem- un d llardware-Platrfo rm.

• Beim Wechsel von ein em Rechner zum and eren, von ein em Betriebssystem zumande ren ist kein er lei Änd erung am ursprü ngltchcn Java-Code nötig lind au chkein Anpassen OUI,.'f gar Neuerstel len des e inmal kompilierten Bytecodes.

Die Planfornumabhän gtgkctt der Sprache Java wird so mit d urch de n Umweg derBytecode-Erzeugung erre icht. Erst de r Bytecode wird d urch die jV"1 in platrfo rmspe­zifixchc biniire (rein dual cod ierte ) Maschinensprach e (native codc) umgese tzt, wä h­rcnd der Ja va-Entwickler sich m it d iese r Aus füh run gsschich t seines Programms nic htauseinan derse tzen muss. 1\1:111 programmiert "fü r" die JVl\'l - un d für alle wichtigenBetriebssysteme Lind Hardwareplattfo rme n srcht e ine angepasste JVM bereu , die dieplattformspezifische Umse tzu ng des gene rierten Bytecodes besorgt . Momentan un ­torst ützt die .!:lvaSE L1 .:I . d iverse Ausprägungen der Betriebssysteme ü n tx/Ltnux lindauf vcrsch tcdenc n Prozessoren.

C++ Compiler für Windows

Kompilierte konventione lle Prog rammiersp rache Inlel -I'<:

r;,::;;;;::;;;;:;klf--_ -.:"I;s, \Vin.!-Io \\"s

.l~:-.'::':':~~~~:~:':'-J--1 Ma,,<."hi 'K"Ill",><k,I' für Windows

Quellcode­V:Jri:Jlllen

C++ Compiler für Linux

Alrha - I'roz~'s"< ,rLinux

jvxt-Byrecode Arch itektur vo n j ava

Java­Quellcode

java CompilerBytecode

1'1:ll rfonn­u" :Jhh;inl! il!

JVMfür l.inux

1\ l rha-l'n )z~'s"' >r

Linux

Ahb. 2.5: Vergle ich kompilierte r Programmiersprachen mit der JVM-Architektur

ln Abbildung 2.5 ist die JVM-Infrastm ktur de n Verhält nissen ko nvent ionel le r kompi­lie rter Sprachen wie C oder C++ gegenübergestel lt: Ein in C++ geschri ebe nes Pro­gramm, dass zur Ausfüh rung unter wtndows gesch rieben wurde , muss eventuell imCoding ve rän dert werden , wenn es auch un ter Linux lauffähig sein soll. Ganz IX'­stimmt jedoch ist dazu eine Neuübersetzung mittels eines Linux-spczt fischcn Compl­lcrs erforderlich. Denn Com pile r konventionelle r Sprachen erzeuge n beim Überset­zcn dl.'s Programms direkt plattformspezifi schen binä ren Maschi ne ncode. der im

Page 11: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

2 Iara als Sprache lind Plattform

Normalfa ll au f kein em anderen Bcmcbssystcm ausführbar ist. Somit gilt hie r: u-riteonce » compilc ereryubere. d .h. für jede weitere benöt igte Au-führungsplatrform.

Ganz anders sieht d ie j ava-w elr aus: Ein e inmal geschriebe nes Java-Progra mm mu ssnu r e inmal in Bytecode über set zt werden - und diese r Bytecode ist d irekt auf allenBetrtcbssysremcn un d jeder Hardwa re ausführba r, fü r die e ine JVt.l bereit ste ht. Hie rgih: u-nte oncc - compite anyubere - 11/ 11 ereryubere.

Der Inte rprctattousvoegang d er JVM

Die Bytecode-Aus füh rung durch die j VI\1 ist ei n Interpre tationsvorgang. d.h . d ie ein­ze ine n eleme ntare n Bytecode-Anweisungen werden nacheinander ausgewert et Lindin planformspezifische Syste maufrufe um gesetzt (Inte rpretiert ). Doch hebt sich dieInterpretationsleistun g der JVM von jener voll inte rpretierte r Sprachen deutlich ab :Ein konven tion eller Interpreter be arbe ite t den Programmtext Ze ile für Zeile o hneOprimtcrungsletsrung. Selbst we nn dieselbe Anweisun gsfolge mehrfach auftritt (z .B.in Schleifen ) find et ste ts vo n Neuern diese r Übersetzungsvorgang starr. Konvemioncl­lc Inte rpre tersprachen sind notorisch langsam.

Die Java-Bytecode-Archit ektur ist jedoch durch ein e Zweitei lung der Programmaus­führurig ge ke nnze ichnet - durch ein optimiertes Zusammenspiel von Co mpiler LindInterpreter , weshal b man Java auch als semi-tsompiliene Sprache bezeichnet .

• Im I. Schr itt findet das Parsen und Analysieren des Programmtext es durch denJava-Compiler statt. Seine Optim ierung erze ugt möglichst kompakt en Bytecode.

• Im 2. Sc-hritt we rden die JVI\I-Anwd stlllgen des o ptimie rten Bytecodes d urchden Inter pre ter de r JVl\I mittels JUSI In Time Compilation (I r r) effizient ausge­führt: Der JVM-JIT-Co mpiler analysie rt den Bytecode un d erkennt wiederholtauszuführende Programmteile (ho tspots), die die Austührungszctt stark lx-ein­flussen . Diese werden als Ganzes vor dem restlichen weni ge r pe rfo rman z­kritischen Bytecode in Masc hinensprache übersetzt und h innen im späterenverlauf dir ekt ohne ze itraubend e Ne uin te rpretation ausgeführt we rden.

So kombiniert die .IVM-l~rf('(.w/('-A rcbil('kfl/r die Vorte ile interpretierte r lind kompi­lie rter Sprachen und minimiert deren Nach teile. Im Erge bnis iSI Java als SC'lI1 i ­

kompilierte Sprache viel sch neller als rein e tnrc rpn..-tc rsp rachcn, aber dennoc-h e twaslangsa mer als reine Compilersprachen (wie C ode r C++ ). Dies ist begründet in derJV;\1 a ls zusätzlicher Schiebt zwische n dem java-Progranun lind de r Hardware desausführenden Rech ners. Die se parate Intc rpn..-tarion des kompilierten Bytecodes kos­tet Zeit. Auch cfne jrt-opomtcrte .IV"l wird in de r Inter pre tation des Bytecodes nieso schne ll sei n können wie eine direkte Ausführun g von Maschinencode.

jedoch ist de r Geschwindigkeitsunte rschied oft nicht gravie ren d: Java-Programmesind seh neil gel/ llg zur Ausführung der meisten typischen Aufgaben. Somit üb erwie ­ge n die Vortei le der jvst-Archnekrur, iSI sie doch Grund lage de r sysrem - und schich­rennbergreuende Verwendbarkeit vo n j ava als Sprache , Tech nolegte un d Plattform.

Zu.sa m men fassu ng: Warum J ava ?

Wir können nun die konzeptionellen VOlleile von Java umreisen. Laut Sun isl Java:

• ein fach: Komplizierte Sprachstruk ture n w urden ve rmieden. Der Sprachumfangist klein, dafür sie be n umfangre iche Klassenbibliotheken zur Verfügun g.

Page 12: Java als Sprache undPlattform - Главная | Телематика · 2018. 10. 12. · 2 Java als Sprache undPlattform Die Programmiersprache Java zeichnet sich nicht nu r durch

21 2 lm-a als Sprache und Plattform

• ob jektorientiert: Iava-Progrannnc lx-stehen ausschließlich aus Klasse n; Erfah­rungen mit viele n objckroricnricrtcn Sprachen wurden berücksicht igt.

• verteilt : Nerzbasierte. mehrsduchrtge , verteilte Anwendun gen sind real isierba r.

• i n terpretativ: Der Bytecode-Ansatz ve rbindet die Vorteile interpretiert.... r undkompilierte r Sprachen . Java ist e ine sc rui-kompilicrtc Sprache.

• rohus t: Fehlerquellen du rch komplizierte Sprachkonstru kte werden vermieden,die Spc k-hc rvcrwa hun g wird weitgehend vom j ava- La ufzcnsvsrcm übernommen.

• s icher: Stcherhcnsmcchantsmc n verhindern die Ausfü hrung unsicheren Codes.

• a rcfaitc ktur-, ( p fattform-) unabh ängig: Die JVM und de r Bytecode abst rahi e ­ren von Hardware lind speziellem Betriebssystem.

• port ie rbar: Die .IV!,,\ interpretiert identischen Bytecode auf allen unterstütztenPlattformen, so dass Pla tt form -Offe nhei t herrscht.

• lei s tungs stark: Zwar etwas langsa mer als C++, aber meist schn ell ge nug .

• Th read -unterst ürzcnd. Struk turen zur Synchronisatio n parallel laufe nde r Aus­führungsstränge (Th rcuds ) in eine m Programm (Prozess) sind Tei l der Sprach e.

• dy namisch : Ben öt igte Bibliotheksklassen werden auto matisch zur Laufzeit desProgramm (dy namisch) hinzu geladen.

Kenn zeic hne nd für d ie JV!\I-Philosophie ist der Gedanke der Transpa renz. Platt­formspezifische Details und komplexe interne Vorgänge sind in der JV1\l für den .1;1­va-Entwicklcr verborgen, der dadurch entlas tet wird. Dies erleichtert d ie Reali sationkomplexer Anw endungen.

Nachde m wir uns mit dem Java-Umfeld vertraut ge macht hab en, untersuchen wir dieSchritte und w erkzcuge zur Erste llung und Ausfüh rung von Java-Programmen. Auchhierin unterscheidet sich j ava von and eren Sprachen.