|
|
- Erwin Becke
- vor 8 Jahren
- Abrufe
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 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
MehrJava-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
MehrRemote 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
MehrKonzepte 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
MehrProgrammieren 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
MehrMusterlö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:
MehrKommunikation 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
MehrRainer 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
MehrNetzwerkprogrammierung 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
MehrSystemprogrammierung. 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
MehrCORBA. 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
MehrMobile 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
MehrDas 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
MehrMobile 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
MehrMultiuser 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
Mehr8.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
Mehr9. 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
MehrPrü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
MehrKonzepte 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.
MehrAbbildung 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
MehrVerteilte 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)
MehrJava 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
MehrClient/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
MehrClient/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
MehrSOAP 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 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
MehrJavaSpaces. 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
MehrMusterlö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
MehrEnterprise 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.
MehrPraktikum 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
MehrBayeux. Dirk Ewerlin
Bayeux Dirk Ewerlin Inhalt Einleitung Routing & Loaklisierung Basisstruktur Erweiterung der Skalierbarkeit Fehlertolerante Paketzustellung Einleitung Multicast-Lösung auf Anwendungsebene über Unicast-
MehrRealisierung 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
MehrProgrammieren 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
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
MehrRemote-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.
MehrLiteratur. 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
MehrEinfü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
MehrJava-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
MehrC++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
MehrCOMMON 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
Mehr3-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 Seminar Simulation und Bildanalyse mit Java im SS04 Konstantin Tjo, Urs Pricking Testen verteilter Anwendungen 1 Übersicht Einführung in verteilte Anwendungen RMI (Remote
MehrUNIVERSITÄ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,
MehrB 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" Wintersemester 2004/05 Thema: Java RMI Ulf Rerrer Institut für Informatik Universität Paderborn Inhalt Java Remote Method Invocation RMI-Architektur!
MehrInternetanwendungstechnik (Ü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,
MehrPyro - 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
MehrAufgaben: (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
MehrM 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
MehrWIN-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
MehrInhaltsverzeichnis. 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 Tobias Distler, Michael Gernoth Friedrich-Alexander-Universität Erlangen-Nürnberg Lehrstuhl Informatik 4 (Verteilte Systeme und Betriebssysteme) www4.informatik.uni-erlangen.de
MehrPraktikum 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
MehrThread-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
MehrUNIVERSITÄ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,
MehrRemote 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
MehrRemote 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
MehrVersionsverwaltung 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,
MehrKonfigurationsmanagement 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
MehrCORBA-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
MehrGrundlagen 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
MehrWebservices 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
MehrWebservices. 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
MehrVon 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
MehrJINI 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
Mehr1 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
MehrInhaltsverzeichnis. 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
MehrErweiterungen 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
MehrVerlustbehaftete Kompression in
, Thomas Kalinski, Harald Hofmann, Albert Roessner, Johannes Bernarding 1 Einleitung.1 Übersicht Digitale Pathologie Informationssystem Pathologie (IS-P) Präparatverwaltung Blockverwaltung Slideverwaltung
MehrISA 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
MehrPROG 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
MehrCORBA. 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
MehrSteffen 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
MehrAutorisierung. 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
MehrIntegration 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
MehrVersionsmanagement 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
MehrEntwicklung 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
MehrADDISON-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
MehrVorlesung "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
MehrEinrichtung 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
MehrWebseiten 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
MehrBehandlung 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
MehrJMS 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
MehrBruce 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
MehrKlausurvorbereitung 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
MehrRechnernetze 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
MehrVS7 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
MehrClient/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
MehrDatenmanagement 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
MehrWeb 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
MehrEinfü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
MehrProjektgruppe 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
MehrKommunikation. 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
MehrVerteidigung. 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
MehrB 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,
MehrJaneva:.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
MehrInhaltsverzeichnis. 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.
Mehri 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