MULTIMEDIJALNI SISTEMI OBJEKTNO ORIJENTISANE MULTIMEDIJE Objektno orijentisane multimedije
MULTIMEDIJALNI SISTEMI OBJEKTNO ORIJENTISANE MULTIMEDIJE
Objektno orijentisane multimedije su obrazovnoj praksi postale nezaobilazne. u Okruženja obrazovnog računarskog softvera su objektno orijentisana. Primer za ovo je objektno orijentisana grafika Wisskirchen (1990).
Takođe, objektno orijentisane tehnike koriste se za slike, muziku, animacijski softver, kao i video (npr. (Ne. XT Inc. 1992; Shonorf 1993. ). Postoji prirodna povezanost između multimedijalnog programiranja i jezika za objektno orijentisano programiranje.
Mnogi objektno orijentisani programski jezici pokazali su se u praksi kao delotvorni naročito u izradi komercijalnih aplikacije, npr. Smaltalk, C++ Objective C, Eiffel itd. O projektovanju i objektno orijentisanom programiranju postoji brojna literatura. Pokušavamo osvetliti neke pojmove objekto orijentisane tehnologije, sa napomenom da ovi sadržaji nisu namenjeni da služe kao vodič u primeni te tehnologije.
Kompresija: Multimedijlna okruženja su za programere bili izazov. Prvo: dugogodišnji koncepti uključujući audio i video produkciju, animaciju i muziku za njih su bili novina za koju nisu imali odgovarajuću obuku. Drugo: Multimedijalne aplikacije često zahtevaju (uključuju) specijalni hardver i interfejse za operativne procedure.
Dobra strana objektno orijentisanog programiranja je mogućnost kompresije podataka, što programerima olakšava posao, tj. oslobađa ih mnogih detalja koji se odnose na određene medije i hardver.
Modulacija: Oprema koja se danas koristi u audio i video studijima bazirana je na digitalnoj tehnologiji, što omogućuje programerima prožimanje kompletnog proizvoda počev od audio i video miksa do izdavačkog oblikovanja i uređaja za specijalne efekte. .
Objektno orijentisano programiranje je pogodno za čuvanje složenih interfejsa, za opsluživanje medija u modularnom obliku što korisniku omogućuje lako korišćenje aplikacije.
Domet: Priroda multimedijskih aplikacija, za razliku od mnogih ranije istraženih oblasti, zahteva ubrzan razvoj. Multimedijski sistemi sa bazama podataka, virtuelna okruženja, desktop konferencijski sistemi i druge aplikacije moraju se prilagođavati promenama tehnologije interfejsa, medijima i hardverskim platformama.
Objektno orijentisano programiranje nudi mehanizme koji omogućuju proširenje postojećih kodova.
Portabilnost i nastanak unakrsnih platformi: Pod idealnim uslovima multimedijske aplikacije treba da rade na različitim platformama i tolerišu hardverske varijacije u okviru platformi.
Portovanje sa jedne na drugu platformu ili dodavanje podrške za eventualno novi hardver ne treba da zahteva ponovnu izradu aplikacije. Objektno orijentisani interfejsi zavisnost platformi mogu učiniti eksplitnim i tako pojednostaviti nastanak i razvoj unakrsnih platformi s ciljem dobijanja heterogene platforme.
Softversko nasleđe: Multimedijske aplikacije su u punom zamahu svog razvoja, a mnogi programeri softvera su bili suočeni sa problemom nasleđa, tj. potrebom da ostvare kompatabilnost sa ranijim aplikacijama. Međutim, multimedijalne prezentacije omogućuju da se krene od početka. Kako je projekat multimedijane aplikacije nesputan od postojećeg softvera, operatori imaju relativnu slobodu da istražuju nove tehnike kao što je objektno orijentisan programski jezik.
Objekti, trenutne promenljive i metodi: Često se kaže da objekti kapsuliraju, tj. da je predmet programskog jezika da identifikuje kolekciju podataka i kolekciju radnji. Podatke nazivamo trenutne objektne promenljive, a operacije su njihovi metodi.
Primer: posmatrajmo predmet nazvan my. Cd. Player sa trenutnom promenljivom npr. , current. Track. Metod za ovaj objekt može biti play. Track(Track. Number). Metoda se može vizuelno prikazati pobuđivanjem, kao odašiljanje poruke objektu; poruka sadrži ime metoda i neki od argumenata koji taj metod zahteva.
Sintakse za poziv metoda se razlikuju od jednog do drugog programskog jezika, ali dodavanje imena metoda nakon imena objekta im je zajednički oblik, kao npr. u my. Cd. Player.
Odlika objektne metode je specifikacija dozvoljenih operacija nad objektima, i tako ona u stvari služi kao interfejs korisniku za određene operacije sa njima.
U mnogim objektno orijentisanim programskim jezicima metodi su napravljeni da budu samo interfejs pomoću kojeg se može manipulisati objektima, pa stoga nije moguće bajpasirati metode i direktno modifikovati trenutne promenljive.
Apstraktne i konkretne klase, virtuelni metodi i dinamičko vezivanje Apstraktne klase grupišu zajedno metode i instantne varijable koje su podeljene na nekoliko podklasa, ali njihova definicija je nekompletna u smislu što je metod implementacije bar delimično zavisan od podklasa.
Na primer, konkretne klase su potpuno definisane. Metod zavisnosti ili onaj čija je implementacija preskočena putem podklasa naziva se virtuelnim metodom. Jezici koji dozvoljavaju virtuelni metod zahtevaju dinamičko vezivanje, sposobnost da se u radu povezuju sa kodam koji obezbeđuje implementaciju metoda.
Predpostavimo da je Cd. Player apstraktna klasa sa dve konkretne podklase: Model. XCd. Player i Model YCd. Player Ako se Cd plejeri u radu razlikuju, što zavisi od proizvođača, onda će metod Play. Track biti označen kao virtuelni metod Cd. Player, a njegova implementacija zavisiće od toga da li je instanca Model. XCd. Player ili Model. YCd. Player.
Izraz kao što je my. Cd. Player, Play. Track(4) zahteva dinamičko povezivanje, pa se bira odgovarajuća implementacija Play. Track (zavisno od toga da li my. Cd. Player predstavlja instancu Model. XCd. Player ili Model. YCd. Player
Polimorfizam: Dinamičko povezivanje i nasleđe zahtevaju polimorfne funkcije koje se mogu primenjivati na objekte različitog tipa. Ovo se vidi na navedenom primeru gde je metod Play. Track primenjen na Model. XCd. Player ili Model. YCd. Player objektima.
Polimorfne funkcije su na neki način otvorene jer im se upotreba može proširiti na nove sadržaje, što je značajno kod projektovanja softvera. Svakako, u slučaju suvišne upotrebe polimorfizma, kada se isto ime koristi na mnogo sadržaja njegovo značenje postaje nejasno.
Delegacije i prototipovi: Jedan nedostatak klasa je taj da one mogu biti suviše rigidne kod određivanja ponašanja objekata. Promene u okruženjima, gde su ponašanja objekata i struktura nejasna zahtevaju fleksibilnost. Jedna alternativa je zanemarivanje klasa i dozvoljavanje objektima da određuju metod drugim objektima.
Tehnika spajanja prototipova objekata omogućava ponašanje bez grešaka.
Na primer: pretpostavimo da su objekti proto. Model. XCd. Player i proto. Model. YCd. Player uzori za ponašanje bez grešaka za Model. X i Model. YCd. Player-a. Iniciranje metoda kao što je my. Cd. Player. Play. Track(4) bi tada prošao kontrolu do jednog od ovih prototipova objekata, a koji je prototip izabran zavisi isključivo od my. Cd. Player. Pošto objekti mogu da biraju kome će delegirati metod, postoji visok potencijal za fleksibilnost i adaptaciju kod objektnog ponašanja
Aktivni objekti: Aktivni, kao i obični pasivni objekti imaju stanje (instantne varijable) i ponašanje (metod). Aktivni objekti mogu spontano da obave neku akciju čak i ako im nisu poslate poruke. Kao primer, ponovo posmatrajmo objekat Cd. Player.
Nakon startovanja, usmerite Cd. Player da pusti traku kao kod my. Cd. Player. Play. Track(4) objekti nastavljaju da vrše transfer auditivnih podataka sa CD diska na D/A konvertore dok disk ne završi, ili se neki drugi događaj ne desi, kao što je prijem poruke my. Cd. Player. Stop( ). Aktivni objekti uvode konkurentnost aplikacija. Na primer, dve trake se emituju istovremeno na sledeći način.
my. Cd. Player. Play. Track(4) your. Cd. Player. Play. Track(7) my. Cd. Player. Stop( ); your. Cd. Player yuor. Cd. Player. Stop( ); //startuje se emitovanje my. Cd. Player-a //my. Cd. Player nastavlja sa emitovanjem //my. Cd. Player staje, nastavlja da emituje //oba plejera se zaustavljaju. Ukoliko pretpostavimo da my. Cd. Player i yuor. Cd. Player predstavljaju stvarne fizičke uređaje, onda je ovde prava konkurentnost
Moguće je da aktivni objekti kapsuliraju softverske procese; u tom slučaju se javlja “kvazi konkurencija” (gde se, ako postoji samo jedan procesor, on deli prema aktivnim objektima).
Zavisno od primene aktivnih objekata obezbeđuje se stvarna ili kvazi konkurencija. Osim toga, ponovnom implementacijom klase, aktivni objekti se mogu “pomeriti” sa hardvera na softver i obrnuto bez ikakvog uticaja na interfejs, onako kako ga vide Programeri aplikacija.
Tako, neke podklase Cd. Player-a mogu predstavljati određene modele stvarnih Cd plejera, dok druge podklase Cd. Player-a mogu biti zasnovane na emulaciji Cd plejera u softver. Programer aplikacije koristi samo metode iz Cd. Player klase i ne mora znati da li Cd. Player instance odgovaraju stvarnim Cd plejerima ili softverskim procesima.
Perzistentni objekti: Objekti kreirani objektno orijentisanim programskim jezikom su obično smešteni u prelaznim konstrukcijama sa podacima. Oni mogu da predstavljaju entitet realnog sveta, ili čak da komuniciraju sa spoljnim svetom (npr. Cd. Player objekat šalje komande Cd plejeru, ali kada se program jednom zaustavi memorija se isključuje i objekat nestaje
Distribuirana objektna okruženja: Okruženja koja podržavaju objekte locirane na različitim procesorima predstavljaju extenziju objektno orijentisane tehnologije. U takvim okruženjima se koordinira komunikacija između lokalnih i udaljenih objekata i obezbeđuju sredstva za imenovanje i pronalaženje objekata.
Ostale važne usluge, uključujući kontrolu autorizacije (kao što je određivanje da li jedan objekat ima dozvolu za pobuđivanje metoda drugog) i zaštitu centralnih aplikacija od heterogenosti (na primer, centralni računari se mogu razlikovati u bit i bajt naredbama koje za predstavljanja koriste cele brojeve).
Kontrola autorizacije i heterogenizacija su, takođe, izuzetno važne kada su centralni kompjuteri povezani u veliki otvoreni mrežni prostor.
Raspoloživost distribuiranih objektnih okruženja zavisi od industrijskih aktivnosti i standardizacije. (Nicol 1993). Kao jednostavan primer korišćenja takvih okruženja za MM programiranje posmatrajmo izraz your. Cd. Player. Play Track (4). Korišćenjem distribuiranih objektnih okruženja, your. Cd. Player se može locirati na jedan od priključenih centralnih računara. Kada se inicira metod Play. Track na your. Cd. Player poruka se kroz mrežu upućuje na udaljeni objekat.
Radni okvir klase: predstavlja grupu klasa koje rade zajedno u različitim situacijama. Za radni okvir klase je tipično da se sastoji od apstraktnih klasa, koje služe za specifikaciju interfejsa i odgovarajućih procedura (često neformalnih) za korišćenje klasa.
Standardni primer je MVC radni okvir u Smalltalc-80. Ovde tri apstraktne klase Model, View i Controller pomažu u interaktivnoj kontroli aplikacije: objekti Model predstavljaju stanje aplikacije, objekti View proizvode vizuelizaciju modela objekta i objekti Controller određuju kako Model i View objekti odgovaraju na input korisnika. Takva aplikacija se konstruiše uglavnom implementacijom Model, View i Controller podklasa.
Na primer, tekst editor se može zasnivati na Text. Document. Mode, Text. Document. View i Text. Document. Controller klasama, a ove bi implementirale metod apstrakta MVC klasa u kontekst modeliranja, viewing i editting text dokumenta. Više primera za radni okvir klase mogu se naći kod Deutsch (1989) i Johnson and Wirfs – Brock (1991).
- Slides: 43