Größe: px
Ab Seite anzeigen:

Download ""

Transkript

1 ParallelesProgrammierenmitJava HeinzKredel AkitoshiYoshiday tingassoziiertabermitdemprogrammiersystemjavastehenallehilfs- mittelfurdienutzungdiesertechnikeninbeliebigenanwendungenzur ParalleleProgrammierungwirdoftmitHighPerformanceCompu- Zusammenfassung Verfugung.WirbesprechendieparalleleProgrammierungvonRechnern DenAbschlubildendieneuestenEntwicklungen,wiezumBeispielRMI, wiraufeinigeproblemeundihrelosungmitdenmittelnvonjavaein. Modell.NebendenwesentlichenSprachkonstruktenundKlassengehen RechnernmitverteiltemSpeicher,imNetzwerk-oderKommunikations- mitgemeinsamemspeicher,imsogenanntenthreadmodell,undvon 1 Einleitung CORBAundJavaGrande. theksumgebungparalleleprogrammegeschriebenwerdenkonnen.dabeikonnen zeigen,wiemitderprogrammiersprachejava[1]undderentsprechendenbiblionetewerkzeugezurimplementierungvorhandensind,werdendiesedochnur vonwenigenprogrammierenkonsequentgenutzt.indiesemartikelwollenwir AuchwennparallelesProgrammierenschoneinigeZeiterforschtistundgeeig- wirinderkurzenurdiewichtigstensprachkonstrukteundklassenvorstellen. PerformancevonnumerischenFORTRANoderC++Programmenerreichen,so erleichtertjavaundseineumgebungdochsehrdieentwicklungvonvielenparallelenanwendungen.furjavasprichtauchdieallgemeineverfugbarkeit,und Eswirdaberausreichen,umSievonderLeistungsfahigkeitvonJavafurdiesesGebietzuuberzeugen.AuchwenndieJavaProgrammehinterhernichtdie dieguteintegrationallerfurdieparalleleprogrammierungwichtigenhilfsmittel.somitkonnenauchauszubildende,ohnezugangzueinemparallelrechner ImRestdiesesAbschnittsfuhrenwirkurzindieProblematikdesparallelen zubenotigen,diegrundlagenderparallelenprogrammierungzulernen. Programmierensein.DannbesprechenwirimnachstenAbschnitt2zunachst RechenzentrumUniversitatMannheim, kredel@rz.uni-mannheim.de ysapagwalldorf, akitoshi.yoshida@sap-ag.de 1

2 undihrerimplementierungmitjavandensieinunserembuch[4].umden wicklungenein.eineausfuhrlicherebesprechungallernotwendigenkonzepte UmfangfurdiesenArtikelnichtzuuberschreiten,setzenwirimfolgendenelementareKenntnisseinJavavorausgrammierungderKommunikation.InAbschnitt4gehenwiraufneuereEnt- ThreadsundihreProgrammierungundanschlieendinAbschnitt3diePro- 1.1Problemstellung wiezunetzwerkenvonworkstationsundpcsgefuhrt.einekonsequenzdieser DieHardware-EntwicklungderletztenJahreundJahrzehntehatzueinerweiten VerbreitungvonMultitasking-Betriebssystemen,MultiprozessorRechnernso- Entwicklungwares,danunverschiedene(Berechnungs-)Aufgabengleichzeitigundnebeneinanderbearbeitetwerdenkonnen.DieProgrammierungdieser SystemewirdalsParalleleoderNebenlaugeProgrammierungbezeichnet;im umdiegleichzeitigebearbeitungauszudrucken: Englischenwirdetwastreendervon`concurrentprogramming'gesprochen.Die SoftwaremitderdieSystemeprogrammiertwerden,hatfolgendeHilfsmittel, ErzeugenundAnstoenvonAufgaben SynchronisierungdesZugrisaufRessourcen KoordinierungderRessourcen AusderSichteinesProgrammierersbestehtdieAufgabewahrendderEntwick- InformationsaustauschzwischennebenlaugenProgrammen DenitionvonVerbindungen(Kanalen)zurKommunikation rithmusundderverwendetendatenstrukturen.inderparallelenprogrammie- denenmoglichkeitenderdatenhaltungzuberucksichtigen:datenimgemein- samen(haupt-)speicheroderdatenverteiltauflokalespeicherinvernetzten lungvonprogrammenindergeeignetenwechselseitigenabstimmungdesalgo- runggiltes{unabhangigvonderzugrundeliegendenhardware{dieverschie- Rechnern.ImerstenFallmudergemeinsameZugrimehrererProgrammeauf diesedatensynchronisiertwerden;imzweitenfallmussendiedatenzwischen tetimerstenfalleineverringerungderzugriskonikte,imzweitenfalleine denrechnerntransportiertwerden.dieoptimierungderprogrammebedeu- VerringerungdesDatentransports. ZurImplementierungparallelerProgrammestehenimWesentlichenzweiTechnikenbereit:ProzesseoderThreads.ProzessesindeigenstandigeProgramme, dievomjeweiligenbetriebssystemunabhangigvoneinanderzurausfuhrunggebrachtwerden.unterdosundwindowssinddasalsodieexe-dateienund unterunixdienormalenbinaries(a.out-dateien).prozessekonnenuberverschiedenehilfsmittelmitanderenprozesseninkontakttreten:tcp/ipsockets, 2

3 MessagePassingBibliotheken(wiePVM[2]oderMPI[3]),Pipelines(uberdie Standard-Eingabeund-Ausgabe)oderubergemeinsameSpeicherbereiche,die vombetriebssystemangefordertwerden.threads,auchausfuhrungsfadengeverbindungen.nurdielokalendatenderunterprogrammesindinjedemthread denglobalendatengehorenglobalevariablen,datei-handlesundauchnetzzessen.injedemthreadwirdeinunterprogrammausgefuhrt,dasuneingeschranktenzugriaufalleglobalendatendesumgebendenprozesseshat.znannt,sindkeineeigenstandigenprogramme,sondernvielmehrteilevonpro- verschieden. konstrukteoderdurchexternebibliothekenrealisiertsein. 2DieThreadFunktionalitatkanninProgrammiersprachendurcheigeneSprach- ThreadProgrammierung Verfugung.InAdagehorenThreads,hier\Tasks"genannt,zumSprachumfang. InJavastehenThreadsalsBasisklassenzusammenmitSpracherweiterungenzur Bibliothek\Pthread"dar.SieistinOSFDCE(OpenSoftwareFoundation,DistributedComputingEnvironment)enthalten,wirdaberauchaufverschiedenen AlsminimaleLosungwerdeninC,C++,Modula-2,FORTRANundanderen kenangeboten.einestandardisiertebibliothekslosungstelltdieposixthreads ProgrammiersprachenThreadsdurchsprachunabhangigeProgrammbibliothe- anderensystemenangeboten.posixbedeutetportableoperatingsystemix, einstandardisierungskommiteevonieee. AuchdieJavaThreadswerden-jenachPlattform-mitHilfevonPOSIX Betriebssystembereitgestelltwerdenundnichtaufgesetztsind. Threadsimplementiert.ThreadBibliothekenmitahnlicherFunktionalitatwie fureineezienteimplementierungvonthreadsist,dathreadsschonvom POSIXThreadssindz.B.implementiertaufOS/2undWindowsNT.Wichtig dieseauchmodizieren.fallseinthreadalleseineihmzugedachtenaufgaben gemeinsamenressourcen(speicher,dateien,netzverbindungen)zugreifenund diewiederumweiterethreadsgenerierenkonnen.allethreadskonnenaufdie Hauptthreaderzeugtundgestartet.DieserkannnunweitereThreadserzeugen, InjedemProze(sieheAbbildung1)wirdzunachstvomBetriebssystemein enthaltenist,bestehtausfolgendenteilen: Prozesse)bendenkonnen,sind:running,blocked,readyoderterminated. DieJava-ImplementierungvonThreads,dieindemJava-Packagejava.lang getanhat,kannerterminieren.diezustande,indenensichthreads(wieauch 1.derKlasseThreadunddemInterfaceRunnable, 2.demJava-Sprachkonstruktsynchronizedund 3.denMethodenwait(),notify()derBasisklasseObject. 3

4 zabbildung1:threadsinnerhalbvonprozessen Hauptthread?????? Threads Erzeugung Erzeugung Threads z???? zzzzz z z zzzz Join???? Erzeugung?? zzzz Speicher Prozess? Join Join Dateien Netzverbindungen DieBedeutungunddieAnwendungdieserTeilebesprechenwirindennachsten dreiabschnitten. instanziiertwerden,unddannwirdimrichtigenmomenteinemethodedieser Instanzaufgerufen.FurdieKlassegibteszweiMoglichkeiten 2.1ThreadErzeugung InJavamuzurErzeugungvonThreadsinublicherWeiseeinegeeigneteKlasse DieDenitionalsSubklassevonThreadhatdenVorteil,dabequemalleMethodenderThread-Klassegeerbtundsomitverwendetwerdenkonnen.Der BildungeinerKlasse,diedasRunnableInterfaceimplementiert. BildungeinerSubklassederThread-Klasse 4

5 wesentlichenachteildiesesansatzeswirddadurchverursacht,dajavakeinemehrfachvererbungerlaubt.wennzumbeispieleineklassevonderklasse Appletabgeleitetwird,kannsienichtgleichzeitigvonThreadabgeleitetwerden.InderRegelwirddahereinThreaddurcheineKlassedeniert,diedas AusdrucksweisewerdenwiroftvonRunnable-Klassensprechen,wennwirKlassenmeinen,diedasRunnable-Interfaceimplementieren. DerThread-KonstruktorunddieThread-Methodenstart()undjoin()haben diefolgendenspezikationen. forderungen.wirbevorzugenmeistdiezweitemethode.zurvereinfachungder Runnable-Interfaceimplementiert.DasRunnable-InterfaceverlangtnurdieImplementierungderMethodepublicvoidrun()undhatkeineweiterenAn- publicsynchronizedvoidstart() publicfinalvoidjoin()throwsinterruptedexception publicthread(threadgroupgroup,runnabletarget,stringname) publicthread(runnabletarget,stringname) publicthread(runnabletarget) MiteinerThreadGrouplassensichGruppenvonThreadsdenieren.Aufdie Threadsanwenden.FallsderThreadkeinerbesonderenThreadGroupangehoren muunderauchkeinennamenhabenbraucht,reichtdieerstevariante gesamtegruppelassensichdannoperationenzursteuerungdermitglieder- Thread(Runnabletarget).Mitderstart()-MethodevonThreadwirddann dierun()-methodederklassemyrunnablegestartet.mitderjoin()-methode vonthreadkannaufdienormalebeendigungdesthreadsgewartetwerden. Threadkenntnochdiestop()-Methode,mitdereinlaufenderThreadabgebrochenwerdenkann.Normalerweisewirdmanstop()seltenbenutzenundliebetrachtenwirfolgendeProgrammteile. einverfahrenimplementieren,daszueinernormalenterminierungderthreads UmeinenerstenEindruckeinesparallelenJava-Programmszubekommen,be- fuhrt.stop()sollabjava1.2nichtmehrverwendetwerden. } classactionimplementsrunnable{ publicvoidrun(){dosomework(var);} intvar; publicaction(intv){var=v;} tornimmteinenparameterentgegen,derdanninderfunktiondosomework() inderrun()-methodeverwendetwird.dierun()-methodewirdspatervonder DerersteTeildenierteineKlasse,dieRunnableimplementiert.DerKonstruk- jeweiligenstart()-methodegestartet. Threadt2=newThread(newAction(2)); Threadt1=newThread(newAction(1)); 5

6 try{t1.start();t2.start();t3.start(); Threadt3=newThread(newAction(3)); }catch(interruptedexceptione){...} t1.join();t2.join();t3.join(); DerzweiteTeilzeigtdieErzeugungvondreiThreadst1,t2undt3.DieThreads werdenjeweilsmiteinerneueninstanzderklasseactionerzeugt.dannwerden diethreadsderreihenachmitti.start()gestartet.anschlieendwirdmit dreiti.join()aufdieterminierungderthreadsgewartet. 2.2SynchronisationvonkritischenBereichen dieseunerwunschtenuberlappungenzuvermeiden,isteserforderlich,dasich fenwird.andiesenstellenisteinigevorsichtgeboten,dasonstdiewertedieser VariablenamProgrammendefalscheoderzufalligeWerteenthaltenkonnen.Um konnen,kannespassieren,dagleichzeitigaufeinunddieselbevariablezugegrif- Dainnerhalbderverschiedenenrun()-MethodenglobaleVariablenvorkommen globalenspeicherinnebenlaugenprozessenstattndenundsichtbarwerden, Dawirnichtverhindernkonnen,daSchreib-oderLese-Operationenaufden dieabarbeitungsschritteaufeinanderabstimmen(conditionsynchronization). Programmteilegegenseitigausschlieen(mutualexclusion)odergegebenenfalls dortebenfallseinpassendeshaltekonstrukteinfugen.diesistkeinesogroeeinschrankungwieeszunachstaussehenmag,dennwirkonnendievariablen,die wirbeibedarfnichtnurlokaleinhaltekonstrukteinfugen,sondernwirmussen allegefahrdeten\kritischen"bereicheinallenthreadsausndigmachenund anzuhalten,derdiezustandsanderungennichtsehensoll.diessetztvoraus,da benotigenwireinentrick.dieserbestehtdarin,denthreadinderausfuhrung erreichenwirdurchdassynchronized-sprachkonstrukt. DasJava-SprachkonstruktsynchronizedhatdiefolgendenVarianten. dizierungdurchgeeignetemethodenkontrollieren.dasanhaltenderthreads inkritischenstatementsvorkommen,oftineinerklasseisolierenundihremo- staticsynchronizedtypemethodname(...){...} synchronizedtypemethodname(...){...} synchronized(staticobject){...} synchronized(object){...} ausgefuhrt,sostelltdasjava-laufzeitsystemsicher,daimmernurmaximalein ThreaddieStatements{...}ausfuhrenkann.Mansprichtdannauchdavon, denenthreadseinsynchronized(object)aufeinbestimmtesobjektobject DieersteVariantebenutzteineObjektinstanzobjecteinerbeliebigen,vonder Object-KlasseabgeleitetenKlassealsHaltepunkt.Dasheit:wirdinverschie- 6

7 immernureinmalzueinemgegebenenzeitpunktaktivsein.mansprichtdann damaneinen\lock"dasobjektsetzt(esalso\verschliet").ein\lock"kann werdendannauchals\mutex"bezeichnet. auchvongegenseitigemausschlu(\mutualexclusion").die\lock"-objekte \lock"nuraufeineinstanzeinesobjekts.dasheit,mehrereinstanzeneines Objektshabendannverschiedene\locks",dieuntereinandernichtsynchronisiert einmalstatt,dadasobjektnureinmalvorhandenist,sonstbeziehtsichder FallsdasObjektalsstaticdeklariertist,ndetein\lock"Systemweitnur sind. DieSemantikvonsynchronizedtypemethodName(...){S1;...;Sn;} entsprichtdervon typemethodname(...){ Dieszeigtauch,daMethodeneinerKlasse,dienichtalssynchronizeddekla- } synchronized(this){s1;...;sn;} nisationstatt.damitstelltjavaauchkeineechtenmonitore,wiesievonhoa- reentwickeltwurden,zurverfugung.nurwennallenicht-private-methoden synchronizedsindundesnurprivate-variablengibt,erhaltmanetwasahn- 2.3WartenaufBedingungen licheswieeinenmonitor. riertsind,freiaufdieinstanzendatenzugreifenkonnenesndetkeinesynchro- NachdemwirdiekritischenBereicheimGrihaben,stellenwirunsdemletzten Problem.WennwirzumBeispieleineSummeineinerglobalenVariablenbilden wollen,mussenwirdenzugridaraufmitsynchronized()kontrollieren,aber bevorwiruberhauptanfangenzusummieren,musichersein,dadievariable initialisiertist.beidemsummen-beispielkonnenwirdasmachen,indemwir diethreadserstnachderinitialisierungerzeugen.beikomplexerendatenstrukturenwerdenwiraberunterumstandendieinitialisierungmitindiethreads ZurVerfugungstehenunsdieObject-Funktionenwait()undnotify()mit dieserschrittabgeschlossenist. einbeziehen.indiesersituationbenotigenwireinemoglichkeitzuwarten,bis denfolgendenspezikationen: publicfinalvoidnotifyall() publicfinalvoidnotify() publicfinalvoidwait()throwsinterruptedexception publicfinalvoidwait(longtimeout) throwsinterruptedexception 7

8 sesobjektsaufruftoderbiseintimeoutstattndet.dannwartetderthread (\blocked"),undgleichzeitigwirdderlockaufdiesenabschnittfreigegeben. DerThreadwartetnun,biseinandererThreaddienotify()-Methodedie- BeiAufrufvonwait()wirdderaufrufendeThreadindenWartezustandversetzt bestimmbar,welcherthreadaufgewecktwird. imwait-zustandauf.fallsmehrerethreadswarten,istnichtvorhersehbaroder wirddannwieder\ready"(\runnable").notify()wecktgenaueinenthread eventuellnocheinmal,biserdenlockaufdenabschnittwiedererhalt,und DieMethodewait()darfnurinnerhalbeinesAbschnittsaufgerufenwerden, dermitsynchronizedgeschutztist. notifyallwecktalleandiesemobjektwartendenthreadsauf.variantenvon inpthreads)garantierennicht,danurgenaueinthreadaufgewecktwird.dort wirdspeziziert,damindestenseinthreadaufgewecktwird. DienotifyentsprechendenFunktioneninanderenThread-Paketen(wiesignal EsmunundieBedingungerneutgetestetwerden,umfestzustellen,obnurdie hatte.dasheit,auchderlockwirddannwiedervondiesemthreadgehalten. Zeitverstrichenist,terminiertdieMethode,alsobeinnotify()stattgefunden wait()mittimeoutsinddas`timedwait',beidemeinezeitangegebenwird,wie ZeitabgelaufenistoderdieBedingungtatsachlicherfulltist. langemaximalaufdaseintreteneinerbedingunggewartetwerdensoll.fallsdie WennwiraufdieErfullungeinesbeliebigenBooleschenAusdruckswartenwollen,mussenwirfurjedesemantischverschiedeneBedingungeineeigeneBedingungsvariable(d.h.eineigenesObjekt)einfuhreneinandereinnotifyausgelostwerdenkann,istesfurdenwartendenThread konnte,unddortwird,fallsja,mitnotify(odernotifyall)dereintrittder Bedingungsignalisiert.DavonmehrerenThreadsgleichzeitigoderkurzhinter- StellenindasProgrammverlegt,andenendieBedingungwahrgewordensein FurjedeBedingungwirddannihrTest,obsiewahrist,analle(wichtigen) inderzwischenzeitschonwiederungultiggemachthabenkonnte. EinweiteresProblementstehtdadurch,daz.B.notify()vorwait()ausgefuhrtwerdenkonnte,wasdeneinenThreadaufimmerblockierenwurde(sogenannte\lostsignals").EineLosungzudiesemProblemstellenSemaphore wichtig,dieverzogerungsbedingungerneutzutesten,daeinweitererthreadsie dar,dieimbuch[4]inabschnitt3.4besprochenwerden. 2.4Zusammenfassung WirhabendiewichtigstenJavaSprachkonstruktezurThreadProgrammierung vorgestellt.anwendungensindzumbeispielsemaphore,barrierenunddas Bounded-Buer-Problem,sowiedieVerwendungvonThreadsinderApplet- denthreadsextensivangewendet. Programmierung,aufdiewirhieraberinderKurzenichteingehenkonnen. AuchindenEnterpriseJavaBeansundindenneuenJavaSwingKlassenwer- 8

9 Cluster)benotigenspezielleLeitungenzurKommunikation.(Ethernetund MehrprozessorsystemeohnegemeinsamenHauptspeicher(wiez.B.Workstation- 3 ProgrammierungderKommunikation plizitebefehlezumsendenundempfangenvondatenbenotigt.derschutzvon netenleitungenundubertragungsprotokollen.zurkommunikationwerdenex- DieProgrammierungsolcherSystemeerfordertdaherdieDenitionvongeeig- TCP/IPbeiWorkstation-Clustern,Dateien(bzw.Pipes)beiUnix-Prozessen). gemeinsamenvariablenistnichtmehrerforderlich,daalleprogrammteileals kritischebereicheausgefuhrtwerden.dasschemadesnachrichtenaustauschs istinabbildung2dargestellt. # Abbildung2:SchemadesNachrichtenaustauschs Netzkarte "! Sender Verbindungskanal #? Netzkarte "! 6Empfanger - Netzwerk - DieJava-Socket-KommunikationbasiertaufdendurchdasInternetbekannten ketcp/ip{wennauchmanchmalmitschlechtererperformancealsspeziell damitfursockets.insbesondereunterstutzenauchhighperformancenetzwertriebssystemenunterstutzt.auchnahezujedetreiber-softwarevonnetzwerk Hardware(LeitungenundRechnerkarten)bietetUnterstutzungfurTCP/IPund TCP/IPSockets.DieseSocketswerdenmittlerweilevonpraktischallenBe- angepatesoftware. SocketsstellenausProgrammiersichtdieSoftware-SchnittstellezueinemNetz- WirbeschrankenunsindiesemArtikelaufdieErlauterungdeseinfachstenFalls dateienangelegtundverwaltetwerdenmussen.java-netzwerk-supportbendet sichimpackagejava.net. werkdar.sieentsprechenetwadenfilehandles,diefurdenzugriaufplatten- einereinzigenpunkt-zu-punktverbindung.zumbeispielkonnenwirdamit 9

10 3.1AufbauvonVerbindungskanalen nichtdirekt1-zu-n-oderm-zu-n-verbindungsnetzwerkerealisieren. wartetdannaufeinenverbindungswunschvomanderenende.dasanderekanalende(derclientsocket)bautebenfallszuerstseinedatenstrukturenaufund eineskanalszubekommen,wirddiesocket-verbindungunsymmetrischaufgebaut.einkanalende(derserversocket)bautseinedatenstrukturenaufund ServerSocketundSocket.UmeineKontrolleubereinenkorrektenAufbau ZurImplementierungdieserKlassenverwendenwirvonJavadieKlassen erstbeieinemfolgendensendenundempfangenfestgestellt,daeineverbindunggarnichtzustandekam. versuchtdann,eineverbindungzuranderenseiteaufzubauen.gelingtdiesauf beidenseiten,bestehteinzuverlassigerverbindungskanal.eswirdalsonicht istwiefolgt. DieSpezikationdesServerSocket-KonstruktorsundderbenotigtenMethode DerKonstruktorServerSocketerzeugteinenneuenServerSocketandeman- publicsocketaccept()throwsioexception publicserversocket(intport)throwsioexception zuruck.diefunktionblockiertsolange,biseineverbindungzustandekommt. aufdementsprechendenportundgibtdanneinensocketfurdieverbindung gegebenenport.eineportnummer0erzeugteinensocketaneinembeliebi- genfreienport.diefunktionaccept()wartetaufeinenverbindungswunsch EsfolgendieSpezikationendesSocket-KonstruktorsundderbenotigtenMethoden. publicinputstreamgetinputstream()throwsioexception publicoutputstreamgetoutputstream()throwsioexception publicsocket(stringhost,intport) throwsunknownhostexception,ioexception DerKonstruktorSocketerzeugteinenneuenClientSocketzudemangege- OutputStreambestehenausFolgenvonBytes. tierteundunstrukturiertefolgevondaten.diestromeinputstreamund benenhostundport.dersocketstellteineneingabe-undeinenausgabe- getoutputstream()zugegrienwerdenkann.einstromisteineunforma- StromzurVerfugung,aufdiemitdenMethodengetInputStream()und (serialisierbare,serializable)objekteuberdenkanalausgetauschtwerden wendenindiesemabschnittobjectstreams,dadamitsehrexibelbeliebige codezeichenkonntenwirdiestromereaderundwritereinsetzen.wirver- ZudenEingabe-undAusgabe-StromenkannnuneinzudenAnforderungenpassenderDatenstromzugeordnetwerden.FurFolgenvonreinenUni- 10

11 mentierenindenobjekt-stromenakzeptiert.objekt-serialisierungisteinsder Daten-StromekonnensowohlDatei-StromealsauchNetzwerk-Socket-Strome sein.eswerdennurobjekte,diedasjava.io.serializableinterfaceimple- ineinendaten-stromumwandelnundtypsicherversendenoderempfangen. konnen.einobjekt-stromkanneinfacheundzusammengesetztejava-objekte wesentlichenneuenfeaturesvonjava1.1. jektenwiefilehandlesmachtdieserialisierungnaturlichkeinensinn,dennein FilehandlezeigtvielleichtaufeineDatei,dieaufeinemanderenRechnernicht lisierung,mumandieklasseselbstkodierenundsenden.beimanchenob- vonjavaautomatischdurchgefuhrt.uberschreibtmandieautomatischeseria- FallseineKlasseSerializableimplementiert,wirddieObjekt-Serialisierung existiert. DieSpezikationderbenotigtenKonstruktorenundMethodenistwiefolgt. publicobjectoutputstream(outputstreamout)throwsioexception publicvoidflush()throwsioexception DerKonstruktorObjectOutputStreamerzeugteinenneuenObjekt-Ausgabe- publicobjectinputstream(inputstreamin) strom,zueinemgegebenenoutputstream.zuerstwirdeinstrom-headerge- schrieben,dereineeindeutigeidentikationderobjekt-strom-klasseenthalt. Mitflush()wirdsichergestellt,dadieserHeaderunmittelbarverschicktwird, damitdiegegenseitediedatensoforteinlesenkann. DerKonstruktorObjectInputStreamerzeugteinenneuenObjekt-Eingabelesen.PasstdieIdentikationimHeadernichtzudereigenen,weilbeispiels- VersionuberdasNetzkommen,sowirdeinFehlerausgelost(hieristdas StreamCorruptedException).DerKonstruktorblockiert,biseinObjekt-AusweisedieDatenvoneinemanderenRechnermiteinerinkompatiblenJDKstrom,zueinemgegebenenInputStream.ZuerstwirdeinStrom-Headerge- throwsioexception,streamcorruptedexception 3.2SendenundEmpfangen gabe-stromdieentsprechendendatengesendethat. diesend-operationsowohlsynchronalsauchasynchronarbeiten: ve).wahrendderaufrufderempfangs-operationimmerblockierendist,kann Operation(send)undaufderanderenSeiteeineEmpfangs-Operation(recie- ZureigentlichenDatenubertragungbenotigenwiraufeinerSeiteeineSendasynchronoussend=dasProgrammwirdnachdemEinstellenderDateniminiertauch,wenndieDatenerstsehrvielspaterbeieinemEmpfanger ankommen. einensendepuerohneweitereverzogerungfortgesetzt,d.h.,sendter- 11

12 synchronoussend=dieweitereprogrammausfuhrungwirdnachdemsend wahrenddassynchronesendnureinenpuerfestergroeerfordert.dieverwendungdessynchronensendistschwieriger,daessehrgenauaufdiezeitlich bisdiedatenvoneinemempfangerwirklichabgenommenwordensind. DasasynchronesenderforderteinenpotentiellunbeschranktgroenPuer, solangeblockiert,biseinentsprechendesreceiveausgefuhrtwurde,d.h. ZurImplementierungderSend-OperationmitJavastehenunsdieFunktion writeobject()ausderklasseobjectoutputstreammitderfolgendenspezi- terstutztmitdensocket-klassennurdasasynchronesend. richtigereihenfolgeallersend-undreceive-operationenankommt.javaun- kationzurverfugung. DieMethodewriteObject()schreibteinObjektaufdenentsprechenden publicfinalvoidwriteobject(objectobj) packtundzusammenmitdemklassennamenundderklassensignaturgeschrie- ben. FurdieEmpfangs-OperationstehtunsdieJava-FunktionreadObject(),aus hatṗublicfinalobjectreadobject() derklasseobjectinputstreamzurverfugung,diediefolgendenspezikation Ausgabe-Strom.DergesamteGraphdesObjektswirdzerlegt(serialisiert),ver- throwsioexception DieMethodereadObject()liesteinObjektvondementsprechendenEingabe- Strom.DergesamteGraphdesObjektswirdgelesen,entpacktundrekonstruiert. throwsoptionaldataexception, ClassNotFoundException,IOException 3.3Zusammenfassung WirhabenindiesemAbschnittdiewichtigstenJava-HilfsmittelzurProgrammierungderKommunikationzwischenProzessenkennengelernt.Furparallele Anwendungen,dieuberdasClient-Server-Schemahinausgehen,werdenallerkutierendingskomplexereImplementierungenbenotigt,diewirin[4]imKapitel5dis- undjavagrande,dieimzusammenhangmitparallelerprogrammierungwichtig 4ImletztenAbschnittgebenwireinenUberblickuberdieThemenRMI,CORBA Ausblick sind. 12

13 4.1RMI DieJavaRemoteMethodInvocationTechnik(RMI),erlaubtdieAusfuhrung vonmethodenaufeinementferntenrechner.dieeingabeparameterwerden eingesetztwird.abbildung3:remotemethodinvocation teprocedurecall(rpc),dasinderkommunikationstechnikschonvielejahre chendemethodewirddortausgefuhrtundanschlieendwirdderruckgabewert uberdienetzverbindungzuruckgeschickt.javarmiistdasanalogonzuremo- ubereinenetzverbindungzueinementferntenrechnergeschickt,dieentspre- Repository lookup - 6 Stub callresult (re)bind A? - Client Skeleton Method B Server DieRMIArchitekturwirdinAbbildung3gezeigt.Computer'A'bezeichnetden Rechner,vondemauseineMethodeaufdementferntenRechner'B'aufgerufenwerdensoll.'Client'bezeichnetdenBenutzerprozessinRechnerA.'Server' bezeichnetdenproze,derdieaufrufbaremethodebereitstellt. DamitdieverwendbarenMethodennichtimProgrammcodeaufderServer Seitefestangegebenwerdenmussen,wirdeinVerzeichnis,genannt'Repository',aufRechnerBgefuhrt.DiesesVerzeichnismuvorbeginnallerRMdenrmi.Naming.bind()oderrmi.Naming.rebind(),umeineKlasseninstanz miteinemnamenbeidemrepositoryzuregistrieren.clients,diemethoden verwendenwollensehenmitrmi.naming.lookup()beidemrepositorynach Aktivitatengestartetsein.Server,dieMethodenbereitstellenwollenverwen- obeingewunschtesobjektvorhandenistundverknupfenesmiteinemlokalen Objekt. 13

14 zeichnungderentferntenmethode)aneine'skeleton'genanntemethodeauf 'Stub'Methodeaktiviert.DiesesendetdieEingabeparameter(miteinerBe- BeimAufrufeinerentferntenMethodeimClientwirdzunachsteinesogenannte temethodeaufundschicktdenreturnwertnachderterminierungdermethode demserver.dieskeletonmethoderuftdannaufdemrechnerbdiegewunsch- andiestubmethodezuruck.dieseubergibtdenwertdannandieaufrufendeprozedur.dereinsatzvonstubundskeletonerfolgttransparent,d.h.ohne spezielleaufrufeseitensderprogrammierers. 4.2CORBA Nachdemeszunachstaussah,alsobJavaRMIalsdirektesKonkurrenzprodukt SunundIBMdieUnterstutzungvonRMIuberdasIIOP(InternetInter-ORB Protokoll).DamitkonnteauchuberRMIaufCORBAObjektezugegrienwerdensetzt,daeineZusammenarbeitfurbeideSeitenvieleVorteilebringt.Mitdem JDK1.2wirdJavavolleCORBAUnterstutzungbieten.Zusatzlichentwickeln zucorbaentwickeltwerdenwurde,hatsichmittlerweiledieeinsichtdurchge- Schnittstellen,diedasZusammenwirkenvonvonObjekteninverteiltenUmgebungenbeschreibt.DiewesentlichenPunktedieserSpezikationsind: DerNameCORBAistdieAbkurzungfurCommonObjectRequestBroker Architecture.CORBAisteineSpezikation,dasheiteineDenitionvon CORBAistunabhangigvoneinerbestimmtenProgrammiersprache.Es CORBAObjektesinddurchdieORB(ObjectRequestBroker)Kommunikations-InfrastrukturtransparentvonClientsundServernzugreifbar undbenutzbar. CORBAermoglichtsogenannte`Multi-Tier'Systeme.DasheitmehrschichtigeverteilteSoftware-Architekturen.StatteinfacherClient-ServetalkundJava. gibtunteranderemcorbaanbindungenfurada,cobol,c++,small- ZurKommunikationzwischenORBsundObjektenmitInternetMittelngibtes SystemlassensichmehrstugeSystemeausClients,mehrerenverschiedenenAnwendungsservernundHintergrundprozessenwieDatenbanken dasinternetinter-orbprotokoll(iiop).dasprinzipdercorbaarchitektur istinabbildung4zusammengefat.derorbdeniertdieinfrastrukturfur realisieren. bereitgestelltendiensten(objektimplementierungen). VollstandigeInformationenzuCORBAndenSieimInternetaufdemWeb- ServerderOMG: daszusammenwirkenvonanwendern(clients)unddendurchverteilteobjekte ImplementierungdesCORBA2.0StandardsistMICO[5]. CORBAgibtauchdasBuchvonSayegh[6].Einefreiverfugbare,vollstandige 14

15 ClientAbbildung4:ObjectRequestBroker ObjektImplementierung ORB,ObjectRequestBroker & ObjektBenutzung % 6 4.3JavaGrande wendungenverlangenaberanbestimmtenstellennummerischeberechnungen, senungeachtetmittlerweilevielejavaanwendungenentwickelt,derendesign ZielezunachstaufumfangreicheFunktionalitatausgerichtetwaren.DieseAn- oderc++ummehralsdenfaktor10,alsodeutlichlangsamerist,werdendes- Obwohlesunbestreitbarist,daJavazurZeitimVergleichzuFORTRAN zumbeispielzugraphischendarstellungderergebnisse. Bereicheverbessern. MarcSnirvonIBMimForumvertreten.JavaGrandesollJavafurfolgende genvonjavahabensichanfang1998verschiedeneentwicklerzum\javagrande Forum"zusammengefunden.UnterandremsindJamesGoslingvonSunund ZurLosungdiesesProblems,d.h.zurVerbesserungdernummerischenLeistun- HighPerformanceNetworkComputing technisch-wissenschaftlichesrechnen verteiltemodellierungundsimulation AnwendungenmitsehrgroenDatenmengen parallelesundverteiltesrechnen DieZieledesJavaGrandeForumssind: rechenintensivekommerzielleanwendungen StarkungdesPotentialsvonJavaalsEntwicklungsumgebungfur\Grande applications".d.h.javaalsbessereentwicklungsumgebungalsfort- RANoderC++furgroeumfangreicheAnwendungen. 15

16 DasForumsollKonsensherstellenundEmpfehlungenausarbeitenfurWeiterentwicklungenvonJavaselbst,oderfurdieEntwicklungvonStandards DieJavaSprachanderungenundFrameworkssollendiebestejeverfugba- (Frameworks)fur\Grande"BibliothekenoderDienste. UnterdemJavaGrandeForumhabensichzurZeitzweiArbeitsgruppengebildet:einemitSchwerpunktNumerikundeinemitSchwerpunktParallel-undungenwerdenreProgrammierumgebungfurgroeumfangreiche(nummerische)Anwen- SpezikationdurchJava,Arrays,InterfaceszuMPI,PVM,sowiezuLapack Collection,bessereBerucksichtigungderSpeicherhierarchie(Register,Caches, zeitbehandeltwerdensind:volleunterstutzungderieee754floatingpoint undblas,tools,verbesserungdeslaufzeitsystemundderverteiltengarbage Verteiltes-Computing.DiewichtigstenThemen,dieindenArbeitsgruppenderdelleSPMDundMIMD;VerbesserungderVirtuellenJavaMaschine,schnellere Synchronisierung,bessereSkalierbarkeitderThreads. serungvonrmi,supportfurmulticast,unterstutzungderprogrammiermo- Hauptspeicher).DiezweiteArbeitsgruppebefatsichvorrangigmitderVerbes- NahereszuJavaGrandendenSieimInternetunterdemfolgendenURL1 Zusammenfassung NativeInterface(JNI)zugegrienwerdenkann.InderJavaGrandeInitiative konnenprogrammteileinc++implementiertwerden,aufdiedannmittelsjava ProgrammierungJavagutgeeignetist.WohoherePerformancenotwendigist WirhabenindiesemArtikelkurzumrissen,dazumLernenvonparalleler wirdanderverbesserungvonjavafurnumerischeundparalleleanwendungen gearbeitet. Literatur [1]K.ArnoldandJ.Gosling.TheJavaProgrammingLanguage.Addison- [2]A.Geist,A.Beguelin,J.Dongarra,W.Jiang,R.Mancheck,andV.Sunderam.PVM3.3Usersguide.OakRidge,USA,1995. Wesley,1996. [3]W.Gropp,E.Lusk,andA.Skjellum.UsingMPI:PortableparallelprogrammingwiththeMessagePassingInterface.MITPress,Cambridge,Mass., Stand:16.September

17 [5]A.PuderandK.Romer.MICOIsCORBA:ACORBA2.0compliant [4]H.KredelandA.Yoshida.Thread-undNetzwerk-ProgrammierungmitJava. implementation.dpunkt.verlag,1998. EinPraktikumfurdieParalleleProgrammierung.dpunkt.verlag,1998. [6]A.Sayegh.CORBAStandard,Spezikation,Entwicklung.O'Reilly,

Remote Method Invocation

Remote Method Invocation Remote Method Invocation spezielle Technik aus dem Java-Umfeld Ausführung der Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VM s Aufruf

Mehr

Java-Programmierung. Remote Method Invocation - RMI

Java-Programmierung. Remote Method Invocation - RMI Java-Programmierung Remote Method Invocation - RMI Entwicklungsmethoden Sockets Entwurf verteilter Anwendungen ist relativ aufwändig, da zunächst ein Kommunikationsprotokoll entwickelt werden muss aufwändig

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Spezielle Technik aus dem Java-Umfeld Ausführung von Methoden auf einem entfernten Rechner Analogon zum RPC (Remote Procedure Call) Zweck: Objekte in verschiedenen Java-VMs Aufruf

Mehr

Konzepte von Betriebssystem- Komponenten Middleware. Jini. Vortrag von Philipp Sommer

Konzepte von Betriebssystem- Komponenten Middleware. Jini. Vortrag von Philipp Sommer Konzepte von Betriebssystem- Komponenten Middleware Vortrag von Philipp Sommer 1 Inhalt 1. Einführung Hintergrund Was ist? Ziele von 2. Technology Komponenten Client, Server und Dienste Discovery und Join

Mehr

Programmieren 2 12 Netzwerke

Programmieren 2 12 Netzwerke Programmieren 2 12 Netzwerke Bachelor Medieninformatik Sommersemester 2015 Dipl.-Inform. Ilse Schmiedecke schmiedecke@beuth-hochschule.de 1 Motivation Datenaustausch zwischen Programmen Spielstand Chat

Mehr

Musterlösung Klausur SS 2004

Musterlösung Klausur SS 2004 Musterlösung Klausur SS 2004 Fachrichtung: Informatik Lehrveranstaltung: Verteilte Systeme Dozent: Prof. G. Bengel Tag: 15.6.04 Bearbeitungszeit: 90 Minuten Name:... Matr.Nr.:... Punkte:... Note:... Hilfsmittel:

Mehr

Kommunikation in verteilten Anwendungen

Kommunikation in verteilten Anwendungen Kommunikation in verteilten Anwendungen Einführung in Sockets, Java RMI,CORBA und Jini von Prof. Dr. Oliver Haase 2., überarbeitete und erweiterte Auflage Oldenbourg Verlag München 1 Einführung in das

Mehr

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER

Rainer Oechsle. Parallele und verteilte. Anwendungen in Java. 4., neu bearbeitete Auflage. Mit 165 Listings, 5 Tabellen und 71 HANSER Rainer Oechsle Parallele und verteilte Anwendungen in Java 4., neu bearbeitete Auflage Mit 165 Listings, 5 Tabellen und 71 Bildern HANSER Inhalt 1 Einleitung 15 1.1 Parallelität, Nebenläufigkeit und Verteilung

Mehr

Netzwerkprogrammierung unter Linux und UNIX

Netzwerkprogrammierung unter Linux und UNIX Netzwerkprogrammierung unter Linux und UNIX Bearbeitet von Stefan Fischer, Walter Müller 2. Auflage 1999. Buch. XII, 228 S. Hardcover ISBN 978 3 446 21093 6 Format (B x L): 14 x 20,9 cm Gewicht: 329 g

Mehr

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007

Systemprogrammierung. Projekt: Java RMI. Wintersemester 2006 / 2007 Systemprogrammierung Projekt: Java RMI Wintersemester 2006 / 2007 Systemprogrammierung 1. Einleitung 2. Einführung in RPC 3. RMI 4. Code Beispiele 5. Live Vorstellung 6. Ausblick 7. Fazit 2 1. Einleitung

Mehr

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu

CORBA. Eine kurze Einführung. Common Object Request Broker Architecture. Ying Lu CORBA Common Object Request Broker Architecture Eine kurze Einführung Ying Lu Verlauf der Präsentation Was ist CORBA CORBA-Architektur Ein Beispiel CORBA im Einsatz CORBA im Vergleich Was ist CORBA Begriffe

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2013/2014 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Kommunikations-Middleware Bietet höhere Kommunikations-Dienste

Mehr

Das volle Potential von HbbTV

Das volle Potential von HbbTV Das volle Potential von HbbTV Agenda Vorstellung! Konzeptionelle Idee für programmbegleitende Anwendungen! Demo-Anwendungen! Technologische Grundlagen seitens des HbbTV-Standards! Technologische Grundlagen

Mehr

Mobile und Verteilte Datenbanken

Mobile und Verteilte Datenbanken Mobile und Verteilte Datenbanken Java RMI Vorlesung Wintersemester 2010/2011 groppe@ifis.uni-luebeck.de Institut für Informationssysteme Universität zu Lübeck Java Remote Method Invocation (RMI) Realisierung

Mehr

Multiuser Client/Server Systeme

Multiuser Client/Server Systeme Multiuser /Server Systeme Christoph Nießner Seminar: 3D im Web Universität Paderborn Wintersemester 02/03 Übersicht Was sind /Server Systeme Wie sehen Architekturen aus Verteilung der Anwendung Protokolle

Mehr

8.4 Das Andrew File System 393 8.5 Ausblicke 404 8.6 Zusammenfassung 410 Übungen 411

8.4 Das Andrew File System 393 8.5 Ausblicke 404 8.6 Zusammenfassung 410 Übungen 411 Inhaltsverzeichnis Vorwort 11 Aufgabenbereiche und Leserschaft 11 Aufbau dieses Buches 12 Literatur 12 Änderungen in dieser Auflage 13 Danksagungen 14 Web-Site 14 Kapitel 1 Charakteristische Eigenschaften

Mehr

9. Remote Method Invocation Grundlagen der Programmierung II (Java)

9. Remote Method Invocation Grundlagen der Programmierung II (Java) 9. Remote Method Invocation Grundlagen der Programmierung II (Java) Prof. Dr. Bernhard Humm Hochschule Darmstadt University of Applied Sciences Sommersemester 2006 Übersicht Grundlagen der Programmierung

Mehr

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik)

Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik) Prüfungsprotokoll der mündlichen Prüfung Verteilte Systeme 1678 (Bachelor Informatik) Prüfer: Prof. Dr. Haake Semester der Prüfung: WS 10/11 Datum der Prüfung: 02.05.2011 Dauer: ca. 25 min Note: 2.0 Hier

Mehr

Konzepte von Betriebssystem-Komponenten Middleware RMI

Konzepte von Betriebssystem-Komponenten Middleware RMI Konzepte von Betriebssystem-Komponenten Middleware RMI Mario Kiefer 21. Januar 2005 1 Einführung RMI (Remote Method Invocation) ermöglicht es mit relativ einfachen Mitteln verteilte Anwendungen zu erstellen.

Mehr

Abbildung 3-1: Clients und Server C+S

Abbildung 3-1: Clients und Server C+S Abbildung 3-1: Clients und Server C+S Abbildung 3-2: Interaktions-koordinations-arten Abbildung 3-3: Zuverlässige Nachrichtenübertragung a) durch individuell quittierte Nachrichten b) durch Quittierung

Mehr

Verteilte Systeme. SoSe Universität Siegen. Tel.: 0271/ , Büro: H-B Stand: 14. Mai Verteilte Systeme. SoSe

Verteilte Systeme. SoSe Universität Siegen. Tel.: 0271/ , Büro: H-B Stand: 14. Mai Verteilte Systeme. SoSe Verteilte Systeme SoSe 2018 Universität Siegen rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 14. Mai 2018 Betriebssysteme / verteilte Systeme Verteilte Systeme (1/14)

Mehr

Java RMI Remote Method Invocation

Java RMI Remote Method Invocation Java RMI Remote Method Invocation Ziel: Aufruf von Instanzmethoden entfernter Objekte basierend auf Java. Paket: java.rmi und Unterpakete Topologie: RMI Registry RMI Server RMI Client Der Server registriert

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

Client/Server-Programmierung

Client/Server-Programmierung Client/Server-Programmierung WS 2014/2015 Betriebssysteme / verteilte Systeme rolanda.dwismuellera@duni-siegena.de Tel.: 0271/740-4050, Büro: H-B 8404 Stand: 15. Oktober 2015 Betriebssysteme / verteilte

Mehr

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen?

SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? SOAP Integrationstechnologie für verteilte Middlewarearchitekturen? Großer Beleg Christian Wurbs Zwischenbericht http://www.inf.tu-dresden.de/~cw6 cw6@inf.tu-dresden.de Überblick 2 Aufgabenstellung CORBA

Mehr

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant?

Übersicht. Nebenläufige Programmierung. Praxis und Semantik. Einleitung. Sequentielle und nebenläufige Programmierung. Warum ist. interessant? Übersicht Aktuelle Themen zu Informatik der Systeme: Nebenläufige Programmierung: Praxis und Semantik Einleitung 1 2 der nebenläufigen Programmierung WS 2011/12 Stand der Folien: 18. Oktober 2011 1 TIDS

Mehr

JavaSpaces. Markus Helbig, Christian Holder, Marco Jilg, Dominik Krautmann, Richard Waschhauser

JavaSpaces. Markus Helbig, Christian Holder, Marco Jilg, Dominik Krautmann, Richard Waschhauser JavaSpaces Markus Helbig, Christian Holder, Marco Jilg, Dominik Krautmann, Richard Waschhauser Agenda JavaSpaces JINI Dokumentenablage- System Probleme Demo Entstehung von JavaSpaces JavaSpaces entstand

Mehr

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06

Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Musterlösung Übungsblatt 2 Netzprogrammierung WS 05/06 Aufgabe 1 Bitte schreiben Sie ein RMI Objekt, das eine Person repräsentiert. Es soll die folgende Schnittstelle implementieren: public interface Person

Mehr

Enterprise JavaBeans Überblick

Enterprise JavaBeans Überblick Enterprise JavaBeans Überblick 1. Überblick Java EE 5 und Komponententechnologien 3. Enterprise JavaBeans Architektur 4. Ressourcen Management und Primäre Services 5. Java Persistence: Entity Manager 6.

Mehr

Praktikum Verteilte Anwendungen

Praktikum Verteilte Anwendungen Technische Informatik (Info II) -Sommersemester 2006 - Folie 1 / 27 0 Gliederung 1.) Kurze Wiederholung/ Einleitung 2.) RPC/ RMI 3.) Praktisches Beispiel 4.) Aufgabenblatt Folie 2 / 27 Wiederholung/ Einleitung

Mehr

Bayeux. Dirk Ewerlin

Bayeux. Dirk Ewerlin Bayeux Dirk Ewerlin Inhalt Einleitung Routing & Loaklisierung Basisstruktur Erweiterung der Skalierbarkeit Fehlertolerante Paketzustellung Einleitung Multicast-Lösung auf Anwendungsebene über Unicast-

Mehr

Realisierung eines OMG-konformen Tradingdienstes

Realisierung eines OMG-konformen Tradingdienstes Realisierung eines OMG-konformen Tradingdienstes Vortrag zum Großen Beleg Alexander Schlett : as14@inf.tu-dresden.de Betreuer: M. Fischer Verantwortlicher Hochschullehrer: Prof. Hußmann Gliederung Einführung

Mehr

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz. Institut für Angewandte Informatik

Programmieren II. Remote Method Invocation (RMI) Heusch -- Ratz.  Institut für Angewandte Informatik Programmieren II Remote Method Invocation (RMI) Heusch -- Ratz KIT Universität des Landes Baden-Württemberg und nationales Großforschungszentrum in der Helmholtz-Gemeinschaft www.kit.edu Remote Method

Mehr

Übungen zu Softwaretechnik

Übungen zu Softwaretechnik Prof. Dr. Dr. h.c. M. Broy Lösungsblatt 11 Dr. H. Ehler, S. Wagner 23. Januar 2004 Übungen zu Softwaretechnik Aufgabe 16 Qualitätseigenschaften Broker-Pattern Beurteilen Sie das in Aufgabe 15 benutzte

Mehr

Remote-Objekte. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1

Remote-Objekte. Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H. Prähofer 1 Remote-Objekte Motivation Architektur Client und Server-Implementierung Parameterübergabe Distributed Garbage Collection Verteilung und Nachladen von Code Pratikum SWE 2 M. Löberbauer, T. Kotzmann, H.

Mehr

Literatur. VA SS Teil 5/Messages

Literatur. VA SS Teil 5/Messages Literatur [5-1] https://en.wikipedia.org/wiki/message-oriented_middleware [5-2] https://en.wikipedia.org/wiki/advanced_message_queuing_protocol http://www.amqp.org/specification/0-10/amqp-org-download

Mehr

Einführung: Verteilte Systeme - Remote Method Invocation -

Einführung: Verteilte Systeme - Remote Method Invocation - Einführung: Verteilte Systeme - - Prof. Dr. Michael Cebulla 11. Dezember 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 43 M. Cebulla Verteilte Systeme Gliederung 1 2 Architektur RMI Kommunikation

Mehr

Java-Programmierung mit Visual J++ 1.1

Java-Programmierung mit Visual J++ 1.1 Torsten Schlabach Java-Programmierung mit Visual J++ 1.1 Java verstehen und effektiv nutzen ^ ADDISON-WESLEY An imprint of Addison Wesley Longman, Inc. Bonn Reading, Massachusetts Menio Park, California

Mehr

C++GUI Programmierung mit Qt 4

C++GUI Programmierung mit Qt 4 Jasmin Blanchette MarkSummerfield C++GUI Programmierung mit Qt 4 Die offizielle Einführung mit einem Vorwort von Matthias Ettrich ADDISON-WESLEY An imprint of Pearson Education München Boston San Francisco

Mehr

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg

COMMON OBJECT REQUEST BROKER ARCHITECTURE. Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg COMMON OBJECT REQUEST BROKER ARCHITECTURE Dmytro Pyvovar Otto-von-Guericke Universität Magdeburg Gliederung Motivation Was ist CORBA? Object Management Architecture (OMA ) Interface Definition Language

Mehr

3-schichtige Informationssystem-Architektur

3-schichtige Informationssystem-Architektur 3-schichtige Informationssystem-Architektur plattformunabhängig beliebige Endgeräte Client als Applikation & Applet XML über SOAP Standard plattformunabhängig objektorientierte Architektur multiuserfähig

Mehr

-Testen verteilter Anwendungen

-Testen verteilter Anwendungen -Testen verteilter Anwendungen Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation Teil 3 RMI over IIOP UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation Teil 3 RMI over IIOP el0100 copyright Abt. Technische Informatik,

Mehr

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion

B Java RMI B.2 B.4. 1 Java. 1.2 Methoden. 1.1 Objekte (2) 1.1 Objekte. Objektorientierte Sprache. Klassenbeschreibung. Methode ist eine Art Funktion 1 Java 1.1 e B Java RMI orientierte Sprache e beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. referenzen Verweise auf e keine Zeiger, Adressen o.ä. B.1 B.2 1.1 e (2)

Mehr

Übung zur Vorlesung "Einführung in Verteilte Systeme"

Übung zur Vorlesung Einführung in Verteilte Systeme Übung zur Vorlesung "Einführung in Verteilte Systeme" Wintersemester 2004/05 Thema: Java RMI Ulf Rerrer Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!

Mehr

Internetanwendungstechnik (Übung)

Internetanwendungstechnik (Übung) Internetanwendungstechnik (Übung) JacORB S. Bissell, G. Mühl Technische Universität Berlin Fakultät IV Elektrotechnik und Informatik Kommunikations- und Betriebssysteme (KBS) Einsteinufer 17, Sekr. EN6,

Mehr

Pyro - Python Remote Objects

Pyro - Python Remote Objects 13. Mai 2012 Pyro - Python Remote Objects 1 Pyro - Python Remote Objects Oliver Burger DHBW Stuttgart - Campus Horb 13. Mai 2012 Was ist Pyro? 13. Mai 2012 Pyro - Python Remote Objects 2 13. Mai 2012 Pyro

Mehr

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern)

Aufgaben: (dazugehörige Kapitel / Seitenangaben in Kursiv: Kapitel Seite Seitennummern) Klausur Verteilte Systeme 15.6. R120A 8:00-9:30 5 Aufgaben, 50 Punkte (8 12 pro Aufgabe) 45-50 1.0 44 1.1 35 2.0 25 3.0 15 4.0 http://www.bts.fh-mannheim.de Aufgaben: (dazugehörige Kapitel / Seitenangaben

Mehr

M i t t w o c h, 1 7. J u l i 2 0 1 3

M i t t w o c h, 1 7. J u l i 2 0 1 3 M i t t w o c h, 1 7. J u l i 2 0 1 3 M a n k a n n s e i n e M e i n u n g j a m a l r e v i d i e r e n! J a h r 2 0 1 3 : F r i e d r i c h f o r d e r t D e u t s c h e z u m e h r D a t e n s c h

Mehr

WIN-Explorer für ACT! (EFA)

WIN-Explorer für ACT! (EFA) WIN-Explorer für ACT! (EFA) Produktbeschreibung Ansicht von dem Win-Explorer in einer ACT-Ansicht Ansicht in Kontakt, Firma und Gruppen Voller Funktionsumfang vom WIN-Explorer Verknüpfung mit Firma, Kontakt

Mehr

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN:

Inhaltsverzeichnis. Carsten Vogt. Nebenläufige Programmierung. Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: Inhaltsverzeichnis Carsten Vogt Nebenläufige Programmierung Ein Arbeitsbuch mit UNIX/Linux und Java ISBN: 978-3-446-42755-6 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42755-6

Mehr

Überblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth

Überblick. Verteilte Systeme Übung. VS-Übung. Dynamische Proxies Stubs & Skeletons Dynamische Proxies als Stubs. Tobias Distler, Michael Gernoth Überblick Verteilte Systeme Übung Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de

Mehr

Praktikum Ingenieurinformatik (PI)

Praktikum Ingenieurinformatik (PI) Praktikum Ingenieurinformatik (PI) Verteilte Versionskontrolle mit Git und Github Björn Meyer Fachgebiet Technische Informatik 1 Agenda Einleitung Motivation Versionskontrolle Ansätze Git Funktionen Arbeiten

Mehr

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung

Thread-Erzeugung kostengünstiger als Prozesserzeugung Thread-Umschaltung kostengünstiger als Prozessumschaltung 1.5 Threaded Server Server als ein Prozess mit mehreren Threads Threads Thread als Aktivitätsträger virtueller Prozessor eigener Programmzähler eigener Stackbereich eingebettet in den Kontext eines Prozesses

Mehr

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel

UNIVERSITÄT LEIPZIG. Mainframe Internet Integration SS2013. Java Remote Method Invocation RMI Beispiel UNIVERSITÄT LEIPZIG Mainframe Internet Integration Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth SS2013 Java Remote Method Invocation RMI Beispiel el0100 copyright Abt. Technische Informatik,

Mehr

Remote Methode Invocation (RMI) ETIS SS05

Remote Methode Invocation (RMI) ETIS SS05 Remote Methode Invocation (RMI) ETIS SS05 Motivation Ablauf der Kommunikation Erstellung Remote-Service Zusammenfassung Gliederung 2 Motivation I RMI: Remote Method Invokation Möglichkeit verteilte Java-Anwendungen

Mehr

Remote Method Invocation

Remote Method Invocation Remote Method Invocation Aufruf von Methoden über die Grenzen der VM hinweg. Javaprozesse der rufenden und gerufenen Methode können auf verschiedenen Hosts laufen. Eine RMI-Applikation besteht aus dem

Mehr

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS 2012. Lehrstuhl i9, Prof. Dr. T.

Versionsverwaltung GIT & SVN. Alexander aus der Fünten. Proseminar: Methoden und Werkzeuge, SS 2012. Lehrstuhl i9, Prof. Dr. T. Versionsverwaltung GIT & SVN Alexander aus der Fünten Proseminar: Methoden und Werkzeuge, SS 2012 Lehrstuhl i9, Prof. Dr. T. Seidl RWTH Aachen Ablauf Was ist Versionsverwaltung? Arbeitsmodelle Lokale,

Mehr

Konfigurationsmanagement mit Subversion, Maven und Redmine

Konfigurationsmanagement mit Subversion, Maven und Redmine Günther Popp Konfigurationsmanagement mit Subversion, Maven und Redmine Grundlagen für Softwarearchitekten und Entwickler 3., überarbeitete und erweiterte Auflage Щ dpunkt.verlag 1 Einleitung 1 1.1 Wer

Mehr

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten

CORBA-Konzept. Ziele. Common Object Request Broker Architecture CORBA. Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Ziele Common Object Request Broker Architecture CORBA Plattformunabhängige Kommunikation Transparente Verteilung von Objekten CORBA-Konzept Object Management Group Spezifiziert den CORBA-Standard

Mehr

Grundlagen und Implementation. Jan Kraft

Grundlagen und Implementation. Jan Kraft Grundlagen und Implementation Jan Kraft Gliederung 1 die OMG 2 Was ist CORBA? 3 Funktionsweise 3.1 die Interface Definition Language 3.2 Objekt Adapter 3.3 weitere Komponenten des ORB 3.4 InterORB Protokolle

Mehr

Webservices für eingebettete Systeme

Webservices für eingebettete Systeme Fakultät Informatik Institut für Angewandte Informatik, Professur Technische Informationssysteme Webservices für eingebettete Systeme Dresden, 29.06.2006 Gliederung Einführung Automobilindustrie Webservice

Mehr

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste

Webservices. 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung. Hauptseminar Internet Dienste Hauptseminar Internet Dienste Sommersemester 2004 Boto Bako Webservices 1 Einführung 2 Verwendete Standards 3 Web Services mit Java 4 Zusammenfassung Was sind Web Services? Web Services sind angebotene

Mehr

Von Keerthikan T. & Siyar Kolusari 10.12.2012

Von Keerthikan T. & Siyar Kolusari 10.12.2012 M226 OBJECT ORIENTIERT PROGRAMMIEREN Project Checkers An online multi-player Java Game Von Keerthikan T. & Siyar Kolusari 10.12.2012 Inhaltsverzeichnis 1. Projektbeschreibung 3 1.1. Inhalt 3 2. Ziele

Mehr

JINI Security & Scalability. JINI Security

JINI Security & Scalability. JINI Security JINI Security & Scalability JINI Security Hans-Peter Rötheli & Christian Gloor Inhalt JINI-Beispielumgebung Kommunikation Was darf fremder Code? Exploits Folgerungen 1 Seminarraum mit Printer Lookup Service

Mehr

1 Kommunikation im World-Wide-Web

1 Kommunikation im World-Wide-Web 1 Kommunikation im World-Wide-Web 1.1 Client und Server 1 1.2 Das Internet Protokoll (IP) 4 1.3 Das Transmission Control Protokoll (TCP) 6 1.3-1 Datagramme und Streams 6 1.3.2 Port-Nummern 8 1.4 Das Hypertext

Mehr

Inhaltsverzeichnis. Zusammenfassung CORBA

Inhaltsverzeichnis. Zusammenfassung CORBA Inhaltsverzeichnis 1 Was und wofür ist CORBA?... 2 1.1 Problematik in Verteilten Systemen... 2 1.2 Entwurfszeile... 2 2 Zweck und Ziele von OMG?... 2 3 Was ist eine Schnittstellenarchitektur?... 2 3.1

Mehr

Erweiterungen zur Digitalisierung mit QGIS

Erweiterungen zur Digitalisierung mit QGIS Erweiterungen zur Digitalisierung mit QGIS Dipl. Geogr. Bernhard Ströbl Anwendungsbetreuer GIS Kommunale Immobilien Jena Am Anger 26, 07743 Jena www.kij.de Kommunale Immobilien Jena, IT-Service Dienstleister

Mehr

Verlustbehaftete Kompression in

Verlustbehaftete Kompression in , Thomas Kalinski, Harald Hofmann, Albert Roessner, Johannes Bernarding 1 Einleitung.1 Übersicht Digitale Pathologie Informationssystem Pathologie (IS-P) Präparatverwaltung Blockverwaltung Slideverwaltung

Mehr

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote

ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote Seite 1 von 10 ISA Server 2004 Erstellen eines neuen Netzwerkes - Von Marc Grote Die Informationen in diesem Artikel beziehen sich auf: Microsoft ISA Server 2004 Einleitung Microsoft ISA Server 2004 bietet

Mehr

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker

PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker RMI, Zusammenfassung und Lehrevaluation PROG 2: Einführung in die Programmierung für Wirtschaftsinformatiker Steffen Helke Technische Universität Berlin Fachgebiet Softwaretechnik 8. Juli 2013 Übersicht

Mehr

CORBA. Systemprogrammierung WS 2006-2007

CORBA. Systemprogrammierung WS 2006-2007 CORBA Systemprogrammierung WS 2006-2007 Teilnehmer: Bahareh Akherattalab Babak Akherattalab Inhaltsverzeichnis: Verteilte Systeme Vergleich zwischen lokale und verteilte Systeme Verteilte Anwendungen CORBA

Mehr

Steffen Heinzl Markus Mathes. Middleware in Java

Steffen Heinzl Markus Mathes. Middleware in Java Steffen Heinzl Markus Mathes Middleware in Java Leitfaden zum Entwurf verteilter Anwendungen - Implementierung von verteilten Systemen über JMS - Verteilte Objekte über RMI und CORBA Mit 50 Abbildungen

Mehr

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente

Autorisierung. Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Autorisierung Sicherheit und Zugriffskontrolle & Erstellen einer Berechtigungskomponente Dokumentation zum Referat von Matthias Warnicke und Joachim Schröder Modul: Komponenten basierte Softwareentwickelung

Mehr

Integration verteilter Systeme über die Cloud

Integration verteilter Systeme über die Cloud Integration verteilter Systeme über die Cloud AIT CloudProTEAM Cloud Computing Nur ein Teil des Ganzen Problemstellung Netzwerk A Netzwerk B Problemstellung NAT HW-Firewall SW-Firewall NAT HW-Firewall

Mehr

Versionsmanagement mit Subversion

Versionsmanagement mit Subversion Tobias Wassermann Versionsmanagement mit Subversion Installation, Konfiguration, Administration Einleitung 11 Teil I Einstieg in Subversion 13 i Subversion: Was ist das? 15 I.I Versionsmanagement: Rückblick

Mehr

Entwicklung eines Parsers von BIND- Konfigurationsdateien zur Migration in eine MySQL-Datenbank Markus Dienstknecht

Entwicklung eines Parsers von BIND- Konfigurationsdateien zur Migration in eine MySQL-Datenbank Markus Dienstknecht Entwicklung eines Parsers von BIND- Konfigurationsdateien zur Migration in eine Markus Dienstknecht Seminarvortrag 15.01.2015 Inhaltsverzeichnis 1. Motivation 2. Domain Name System (DNS) a. Domain Name

Mehr

ADDISON-WESLEY PUBLISHING COMPANY

ADDISON-WESLEY PUBLISHING COMPANY Jens-Peter Redlich CORBA 2.0 Praktische Einführung für C++ und Java Mit einem Geleitwort von Richard Mark Soley ADDISON-WESLEY PUBLISHING COMPANY Bonn Reading, Massachusetts Menlo Park, California New

Mehr

Vorlesung "Verteilte Systeme" Sommersemester 1999

Vorlesung Verteilte Systeme Sommersemester 1999 Verteilte Systeme Sommersemester 1999 Universität Trier Peter Sturm Abstract In einem verteilten System kommunizieren mehrere Prozesse durch den Austausch von Nachrichten. Ausführungsplattform sind dabei

Mehr

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Einrichtung des Cisco VPN Clients (IPSEC) in Windows7 Diese Verbindung muss einmalig eingerichtet werden und wird benötigt, um den Zugriff vom privaten Rechner oder der Workstation im Home Office über

Mehr

Webseiten erstellen für Einsteiger

Webseiten erstellen für Einsteiger Daniel Mies Webseiten erstellen für Einsteiger Schritt für Schritt zur eigenen Website Galileo Press Vorbemerkungen 15 1 Vordem Start 21 1.1 Wie kommt die Seite aus dem Internet auf meinen Computer? 21

Mehr

Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung

Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung Behandlung von Netzwerk- und Sicherheitsaspekten in einem Werkzeug zur verteilten Paarprogrammierung Institut Mathematik und Informatik - 15. April 2010 Agenda 1 Einleitung 2 Saros Architektur Daten senden

Mehr

JMS Java Message Service

JMS Java Message Service JMS Java Message Service TK3 WS02/03 Dipl.-Ing. Erwin Aitenbichler Abt. Telekooperation TU Darmstadt 1 JMS: Java Message Service Messaging Lose gekoppelte verteilte Kommunikation RMI: Eng gekoppelt Sender

Mehr

Bruce Schneier, Applied Cryptography

Bruce Schneier, Applied Cryptography Gnu Privacy Guard In der Praxis gibt es zwei Formen von Kryptographie: Mit der einen Form der Kryptographie können Sie Ihre Dateien vielleicht vor Ihrer kleinen Schwester schützen, mit der anderen Form

Mehr

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition)

Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Ein Prozess kann unmittelbar vom Zustand 1. Running in den Zustand Ready 2. Running in den Zustand Blocked 3. Ready in den Zustand Running Klausurvorbereitung VS1 (Prof. Brecht) (B0rg Edition) Der Adressraum

Mehr

Rechnernetze und verteilte Systeme (BSRvS II)

Rechnernetze und verteilte Systeme (BSRvS II) Rechnernetze und verteilte Systeme (BSRvS II) Station Server Komponente Middleware Komponente lokales BS TCP IP... Trends Übersicht Plattformtypen CORBA Prof. Dr. Heiko Krumm FB Informatik, LS IV, AG RvS

Mehr

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel

VS7 Slide 1. Verteilte Systeme. Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel VS7 Slide 1 Verteilte Systeme Vorlesung 7 vom 27.05.2004 Dr. Sebastian Iwanowski FH Wedel Inhaltsverzeichnis für die Vorlesung Zur Motivation: 4 Beispiele aus der Praxis Allgemeine Anforderungen an Verteilte

Mehr

Client/Server-Systeme

Client/Server-Systeme Client/Server-Systeme Prof. Dr.-Ing. Wilhelm Spruth SS 2005 Teil 15 CORBA cs 1000 ww6 wgs 05-97 Wiederverwendbarkeit von Code Vorbild: Entwurf/Bau einer Brücke im Bauingenieurwesen Objekttechnologie ermöglicht

Mehr

Datenmanagement in Android-Apps. 16. Mai 2013

Datenmanagement in Android-Apps. 16. Mai 2013 Datenmanagement in Android-Apps 16. Mai 2013 Überblick Strukturierung von datenorientierten Android-Apps Schichtenarchitektur Möglichkeiten der Datenhaltung: in Dateien, die auf der SDCard liegen in einer

Mehr

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1

Web Services. XML, WSDL, SOAP und UDDI Einblicke und Ausblicke. 31.03.2003 J.M.Joller 1 Web Services XML, WSDL, SOAP und UDDI Einblicke und Ausblicke 31.03.2003 J.M.Joller 1 Inhalt Architekturen Main Stream.NET J2EE und Applikations-Server Sicht der Anbieter Java J2EE J2EE versus.net Web

Mehr

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel

Einführung Servlets. JEE Vorlesung Teil 2. Ralf Gitzel Einführung Servlets JEE Vorlesung Teil 2 Ralf Gitzel ralf_gitzel@hotmail.de 1 Übersicht Wiederholung Hello World Blick in die Details Servlet Programmierung Potentielle Fehler Lernziele Gruppenübung 2

Mehr

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme

Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe eingebettete Dienstesysteme Titel CORBA Eine Middleware-Plattform für objektorientierte Technologien von Martin Villis 6. Mai 2004 Projektgruppe 453: Entwurf eines Managementwerkzeugs zur Verwaltung von Sicherheitsdiensten für komplexe

Mehr

Kommunikation. Björn und Georg

Kommunikation. Björn und Georg Kommunikation Björn und Georg CORBA CORBA (Common Object Request Broker Architecture) Entwicklung der OMG ( Object Management Group) Zusammenschluss von 800 Firmen Hardware- und Progammiersprachen-unabhängiges

Mehr

Verteidigung. Diplomarbeit Thema: Evaluation des Projekts Quality Objects. Sven Harazim

Verteidigung. Diplomarbeit Thema: Evaluation des Projekts Quality Objects. Sven Harazim Verteidigung Diplomarbeit Thema: Evaluation des Projekts Quality Objects Sven Harazim sh17@inf.tu-dresden.de Gliederung Aufgabenstellung Vorgehensweise Aufbau und Anwendung des Frameworks Quality Objects

Mehr

B Java RMI B.1 B.2. 1 Java. 1.1 Objekte. Objektorientierte Sprache

B Java RMI B.1 B.2. 1 Java. 1.1 Objekte. Objektorientierte Sprache B Java RMI B.1 1 Java 1.1 Objekte Objektorientierte Sprache Objekte beschrieben in Klassendefinitionen und andere Datentypen: int, float, boolean, etc. Objektreferenzen Verweise auf Objekte keine Zeiger,

Mehr

Janeva:.NET meets J2EE

Janeva:.NET meets J2EE Inhalt: Motivation Was ist Janeva? Systemvoraussetzungen Installation Beispiel Converter Fazit Motivation Motivation: Janeva testen einen Überblick verschaffen Lauffähiges Beispiel Entscheidungshilfe über

Mehr

Inhaltsverzeichnis. Rainer Oechsle. Parallele und verteilte Anwendungen in Java ISBN: Weitere Informationen oder Bestellungen unter

Inhaltsverzeichnis. Rainer Oechsle. Parallele und verteilte Anwendungen in Java ISBN: Weitere Informationen oder Bestellungen unter sverzeichnis Rainer Oechsle Parallele und verteilte Anwendungen in Java ISBN: 978-3-446-42459-3 Weitere Informationen oder Bestellungen unter http://www.hanser.de/978-3-446-42459-3 sowie im Buchhandel.

Mehr

i i apitel apitel K K Inhalt Inhalt

i i apitel apitel K K Inhalt Inhalt Seite iv 0 Einleitung........................................... 1 Kombination der Leistungsbereiche.............. 3 Über dieses Buch.................................. 3 Arbeiten mit den Beispielanwendungen..........

Mehr