objektni modeli porazdeljenega procesiranja matjaz branko juric marjan hericko ivan rozman fakulteta za elektrotehniko racunalnistvo in informatiko institut za informatiko povzetek tehnologija porazdeljenih objektov omogoca izdelavo aplikacij pri katerih z lahkoto uporabimo obstojece objekte dodamo manjkajoce funkcionalnosti in dobimo integrirano aplikacijo pri tem porabimo neprimerno manj casa kakor pri klasicnem pristopu objekti niso vezani na lokacijo ampak jih lahko prosto premikamo po omrezju za komunikacijo je odgovoren posrednik zahtev objektov ki predstavlja jedro objektnega modela porazdeljenega procesiranja v prispevku opisemo najpomembnejsa modela corba omg in dcom microsoft in prikazemo njune prednosti in slabosti ter moznost povezave prikazemo tudi vlogo porazdeljenih objektov pri gradnji vecplastnih aplikacij in njihovo prakticno uporabno vrednost uvod podjetja v vedno vecji meri uporabljajo informacijsko tehnologijo kot stratesko orodje ki jim zagotavlja trajno prednost pred konkurenco vlogo informacijskih sistemov kot integralnega dela strategije podjetja je omogocil napredek racunalniske tehnologije in narava globalne ekonomije s prilagajanjem na vedno vecje konkurencne pritiske se podjetja naslanjajo na informacijsko tehnologijo tako zaradi zmanjsanja stroskov in boljsega upravljanja delovnih tokov kot tudi za zagotavljanje boljsih izdelkov in storitev napredek v racunalniski tehnologiji kot npr model odjemalec streznik je omogocil informacijskim sistemom da zadostijo narascajocim potrebam strateska uporaba informacijskih sistemov pomeni vecje breme za informacijske oddelke v podjetjih le ti morajo nuditi boljse sisteme v krajsem casu in istocasno ostati v koraku s hitrimi spremembami programske tehnologije kljub razlicnim orodjem za hiter razvoj aplikacij se vecina informacijskih oddelkov se vedno spopada z monolitnimi strukturnimi programi objektna tehnologija nudi potencial za zagotovitev kljucnih prednosti pri razvoju novih inovativnih aplikacij ki pomagajo podjetju preziveti v dinamicni tekmovalni ekonomiji z uporabo objektnih konceptov je mogoce ustvariti idealno racunalnisko okolje ki omogoca uporabnikom da kontrolirajo svoja racunalniska okolja in ne obratno objektno orientirano programiranje je ena oblika objektne tehnologije pri razvoju programske opreme nudi objektno programiranje model ki se razlikuje od klasicnega strukturnega modela ki bazira na funkcijah in procedurah poenostavljeno povedano je objektno orientirano programiranje nacin kako razviti program z izgradnjo samostojnih modulov ki jih lahko enostavno zamenjamo spreminjamo in ponovno uporabimo vendar tehnologija objektnega programiranja ni popolnoma zadovoljila potreb po enostavnem razvoju aplikacij nova oblika porazdeljene objektne tehnologije ponuja bolj oprijemljive prednosti omogoca integracijo vnaprej pripravljenih programskih objektov ali komponent neodvisnih od dobavitelja lokacije in platforme zamislimo si izgradnjo sistema za izdajo racunov pri klasicnem proceduralnem pristopu bi dobili monolitno aplikacijo ki bi v najboljsem primeru uporabljala loceno podatkovno bazo npr oracle ali sql server slika objektno orientiran sistem za izdajo racunov tudi pri objektno orientiranem programiranju bi naleteli na tezave kakor hitro bi zeleli uporabiti vec kot en programski jezik klasicni objekti zivijo le znotraj enega programa ni enostavnega nacina za komunikacijo med objekti v razlicnih programih ali razlicnih programskih jezikih problem je tudi ponovna uporaba saj je potrebno v vsak nov projekt vkljuciti izvorno kodo uporaba porazdeljene objektne tehnologije pa bi omogocila uporabo priblizno odstotkov obstojecih objektov napisati bi bilo potrebno le odstotkov kode in zagotoviti integracijo komponent slika tak sistem bi lahko zgradili v neprimerno krajsem casu vendar to se ni vse tak sistem za izdajo racunov bi lahko hitro razsirili v omrezje in ga povezali z drugimi uslugami tudi ce te delujejo na drugacni strojni opremi in pod drugimi operacijskimi sistemi ce bi zeleli sistem razsiriti z grafi in statisticnimi analizami bi preprosto kupili vnaprej pripravljene komponente in jih vkljucili v obstojeci sistem vse to se mogoce slisi zelo futuristicno vendar obstajajo tehnologije ki to omogocajo ravno te nas bodo zanimale v prispevku porazdeljeni objekti ali komponente da bi razumeli kje je bila industrija programske opreme pred uporabo tehnologije porazdeljenih objektov si zamislimo industrijo racunalniske strojne opreme brez standardov ki definirajo kako se racunalniske komponente povezujejo in kako delujejo skupaj v taksnih razmerah bi npr ibm izdeloval prav vsako komponento za svoje racunalnike od trdih diskov in procesorjev preko pomnilnika do tipkovnice in monitorja tako npr ibm ov monitor ne bi bil uporaben z nobenim drugim racunalnikom v najslabsem primeru niti z razlicnimi tipi ibm ovih racunalnikov razlog bi bil neobstoj standardov za povezavo kabli monitorja bi bili specificni prav tako prikljucki specificen bi bil tudi nacin izmenjave podatkov z racunalnikom zdaj si zamislimo da zacne ibm uporabljati objektni pristop le ta bi omogocil ibm u definicijo internih standardov za monitorje v modularnem smislu kljub temu pa monitorji podjetja ibm ne bi bili uporabni z racunalniki podjetja compaq in obratno tudi ce bi compaq uporabljal objektni pristop compaqovi standardi bi bili drugacni kljub temu da imata monitorja skupno specifikacijo nimata skupnega vmesnika ki ga zagotovi sele tehnologija porazdeljenih objektov ce bi compaq zelel uporabljati ibm ove monitorje bi moral spremeniti prikljucke na racunalnikih kupci ki so kupili racunalnik pred to spremembo pa jih kljub temu ne bi mogli uporabljati objektno orientirani jeziki so zagotovili nacin za specifikacijo internih podrobnosti za objekte niso pa ponudili standardnega nacina za povezavo objektov napisanih v razlicnih programskih jezikih niso torej zagotovili skupnega vmesnika ravno to je poslanstvo tehnologije porazdeljenih objektov ce so zgrajeni korektno so objekti v sistemu visoko povezljivi in relativno enostavno je zamenjati oddaljene objekte z lokalnimi in tako razsiriti komunikacijo skozi omrezje narava objektov radikalno spreminja nacin razmisljanja o tem kje so nasi podatki podatki ograjeni v objekte lahko pridejo tja kjer so najbolj potrebni trenutno razmisljamo da so dokumenti enostavno shranjeni na dolocenem trdem disku porazdeljeni objektni sistemi zavracajo to tezo in nudijo moc in fleksibilnost shrambe neodvisne od lokacije omrezni operacijski sistemi so ze od nekdaj skrivali lokacijo virov pred aplikacijami v novem obdobju smo prica iluziji ene sistemske slike skozi milijone hibridnih racunalnikov slika razvoj tehnologije porazdeljenih objektov prehod na porazdeljene objektno orientirane sisteme dominira ob koncu tega tisocletja objekti lahko pomagajo razbiti velike monolitne aplikacije v vec komponent ki sodelujejo v globalnem omrezju so tudi edini up za upravljanje milijonov programskih entitet v svetovnem omrezju na tehnologijo distribuiranih objektov lahko gledamo kot na nadmnozico obstojecih tehnologij uporabljenih pri gradnji sistemov tipa odjemalec streznik distribuirani objekti znajo vse kar znajo ostale tehnologije in to bolje tako naj bi zasencili sql podatkovne baze tp monitorje in orodja za podporo skupinskemu delu kar prikazuje slika distribuirani objekti so naslednji velik korak v zgodovini racunalnistva objektni modeli za gradnjo porazdeljenih objektnih sistemov potrebujemo objektni model infrastrukturo ki omogoca transparentno komunikacijo med objekti objektnemu modelu pripada pomembna vloga saj je osnova za gradnjo programske opreme sestavljene iz komponent pomembno je da objektni model formalno definira komponente in pravila interakcije med njimi distribuirane aplikacije razvijamo kot mnozice objektov ki med seboj sodelujejo posrednik zahtev objektov object request broker orb omogoca integracijo in komunikacijo med objekti aplikacije postanejo neodvisne od platforme omrezja lokacije in implementacij objektov posrednik zahtev objektov object request broker orb je odgovoren za vse mehanizme potrebne za iskanje dolocenega objekta za pripravo le tega na sprejem zahteve in za komunikacijo vmesnik ki ga vidi odjemalec je popolnoma neodvisen od tega kje je objekt lociran v katerem programskem jeziku je implementiran ali od cesar koli drugega kar se ne odraza v vmesniku objekta danes je na voljo vec objektnih modelov dva izmed njih sta dosegla vecji trzni delez in uzivata podporo razvijalcev to sta common object request broker arhitecture corba ki jo razvija object management group omg in distributed component object model dcom podjetja microsoft object management group omg je konzorcij objektnih dobaviteljev obstaja od leta ukvarja se s specifikacijo arhitekture odprtega programskega vodila na osnovi katerega lahko povezemo objektne komponente razlicnih dobaviteljev preko omrezja organizacija omg doloca smernice in specifikacije upravljanja z objekti in doloca okvir za razvoj aplikacij rezultat je arhitektura upravljanja z objekti oma object management arhitecture in specifikacija corba slika microsoftova prva delujoca verzija dcom a je na voljo v okviru operacijskega sistema windows nt od konca leta dcom je razsiritev obstojecega component object modela na katerem temelji ole in activex in omogoca komunikacijo objektov preko omrezja z razvojem je precej za omg jem microsoftova prednost pa je prevlada na trgu in veliko stevilo uporabnikov okolja windows omenimo naj se obstoj drugih distribuiranih objektnih modelov ibm ov system object model som prvic uporabljen v os sluzi kot osnova opendoc u opendoc podpirajo apple novell sun xerox oracle ibm in taligent zastavljen je neodvisno od platforme vendar je z razvojem dalec za konkurenco som je bil razsirjen in omogoca dostop do distribuiranih objektov dsom distributed som je skladen s specifikacijo corba vso funkcionalnost objektnih sistemov pa ze nudi nextstep javasoft razvija posrednik zahtev objektov javabeans ki je omejen na programski jezik java je pa neodvisen od platforme slika common object request broker arhitecture corba od distribuiranih ne objektnih sistemov naj omenimo samo open system foundation osf distributed computing environment dce le ta sluzi kot podlaga stevilnim corba implementacijam in kot osnova microsoft distributed component object modela v prispevku bomo obdelali osnovne lastnosti arhitekture corba in dcom arhitektura porazdeljenih objektnih sistemov tako arhitektura corba kot dcom omogoca izdelavo porazdeljenih objektnih sistemov implementaciji obeh arhitektur nudita osnovo potrebno aplikacijam za uporabo prednosti porazdeljenega pristopa med modeloma obstajajo velike podobnosti ceprav je corba plod razvoja organizacije omg in je dcom razvil microsoft locitev vmesnika od implementacije pomemben vidik distribuiranih objektov ki ga podpirata corba in dcom je locitev vmesnika objekta od njegove implementacije taksna locitev omogoca lazjo ponovno uporabo saj uporabniku ni potrebno imeti znanja o implementacijskih podrobnosti odjemalci neke implementacije objekta poznajo samo njen vmesnik ko je vmesnik definiran lahko napisemo poljubno stevilo implementacij ki podpirajo isti vmesnik odjemalca ne zanima katero implementacijo uporablja obe arhitekturi dosezeta to locitev z uporabo jezika za definicijo vmesnikov interface definition language idl idl je neodvisni programski jezik v katerem definiramo vmesnike objektov implementacijo funkcionalnosti ki jo vmesnik nudi pa izdelamo v poljubnem programskem jeziku omg jev in microsoftov idl pa se precej razlikujeta lokacijska transparentnost lokacijska transparentnost omogoca dostop do lokalnih objektov na isti nacin kot do oddaljenih koda je v obeh primerih enaka arhitektura porazdeljenih objektov konkretno posrednik zahtev objektov orb je tista ki je odgovorna za postopke potrebne za oddaljeno prozenje metod corba in dcom dosezeta to s posrednisko kodo za odjemalce in objektne implementacije ki jo oblikuje idl prevajalnik potrebna so tudi pravila in rutine za upravljanje pomnilnika ostale podobnosti corba in dcom podpirata dedovanje vmesnikov in polimorfizem definicije vmesnikov shranjujeta v repozitoriju podobno je tudi registriranje in aktiviranje streznikov corba in com omogocata odjemalcem dinamicno prozenje zahtev corba imenuje to vmesnik dinamicnega prozenja com pa ole avtomatizacija ole automation prednosti modela corba pomembno je razumeti da specifikacija arhitekture corba nastaja z neke vrste konsenzom med clani omg ja in da specifikacija doloca funkcionalnosti ki jih morajo nuditi implementacije specifikacija pa ne doloca kako posamezni dobavitelji funkcionalnosti dosezejo zato obstaja vec razlicnih implementacij corba arhitekture tabela i pomembno je poudariti da so corba implementacije razlicnih ponudnikov med seboj povezljive corba podpira neprimerno vecje stevilo platform kot microsoftov dcom implementacija dcom a je na drugi strani samo ena microsoftova trenutno deluje samo na operacijskem sistemu windows nt verzija za windows je v beta preizkusanju sledila naj bi verzija za mac e za zagotovitev podpore na unix in mvs platformah se je microsoft povezal s software ag in dec om pri natancni analizi obeh modelov ugotovimo da je dcom trenutno kompleksnejsi od vecine corba implementacij tako se morajo razvijalci v okolju dcom ukvarjati s podrobnostmi ki jih corba opravi avtomatsko corba ima prednost tudi pri specifikaciji vmesnikov microsoftov idl midl namrec uporablja kazalce in mehanizme posiljanja parametrov omg idl je veliko preprostejsi in bolj neodvisen od programskih jezikov na voljo od podprte platforme podprte usluge integracija s com iona orbix poletja windows mac solaris sunos sgi hp os sco irix digital unix aix vms vxworks qnx poimenovanje dogodkovne da dec objectbroker spetembra vecina unix windows mac vms mvs delno usluge poimenovanja da visigenic orbeline poletja sunos solaris hp ux aix digital unix unixware sco windows vxworks lynx psos cray nobena da hp orb plus hp ux solaris aix windows nt poimenovanje dogodkovne zivljenjski cikel da sunsoft neo solaris poimenovanje dogodkovne relacijske ne expersoft powerbroker delno od v celoti windows solaris hp ux aix poimenovanje da ibm somobjects poletja os aix windows mvs os samo nestandardne ne tabela i ponudniki corba skladnih implementacij corba je na trziscu precej dalj casa in je nedvomno bolj zrela in bolj stabilna arhitektura vecina corba implementacij tako nudi usluge poimenovanja s katerimi povezemo objekte z imeni relativno na imenski kontekst usluge poimenovanja so kljucne za velike aplikacije vendar jih dcom se nima prednosti modela dcom osnovna prednost modela dcom je nedvomno njegova tesna integracija z operacijskim sistemom windows ce je okolje windows edino za katerega razvijamo je dcom v prednosti potrebna izvrsna programska oprema prihaja poleg operacijskega sistema zaenkrat windows nt potrebna podpora za razvoj pa je vkljucena v visual c in win sdk corba razvojna orodja na drugi strani stanejo tudi do nekaj deset tisoc dolarjev drugo pomembno podrocje so integrirana razvojna okolja trenutno poteka razvoj vmesnikov in njihovo vzdrzevanje rocno orodja niso integrirana v razvojna okolja prav tako ni pomoci v obliki carovnikov za oblikovanje implementacij objektov ucinkovita razvojna okolja bodo imela velik vpliv pri prodoru porazdeljene objektne tehnologije na windows platformah ima microsoft prednost glede na prevlado visual c ker je dcom razsiritev com a za com pa obstaja precejsna programska podpora ima tudi dcom dobre izglede za podporo s strani neodvisnih razvijalcev integracija modela corba z modelom dcom vidimo da je semantika modelov corba in dcom zelo podobna kljub temu obstajajo razlike integracija modela corba z modelom com je standardizirana s strani omg ja in nudijo jo stevilni ponudniki corba implementacij taksna integracija omogoca transparentni dostop odjemalcev com do streznikov corba in obratno com razvijalci vidijo corba objekte kot da so com objekti isto velja za nasprotno smer v pripravi je podobna integracija za model dcom razvijalci bodo v prihodnosti imeli tri moznosti uporabili bodo lahko model corba dcom ali pa kombinacijo obeh modelov pri tem bodo izrabili najboljse lastnosti obeh modelov enega takih poskusov zdruzitve najdemo v modelu sedona podjetja oracle vecplastne aplikacije vecplastna arhitektura je preverjen nacin za razvoj poslovnih resitev osnovanih na modelu odjemalec streznik je neodvisna od tehnologije in jo lahko implementiramo na vsaki tehnologiji ki omogoca standardizacijo vmesnikov za vsak logicni nivo imenovan plast s poudarkom na cistih vmesnikih med plastmi skrijemo implementacijske detajle komponente ki skrbijo za dolocene funkcije izdelamo v razlicnih programskih jezikih po zgornjem opisu vidimo da so porazdeljeni objektni sistemi idealna osnova za izgradnjo vecplastnih poslovnih aplikacij najenostavnejsi vecplastni model je tri plastni model sestavljen iz plasti uslug uporabniskega vmesnika poslovnih uslug in podatkovnih uslug slika komunikacijo med plastmi zagotavlja posrednik zahtev objektov slika tri plastni model porazdeljene aplikacije pomembna lastnost druge izdaje arhitekture corba je integracija orb jev razlicnih ponudnikov corba je ugledala luc sveta avgusta na object world u v san franciscu takrat je petnajst podjetij predstavilo svoje neodvisne corba implementacije na katerih je delovala ena distribuirana aplikacija ta demonstracija je prikazala zrelost in dostopnost tehnologije obstajajo napovedi da bo do konca tisocletja uporabljalo arhitekturo corba preko devet milijonov racunalnikov kar bo predstavljalo nekako trga distribuiranih objektov danes uporabljajo corba skladne posrednike zahtev objektov na razlicnih podrocjih banke bank of boston chemical bank ibm credit corp zavarovalnice travelers letalska industrija allied signal aerospace technology space telescope science institute hubblov teleskop transport narfolk southern railroad wheels telekomunikacije bell sygma telecom solutions british telecom labs time warner communications in mnogi drugi v vecini primerov se je z novimi aplikacijami povecala produktivnost in stroski so se znizali prav tako je tehnologija porazdeljenih objektov omogocila prehod iz velikih racunalnikov na omrezje osebnih racunalnikov dcom je toliko nova tehnologija da o prakticni uporabi se ni podatkov podporo za njegovega predhodnika com pa najdemo v prakticno vseh pomembnejsih aplikacijah za okolje windows slika integracija tehnologij pri gradnji porazdeljenih aplikacij za prikaz uporabe tehnologije distribuiranih objektov in njihove povezave z internetom in podatkovnimi bazami razvijamo porazdeljeno aplikacijo s ciljem podpore organizaciji in vodenju seminarjev in delavnic deli aplikacije delujejo znotraj spletnih pregledovalnikov slika prikazuje grobo shemo uporabe tehnologij in njihove integracije sklep objektno orientirani programski jeziki omogocajo razvoj programov z izgradnjo samostojnih modulov objektov ne omogocajo pa povezave objektov ne glede na njihovo lokacijo uporabljen programski jezik prevajalnik ali operacijski sistem to omogocajo porazdeljeni objekti ponovna uporaba objektov postane realnost saj za njo ne potrebujemo izvorne kode ker so porazdeljeni objekti neodvisni od lokacije je resen tudi problem povezljivosti ko govorimo o distribuiranih objektih govorimo dejansko o neodvisnih programskih komponentah komponente nam pomagajo osredotociti se na postopke in ne na orodja pomagajo nam zgraditi aplikacije ki so boljse hitrejse in uporabnejse od danasnjih zgrajene so z manj napora in so zanesljivejse delujejo v globalnem omrezju sestavljenem iz milijonov racunalnikov z razlicno strojno opremo in razlicnimi operacijskimi sistemi objekti so del revolucije komponent ki smo jo ze doziveli pri strojni opremi predstavljajo programski ekvivalent mikro cipa in posledicno osebnega racunalnika v kolikor se bodo napovedi uresnicile in se bo razvoj porazdeljene objektne komponentne tehnologije odvijal s primerljivo hitrostjo kakor razvoj osebnih racunalnikov pred dobrim desetletjem bomo kmalu prica novi revoluciji revoluciji ki bo spremenila nacin uporabe in izgradnje programske opreme literatura guttman m matthews j r the object technology revolution john wiley sons inc usa juric m b corba objektna zasnova porazdeljenega procesiranja feri maribor oktober omg corbafacilities common facilities architecture revision november omg corbaservices common object services specification revised edition march updated march omg the common object request broker architecture and specification revision july orfali r harkey d edwards j client server computing byte apr str soley r m ph d object management arhitecture guide omg john wiley sons inc revision third edition jun wayner p objects on the march byte jan str