ЗАДАТАК ЗА ИЗРАДУ ДИПЛОМСКОГ (BACHELOR) РАДА

Similar documents
Креирање апликација-калкулатор

Сигурност у програмском. cs/technotes/guides/security/overvie w/jsoverview.html

Достава захтева и пријава М-4 за годину преко електронског сервиса Фонда ПИО. е-м4. Републички фонд за пензијско и инвалидско осигурање

ЗАХТЕВ ЗА ПРЕВОЂЕЊЕ У РЕГИСТАР ПРИВРЕДНИХ СУБЈЕКТА

СЕКТОР ЗА ИНФОРМАЦИОНЕ ТЕХНОЛОГИЈЕ ПРОЦЕДУРА ЗА РАД СА ЕКСЕЛ ШАБЛОНОМ ЗА УНОС И КОНТРОЛУ ЗАВРШНИХ РАЧУНА КОРИСНИКА БУЏЕТСКИХ СРЕДСТАВА СИТ-B.

АЛГОРИТАМСКИ ПРИСТУП РЕШАВАЊУ ПРОБЛЕМА

Архитектура и организација рачунара 2

Развој графичког корисничког интерфејса за пројекат отвореног кода QLab

Критеријуми за друштвене науке

РЕАЛИЗАЦИЈА АПЛИКАЦИЈЕ У КОМАНДНОЈ ЛИНИЈИ ЗА ДИГИТАЛНИ ТВ ДЕКОДЕР

ПРЕГЛЕД ОБРАЧУНА ПДВ ЗА ПОРЕСКИ ПЕРИОД ОД ДО 20. ГОДИНЕ

РЕГИСТАР УДРУЖЕЊА, ДРУШТАВА И САВЕЗА У ОБЛАСТИ СПОРТА

СТРУКТУРА СТАНДАРДА СИСТЕМАМЕНАЏМЕНТАКВАЛИТЕТОМ

Структура студијских програма

Катедра за рачунарску технику и информатику. Програмирање 1

УНИВЕРЗИТЕТ У НОВОМ САДУ

О Д Л У К У о додели уговора

TРЖИШТЕ ЕЛЕКТРОНСКИХ КОМУНИКАЦИЈА У РЕПУБЛИЦИ СРБИЈИ У ГОДИНИ

Конкурсна документација Т - 44 / 2013

Пословна интелигенција

Arduino базирани уређај за дистрибуцију података преко Интернета

МАТУРСКИ РАД Тема: Adobe Flash Website

NIS HOLDS 9TH ANNUAL GENERAL MEETING

У овом раду приказано је коришћење електронског теста за проверу стеченог знања ученика VIII разреда из предмета Техничко и информатичко образовање.

6 th INTERNATIONAL CONFERENCE

ЛАБОРАТОРИЈА ЕНЕРГИЈЕ ЗНАЊА

DOM Document Object Model (наставак)

Члан 2. Поједини изрази употребљени у овом правилнику имају следеће значење: 1) акутна референтна доза (у даљем тексту: ARD) јесте процењена

ЗАВРШНИ (BACHELOR) РАД

Универзитет у Београду Математички факултет. Мастер рад Реализација веб-апликације за креирање распореда часова употребом RichFaces и EJB окружења

УНИВЕРЗИТЕТ У БЕОГРАДУ ЕЛЕКТРОТЕХНИЧКИ ФАКУЛТЕТ. Ненад Королија

РЕШЕЊЕ АНАЛИЗА ПОДАТАКА

Tel (0) ; Fax: + 381(0) ; web: ;

Hadoop MapReduce Инфраструктура за електронско пословање

МИ КРО БИ О ЛО ШКИ КРИ ТЕ РИ ЈУ МИ ЗА ХРА НУ

A Step Forward to Youth Employability Економски факултет, Универзитета у Бањој Луци. Бања Лука,

ПРОЈЕКТНИ ЗАДАТАК ИЗ ПРЕДМЕТА МУЛТИМЕДИЈАЛНИ СИСТЕМИ

1 Универзитет у Новом Саду Технички факултет Михајло Пупин Зрењанин

Марко Првуловић и Ђорђе Ђурђевић

ЗАВРШНИ (BACHELOR) РАД

БИЛТЕН БР. 3 ТАКМИЧАРСКА СЕЗОНА 2017./2018. ГОДИНА ВАТЕРПОЛО САВЕЗ СРБИЈЕ

П Р А В И Л Н И К О ОБРАСЦИМА ДОЗВОЛА ЗА РАДИО-СТАНИЦЕ

НАУЧНО ВЕЋЕ АСТРОНОМСКЕ ОПСЕРВАТОРИЈЕ БИЛТЕН РЕФЕРАТА. за избор у научна звања и избор и реизбор на одговарајуца радна места

C U R R I C U L U M V I T A E. Лични податoци Сашко Граматниковски Телефон

Конкурентно и дистрибуирано програмирање 13Е113КДП

Школа: Електротехничка школа Никола Тесла Бања Лука

1. Кандидат: др Јелена Радовановић

ЗАВРШНИ (BACHELOR) РАД

1 Универзитет у Новом Саду Технички факултет Михајло Пупин Зрењанин

Универзитет у Новом Саду Технички факултет Михајло Пупин Зрењанин

6 th INTERNATIONAL CONFERENCE

Алати за визуелизацију израде техничких цртежа у процесу учења техничког и информатичког образовања

ПРОГРАМА Упознавање ученика са наменом, врстама и структуром. дефинише појам информационог система схвата коплексност структуре. система.

Sick at school. (Болесна у школи) Serbian. List of characters. (Списак личности) Leila, the sick girl. Sick girl s friend. Class teacher.

Корисничко упутство Референт РГЗ-а

ПРЕ ПИЧА НАЈВАЖНИЈА ПИТАЊА

ОДБОЈКАШКИ САВЕЗ ВОЈВОДИНЕ Нови Сад Масарикова 25 тел/факс: 021/ , тр:

Пројекат из предмета Интернет програмирање за јануарски и фебруарски рок школске 2017/18. године

Пројекат из предмета Веб дизајн (13С112ВД) за школску 2016/17. - Веб презентација агенције за некретнине -

ОСНОВНА ШКОЛА МАРКО ОРЕШКОВИЋ УЏБЕНИЦИ ЗА ШКОЛСКУ 2018/ ГОДИНУ ПРВИ РАЗРЕД

ИЗВЕШТАЈ О ОЦЕНИ ДОКТОРСКЕ ДИСЕРТАЦИЈЕ

Образац за пријаву техничког решења 1

ИЗБОРНОМ ВЕЋУ ФАКУЛТЕТА ОРГАНИЗАЦИОНИХ НАУКА УНИВЕРЗИТЕТА У БЕОГРАДУ

КРЕИРАЊЕ УПРАВЉАЧКОГ ИНТЕРФЕЈСА У ПРОГРАМСКОМ ПАКЕТУ LabView

ОБАВЈЕШТЕЊЕ О НАБАВЦИ /17

СПИСАК ОДАБРАНИХ УЏБЕНИКА ОДОБРЕНИХ ОД СТРАНЕ MИНИСТАРСТВА ПРОСВЕТЕ

РАЗВОЈ МЕТОДОЛОГИЈЕ ЗА УПРАВЉАЊЕ КВАЛИТЕТОМ ПРОЈЕКАТА У ИНДУСТРИЈИ

Пословна интелигенција

ТМ Г. XXXVI Бр. 1 Стр Ниш јануар - март UDK : ПРИСТУПАЧНОСТ ИНТЕРНЕТА ОСОБАМА СА ПОРЕМЕЋАЈЕМ РАЗЛИКОВАЊА БОЈА

Директна и обрнута пропорционалност. a b. и решава се тако што се помноже ''спољашњи са спољашњим'' и ''унyтрашњи са. 5 kg kg 7 kg...

Стандарди у области безбедности ИKТ-а. Драган Вуксановић, Институт за стандардизацију Србије

Корисничко упутство Руководилац надлежног органа

ФАКУЛТЕТИ ЗА СТУДИЈЕ ТУРИЗМА

ОДЛУКУ О УТВРЂИВАЊУ ПРОСЕЧНИХ ЦЕНА КВАДРАТНОГ МЕТРА НЕПОКРЕТНОСТИ ЗА УТВРЂИВАЊЕ ПОРЕЗА НА ИМОВИНУ ЗА 2018

ВИКИПЕДИЈА КАО МОГУЋНОСТ ЗА ИНОВАЦИЈЕ У НАСТАВИ ИНФОРМАТИКЕ НА ПРИМЕРУ УЧИТЕЉСКОГ ФАКУЛТЕТА

Образац за пријаву техничког решења 1

Рачунарске мреже. Александар Картељ

КОНКУРСНА ДОКУМЕНТАЦИЈА

ПРЕПОРУКЕ ЗА ИЗРАДУ И ОДРЖАВАЊЕ ВЕБ ПРЕЗЕНТАЦИЈА ИНСТИТУЦИЈА РЕПУБЛИКЕ СРПСКЕ

Радна група овлашћених регистара

Корисничко упутство Референт ДГЗ

Пројекат из предмета Веб дизајн (13С112ВД) за школску 2014/15. - Веб презентација компанија и послова у ИТ сектору -

ПРЕДМЕТ: Базе података. СТУДИЈСКИ ПРОГРАМ: Информациони системи и технологије. ВРСТА И НИВО СТУДИЈА: Основне академске студије

Касетни ланчаник. Упутство за продавце. ROAD MTB Трекинг. Бицикл за вожњу по граду/рекреацију

SPECIFICITY OF POPULATION TRENDS IN VOJVODINA THE 2011 CENSUS

6th REGULAR SESSION OF NIS J.S.C. SHAREHOLDERS' ASSEMBLY

СЛУЖБЕНИ ГЛАСНИК РЕПУБЛИКЕ СРПСКЕ УРЕДБУ. Језик српског народа. Понедјељак, 30. март године БАЊА ЛУКА

Регионално такмичење из ИНФОРМАТИКЕ (ОСНОВНЕ ШКОЛЕ)

ИЗБОРНОМ ВЕЋУ ГРАЂЕВИНСКОГ ФАКУЛТЕТА УНИВЕРЗИТЕТА У БЕОГРАДУ ИЗВЕШТАЈ

Студија изводљивости изградње постројења на биомасу као базног извора даљинског система грејања Новог Сада

Истраживање у виртуелном простору: нове технологије у обради и презентацији изворне грађе у Србији

МОДЕЛ ИДЕНТИФИКАЦИЈЕ РИЗИКА У ПРОЈЕКТИМА КОМАСАЦИЈЕ

1 (преузето )

41 ГОДИНА ГРАЂЕВИНСКОГ ФАКУЛТЕТА СУБОТИЦА

МИНИСТАРСТВО ТРГОВИНЕ, ТУРИЗМА И ТЕЛЕКОМУНИКАЦИЈА расписује

Пројекат из предмета Веб дизајн (13С112ВД) за школску 2017/18. - Веб презентација филмског фестивала -

Март Opinion research & Communications

THE THEATRE IN PARTHICOPOLIS: A POSSIBLE RECONSTRUCTION

СПИСАК УЧБЕНИКА ЗА ЩКОЛСКУ 2016/17. ГОДИНУ

УНИВЕРЗИТЕТ У НОВОМ САДУ ОБРАЗАЦ 6.

Transcription:

УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА 2 1 0 0 0 Н О В И СА Д, Тр г Д о с и теја Обрадов и ћ а 6 ЗАДАТАК ЗА ИЗРАДУ ДИПЛОМСКОГ (BACHELOR) РАДА Датум: Лист/Листова: 1/1 (Податке уноси предметни наставник - ментор) Врста студија: Студијски програм: Руководилац студијског програма: Основне академске студије Основне струковне студије Рачунарство и аутоматика проф. др Никола Јорговановић Студент: Горан Ступар Број индекса: Е13745 Област: Рачунарска техника и рачунарске комуникације Ментор: Јелена др Ковачевић НА ОСНОВУ ПОДНЕТЕ ПРИЈАВЕ, ПРИЛОЖЕНЕ ДОКУМЕНТАЦИЈЕ И ОДРЕДБИ СТАТУТА ФАКУЛТЕТА ИЗДАЈЕ СЕ ЗАДАТАК ЗА ДИПЛОМСКИ (Bachelor) РАД, СА СЛЕДЕЋИМ ЕЛЕМЕНТИМА: - проблем тема рада; - начин решавања проблема и начин практичне провере резултата рада, ако је таква провера неопходна; - литература НАСЛОВ ДИПЛОМСКОГ (BACHELOR) РАДА: РЕАЛИЗАЦИЈА GWT КЛИЈЕНТСКЕ АПЛИКАЦИЈЕ ЗА РУКОВАЊЕ СЕРВИСОМ У CLOUD ОКРУЖЕЊУ ЗА ПРИКУПЉАЊЕ, АНАЛИЗУ И ПРЕПОРУКУ МУЛТИМЕДИЈАЛНОГ САДРЖАЈА ТЕКСТ ЗАДАТКА: Реализовати клијентску апликацију засновану на GWT (енг. Google Web Toolkit) технологији за руковање cloud сервисом за прикупљање, анализу и препоруку мултимедијалног садржаја. Неопходно је визуализовати податке са послужиоца и омогућити њихов преглед и ажурирање. Такође, обезбедити подршку за евентуалну конфигурацију самог cloud сервиса. Руководилац студијског програма: Ментор рада: Примерак за: - Студента; - Ментора Образац Q2.НА.15-04 - Издање 1

УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА У НОВОМ САДУ Горан Ступар РЕАЛИЗАЦИЈА GWT КЛИЈЕНТСКЕ АПЛИКАЦИЈЕ ЗА РУКОВАЊЕ СЕРВИСОМ У CLOUD ОКРУЖЕЊУ ЗА ПРИКУПЉАЊЕ, АНАЛИЗУ И ПРЕПОРУКУ МУЛТИМЕДИЈАЛНОГ САДРЖАЈА ДИПЛОМСКИ РАД - Основне академске студије - Нови Сад, 2014.

УНИВЕРЗИТЕТ У НОВОМ САДУ ФАКУЛТЕТ ТЕХНИЧКИХ НАУКА 21000 НОВИ САД, Трг Доситеја Обрадовића 6 КЉУЧНА ДОКУМЕНТАЦИЈСКА ИНФОРМАЦИЈА Редни број, РБР: Идентификациони број, ИБР: Тип документације, ТД: Тип записа, ТЗ: Врста рада, ВР: Аутор, АУ: Ментор, МН: Наслов рада, НР: Монографска документација Текстуални штампани материјал Завршни (Bachelor) рад Горан Ступар др Јелена Ковачевић Реализација GWT клијентске апликације за руковање сервисом у cloud окружењу за прикупљање, анализу и препоруку мултимедијалног садржаја Језик публикације, ЈП: Језик извода, ЈИ: Земља публиковања, ЗП: Уже географско подручје, УГП: Српски / латиница Српски Година, ГО: 2014 Издавач, ИЗ: Република Србија Војводина Ауторски репринт Место и адреса, МА: Нови Сад; трг Доситеја Обрадовића 6 Физички опис рада, ФО: (поглавља/страна/ цитата/табела/слика/графика/прилога) Научна област, НО: Научна дисциплина, НД: Предметна одредница/кqучне речи, ПО: УДК 7/31/0/1/16/0/0 Електротехника и рачунарство Рачунарска техника GWT, MVP, веб апликација Чува се, ЧУ: У библиотеци Факултета техничких наука, Нови Сад Важна напомена, ВН: Извод, ИЗ: У овом раду изложено је решење имплементације GWT клијентске веб апликације за управљање cloud сервиса за прикупљање, анализу и препоруку мултимедијалног садржаја. При имплементацији коришћен је MVP пројектни образац. Датум прихватања теме, ДП: Датум одбране, ДО: Чланови комисије, КО: Председник: др Иштван Пап Члан: др Милан Бјелица Потпис ментора Члан, ментор: др Јелена Коваћевић

Accession number, ANO: Identification number, INO: Document type, DT: Type of record, TR: Contents code, CC: Author, AU: Mentor, MN: Title, TI: Monographic publication Textual printed material Bachelor Thesis Goran Stupar Jelena Kovačević, PhD The implementation of GWT client application for handling cloud environment service for collecting, analysis and recommendation of multimedia content Language of text, LT: Language of abstract, LA: Country of publication, CP: Locality of publication, LP: Serbian Serbian Republic of Serbia Vojvodina Publication year, PY: 2014 Publisher, PB: Author s reprint Publication place, PP: Novi Sad, Dositeja Obradovica sq. 6 Physical description, PD: (chapters/pages/ref./tables/pictures/graphs/appendixes) Scientific field, SF: Scientific discipline, SD: Subject/Key words, S/KW: UC 7/31/0/1/16/0/0 Electrical Engineering Computer Engineering, Engineering of Computer Based Systems Google Web Toolkit, Model View Presenter, web application Holding data, HD: The Library of Faculty of Technical Sciences, Novi Sad, Serbia Note, N: Abstract, AB: This paper presents the implementation of GWT client web application for managing cloud service for collecting, analysis and recommendation of multimedia content. This solution is designed using MVP design pattern. Accepted by the Scientific Board on, ASB: Defended on, DE: Defended Board, DB: President: Ištvan Pap, PhD Member: Milan Bjelica, PhD Menthor's sign Member, Mentor: Jelena Kovačević, PhD

Захвалност Захвалност Захваљујем се Институту РТ-РК на пруженој могућности за израду овог рада, као и могућност рада на другим научно-истраживачким пројектима током студија. Посебну захвалност дугујем стручном сараднику Ненаду Јовановићу који је пратио развој овог пројекта, као и осталих пројеката у C-More тиму. I

САДРЖАЈ 1. Увод... 1 2. Теоријске основе... 3 2.1 Дигитална телевизија... 3 2.2 Сервис за прикупљање, анализу и препоруку садржаја... 4 2.3 Google Web Toolkit... 5 2.4 Мodel-View-Presenter пројектни образац... 6 3. Задатак и концепт решења... 9 3.1 Функционални захтеви... 9 3.2 Кориснички захтеви... 10 3.3 Концепт решења... 10 3.3.1 Event Bus... 10 3.3.2 Комуникација између послужиоца и прегледача... 13 3.3.3 Концепт решења... 14 4. Програмско решење... 18 4.1 Проблеми при имплементацији програмског решења... 18 4.1.1 Комуникација са сервисом за препоруку садржаја... 18 4.1.2 Проблеми при преносу објеката од послужиоца до прегледача... 20 4.1.3 Компатибилност са будућим верзијама сервиса за прикупљање, анализу и препоруку садржаја... 20 4.2 Апликативна спрега програмског решења... 21 4.2.1 com.rtrk.cmore.gwt... 21 4.2.2 com.rtrk.cmore.gwt.client... 21 4.2.3 com.rtrk.cmore.gwt.event... 22 4.2.4 com.rtrk.cmore.gwt.presenter... 22 4.2.5 com.rtrk.cmore.gwt.ui.widgets... 23 4.2.6 com.rtrk.cmore.gwt.view... 23 4.2.7 com.rtrk.cmore.gwt.server... 25 4.2.8 com.rtrk.cmore.gwt.shared... 25

Списак слика 5. Резултати... 27 5.1 Тестирање корисничких захтева... 27 5.2 Функционално тестирање... 28 6. Закључак... 30 7. Литература... 31 III

Списак слика СПИСАК СЛИКА Слика 2.1 Архитектура сервиса за препоручивање садржаја... 4 Слика 2.2 Подела GWT модула и комуникација између њих... 6 Слика 2.3 Преглед компоненти MVP пројектног обрасца... 7 Слика 3.1 Илустративни пример рада магистрале за догађаје... 11 Слика 3.2 Комуникација између модула и њихова међузависност без примене магистрале за догађаје... 12 Слика 3.3 Комуникација између модула и њихова међузависност применом магистрале за догађаје... 12 Слика 3.4 Дијаграм реализације RPC... 14 Слика 3.5 Шема распореда компоненти са којом се постиже MVP у GWT-у... 15 Слика 3.6 Блок дијаграм клијентске апликације... 17 Слика 4.1 Архитектура сервиса за препоруку садржаја са додатом клијентском апликацијом... 20 Слика 4.2 Графички приказ DVBEventListView... 23 Слика 4.3 Графички приказ DVBServiceListView... 24 Слика 4.4 Графички приказ EditDVBEventView... 24 Слика 4.5 Графички приказ EditDVBServiceView... 25 Слика 4.6 Графички приказ TagKeywordRelationView... 25 Слика 5.1 Резултати мерења: потрошња меморије у времену... 29 IV

Списак табела СПИСАК ТАБЕЛА Табела 5-1 Приказ резултата испитивања... 28 V

Скраћенице СКРАЋЕНИЦЕ API AJAX EPG EJB CSS GWT ДТВ HTTP HTML Java EE MVP RPC STB REST XML WSDL Application Programming Interface, Програмибилна апликативна спрега Asynchronous JavaScript and XML, Скуп техника које омогућавају прављење асинхроних Интернет страница (Web 2.0) Electronic Program Guide, Електронски програмски водич Enterprise Java Bean, Компонента за модуларну конструкцију апликација Cascading Style Sheets, Језик помоћу ког се дефинише изглед веб странице Google Web Toolkit, Скуп алата за развијање веб апликација Дигитална Телевизија HyperText Transfer Protocol, Апликативни слој за комуникацију HyperText Markup Language, Језик за структурирање хипертекста Java Enterprise Edition Model-View-Presenter, Шаблон за решавање одређених проблема Remote Procedure Call, Удаљено прозивање метода Set-Top Box, Пријемник дигиталног телевизијског сигнала Representational State Transfer, Стил дефинисања спреге у веб сервисима Extensible Markup Language, Језик за означавање података Web Services Description Language, Језик за опис веб сервиса VI

Увод 1. Увод Сервиси за препоруку садржаја постају све присутнији у Интернет свету (слушање музике, препорука при Интернет куповини и слично). Спајањем дигиталне телевизије са Интернетом јавља се потреба за препоруку мултимедијалног садржаја да се омогући корисницима лакши приступ великом скупу података који су доступни на Интернету. Због несавршености алгоритама за препоруку садржаја, али и улазних параметара на основу којих се врши препорука, потребно је направити апликацију која ће омогућити да се улазни параметри ручно унесу и тиме побољша тачност препоруке. Сервис за препоруку садржаја очекује за улаз телевизијске емисије које је корисник гледао са фактором који означава колико је времена корисник провео гледајући дату емисију. Информације о емисијама се добијају из електронског програмског водича (енг. EPG) који се, уз аудио и видео, преноси до корисника. Често, електронски програмски водич не осликава реално распоред телевизијских емисија и не њихов даје детаљан опис, чиме се повећава грешка у препоруци садржаја. У оквиру рада описана је реализација клијентске веб (енг. web) апликације за управљање сервисом за прикупљање, анализу и препоруку садржаја коришћењем Google Web Toolkit скупа алата. Апликација има за циљ да омогући измену података које сервис за препоруку очекује као улазне параметре, као и измену интерне поставке сервиса за препоруку. У првом поглављу дат је опис садржаја самог рада. У другом поглављу дат је теоријски преглед основних појмова у дигиталној телевизији, описане су основне компоненте сервиса за прикупљање, анализу и 1

Увод препоруку садржаја. Уводе се појмови о Google Web Toolkit скупу алата и пројектног узорка који ће бити коришћен при реализацији решења. У трећем поглављу дати су функционални и кориснички захтеви са концептом решења и објашњењем додатних компоненти које су коришћене у концепту решења. Четврто поглавње садржи програмско решење као и проблеме са којима се аутор сусретао при реализацији програмског решења. Проблеми се односе на несавршеност Google Web Toolkit алата али и проблеми при спрезању клијентске апликације са постојећим сервисом за прикупљање, анализу и препоруку садржаја. Након објашњења проблема, као и решења истих, дат је преглед апликативне програмске спреге са сажетим описом класа које су корижћене. Пето поглавље садржи резултате испитивања у виду корисничких и функционалних захтева. Корисничко испитивање је извршено над седам испитаника, при чему је испитивач водио рачуна о времену које је било потребно испитаницима да изврше одређене акције. Шесто поглавље представља кратак осврт на цео рад, и дати су предлози за побољшање апликације. На крају се пружа увид у литературу која је коришћена приликом израде овог рада. 2

Теоријске основе 2. Теоријске основе У овом поглављу дате су теоријске основе дигиталне телевизије, као и основна терминологија која се користи у тој области. Разлог због којег је потребно знати теоријске основе дигиталне телевизија је зато што је сервис за прикупљање, анализу и препоруку мултимедијалног садржаја уско везан за кориснике дигиталне телевизије. Након тога дате су теоријске основе о сервису за прикупљање, анализу и препоруку мултимедијалног садржаја, теоријски преглед технологије Google Web Toolkit (GWT) скупа алата, и теоријске основе пројектног шаблона (енг. Design pattern) који је коришћен. 2.1 Дигитална телевизија Дигитална телевизија (ДТВ) је технологија за пренос дигиталног аудио и видео садржаја [1]. Основне разлике у односу на аналогну телевизију су да је сигнал који се преноси у дигиталном формату, компресован и да је мултиплексирано више ДТВ сервиса на једном транспондеру, за разлику од аналогне где се преноси аналогни сигнал и налази се један ТВ програм на једном транспондеру. Због коришћења модулационих и компресионих техника, као и техника за опоравку од грешке, дигитална телевизија омогућава бољи квалитет слике у односу на аналогну, као и боље искоришћење преносног канала (у аналогној телевизији је у један фреквенцијски опсег могао да стане један програм, док сада у дигиталној телевизији у исти тај опсег стане више ДТВ сервиса). ДТВ сервис у себи садржи видео сигнал, један или више аудио сигнала (због нпр. синхронизација филма на више језика), телетекст, преводе и слично. Поред тога, преноси се електронски програмски водич (енг. Electronic Program Guide EPG). EPG пружа податке о емисијама на одређеним ДТВ сервисима. Подаци о емисији су: назив емисије, почетак емисије, трајање емисије, опис емисије, жанр итд. Најчешће 3

Теоријске основе су доступне информације о емисијама до седам дана унапред. Оператер није обавезан да шаље ове информације, па самим тим оне често нису довољно информативне, а понекад и погрешне. 2.2 Сервис за прикупљање, анализу и препоруку садржаја Потреба за персонализацијом садржаја у свету дигиталне мултимедије је све чешћа. Интернет је омогућио приступ бесконачнoм изворима података, и на кориснику је да пронађе оно што га највише интересује. Покушаји да се кориснику олакша проналазак одговарајућег садржаја је увелико присутан у системима где се подаци о кориснику бележе (нпр. Youtube) а на основу тога се бирају подаци који би били погодни за датог корисника. Уколико све то погледамо са аспекта дигиталне телевизије, персонализација подразумева да се кориснику препоручи ДТВ сервис или ТВ емисија. Доласком телевизора који имају приступ Интернету, садржај који треба да се препоручи кориснику не мора више да буде само ДТВ сервис или емисија коју да гледа, већ било шта што се налази на Интернету и чему ТВ пријемник може да приступи. Сервис за прикупљање, анализу и препоруку садржаја развијен на институту РТ-РК користиће се као основа у овом раду. Овај сервис се заснива на анализи података електронског програмског водича и налази се у cloud окружењу тако да сви корисници који имају приступ Интернету могу да му приступе. Архитектура сервиса приказана је на слици 2.1. REST API Manager Entities Content Manager Text Analysis Profile Generator Insight ACS DataAccess Database Слика 2.1 Архитектура сервиса за препоручивање садржаја 4

Теоријске основе Подаци који се смештају у базу података долазе од наменског рачунара који је задужен за скупљање података о електронском програмском водичу. Ти подаци долазе кроз REST API и пре смештања у базу података пролазе кроз модул за анализу текста (Text Analysis) који из EPG-ја издваја кључне речи емисија на ДТВ сервисима [2] [3]. Издвојене кључне речи везују се за тагове који имају за циљ да групишу више кључних речи у једну целину. Функционисање овог модула може се објаснити на једноставном примеру: кључне речи могу бити називи фудбалских клубова од фудбалске утакмице који је тренутно на програму, док таг за који се везују те кључне речи може бити фудбал. Након анализе, пристигле емисије са описом, присвојеним кључним речима и таговима, смештају се у базу података. Подсистем за профилисање корисника (Profile Generator) је у спрези са системом за надгледањe STB (енг. Set-Top Box) уређаја (Insight ACS), који је такоће развијен на Институту РТ-РК. Систем за надгледање обезбеђује податке о корисниковој историји гледања ДТВ сервиса у току времена, коју сервис за препоруку садржаја, коришћењем података о електронском програмском водичу, преводи у историју гледања емисије. 2.3 Google Web Toolkit Google Web Toolkit (GWT) је скуп алата отвореног кода (енг. Open Source) развијен од стране Гугла (енг. Google) који омогућава лако писање софистицираних и поузданих веб (енг. Web) апликација користећи Јава програмски језик [4] [5]. То подразумева могућност коришћења свих предности програмског језика Јава, као и коришћење великог броја постојећих Јава библиотека, тј. омогућава коришћење постојећег кода. Поједностављено, омогућава писање апликације у програмском језику Јава који се преводи у JavaScript који познаје прегледач (енг. Browser). GWT пројекат садржи две компоненте: Компонента која се извршава на послужиоцу (енг. Server) Компонента која се извршава у прегледачу 5

Теоријске основе Извршава се у прегледачу Клијент (графичка кприсничка спрега) GWT Апликација RPC Ппслужилац (backend) Извршава се на ппслужипцу AJAX JEE Servlet Слика 2.2 Подела GWT модула и комуникација између њих Мотивација за коришћење овог алата јесте коришћење програмског језика Јава, што омогућава Јава програмерима који нису упознати са веб технологијама да лако прећу у тај свет. Ипак прегледачи не познају Јава код, већ HTML за дефисинање структуре, CSS за дефинисање изгледа i JavaScript који даје динамику веб страници. Исто тако различити прегледачи се ослањају на различиту програмску подршку за тумачење и приказ Интернет страница, што за собом носи проблеме са компатибилношћу, тј. веб пликације изгледају различито у сваком прегледачу. GWT ослобађа прогамера мисли о специфичности прегледача јер програмер развија један код, док GWT тај код компајлира за сваки прегледач посебно што, у теорији, омогућава да веб апликација изгледа исто у сваком прегледачу. 2.4 Мodel-View-Presenter пројектни образац МVP je приступ дељења програмског кода у слојеве тако да се реше проблеми који се дешавају када се апликација развија ad hoc. Пројекти развијани у ad hoc маниру трпе од четири суштинска проблема: Додавање нових функционалности траје дуже Тешко за оптимизацију Тешко за тестирање Teшко извести преправке и отклањање грешака (енг. Debugging) - поправка једне грешке изазива гомиле других проблема на другом месту у коду MVP има за циљ да омогући дељење програмске подршке на логичке целине: Модел Садржи ентитете који се користе у програмској подршци 6

Теоријске основе Поглед (енг. View) Садржи само код за графичку корисничку спрегу Презентер (енг. Presenter) Управља компонентама погледа и врши ажурирање модел компоненте када је потребно Слика 2.3 представља комуникацију између компоненти MVP пројектног обрасца. Ппглед Ажурираое ппгледа Акција кприсника Презентер Упит Мпдел Одгпвпр на тражени упит Слика 2.3 Преглед компоненти MVP пројектног обрасца Оно што се дешава на слици јесте: 1. Корисник извршава акцију, која се прослеђује презентеру 2. Презентер шаље упит бази података (моделу) за податке који треба да се представе у погледу 3. Модел шаље податке које је презентер тражио 4. Презентер ажурира поглед са новим подацима Најважније у MVP пројектном шаблону је веза између презентер и поглед компоненти. Презентер треба да садржи сву комплексну логику, и ништа од графичких елемената, чак ни референце на неке графичке елементе. Презентер није свестан да постоји графичка корисничка спрега и не зна ништа о њој. Поглед компонента, насупрот, садржи само графичке елементе и треба да се избегне било каква пословна логика у овој компоненти. Уколико се програмер држи овога, поглед компонента ће за 7

Теоријске основе потребе тестирања моћи да се занемари и да се пословна логика тестира над презентер компонентом.. Исто тако, максимално се омогућава поновно коришћење кода. То значи да, пажљиво програмирање користећи MVP омогућава да се се само графичка корисничка спрега промени, док све остало може да се искористи. 8

Концепт решења 3. Задатак и концепт решења 3.1 Функционални захтеви Као што је описано у поглављу 2.2, модул за анализу садржаја као улаз има податке из електронског програмског водича. Исто тако је споменуто да оператер није обавезан да шаље електронски програмски водич до корисника, а и ако га шаље није обавезан да попуни сва поља. Та чињеница веома утиче на резултат анализе садржаја а самим тим и на генерисање профила корисника. Задатак аутора је да реализује веб клијентску апикацију која ће омогућити оператерима да утичу на систем за препоруку тако што ће моћи ручно да попуне недовољно описане или чак непостојеће емисије из електронског програмског водича. За извршење овог задатка потребно је омогућити: Додавање тв сервиса Ажурирање података о тв сервису Брисање тв сервиса Додавање емисије у електронски програмски водич Ажурирање података о емисији у електронском програмском водичу Брисање емисије из електронског програмског водича Додавање нових тагова Повезивање тагова и кључних речи ради боље препоруке Брисање тагова Покретање поновне анализе садржаја (након додавања нових емисија у електронски програмски водич, или измене постојећих, потребно је поново урадити анализу да би се одредиле кључне речи и емисије повезале са таговима) 9

Концепт решења 3.2 Кориснички захтеви Приликом пројектовања графичке корисничке спреге потребно је водити рачуна да ће ову апликацију да користе оператери, и да је потребно да уносе велике количине података. Претпоставка је да ће оператер да уноси десетине ставки као и да постоји рутина у уносу истих. Тако да једна од најважнијих одлика које ова корисничка спрега треба да има јесу пречице на тастатури, да оператер што мање мора да користи миш и да не склања прсте са тастатуре и у том губи фокус на уносу. Под пречицама на тастатури мисли се на: Прелазак из једног стања у друго - прелазак са прегледа електронског програмског водича на преглед тв сервиса Табулација добро познато дугме на тастатури Tab које треба да омогући логичко кретање кроз форму коју корисник попуњава Друга важна ставка о којој треба водити рачуна јесте потврда акције. Апликацију може извршавати оператер који није довољно обучен да рукује апликацијом и да се деси да не намерно кликне погрешно дугме и тиме угрози конзистентност система (нпр. грешком обрише све податке из базе података). Потребно је да након важних акција, као што су брисање, орисник добије дијалог где ће морати да потврди своју акцију. То не сме да буде направњено тако да угрози прву одлику и да успори корисника, тако да и тај дијалог може да има пречице на тастатури. Трећа ставка јесте да се мора водити рачуна о порукама о грешци. Уколико корисник покушава да унесе податке који нису валидни и могу да угрозе конзистентност стистема, апликација треба да му пријави поруку која ће му помоћи да реши проблем у ком се тренутно нашао. 3.3 Концепт решења За концепт решења потребна су додатна објашњења компоненти GWT алата која су коришћена у концепту решења. 3.3.1 Event Bus GWT поседује механизам догађаја (енг. еvents). То подразумева клик на дугме, фокус на поље форме, прелазак мишем преко графичког елемента и слично. У GWT-у то се називају природни (енг. native) догађаји. Са друге стране постоје догађаји који се осносе на посебне графичке елементе као нпр. одабир датума на компоненти DatePicker што ће објавити догађај 10

Концепт решења ValueChangeEvent. Ови догађаји називају се логички (енг. logical) и програмер може да креира своје логичке догађаје када прави графичке елементе. Поред свега GWT обезбеђује алат назван HandlerManager који може да се користи као магистрала за догађаје (енг. event bus). Магистрала за догађаје је канал кроз који се шаљу поруке које је je послао произвођач (назив за компоненту која објављује догађаје), и где произвољан број потрошача (назив за компоненте које реагује на објаве догађаја) ослушкује канал, прима поруке и реагује на њих. Важна разлика магистрале за догађаје и основног реаговања на догађаје јесте то што произвођач и потрошачи нису свесни једни других, и све што знају јесте канал кроз који очекују поруке. Ово омогућава развијање такве архитектуре где су копоненте лабаво везане једна за другу, чиме се добија што мања међузависност компоненти. Слика 3.1 Илустративни пример рада магистрале за догађаје Уколико би се поруке размењивале на тај начин да један модул позива функције другог, онда би сваки модул морао имати референцу на модул ком шаље поруке и самим тим би један модул зависио од другог, а то је оно што прогамери теже да смање. Уколико би један модул требао да размењује поруке са више модула то би узроковало тесно повезивање свих модула међусобно што води ка шпагети коду. Без магистрале за догађаје зависност између модула може изгледати као на слици 3.2. 11

Концепт решења Класа А Класа Б Класа В Класа Г Класа Д Слика 3.2 Комуникација између модула и њихова међузависност без примене магистрале за догађаје Коришћењем магистрале за догађаје губи се зависност између модула, јер сви ослушкују магистралу и реагују само на оне поруке које желе. Произвођач није свестан ко су потрошачи и како ће да одреагују на примање поруке. Класа А Класа Б Класа В Магистрала за дпгађаје Класа Г Класа Д Слика 3.3 Комуникација између модула и њихова међузависност применом магистрале за догађаје 12

Концепт решења 3.3.2 Комуникација између послужиоца и прегледача Када се већ користи Јава као програмски језик, било би савршено када би програмер могао да користи Јаву на страни послужиоца, исто као што користи Јаву за писање апликација заснованих на GWT-у, и размењује Јава објекте између прегледача и послужиоца. Пошто није могуће извршавати Јава код у прегледачу, осим Јава аплета (енг. Java applets) који нису тема овог рада, већ само JavaScript, потребна је неки алат који ће омогућити комуникацију између JavaScript-а који се извршава у прегледачу и Јава бајт кода (компајлирани Јава код) који се извршава на послужиоцу. GWT-RPC - удаљено прозивање метода (енг. Remote Procedure Call) - механизам задужен да рукује серијализацијом и преношењем Јава објеката од и до послужиоца, али и кроз клијентски код у JavaScript-u омогућава комуникацију између прегледача и послужиоца путем HTTP (енг. HyperText Transfer Protocol) мрежног протокола. То није једини начин да клијентска апликација комуницира са послужиоцем у GWT алату. Постоји могућност да се користи комуникација у стилу Ajax-a (енг. Ajax - Asynchronous JavaScript and XML). За поставку GWT RPC потребна су три елемента: 1. Сервис који се извршава на послужиоцу (методе које ће се прозивати) 2. Клијент који ће прозивати те методе 3. Објекти који ће се прослеђивати између клијента и послужаоца Са циљем да се дефинише RPC спрега, програмер треба да имплементира следеће три компоненте: 1. Дефинисати спрегу (DataAccessService) која ће наследити RemoteService и садржати све потребне методе 2. Направити класу (DataAccessServiceImpl) која наслеђује RemoteServiceServlet и имплементира горе дефинисану спрегу DataAccessService 3. Дефинисати асинхрону спрегу DataAccessServiceAsync преко које ће клијент да позива методе сервиса и која омогућава асинхроно позивање метода сервиса. 13

Концепт решења ServiceDefinitionTarget (interface) RemoteService (interface) RemoteServiceServlet наслеђује наслеђује DataAccessServiceAsync (interface) ппвезани DataAccessService (interface) имплементира DataAccessServiceImpl (class) ппвезани Уграђене GWT класе имплементира DataAccessServiceProxy (service proxy class) Пише прпграмер Аутпматски генерисане Преведен Јава код (извршава се као JavaScript у прегледачу) Стандардни Јава код (извршава се као bytecode на послужиоцу) Слика 3.4 Дијаграм реализације RPC Преношење објеката кроз RPC спрегу није савршено решење, јер није у стању да се уради серијализација свих постојећих објеката. Нпр. GWT не подржава серијализацију објеката класе java.util.bitset а о решењима проблема тог типа, биће речи у наставку рада. 3.3.3 Концепт решења Апликација се може поделити на два дела: део који се извршава на послужиоцу и део који се извршава на прегледачу, а преглед компоненти је најбоље објаснити преко слике. На слици 3.5 је приказан распоред компоненти који омогућује имплементацију MVP пројектног обрасца у GWT-у. 14

Концепт решења Слика 3.5 Шема распореда компоненти са којом се постиже MVP у GWT-у Следи објашњење сваке компоненте: АppControler Може се гледати као главни презентер, и задужен је за иницијализовање апликације и покретање почетног презентера. Осим иницијализације задужен је и за прелазе између погледа (креира један поглед и поставља га за активног). У њему се налази логика апликације тј. кретање кроз стања апликације. Поседује управљање историјом тако што омогућава да се дугмад напред и назад, које има прегледач, користе за промену стања апликације, која је претходно упамтио део за управљање историјом. Презентер садржи пословну логику система. DisplayInterface - Спрега коју треба да имплементира сваки поглед датог презентера. Сваки презентер за себе дефинише DisplayInterface. Поглед Компонента која имплементира DisplayInterface који је за њих дефинисао презентер. Садрже логику која је везана искључиво за распоред графичких елемената (уклључујући анимације и слично). 15

Концепт решења Модел Компонента која представља ентитете који се користе у апликацији. Под моделом се може мислити и на објекте који се размењују путем RPC-а или неке помоћне објекте који служе само као помоћ при имплементацији пословне логике. RPC Services Сервиси који се налазе на послужаоцу и поседују RPC спрегу према клијентској апликацији. Важно је уочити да ове компоненте, иако се налазе на послужиоцу, могу да објављују догађаје на магистрали догађаја Након што је објашњено како постићи MVP у GWT-у, могу се представити компоненте клијентске апликације. На слици испод приказан је блок дијаграм клијентске апликације. АppControler блок задужен је да, посредством блока за управљање историјом, смењује активне презентере у апликацији. Презентери су подељени у логичке целине и немају зависност једни од других. Сваки презентер дефинише DisplayInterface спрегу за спрезање са погледом. Презентери, који су на страни прегледача, комуницирају са послужиоцем путем RPC прозивајући методе RPC сервиса. Поред прозивања метода, могуће је и слање догаћаја на магистралу за догађаје. 16

Концепт решења Слика 3.6 Блок дијаграм клијентске апликације 17

Закључак 4. Програмско решење У овом поглављу биће изложена апликативна спрега програмског решења као и проблеми са којима се аутор сусретао при имплементацији решења. 4.1 Проблеми при имплементацији програмског решења У овом делу биће наведени проблеми са којима се аутор сусретао приликом израде пројекта. Већину проблема правила је несавршеност GWT алата. Проблеми који ће бити наведени су кључни у случају ове апликације, док би неки мали проблеми на које је аутор наишао у другим апликацијама стварали ужасне главобоље (нпр. ScrollPanel, класа која представља панел који обавија садржај у област која може да се скролује, се не понаша исто у прегледачу Chrome и прегледачу Firefox). Тај проблем може да се занемари у случају коришћења ове апликације јер оператери за које је намењена ова апликација мораће да раде под једним прегледачом, док би за апликацију која би била доступа широј јавности то представљало проблем. 4.1.1 Комуникација са сервисом за препоруку садржаја Сервис за прикупљање, анализу и препоруку садржаја је имплементиран коришћењем Java EE (енг. Java Enterprise Edition) технологије и коришћене су EJB (енг. Enterprise Java Bean) компоненте да би се омогућила модуларност пројекта. Сви модули упаковани су у једну архиву коју препознаје апликативни послужиоц на којима се покреће апликацију. Та архива се назива EAR (енг. Enterprise Archive) и јако је слична стандардном JAR само са додатним мета-подацима који описују модуле. Клијентска апликација која треба да омогући руковање сервисом може на три начина да рукује са њим: Директно мењајући податке у бази података 18

Закључак Да се на страни сервиса омогући нека спрега (нпр. REST или WSDL) а клијентска апликација да користи неку библиотеку која би омогућила спрезање са тим сервисом Постоје две врсте веб пројеката: динамички и статички. Динамички веб пројекат може да садржи Јава ЕЕ ресурсе као што су сервлети, JSP датотеке, и слично. Статички веб пројекат садржи само статичке ресурсе. Трећи начин на који може да се спрегну клијентка апликација и сервис јесте да се GWT пројекат конвертује у динамички веб пројекат (енг. Dynamic Web Project) и да постане део EAR пројекта у ком се налази сервис за прикупљање, анализу и препоруку садржаја. Аутор је одлучио да користи трећу опцију из разлога што прва опција, која има потпуну контролу над базом података, након спрезања са базом података постаје зависна од ње. Уколико неко од програмера који развијају сервис за препоруку одлучи да промени како изгледају неке табеле у бази података, и клијентска апликација би морала да се мења да би била компатибилна са измењеном базом. Другачије речено, свака измена у бази података захтева мењање клијентске апликације. Друга опција није изабрана из разлога што у том случају на страни сервиса мора да се имплементира посебна спрега за клијентску апликацију, и клијентска апликација би морала да користи неку библиотеку да омогући спрезање са сервисом, што захтева више посла него трећа опција у којој је потребно само променити структуру пројекта. Након што се GWT пројекат убаци у EAR потребно је успоставити комуникацију са осталим модулима. На слици испод приказани су модули и њихов распоред у систему. За део клијентске апликације која се извршава у послужиоцу потребно је да има приступ бази података али посредством модула који комуницира са базом података (DataAccess) да би се избегли проблеми које доноси прво од три могућа решења спрезања ових модула. Поред тога потребни о је укључити модул који у себи садржи дефиниције класа чији се објекти користе у систему (Entities). Да би GWT могао да види та два модула није довољно да се ти пројекти укључе у пројекат већ је потребно дефинисати један XML по модулу тако да би GWT компајлер могао да зна шта је потребно да компајлира из тог модула. 19

Entities Закључак Прегледач GWT Client Side Ппслужилац REST API Manager Content Manager Text Analysis Profile Generator `GWT Server Side DataAccess Database Слика 4.1 Архитектура сервиса за препоруку садржаја са додатом клијентском апликацијом 4.1.2 Проблеми при преносу објеката од послужиоца до прегледача GWT-RPC је заслужан за пренос Јава објеката од послужаоца до прегледача, и након преноса омогућава коришћење тог објекта у послужаоцу. Тачније од Јава објекта прави JavaScript. То решење није савршено самим тим јер није у могућности све Јава објекте да претвори у JavaScript. При имплементацији сервиса за препоруку коришћена је класа java.util.bitset чији је објекат требао да се пропагира до прегледача. GWT-RPC у тренутку израде овог пројекта није подржавао пренос објеката класе java.util.bitset што се може видети на [6]. Овај проблем је решен тако што је направљена класа слична класи java.util.bitset али само са функционалностима које су претходно биле потребне. Ово вероватно није једина класа коју GWT компајлер не може да преведе у JavaScript али је једина на коју је аутор наишао. 4.1.3 Компатибилност са будућим верзијама сервиса за прикупљање, анализу и препоруку садржаја Као све апликације, и сервис за препоруку садржаја може да се мења током времена. На слици 4.1 је објашњено спајање GWT пројекта са пројектом сервиса за 20

Закључак препоруку види се да GWT компонента која се извршава на послужиоцу директно належе на модул који комуницира са базом података, и да захтева модул који садржи дефиниције класа чији се објекти користе. Дефиниције тих класа временом могу да се мењају, класе могу да промене име и слично. Да би се избегао ланчани ефекат, да од измене назива класе мора да се мења име те класе у целом пројекту, аутор је одлучио да направи слој прилагођења сервису за препоруку садржаја. Слој прилагођења има за циљ да омогући компатибилност клијентске апликације са будућим верзијама сервиса за препоруку садржаја. Његов посао је да све објекте класа које се налазе у модулу Entities препише у објекте својих класа које ће се користит у целој клијентској апликацији тако да се објекти класа Entities користе само у слоју прилагођења а у свим слојевима који користе слој прилагођења користиће се објекти намењени искључиво за целу апликацију. Сада, уколико се било шта промени на страни сервиса за препоруку садржаја, на клијентској апликацији је потребно мењати само слој прилагођења док остали слојеви могу у потпуности да се искористе. 4.2 Апликативна спрега програмског решења У оквиру рада сви модули су писани у програмском језику Јава, и коришћен је алат GWT. Програмско решење је организовано по пројектном обрасцу MVP чиме је омогућена модуларност апликације, и постигнуто да се апликација лако прошири или измени. Следи приказ свих пакета, као и класа које се налазе у њима. 4.2.1 com.rtrk.cmore.gwt CMoreGWTWebInterface.gwt.xml конфигурациона датотека за GWT компајлер 4.2.2 com.rtrk.cmore.gwt.client AppControler.java CMoreGWTWebInterface.java Почетна тачка при извршавању апликације (задато у конфигурацион датотеци). Наслеђује EntryPoint класу. DVBDataService.java Спрега која дефинише које функционалности треба да има сервис који ће се извршавати на послужиоцу DVBDataServiceAsync.java 21

Закључак 4.2.3 com.rtrk.cmore.gwt.event У овом пакету налази се велики број класа, које дефинишу објекте који се размењују путем магистрале за догађаје. Биће наведено само неколико класа из овог пакета: AddDVBServiceEvent.java Догаћај на који реагује AppControler, и мења стање апликације у стање за додавање новог ДТВ сервиса AddDVBServiceEventHandler.java Спрега која треба да се имплементира са стране модула који жели да реагује на догађај AddDVBServiceEvent DVBServiceListActivated.java Догаћај на који реагује AppControler, и мења стање апликације у стање за приказ свих ДТВ сервиса DVBServiceListActivatedHandler.java Спрега која треба да се имплементира са стране модула који жели да реагује на догађај DVBServiceListActivatedHandler EditDVBServiceActivatedEvent.java Догаћај на који реагује AppControler, и мења стање апликације у стање за измену постојећег ДТВ сервиса EditDVBServiceActivatedEventHandler.java Спрега која треба да се имплементира са стране модула који жели да реагује на догађај EditDVBServiceActivatedEvent DVBServiceUpdatedEvent.java Догаћај на који реагује AppControler, и мења стање апликације у стање за приказ свих ДТВ сервиса DVBServiceUpdatedEventHandler.java java Спрега која треба да се имплементира са стране модула који жели да реагује на догађај DVBServiceUpdatedEvent DVBServiceAddedEvent.javа Догаћај на који реагује AppControler, и мења стање апликације у стање за приказ свих ДТВ сервиса DVBServiceAddedEventHandler.java Спрега која треба да се имплементира са стране модула који жели да реагује на догађај DVBServiceAddedEvent 4.2.4 com.rtrk.cmore.gwt.presenter DVBEventListPresenter.java Пословна логика за приказ догађаја из електронског програмског водича DVBServiceListPresenter.java Пословна логика за приказ ДТВ сервиса 22

Закључак EditDVBEventPresenter.java Пословна логика за додавање или ажурирање догађаја из електронског програмског водича EditDVBServicePresenter.java Пословна логика за додавање или ажурирање ДТВ сервиса EditTagPresenter.java Пословна логика за додавање или ажурирање тага MainPresenter.java Пословна логика за приказ основног изгледа странице TagKeywordRelationPresenter.java Пословна логика за прављење веза између тагова и кључних речи TagListPresenter.java Пословна логика за приказ тагова 4.2.5 com.rtrk.cmore.gwt.ui.widgets HasSelectedValue.java KeywordSuggestion.java KeywordSuggestionOracle.java SelectOneListBox.java 4.2.6 com.rtrk.cmore.gwt.view DVBEventListView.java - Обезбеђује приказ листе догађаја из електронског програмског водича. Слика 4.2 Графички приказ DVBEventListView DVBServiceListView.java Обезбеђује приказ листе ДТВ сервиса 23

Закључак Слика 4.3 Графички приказ DVBServiceListView EditDVBEventView.java Обезбеђује форму која служи за ажурирање постојећег или додавање ногов догађаја из електронског програмског водича Слика 4.4 Графички приказ EditDVBEventView EditDVBServiceView.java Обезбеђује форму која служи за ажурирање постојећег или додавање ногов ДТВ сервиса 24

Закључак Слика 4.5 Графички приказ EditDVBServiceView EditTagView.java Обезбеђује форму која служи за ажурирање постојећег или додавање ногов тага MainView.java Обезбеђује изглед почетне странице и садржи област у коју ће се убацивати поглед TagKeywordRelationView.jav Обезбеђује везивање кључних речи за тагове Слика 4.6 Графички приказ TagKeywordRelationView TagListView.java Обезбеђује приказ листе свих тагова у систему TopView.java Обезбеђује приказ лого-а на свим страницама. Постоји као посебан поглед због поновног коришћења. Уколико би се лого изменио, или је потребно додати неке опције, потребно је изменити само ову класу. 4.2.7 com.rtrk.cmore.gwt.server DVBDataServiceImpl.java Имплементација сервиса који се извршава на послужиоцу 4.2.8 com.rtrk.cmore.gwt.shared Contains.java Константе које су коришћене у апликацији DVBService.java Ентитет који представља ДТВ сервиса EPGEvent.java Ентитет који представља догађај у електронском програмском водичу Keyword.java Ентитет који представља кључну реч 25

Закључак Tag.java Ентитет који представља таг 26

Закључак 5. Резултати 5.1 Тестирање корисничких захтева При тестирању корисничких захтева, испитивали су се захтеви наведени у поглављу 3.2. Тестирање је извршено над седам испитаника, у виду анкете и мерења времена за извршење неких акција. Пре анкете, испитивач је испитаницима показао апликацију и објаснио основне акције које могу да се изврше у апликацији, тј. испитивач је извршио обуку испитивача исто као што би се извршила обука оператера који би користио ову апликацију у реалним условима. Акције које су тражене од испитаника су 1. Пронаћи ДТВ сервис са задатим именом и изменити његово име 2. Додати три нова ДТВ сервиса користећи пречице на тастатури (Ctrl+A за додавање новог ДТВ сервиса, ТАБ за кретање кроз форму коју корисник попуњава). У овој ставци испитивач мерио време које је испитанику било потребно да изврши акцију. 3. Додати три нова ДТВ сервиса без коришћење пречица тастатуре. У овој ставци испитаник је мерио време које је кориснику било потребно да изврши акцију. 4. Обрисати све сервисе које је додао. 5. Додати нови таг. 6. Повезати таг са једном кључном речју по избору. 27

Закључак Време потрбно за Време потрбно за Однос између извршење акције без извршење акције са два испитивања коришћења пречица (у секундама) коришћењем пречица (у секундама) Корисник 1 31 27 1,15 Корисник 2 36 30 1,2 Корисник 3 57 34 1,67 Корисник 4 23 18 1,27 Корисник 5 46 41 1,12 Корисник 6 49 46 1,07 Корисник 7 48 34 1,42 Табела 5-1 Приказ резултата испитивања Из табеле се види да су пречице на тастатури омогућиле да корисник акције извршава до 67% брже него без пречица. 5.2 Функционално тестирање Коришћењем алата за аутоматизацију imacro испитана је стабилност апликације [7]. imacro је алат који омогућава тестирање апликације из прегледача на принципу уношења акција које су потребне да се изврше (кликнути на дугме Обриши, извршити селекцију неког елемента, учитати страницу са одређеним линком итд.). Испитивање је извршено на у прегледачу Chrome верзија 35.0.1916.153 m, и на серверу JBoss 7.1.1 final. Тестни случај се састоји из следеђих акција: 1. Отворити почетну страницу апликације 2. Отворити листу ДТВ сервиса 3. Кликнути на дугме за додавање новог ДТВ сервиса 4. Попунити форму при уносу ДТВ сервиса 5. Потврдити акцију додавања ДТВ сервиса Дати низ акција поновљен је 100 пута, коришћењем опције понављања коју нуди алат imacro. Додата је пауза између акција да би се имитирали реални уноси, у супротном би алат уносио на десетине ДТВ сервиса у секунди. У току извршавања акција коришћен је алат за мерење потрошње меморије који нуди прегледач Chrome. 28

Закључак Слика 5.1 Резултати мерења: потрошња меморије у времену Резултати испитивања приказани су на слици 5.1, која приказује потрошњу меморије по времену. Може се видети да је при покретању апликације захтевано мало више меморије (до 35 мегабајта) због иницијализације. Након тога, при додавању ДТВ сервиса апликација троши мање меморије, зависно од стања у ком се налази. А након свих уноса, потрошња меморије пада на испод 9 мегабајта, што је мала величина јер данашњи рачнари и имају преко 4 гигабајта радне меморије. 29

Закључак 6. Закључак У овом раду приказана је реализација клијентске веб апликације за руковање сервисом за прикупљање, анализу и препоруку садржаја коришћењем GWT скупа алата са погледом на MVP пројектни образац. Реализација ове апликације треба да омогући оператерима једноставно и лако руковање сервисом за препоруку и самим тим омогући побољшање препоруке садржаја. Апликација реализована са циљем да се омогући лако проширење, јер се то и очекује са стране сервиса за препоруку, чему је допринео MVP пројектни образац. У овој апликацији места за напредак има много. У виду брзине извршавања то тренутно није потребно, јер је из функционалног тестирања закључено да апликација не троши пуно ресурса. Такође се од ове апликације не очекује да се извршава на много рачунара, већ само на рачунарима оператера. Побољшања у виду графичке спреге су оно на шта треба да се стави акценат у будућности, да би се оператерима што више олакшао рад са апликацијом. 30

Литература 7. Литература [1] H. Benoit "Digital Television - Satellite, Cable, Terrestrial, IPTV, Mobile TV in the DVB Framework", Focal Press, 2008 [2] Mehanizam za preporuku sadržaja zasnovanog na kategorijama određenih analizom tekstualnog opisa gledanog TV programa, Aleksandar Beserminji, Goran Stupar, Etran 2014 [3] Jedno rešenje aplikativne programske sprege za za pribavljanje raznorodnog digitalnog sadržaja sa raznih izvora, zasnovana na REST paradigm, Stefan Pijetlovic, Nevena Jovanov, Etran 2014 [4] GWT документација: http://www.gwtproject.org/, приступано 20. Маја 2014. [5] GWT in Action, Robert Hanson, Adam Tacy [6] GWT Issue 3279, подршка за java.util.bitset: https://code.google.com/p/google-web-toolkit/issues/detail?id=3279,приступано 22. Маја 2014. [7] imacros документација http://wiki.imacros.net/main_page,, приступано 29. Маја 2014. 31