Diseño de una plataforma de agentes para control de servicios de vídeo streaming móvil
Abstract
Programa de doctorado: Tecnología de la Información y sus aplicaciones. La fecha de publicación es la fecha de lectura
Full text
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 2
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 3 Agradecimientos Agradezcoamipadrecelestialporsufortalezaenestecaminollenodeaprendizajes, por su infinito amor y bendiciones. Un gracias desde lo profundodemialmaami preciosohijoSebastián,miregalodivino,quienhasidomiinspiraciónyalegría,quienha sabidosoportarmisausenciasymehaenseñadoconsugranternuraaservalientey lucharcontodoelcorazónparalograrlavictoria. También,agradezcoamifamiliaporsugranamor,porsiempreestaramiladoy compartirmisrisasyllantos,porsermialientoencadadesánimoylaalegríaencada conquista. A mis amigos, por estar presentes en cada etapa de mividayporsu motivacióndiariaparavolverasoñar. Contodomicorazón,unsentidograciasaElsayÁlvaro,porsupacienciayapoyo alevantarmedemiscaídasyseguirperseverandoenestehermosoanhelo. NopuedoolvidarteatiDiego,amigoyhermano,compañerodeestatravesía, dondemutuamentearrimamosnuestroshombroshastalograrllegaralaorilla.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 4
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 5 Resumen Laevolucióndelascomunicacionesinalámbricasyeldesarrollodelosteléfonosmóviles inteligenteshaninfluidoenunacrecientedemandadeaplicacionesparamóviles,en especial video streaming. Los canales inalámbricos se ven afectados por el comportamientoimpredecibledelaRed,quepuedegenerarquiebresdecomunicación, queafectanlatransmisióndelvideostreaming.Sedefineunmodelobásicobasadoen proxies que permite controlar una interrupción del video y posibilita al cliente la continuidaddelvideodesdelaposiciónenlaqueseencontrabaunavezserestablezca elcanaldecomunicación. Para su funcionamiento en entornos Web, se propone el incremento de funcionalidad a este modelo básico a través de agentes ontológicosqueevalúanel estadodelosrecursosdeldispositivomóvilyelusodepatronessoftwaredediseñopara establecerunaposibleinterrupciónysolicitarlaejecucióndeestrategiasquepermitan alclientecontinuarvisualizandoelvideodesdeelpuntodequiebre.Estenuevomodelo secaracterizaporserinteroperableymultiplataforma. Enbasealaexperienciaobtenida,seplanteóuninteracciónalmodelo Web interoperabledesarrollado,conmirasaevaluarelestadodesensoresparadomótica controladosypermitireldesplieguedelvideostreamingentiemporealeneldispositivo móvil,estosehalogradomanteniendoelmodelobásicopropuestoyreemplazandola orientación de los patrones software de diseño anteriormente seleccionados, cumpliéndoseelobjetivodelcontroldeinterrupciónycontinuidaddelserviciodevideo streaming. Se han logrado desarrollar las propuestas en base a un diseño iterativo del modelobásicoelcualsemantieneconstante,peroensusincrementos se añaden patronessoftwareycomportamientos,estonosuponeuncostoadicionaleneltiempo deejecución,másbiensehalogradoreducirelimpactonegativodeunainterrupcióny mejorarlaexperienciadeusuarioenlosserviciosdevideostreaming.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 6 Palabrasclave Videostreaming,comunicacióninalámbrica,dispositivosmóviles,agentesinteligentes, ontología,serviciosWeb,interrupción,recuperación,videostreamingentiemporeal, sensores,ambientesdomóticos.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 7 Abstract Theevolutionofwirelesscommunicationsandthedevelopmentofsmartphoneshave influenced a growing demand of mobile applications, especially video streaming. Wirelesschannelsarebeingaffectedbytheunpredictablebehaviorofnetwork,which cangeneratecommunicationbreakdownsthataffectthevideostreamingtransmission. Amodelbasedonproxiesisdefinedsoitcontrolsavideointerruptionandallowsthe costumerthecontinuityvideofromthepositionwherehewasonce that the communicationchannelisrestored. Foroperationinwebenvironments,isproposedthefunctionalityintendstothis basicmodelthroughontologicalagentsthatevaluatethestatusofmobileresourcesand theuseofsoftwaredesignpatternstoestablishapossibleinterruptionandrequest strategiesexecutionthatallowthecostumertocontinueviewingthevideofromthe breaking point. This new model is characterized for being interoperable and multi‐ platform. Based on the experience gained, an interaction with the web interoperable modeldevelopedwasraised,inordertoevaluatethesensorsstateforcontrolledhome automationandallowthevideostreamingdeploymentinthemobiledeviceinrealtime, thiswasachievedmaintainingthebasicmodelproposedandreplacingtheorientation ofsoftwaredesignpatternspreviouslyselected,accomplishingthegoalofinterruption controlandcontinuityserviceofvideostreaming. Ithasdevelopedproposalsbasedonaninteractivedesignofthebasicmodel whichisconstant,butinitincreasessoftwarepatternsandbehaviorshavebeenadded, thisisnotanadditionalcostintheexecutiontime,ratherithasmanagedtoreducethe negativeimpactofaninterruptionandimprovetheuserexperienceinvideostreaming service.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 8 Keywords Videostreaming,wirelesscommunication,mobiledevices,smartagents,ontology,Web services,interruption,recovery,videostreaminginrealtime,sensors,homeautomation environments.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 15 Índicedetablas Tabla2.1Análisisdelosestándaresdelanorma802.11...................................41 Tabla2.2EvolucióndelosdispositivosinalámbricosiPhone.............................43 Tabla2.3Tiposdesensores................................................................................45 Tabla2.4ProtocolosdeComunicación..............................................................55 Tabla2.5SistemasMAS......................................................................................70 Tabla2.6ComponentesMVC.............................................................................80 Tabla2.7Casodeusosolicitarvideo..................................................................90 Tabla2.8Casodeusoenviarvideo....................................................................90 Tabla3.1Casodeusoreproducirvideo...........................................................114 Tabla3.2Casodeusosolicitarrevisiónalmacenamiento................................115 Tabla3.3Casodeusoevaluarestadocanaldecomunicación.........................115 Tabla3.4Casodeusomantenercontinuidaddelvideo..................................116 Tabla3.5Casodeusogestionarinterrupcióndelservicio...............................116 Tabla3.6Casodeusogestionarreconexión....................................................117 Tabla4.1Casodeusoreproducirvideo...........................................................142 Tabla4.2Casodeusosolicitarrevisiónalmacenamiento................................143 Tabla4.3Evaluarestadoderecursosdeldispositivo.......................................143 Tabla4.4Casodeusomantenercontinuidaddelvideo..................................144 Tabla4.5Casodeusogestionarinterrupcióndelservicio...............................144
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 16 Tabla4.6Casodeusogestionarreconexión....................................................145 Tabla4.7Casodeusorealizarmonitoreoestadoderecursos.........................146 Tabla4.8Casodeusorealizaranálisisontológicodelosrecursos..................147 Tabla4.9Casodeusoanálisisontológicobatería............................................147 Tabla4.10Casodeusoanálisisontológicolatencia.........................................148 Tabla4.11Casodeusorealizaranálisisontológicogeolocalización................148 Tabla4.12Casodeusotransformaraserviciosweb.......................................149 Tabla4.13DescripcióndelaontologíaWiFiOntology......................................167 Tabla4.14IntegracióndeagentesinteligentescomoserviciosWeb..............169 Tabla4.15PruebasrealesArquitecturaICASWA.............................................175 Tabla4.16RangossinICASWA.........................................................................176 Tabla4.17RangosconICASWA........................................................................176 Tabla4.18Pruebassimuladas..........................................................................177 Tabla5.1Casodeusoevaluarestadodesensores..........................................183 Tabla5.2Casodeusoreproducirvideo...........................................................183 Tabla5.3Casodeusosolicitarrevisiónalmacenamiento................................184 Tabla5.4Casodeusoevaluarestadocanaldecomunicación.........................184 Tabla5.5Casodeusomantenercontinuidaddelvideo..................................185 Tabla5.6Casodeusogestionarinterrupcióndelservicio...............................185 Tabla5.7Casodeusogestionarreconexión....................................................186 Tabla5.8Realizarmonitoreoestadoderecursos............................................187
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 17 Tabla5.9Casodeusorealizaranálisisontológicodelossensores..................187 Tabla5.10Casodeusoanálisisontológicotemperatura.................................188 Tabla5.11Casodeusoanálisisontológicoluminosidad.................................188 Tabla5.12Casodeusorealizaranálisisontológicomovimiento.....................189 Tabla5.13CasodeusotransformaraserviciosWeb.......................................189
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 18
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 19 ÍndicedeFiguras Figura2.1Evolucióndeltráficodedispositivosinalámbricos............................40 Figura2.2Númerodeusuariosmóvilesenelmundo........................................40 Figura2.3EvolucióndelestándarIEEE802.11...................................................41 Figura2.4Serviciodevideostreaming...............................................................49 Figura2.5Arquitecturabásicadelserviciodevideostreaming.........................51 Figura2.6Protocolosutilizadosenvideostreaming..........................................54 Figura2.7ArquitecturaJADE..............................................................................73 Figura2.8PatrónComposite..............................................................................80 Figura2.9PatrónStrategy..................................................................................81 Figura2.10PatrónObserver...............................................................................82 Figura2.11PatrónProxy....................................................................................83 Figura2.12PatrónAdapter................................................................................83 Figura2.13ComponentesdeWSIG....................................................................88 Figura2.14Casodeusodeesquemabásico......................................................89 Figura2.15Esquemabásicobasadoenpatronessoftware...............................91 Figura2.16Diagramadeclasesdelesquemabásico.........................................92 Figura2.17Diagramadesecuenciadelesquemabásico...................................93 Figura2.18Diagramadesecuenciadelesquemabásico...................................94 Figura2.19Análisispeorescenario....................................................................97
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 20 Figura2.20Análisismejorescenario..................................................................98 Figura2.21Flujosretransmitidos.....................................................................101 Figura2.22Totaldeflujosretransmitidos........................................................101 Figura2.23Análisisderetransmisióndeflujos................................................102 Figura2.24Efectosdelaretransmisión...........................................................102 Figura2.25Experimentaciónmejorescenario.................................................103 Figura2.26Totalderetransmisiónmejorescenario........................................103 Figura2.27Resumenderetransmisionesmejorescenario.............................103 Figura2.28Efectosdelaretransmisiónmejorescenario................................104 Figura2.29Experimentaciónpeorescenario...................................................105 Figura2.30Totalretransmisiónenelpeorescenario......................................105 Figura2.31Resumenderetransmisionespeorescenario...............................105 Figura2.32Efectosdelaretransmisiónpeorescenario..................................106 Figura2.33Experimentaciónmejorescenario.................................................107 Figura2.34Experimentaciónpeorescenario...................................................107 Figura2.35Análisistiempodeejecución.........................................................107 Figura2.36Análisisdeinterrupciones..............................................................107 Figura2.37Tiemposexperimentaciónreal......................................................108 Figura2.38Tiemposaplicaciónmodelodetiempo.........................................109 Figura2.39Relaciónentretiemposdetransmisiónydeinterrupción...........109 Figura3.1Diagramadecasosdeuso...............................................................113
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 21 Figura3.2Modelobasadoenpatrones............................................................118 Figura3.3Diagramadeclases..........................................................................120 Figura3.4Diagramadesecuencia....................................................................121 Figura3.5Diagramadedespliegue..................................................................122 Figura3.6Experimentaciónmejorescenario...................................................125 Figura3.7Experimentaciónpeorescenario.....................................................125 Figura3.8Análisistiempodeejecución...........................................................126 Figura3.9DiagramadeclasesiPhone..............................................................128 Figura3.10Diagramadesecuencia..................................................................129 Figura3.11Diagramadedespliegue................................................................130 Figura3.12ModeloJADEiPhone......................................................................133 Figura3.13FuncionalidaddeJADEiPhone.......................................................135 Figura3.14Análisisdejitter.............................................................................136 Figura3.15Análisisdelretardo........................................................................136 Figura4.1CasodeUsosolucióninteroperable................................................142 Figura4.2Explosióndeldiagramadelcasodeuso..........................................146 Figura4.3ModeloWebinteroperable.............................................................150 Figura4.4Diagramadeclases..........................................................................153 Figura4.5Diagramadesecuencia....................................................................155 Figura4.6Diagramadedespliegue..................................................................156 Figura4.7Experimentacióntiempodeejecución............................................158
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 22 Figura4.8Análisistiempodeejecuciónporescenario....................................158 Figura4.9Análisistiempodeinterrupciónporescenario................................159 Figura4.10Comparativausodememoria.......................................................160 Figura4.11Diagramadeclases........................................................................162 Figura4.12Diagramadesecuencia..................................................................163 Figura4.13Diagramadedespliegue................................................................164 Figura4.14PlataformadeserviciosWebyagentesinteligentes.....................166 Figura4.15EsquemadelaOntología...............................................................168 Figura4.16CreaciónagenteWSIG...................................................................169 Figura4.17ConsolaWSIG.................................................................................170 Figura4.18TesterWSIG...................................................................................170 Figura4.19Tiemposenexperimentaciónenvivo............................................171 Figura4.20Obtencióndeinformaciónenvivo................................................172 Figura4.21Datosresultantesdelapruebasimulada......................................172 Figura4.22Comparativatiempodeejecución.................................................173 Figura4.23Datospromediospruebacon3interrupciones.............................174 Figura4.24Tiempoejecucióncon3interrupciones........................................174 Figura4.25PruebasrealesconlaarquitecturaICASWA..................................175 Figura4.26PruebassimuladasdelaarquitecturaICASWA.............................177 Figura5.1Diagramadecasodeuso.................................................................182 Figura5.2Explosióndelcasodeusoevaluarestadodesensores...................186
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 23 Figura5.3Modelovideostreamingentiemporealbasadoensensores........190 Figura5.4Diagramadeclases..........................................................................194 Figura5.5Diagramadesecuencia...................................................................195 Figura5.6Diagramadedespliegue..................................................................197 Figura5.7Mejorescenario...............................................................................199 Figura5.8Peorescenario.................................................................................199 Figura5.9Análisisdeescenarios......................................................................199 Figura5.10Análisisdeinterrupcionesporescenario......................................200 Figura5.11Modelodeclases...........................................................................203 Figura5.12Diagramadesecuencia..................................................................204 Figura5.13Diagramadedespliegue................................................................205 Figura5.14ArquitecturaICARTS......................................................................207 Figura5.15FuncionalidaddeRpiCam.............................................................209 Figura5.16Escenarioexperimental.................................................................210 Figura5.17Ambientedomóticopartedelantera.............................................212 Figura5.18Ambientedomóticointeriores......................................................212 Figura5.19Ambientedomóticosensores........................................................212 Figura5.20Experimentaciónreal.....................................................................213 Figura5.21Análisisdeltiempodeejecuciónydeinterrupción......................213 Figura5.22Usodememoriadevideos............................................................214 Figura5.23Promediosusodememoria...........................................................214
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 24 Figura5.24Usodememoriapromedio............................................................215 Figura5.25Pruebasenvivodevideostreamingentiemporeal.....................216 Figura5.26Análisisdeltiempodeejecuciónydeinterrupción......................216
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 31 paralaejecucióndeestasnuevasfuncionalidadessesolapanconeltiempo de visualización del video, también es necesario indicar que al ocurrir interrupcionesenlatransmisióndelvideostreaming,elcontrolproactivo querealizaestasoluciónapoyaenlareduccióndeltiempodeejecucióndel video,deformasimilarqueloconsiguióelaplicativoJADE‐iPhone.Nuestro interés es aplicar la metodología incremental e iterativa, por lo que se mantuvo el modelo básico MVC y se adicionaron nuevas funcionalidades basados en el uso de otros patrones software. Para la implementación experimentaldelmodelopropuesto,sehautilizadounadd‐ondeJADEque es Web Services Integration Gateway(WSIG) [10] para lograr la transformacióndeagentesaserviciosWebyserconsumidosenelentorno Web,elagentecreadorealizaelanálisisontológicodelestadodelosrecursos deldispositivoinalámbricocomosonbatería,latenciaygeolocalizaciónpara establecer la posibilidad de una interrupción, permitiendo almacenar proactivamentelaposicióndelvideo,informaciónmuyútilunavezquese supereelproblemadecomunicación. Paraevaluarlaefectividaddelmecanismodecontroldedesconexionesen serviciosdevideostreamingentiemporeal,seestablecióunasoluciónque analizadelestadodelossensoresenelambientecontrolado(movimiento, temperaturayluminosidad)medianteagentesinteroperablesquedefinen alertadeseguridadyactivanlacámaracuyacapturaesdesplegadaenel dispositivomóvilentiemporeal,estapropuestamantienelacontinuidaddel video en caso de que existan interrupciones, mediante un bucle de reconexiónencargadoderestablecerautomáticamenteelservicio.Mientras durelainterrupciónelvideoesalojadoenunalmacenamientotemporal, para posibilitar su visualización cuando el cliente lo requiera. Con la experimentación práctica se ha demostrado que es factible mantener el modelo básico e incrementar o reemplazar nuevas funcionalidades, sin afectareltiempodeejecucióndelvideostreamingquesoporte interrupciones, proveyendo de buenos niveles de QoE al proporcionar al usuario continuidad del servicio en tiempo real con reconexiones automáticasencasodeinterrupcionesyposibilidadderevisarendiferidolos
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 32 videos almacenados de lo que ocurrió durante la interrupción dada. Los sensoresconstantementemonitoreanelambientecontrolado,encasode intrusos definen una alerta que activara la cámara generando video streamingentiemporealasertransmitidoaldispositivomóvil. Estamos interesadosenimplantarelmecanismodecontroldeinterrupcionesenel videostreamingentiemporealconelobjetivodeconsolidarlavalidezdel modelobásicopropuestoydefinirquelaarquitecturaestablecidaadicional puedeserimplementadaconcualquierotrorecursoobservable. Encuantoapublicacionesinternacionales,estetrabajohadadolugaralapublicación: T. Gualotuña, D. Marcillo, E. M. López, and A. Suárez‐Sarmiento, Mobile VideoServiceDisruptionsControlinAndroidUsingJADE”inAdvancesin Computing and Communications, Springer, 2011, pp. 481–490,dondese expone una arquitectura basado en proxies y agentes inteligentes para dispositivosinalámbricosAndroid,queseencargaderesolverlainterrupción enambientesinalámbricosyreanudarautomáticamentelasesióndevideo streaming sin pérdida de la información al aplicar la técnica de almacenamientointermedio. Encuantoaponenciasinternacionales,estetrabajohadadolugaralaponencia: G. Raura, T. Gualotuña, J. Báez, M. Ñauñay, Renderización de imágenes panorámicasdealtaresoluciónendispositivosmóvilesmedianteelusode agentesdesoftware,5toCongresoInternacionaldeTecnologias,Contenidos Multimedia y Realidad Virtual, 2011, La Habana, Cuba. Propone un mecanismodecontroldeinterrupcionesenenlacesinalámbricosnoseguros, quepermitalarenderizacióneficientedefotografíaspanorámicasdealta resoluciónalrecuperarlasesiónautomáticamente.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 33 EnrelaciónaladefiniciónyejecucióndeproyectosdeinvestigacióncomoDirectorde proyectosehadadolugara: La Web semántica orientada a la generación de aplicaciones para discapacitados,quepromueveeldesarrollodeaplicacionesespecializadas en contenidos para discapacitados utilizando los principios de la Web semántica a través del uso de ontologías, agentes de software y herramientas. Diseñodeunaplataformadeagentesparacontroldeinterrupcionespara servicios de video streaming en dispositivos móviles, que permitió el desarrollodesoftwareenAndroid para recuperar la sesión de streaming frenteaunainterrupciónygaranticelarecepcióncompletadelvideo. Enrelaciónaladefiniciónypropuestasdeproyectosdeinvestigaciónaejecutarseseha dadolugara: ExtraccióndeconocimientodeuninvernaderomedianteelusodeWireless SensorNetwork(WSN)ytratamientodeflujosdedatosutilizandotécnicas adaptables a cambios del entorno, que busca desarrolla un sistema que permita capturar la información de la humedad relativa, temperatura y suelospormediodesensoresenuninvernadero,loscualesserían procesadosyanalizadospormediodelamineríadedatosconlafinalidadde establecerpatronesqueapoyenenlatomadedecisiones. En cuanto a trabajo dentro del grupo de investigación en Modelos de Procesos de SoftwaredelaESPEsehacolaboradoconelproyecto: Laboratorio industrial en Ingeniería de Software Empírica, que busca mejorarlacomprensióndelprocesodedesarrollodesoftwareenlaindustria paraloqueserealizaronexperimentoscontroladosyestudiosempíricosque permitenbrindarconocimientossobreelcomportamientodelastecnologías desoftwareendiferentesentornos.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 34 1.5. Estructuradelamemoria Enlaprestacióndelserviciodevideostreamingmóvilenambientesinalámbricoses necesarioproporcionaralusuariodeunabuenaexperiencia,paraellosehadesarrollado variaspropuestasquebuscanmitigarelimpactodeunainterrupción.Eltrabajoqueha sidorealizadosepresentaenlosseiscapítulosdeestamemoria. Enelcapítulo2seestablecelosavancesdelasredesinalámbricasasícomola evolucióndelosdispositivosinalámbricos,loquehainfluidoenelapogeodeservicios multimediacomoesvideostreaming.Peseaestedesarrollosedefinenproblemasque presenta la creciente demanda de los servicios y los problemas que enfrentan la comunicaciónaltenerquesolventarmayorcapacidadyvelocidadenlatransmisión, estoconfluyeenlageneracióndesolucionesquepermitanaminorarlosimpactosdelas desconexionesenelclientealutilizarserviciodevideostreaming. Enelcapítulo3seexponeadetallelaimplementacióndelmecanismo que controlainterrupciones,deformapuntual,seexplicalageneracióndelsoftwareJADE‐ iPhone que implementa la solución básica propuesta, el cual se basa en agentes inteligentesparacontrolarunainterrupcióncuandosetransmiteunvideoaldispositivo móviliOSypermitelacontinuidaddelvideounavezquesereanudalacomunicación inalámbrica. Enelcapítulo4seestableceunasoluciónwebinteroperable,quebuscalograr queelserviciodevideostreamingproporcionadoacualquierdispositivomóvil,pueda enfrentarelcomportamiento caótico dela transmisióninalámbrica alcontrolar una interrupciónmediantesupredicciónontológica,proporcionarlareconexiónautomática y el despliegue del video desde el punto en el que se encontraba al ocurrir la interrupción. Enelcapítulo5seplanteaunasoluciónqueapoyaenlacapturayanálisisdela información proporcionada por sensores de luz, temperatura y movimiento, para establecer de forma ontológica una alerta en ambientes domóticos controlados, al suscitarse eventos inusuales el cliente mediante dispositivos inalámbricos puede observarelvideoentiemporealdeloqueestásucediendoenellugarcontrolado,en
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 35 casodeocurrirunainterrupciónseejecutaunbucledereconexiónquesolicitaelenlace automáticoconlacámaraunavezresueltoelproblemadelainterrupción. Enelcapítulo6sepresentanlasconclusionesylíneasdetrabajofuturo.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 36
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 37 2. Problemáticadevideostreamingen dispositivosinalámbricos Enestecapítulosepresentaeldesarrollodelasredesinalámbricasenespecialredes WiFi;laevolucióndelosdispositivosinalámbricosconénfasislosdeúltimageneración; lacrecientedemandadeservicios multimedia y el apogeo de los serviciosdevideo streaming. Se establece también la problemática que enfrenta esta evolución tecnológicacomo eslasaturacióndeloscanalesinalámbricosysucomportamiento impredecible. Se definen las dificultades que ocasionan las interrupciones en la prestacióndelserviciodevideostreamingylosretospropuestosconmirasaplantear mecanismosquepermitanreducirelimpactodeunainterrupciónenelcliente.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 38
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 39 2.1. Tecnologíasderedesydispositivosinalámbricos La tecnología inalámbrica es un sistema de comunicación que ha experimentado crecientepopularidadalnoexigircableadoensuimplementaciónyposibilitaralusuario movilidadentiemporealloqueapoyaasuproductividadyproporcionaoportunidades deservicioimposiblesdelograrconlasredescableadas.Estanuevainfraestructurade comunicaciónpresentaventajascomo:movilidad,flexibilidad,escalabilidad,velocidad, simplicidadycostosreducidosdeinstalación. Elavancedelasredesinalámbricashapermitidoeldesarrollode muchos serviciosyaplicacionescomo:mensajesmultimedia,VozsobreInternetProtocol(VoIP), telefoníaIP...Laconvergenciadelasaplicacionesinalámbricasconlossistemasmóviles influyenenlaevolucióndelanchodebandamóvilinalámbrico,soncadavezmayoresla demandadeaplicacionesmultimediaaserejecutadasenlosteléfonos móviles inteligentes. En[11]sedeterminaqueelvolumendetráficogeneradoenredescontecnología WiFialcanzóun49%deltráficototaldeInternetenel2012,mientrasqueenel2017se prevésuincrementoal56%.Enrelaciónalasredesmóviles,en[12]seestablecequeel tráficodeestetipoderedessupondríaun12%deltráficototaldeInternetparael2017, avizorandosucrecimiento3vecesmásrápidoqueeltráficodelasredesfijas.Conlo expuesto,pareceevidentequelospróximosañossedaráuncrecimientodelasredes inalámbricasyaseantecnologíasWiFioredesmóvilesyundecrecimientodelusode redes cableadas. En resumen para el año 2017 el tráfico de las redes móviles en combinaciónconlasredesWiFialcanzaráuntotaldel68%deltráficototaldelared. EnlaFigura2.1(adaptadade[13])puederevisarselaestimaciónparael2019,el 54%deltráficogeneradopordispositivosinalámbricosserealizarápormediode conexionesWiFiyun46%loharíaatravésdelasredesmóviles. Se presenta la Figura 2.2 (adaptada de [14]) en la que se observa el amplio crecimiento que experimentarían las tecnologías inalámbricas para el 2020, considerandoelvolumendetráficoenInternetyelnúmerodeusuariosqueutilizarían dispositivosinalámbricos.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 40 Figura2.1Evolucióndeltráficodedispositivosinalámbricos Figura2.2Númerodeusuariosmóvilesenelmundo Elcrecimientoexplosivodelosteléfonosinteligentes(smart)yotrosdispositivos inalámbricoshacreadountsunamiinalámbricoyaquelacaracterísticamásimportante deestosequiposeselaccesoaInternet.Aunquehaymúltiplestecnologíasdisponibles paraelaccesoaInternet,latecnologíaWiFi,eslafunciónutilizadapordefectoenla mayoríadelosdispositivosinalámbricos.Actualmente,sepresentaunaltoincremento de dispositivos clientes que demandan anchos de banda para ejecutar aplicaciones comovideostreamingmóvil.Esconstantelacrecientenecesidaddeoptimizacióndel rendimientoyusodelsistemaWiFi;parasatisfacerestasdemandasesteestándarha estadoenconstanteevoluciónparalograrunmayorrendimientodedatosyeficiencia espectral.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 47 mostrarlosdatosenunaventanaterminal.LaplataformaArduinosecomunicaconel IDEmedianteunprogramacargador,precargadoenelmicrocontrolador. Con Arduino se puede tomar información del entorno a través de sensores conectadosasusentradasanalógicasydigitales,puedecontrolarluces,motoresyotros actuadoresdirectamenteoapartirdelasseñalesdecontrolgeneradasensussalidas, ofrecealgunasventajascomo: Las placas Arduino son relativamente baratas comparadas con otras plataformasmicrocontroladoras. ElsoftwareArduinoseejecutaensistemasoperativosWindows,Macintosh yLinux. Elentornodeprogramaciónessimpleyclaro,fácildeusar. ElsoftwareArduinoestápublicadocomoherramientasdecódigoabierto,el lenguajepuedeserexpandidomediantelibreríasC++. ElArduinoestábasadoenmicrocontroladores,losplanosparalosmódulos estánpublicadosbajolalicenciaCreativeCommons. RaspberryPiesuncomputadordebajocosteysutamañoesde8,5x5,3cm,susistema dearranqueesunatarjetadememoriaSecureData(SD)ysucapacidadpuedevariar segúnlasaplicacionesqueselequieradar.Laalimentaciónserealizamedianteuna conexiónmicroUSB.Enlaplacaseencuentrasalidadevideoyaudioatravésdeun conector High Definition Multimedia Interface (HDMI),permitiendolaconexióna televisores,monitores.IncluyeconectoresdeexpansiónGeneralPurposeInput/Output (GPIO)quepuedenserutilizadosparalacomunicaciónconotrosdispositivos,como módulosespecíficosdeexpansión,einclusoescompatibleconArduino. ExistendosmodelosdeRaspberryPi,elmodeloAyB,quecompartenunaserie de características, como el chip, el procesador gráfico, las entradas/salidas y la capacidadparareproducirvídeo.ElmodeloBtieneeldobledememoria,512MBpor 256delA,tienedosUSB,porunodelmodeloAyconectorparacabledered.Dispone deunprocesadora700Mhz.ypuedeacelerargráficos3Dporhardware,esdecir,se
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 48 podíacompararconlosordenadoresquesalieronalmercadoenel2003,conlagran diferenciadetamaño,pesoyconunconsumo80vecesmenor. RaspberryPies40vecesmásrápidoqueunArduinocuandosetratadevelocidad dereloj.Además,Pitiene128,000vecesmásmemoriaRAM. 2.2. Videostreaminginalámbrico Los avances en comunicación inalámbrica proporcionan al usuarioelaccesoa informaciónentiemporealcomonoticias,alertasmédicas,mensajesdeadvertenciade desastresnaturales,publicadosporusuariosuorganizacionesencualquierpartedel mundo;puedeninteractuarconotraspersonasenelciberespacioatravésderedes sociales;buscarinformaciónpublicitariadeinteréspara determinarlaubicación de: restaurantes, hoteles... [36] [37] [38]. Con el rápido desarrollo de las tecnologías inalámbricasylapopularidaddelosclientesmóvilesinteligentes,videostreamingseha convertidoenunadelasmáspopularesaplicacionesdurantelosúltimosaños. Streamingesunatécnicaqueconsisteenlafragmentaciónycompresióndel video,secaracterizaporserunflujocontinuo de datos, los cuales sereproduceny descargansimultáneamente,sinlanecesidaddealmacenartodalainformaciónenla memoriadelcliente.Lavelocidadalaqueseconsumenlosdatosseajustaalavelocidad detransmisión;esteacoplamientoselogragraciasalbufferreceptor,elcualpermitela compensacióndeposiblesvariacionesquepuedendarseenlatransmisión,sielbuffer sevacíaelservicioseinterrumpe. La técnica de video streaming permite que los objetos multimedia se reproduzcan y descarguen simultáneamente desde el Internet sin la necesidad de almacenartodalainformaciónenlamemoriadelcliente.Laventajadeestatécnicaes quenorequierequeelvídeosealmaceneenelteléfonomóvildejandoespaciopara albergarmemoriaauxiliaryprogramasparatratarelvídeodemaneraeficiente.Porotro lado,graciasaquenoseconsumeesacantidaddememoria,sepueden desplegar programaseficientesypoderososenlosterminalesmóviles.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 49 Elprocesodevideostreamingseiniciadesdeelcliente,conectándoseconel servidor que comienza a mandar el archivo. Para el envío se utiliza un Compresor‐ Descompresor(CODEC)quecomprimeelarchivoqueviajasobreunprotocololigero.En elclienteseconstituyeunbufferquealmacenalainformaciónquevallegando.Unavez queelbuffercontieneunapartedelarchivocomienzalareproduccióndelmismo,al mismotiempoquecontinúaconladescarga[39]. Cabedestacarlaimportanciadelasincronizaciónenestetipodesistemas,ya quelosprogramasnoreproduciránelarchivo.Sihayvariaciónderetrasoenlaconexión, sepodríareproducirelcontenidodelbuffer,segúnelprotocolo.Sisesufrendemasiados retrasos,elbuffersevacíaylaejecucióndelarchivotambiénsecortaría[40][41]. DeacuerdoalaFigura2.4,latransmisióndevideostreamingexigelapresencia dedoscanalesdiferenciados:porunladoelflujodecontrolutilizadoparagestionarel establecimiento de la comunicación y por otro lado el flujo para envió de datos multimediaqueseconstituyeelcanaldetransportedelosframes. Parainiciarlatransmisióndeloscontenidosmultimediaatravésdelaredde datos, la información debe segmentarse en frames de tamaño adecuado. El cliente recibelosframesyprocedeaalmacenarlesenunbuffer,cuandoestesellenacomienza lareproducción,mientrastantoelbuffercontinuarecibiendonuevosframes. Figura2.4Serviciodevideostreaming
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 50 Estebufferdelclientesecaracterizaporaminorarlosefectosdevariacionesen lascondicionesdelared,alproducirseundescensoenelanchodebanda,elcliente puedecontinuarconlareproduccióndelospaquetesalojadosenelbuffer,encasode que los problemas de comunicación persistan, el buffer llegara avaciarseyla reproducciónsedetendrá. Lostiposdeserviciodevideostreamingson: Bajodemanda:elvideoesalmacenadoenunservidordevideostreaming,el cual está en capacidad de atender las peticiones de visualización del contenido, entregándolo mediante flujos para ser visualizado enel reproductordelcliente,elusuariotienelaposibilidaddecontrolarelflujo paradetenersuejecución,realizarunretroceso,unapausaopasaraotra escena. En tiempo real: servicio de transmisión en tiempo real, orientado a la multidifusión,sininteractividad.Losusuariosaccedenaunúnicoflujode informaciónenelinstantetemporalenelqueseencuentrelaemisión. La arquitectura básica en la que se basan los servicios de video streaming es la arquitectura cliente servidor. DeacuerdoalaFigura2.5sepuede observar los componentesquesonexplicadosacontinuación: Sistemadeproducción:seencargadecapturarloscontenidosenvivoatravés decámarasomicrófonosparatransmitirlosenelformatoadecuado al servidor.Estesistemaestáconformadoporelementostantodehardwarey software que tienen la funcionalidad de comprimir los contenidos multimediaydarlesunformatoadecuado,conlafinalidaddequeresulten aptosparasu transmisiónatravésdelos protocolosdetransporte.Enla transformacióndeloscontenidosoriginalesparticipanlosCODECdeaudio y/ovideoasícomolastasasdecodificación. Sistemadealmacenamiento:seencargadealmacenarloscontenidos,para quepuedansersolicitadosporlos clientes. Estecomponenteesutilizado paravideobajodemanda.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 51 Servidor: se encarga de recibir y procesar peticiones de los clientes; establecerlasesiónmedianteelintercambiodeunaseriedeparámetrosy procesarelenvíodeloscontenidosmultimedia. Reproductor:seubicaenelclienteyseencargadelainteracciónconel servidor, realiza actividades como: establecer conexiones, procesar los framesyreconstruirelflujodedatosrecibido. Proxy:esunproxymultimediaqueseencargademantenerlacomunicación conelclientedurantelareproduccióndelvideo,mantieneelestadodela sesióneinteractúaconelusuario. Enlatelefoníamóvil,videostreamingestásometidoalcomportamientodeloscanales, existiendoproblemasexternoscomointerferenciasqueprovocandesconexionesenla transmisiónquemuchasvecessonmolestasparaelusuarioyhacenquelatécnicade videostreamingpierdaefectividad. Esporestoquepararecibirlosdatosdevideostreamingsedebeteneruna aplicacióndedicadallamadoreproductoromediaplayer,quedebeofrecerlassiguientes características: Figura2.5Arquitecturabásicadelserviciodevideostreaming
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 52 Elreproductordebesercapazdedescomprimirlosdatosdeaudioyvideoa medidaquevayanllegando. Debesercapazdeeliminareljitterantesdeenviarlospaquetes. Correccióndeerroresparapoderevitarlapérdidadepaquetes. El tráfico de video streaming a través del Internet ha ido creciendo a un ritmo exponencialdebidoalaabundantedisponibilidaddecontenidodevideoenelInternet y la amplia disponibilidad de los dispositivos inalámbricos con altas capacidades de visualizaciónenelusuario.Estedesarrollohainfluidoenelsurgimientodeaplicaciones devideostreamingcomoInternet Protocol Television (IPTV), video conferencia, educación en línea..., las cuales imponen requisitos de ancho de banda, demora y latencia[42][43]. Enuncanalinalámbrico,elmayorinconvenienteeselanchodebandautilizado, enestascondicionesesimportantequeelvideostreamingpermitalafragmentacióndel contenido del video, es recomendable que cada frame generado tenga diferente resolución y poder satisfacer eficientemente las características específicas de cada cliente[44].Eldesarrollodigitalproponeavancesenlacomprensiónycomunicaciónde videoquepuedensermostradosmediante elusodedispositivos inalámbricospero debido a su limitación de recursos especialmente de memoria, se necesita utilizar técnicasquepermitanlavisualizacióndelvideodeformaeficiente.Latécnicadevideo streamingcumpleunrolimportanteenlaconstantebúsquedadecalidadyrapidezde transmisión. Videostreaminghaexperimentadouncrecimientoexponencial,generándose muchos esfuerzos de investigación en relación a la codificaciónytransmisióndela informaciónmultimedia,conlafinalidaddelograrvideostreamingeficiente,robusto, escalableydebajalatencia[45].Lasaplicacionesdevideorequierengrananchode banda,lacalidaddelvideodebemantenerseenunaredinalámbrica, la naturaleza impredecible del medio de transmisión tiene un efecto perjudicial en la calidad del video.Paracumplirconesteobjetivoesnecesariounaaltaeficacia y eficiencia de compresiónquepuedelograrseutilizandoCODECquepresenten:unbajoconsumode
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 53 energía,bajacomplejidaddecodificaciónydecodificaciónybajalatencia[46][47][48] [49][50]. Sehadadounaumentodelademandadeaplicacionesmultimediadebidoal crecimiento de los servicios de comunicación, comercio y entretenimiento. Actualmente, los ordenadores portátiles y teléfonos presentan mayor capacidad de procesamientoquepermitelatransmisióndevideomáseficienteyeficaz.Lastécnicas decodificacióndevideohancausadogranimpactoenlaindustriamultimedia,yaque proporcionan secuencias de video de alta calidad utilizando el ancho de banda disponible;muyútilesenlosserviciosdevideostreamingmóvildondeessignificativola eficienciadealmacenamientoytransmisión[51]. Conelvideostreamingnuevosmodelosdenegocioseestánexplorandocomo: plataformas de contenido y su facilidad de adaptación a los diferentes dispositivos, cambios de infraestructura en los distribuidores de contenidos, personalización de serviciosvideostreaming,cochesconectadosaserviciosvideostreaming,desarrollode dispositivos de contenido enriquecido... [52]. La tecnología inalámbrica también permitiráelincrementodecasasyedificiosinteligentes,autopistasautomatizadasy redesenelcuerpoparaelanálisisytratamientodecondicionesmédicas,aplicaciones paralaeducación,salud…[53][54]. LosproveedoresdeserviciosdeInternethanintroducidoredesinalámbricasen aeropuertos,hoteles,cafeterías...,yfacilitaproveerabajocostoconexionesdeInternet de altas velocidades para usuarios de teléfonos móviles. Aplicaciones tales como televisióndigital,videobajodemanda,vigilanciadevideodomésticoycomercial,video llamadassonampliamentepopulares.Unodelosobjetivosdelosproveedoresdedichos servicios es entregar el video con alta calidad que satisfaga einclusoimpresioneal usuario.Esteobjetivo,llevaalanecesidaddelacalidaddelvideo. Enlospróximosañosseesperaquevideostreamingsealaaplicaciónquedomine eltráficoquesecomparteenelInternet.Losusuariospodríandemandarresoluciones de imagen de alta calidad que pueden requerir anchos de banda más grande. Las estadísticasdeuso,indicanquehaydemandadevideosenlíneadelargaduracióncomo: noticias,deportesyentretenimiento[55][56].
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 54 2.2.1. ProtocolosyCODEC Elapogeodelatecnologíadevideostreaminghasidoposiblegraciasaldesarrollodelos protocolos de comunicación y transporte, un protocolo es un conjunto de reglas establecidasentredosdispositivos para permitir la comunicaciónentreambos,los protocolosdecomunicaciónutilizadosenlatransmisióndevideostreamingsemuestran enlaFigura2.6. Losprotocolosdetransporteseencargandelcontroldeerrores,lasecuenciación yelcontroldelflujo,envideostreamingseutilizaránbásicamentedosprotocolosde transporteTransmissionControlProtocol(TCP)yUserDatagramProtocol(UDP),ideales paraladifusióndecontenidosmultimedia. Enrelaciónalosprotocolosdecomunicación,enlatabla2.4sepresentanlos protocolosdeestablecimientoygestióndesesiónporpartedelclienteRealTimeVideo Streaming Protocol (RTSP),losrelativosaltransporteycontrolReal Time Transport Protocol/RealTimeControlProtocol(RTP/RTCP)conlasprincipalesfuncionalidades. Figura2.6Protocolosutilizadosenvideostreaming
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 55 Tabla2.4ProtocolosdeComunicación PROTOCOLO DESCRIPCIÓN RTSP Estableceycontrolaunoomuchosflujossincronizadosdedatos,yaseandeaudioo devideo.RTSPesunprotocolonoorientadoaconexión,enlugardeestoelservidor mantieneunasesiónasociadaaunidentificador,enlamayoríadeloscasosRTSPusa TCPparadatosdecontroldelreproductoryUDPparalosdatosdeaudioyvídeo. Laconexióndebepermaneceractivadurantetodoelprocesodecomunicación,es decir,desdeelmomentoenelqueelclientelanzalaprimerapetición,hastaque terminaderecibirlosdatoscorrespondientes al vídeo o audio y utiliza el propio protocoloRTSPparacerrarlasesión. RTP Esunprotocoloqueseutilizaparaenviarcualquiertipodeformatodeaudioyvideo, funcionasobreelprotocoloUDP,haciendoqueelprotocoloRTPnogaranticequelos paqueteslleguenasudestinoyconlacalidaddeservicionienelordendeenvío. LasaplicacionesqueusanRTPsonmenossensiblesalapérdidadepaquetes,pero muysensiblesalosretardos,razónporlaqueseprefiereUDPsobreRTP. RTPademásdelosdatosensí,transportaciertainformaciónútilpararealizarun ciertocontroldelacomunicación,peronoinformasobreelestadodelamisma,es por esto que trabaja junto RTCP, el cual genera los mensajes decontroldelas transferenciasqueincluyeinformaciónsobrelospaquetesperdidos. RTCP Seutilizaparatransmitircontenidomultimediaentiemporealypermitehacerun control directo en el cliente de la reproducción del contenido enviado desde el servidormediantecomandoscomoplayypause. Se basa en la transmisión periódica de paquetes de control durante una sesión, utilizando el mismo mecanismo de distribución de los paquetes RTP. La función principaldeRTCPesinformardelacalidaddeservicioproporcionadaporRTP.Este protocolo recogeestadísticas de laconexióneinformaciónadicional como: bytes enviados,paquetesenviados,paquetesperdidosentreotros. Unaaplicaciónpuedeusarestainformaciónparaincrementarlacalidaddeservicio, yasealimitandoelflujoousandounCODECdecompresiónmásbaja.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 56 Loscódecspuedencodificarelflujoolaseñal(paralatransmisión,elalmacenaje o el cifrado) y recuperarlo o descifrarlo del mismo modo para la reproducción o la manipulaciónenunformatomásapropiado. ElCODECpuedeservirendistintosestadosdelainformaciónycondiferentes funcionalidades.Puedeutilizarseenlatransmisióndeunarchivooenelalmacenaje, paracomprimirpropiamente,paracifraroparamodificarsuformato. ExistenCODECqueprovocanpérdidasdeinformaciónparaconseguiruntamaño lomáspequeñoposibledelarchivodestino,asícomotambiénexisten CODEC sin pérdidas.Perolosmásutilizadossonlosprimeros,yaquenojustificaunaumentode calidadcasiimperceptibleparaelserhumano,porunnotableaumentodeltamañode losdatos.LosCODECquenopierdeninformaciónenelprocesodecompresión,suelen emplearsecuandolacalidaddelarchivomultimediaenviadoporlaWeb,serequiere parauntratamientoposteriordedichoarchivo. El problema asociado al video digital es la gran cantidad de recursos de almacenamientoyanchodebandaquedemanda,parasolventarestasituaciónsehan desarrollado varios estándares de compresión de video, los cuales eliminan la redundanciaypermitensutransmisióndeunaformacompactayeficiente.Aestalabor se han enfocado dos organismos de estandarización que desarrollan estándares y algoritmosdecompresióndevideo. LaInternationalTelecommunicationUnion(ITU)atravésdelosestándares “H”,entrelosquesedestacanH.263yH.264relacionadosconlacodificación devideo. La InternationalOrganization for Standarization / International Electrotechnical Commission(ISO/IEC)desarrolla los estándares conocidos comoMPEG,entrelosquesedestacanMPEG2yMPEG4. UnCODECdeaudiosebasaenelalgoritmodecompresiónconpérdida,unprocesopor elqueseeliminanalgunosdelosdatosdeaudioparapoderobtenerelmayorgradode compresión posible, resultando en un archivo de salida que suena lo más parecido posiblealoriginal.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 63 inalámbrico. La congestión antes mencionada afecta a otros servicios que están utilizandoelcanaldecomunicación.Eldesconocimientoporpartedelservidorquese ha dado una interrupción, provoca el desperdicio de recursos del servidor. Video streaming en redes inalámbricas es un desafío que aún no ha sido solucionado eficientemente, existe dificultad de controlar las desconexiones intermitentes ocasionadosporpérdidadecoberturauotrascausas,surgenentoncesdificultadesde recepcióndedatosmultimedia,cierredelasesiónactualyobligatoriedaddeabriruna nuevasesión,gastosdelosrecursosdelservidoralenviartramas multimedia desconociendoelestadorealdelcliente;todoestoconfluyealapérdidadeefectividad devideostreaming,ocasionandotambiénpérdidadetiempodelusuario,afectandode formadirectaenlaQoE. Latransmisióndedatosenloscanalesinalámbricossufrendemuchoserrores, pérdidasfrecuentesdepaquetesylacoberturaderadionosiempreesconstante,por lo que se pueden producir desconexiones frecuentes del teléfonomóvil.Estas desconexionessontotalmenteimpredecible,paramitigarsuefectoadversoserequiere deunaeficientecalidaddeservicioymecanismosdecontroldetransmisiónpara adaptaraloscambiosdelared[99][100][101]. 2.3. JADEparacontroldeinterrupcionesdevideostreaming La técnica de agente es una de las más importantes tecnologías desarrolladas para apoyarlasaplicacionesdeInternet.Unagenteeslaentidaddesoftwarequeestásituado enalgúnmedioambienteyescapazderealizarunaacciónautónomadeacuerdoal entornoconelfindecumplirsusobjetivosdediseño.Losagentes inteligentes representan unidades computacionales autónomas, que fundamentansu comportamientoenreglasontológicas,paradeterminarlastareasproactivasarealizar de acuerdo al dinamismo del medio ambiente en el que actúan, se comunican intercambiandomensajesysecaracterizanporsuproactividad,inteligenciaymovilidad [102].Otradefinicióndescribelosagentesinteligentescomoentidadesdesoftwareo hardwarequeexhibencaracterísticasútilestalescomoautonomía, modularidad, proactividad, adaptación, racionalidad, habilidad social, reactividad, continuidad
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 64 temporal, orientación hacia el objetivo final, movilidad, benevolencia, colaboración, entreotras[103]. Losagentesactúandemaneraautónoma;estánprogramadosparaqueperciban yaprendandesuentorno,razonansobreloaprendido;eligenunaovariassoluciones pararesolverproblemasoconsultarrequisitosautomáticosohumanos;viajansobrela plataforma de comunicaciones de una red; sirven para automatizar tareas que se ejecutanrepetidamente;seprogramanunaúnicavezyposteriormentenorequieren manipulaciónhumana.Unagentedesoftwareinteligenteesunprogramaquetieneuna acciónsobreuncomportamientoloqueimplicalacapacidaddedecidirsilaacciónes apropiada.Losagentespuedeninvocarseasímismos,paraesto,elagentenecesitade muchoconocimientoqueloapoye,laontologíaesunbuencaminopararepresentar este conocimiento. El agente ejecuta una ontología si las acciones del entorno son consistentesconlasdefinicionesdelaontología.Unagenteesunaentidaddesoftware quepuedeactuarporsímismoconelfindealcanzarunosobjetivosquesehafijado inicialmenteyademásestácaracterizadoporunaovariascualidades tales como capacidadderazonamiento(inteligencia),percepcióndesuentornoyactuacióncon baseaciertascircunstancias(reactividad)[104].También,tienelacapacidaddeactuar enformaproactiva,esdecir,actúasinnecesidaddedarleunaordenylahabilidadde desplazarse de un lugar a otro (movilidad), entre otras características. Un agente inteligente,esunaentidadcapazdepercibirsuentorno,procesartalespercepcionesy responderoactuarensuentornodemaneraracional,esdecir,demaneracorrectay tendiendo a maximizar un resultado esperado. Todo agente tiene una función u objetivo. Los agentes presentan características como: autonomía, aprendizaje y proactividad;ademásunaltoniveldeabstraccióndebidoasumodularidadysencillez enlascomunicaciones.Tambiénsuescalabilidadyflexibilidadsonfactoresqueapoyaal desarrollodeaplicacionesdistribuidas[105][106].Losagentesmonitoreanelprogreso de las estrategias seleccionadas, se comunican intercambiando mensajes, explotan técnicasderesolucióndeproblemasytambiéndeaprendizajebasadaseninteligencia artificial,lograndoundesempeñodinámicoeindependiente.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 65 Las propiedades básicas de los agentes son: reactivo, proactivo, autónomo, orientadoaobjetosytienencapacidadsocial.Losagentestienenqueestablecerporsi mismossupropiamaneradeaplicarrecomendacionesytomarunadecisión de confianza.Elusodeagentesproporcionamayoreficienciayseguridad. Unagentesedesarrollaenunambientedinámicoenelquesedebetomaren cuentaeltiempodeejecucióndeacciónyelestadoinicialdeunambiente, yaque duranteestetiempoelambientepuedecambiar,porloqueelagentedeberecolectar informacióndelestadoactualdelambiente,porquelametalogradapuedeserdiferente alaesperada[107].Tambiéndebetomarencuentalainterferenciaqueotrosprocesos puedenproducirsobrelaacciónaejecutar,estopodríaafectarelresultadoesperado, porloquedebecoordinarysincronizarlasaccionesconotrosprocesosoagentes. EldesarrolloorientadoaagentesesparadigmadeIngenieríadesoftware[108]. Su uso seha intensificadoen una gran variedadde aplicaciones,estosedebeasu autonomíaycontrolsobresuspropiasaccionesysuestadointerno;alacapacidadde analizarsuentornopararesponderdeacuerdolosobjetivosdesudiseño.Otrarazónes su flexibilidad ya que responde a los cambios que pueden ocurrir en el ambiente, direccionasu comportamiento ytomala iniciativa apropiada einteractúa con otros agentes,estosatributosalcanzadosenunaentidaddesoftwareha influido en el desarrollodeestenuevoenfoque. Elconceptodeagenteconstituyeunapotenteherramientadeabstracciónenel desarrollodesoftware,quefacilitalaconstruccióndesistemasdistribuidos,inteligentes y robustos [109]. En la actualidad latecnología deagentes inteligentesproporciona herramientasquepermitenconstruiraplicacionescuyasfuentesdeinformaciónestán distribuidas y que deben interactuar, en este entorno tecnológico donde nuevos y complejos servicios son demandados en los campos educativo, trabajoyocio,el concepto de agente se consolida como una solución a las tendencias actuales: ubicuidad,interconexión,inteligencia,delegaciónysocial. Los agentes inteligentes móviles surgen como una tecnología para reducir el impactodelosproblemasquepresentanlosdispositivosinalámbricosalserpartícipes de solución de aplicaciones personalizadas, reducir la latencia, controlar las
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 66 desconexiones de la red. Los agentes móviles pueden convertirse en un nuevo paradigmaparaprogramacióndistribuidadelasredesdecomunicaciónfuturas. El desarrollo tecnológico ha influenciado en la evolución de los sistemas de telecomunicaciónmóvil,losentornosactualesconvergenenelsurgimientodenuevos servicioscadavezmáscomplejoscomomultimedia,videostreaming,televisióndigital. Latecnologíadeagentesofrecemuchasventajasquepuedenserútileseneldiseñoe implementacióndeserviciosparadispositivosinalámbricosenambientesinalámbricos yaquelascaracterísticasintrínsecasdelosagentesayudaranasolventarproblemasde movilidaddeusuarios,dispositivosheterogéneosylosproblemaspropiosdelared. Eldesarrollodelastecnologíasdelainformaciónylascomunicaciones en especialelavancedelascomunicacionesinalámbricashapermitidoelaugedelusode dispositivosinalámbricosconmejorescaracterísticasenmemoria,procesamiento,etc. Esto ha ocasionado que el usuario exija nuevos servicios como tv digital, video streaming, comunicación con sensores, entre otros. A pesar de las innovaciones realizadas en las características de los dispositivos inalámbricos éstos disponen de limitadacapacidaddecálculoynopuedenmanejargrandescantidadesdedatos. Elinconvenientehabitualdelascomunicacionesinalámbricasesquealmomento deutilizarelservicio,segenereunainterrupciónporvariasrazonesentreellaslafalta decobertura,puedeocasionarenelusuariolaobligatoriedaddevolveralpuntode partida(iniciodelvideo,descargadeundocumento,llenarunformulariodesdecero). Dentrodelparadigmaorientadoaagentesinteligentesestáncobrando especial importancialosagentesmóviles,constituyéndoseenprogramasquepuedenpararen cualquier momento, trasladarse a otro dispositivo, continuar conlaejecucióndel serviciootareaenelpuntoenelquesesuspendió. El uso de la programación orientada a agentes móviles permite crear aplicaciones,demonitorizaciónderedesodefiltradoybúsquedadeinformación.Estas aplicacionescobranespecialrelevanciaalserusadasendispositivosinalámbricoscon conexiónaredesinalámbricas.Unadesuscaracterísticasprincipalespropiasdelagente permitegenerarloscálculosoprocesoseneldispositivoenelqueseencuentranlos datosocasionadoladisminucióndeltráficodeinformaciónenlared.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 67 Paraestetipodesistemasesadecuadounsistemaontológicoqueproporciona unaseriedeventajas: Sistemabasadoenelconocimiento:seutilizaontologíasyagentesconelfin detenerencuentaelconocimientopreviorecibidoporexpertos en una formadereglasheurísticas,razonamientobasadoencasos... Representacióndelconocimiento:elsistemadeontologíasecreacomoun conjuntodeontologíasdeldominiocorrespondientealambiente,agentesy limitaciones. El sistema propuesto es inteligente y puede reaccionar adecuadamente frente a perturbaciones imprevistas, puede utilizar los resultados de la negociaciónentreagentes.Podríasertantoreactivoyproactivo. 2.3.1. Ontología Eltérminoontológicoserefierealaformulacióndeunesquemaconceptualrigurosode undominoespecífico,elcualfacilitalacomunicaciónycomparticióndeinformación entrediferentessistemas,posibilitandoquelosrecursospuedanaccedersedeacuerdo a su contenido semántico, priorizando la base de conocimiento y permitiendo la recuperacióndelainformacióndeformaautomática[110]. Las ontologías definen las conceptualizaciones de un dominio específico que debensermodeladasyenriquecidasparaquepuedanserentendidasportodoslos agentesqueformanpartedelaarquitectura. EnelcampodelaInteligenciaArtificialseladefinecomo:unaespecificación explícitadeunaconceptualización[111]yenladisciplinadelosSistemasdeInformación selaconsideracomo:unartefactodelsoftware(olenguajeformal)diseñadoparaun conjunto específico de usos y ambientes computacionales[112].LaOntologíaesun esquemaconceptualquepermiteespecificarelconocimientodeunoovariosdominios queescompartidoporvariosagentesyesinterpretableporunprogramainformático [113].Laontologíaestableceunvocabulariocomúnnecesarioparaquelosagentesse comuniquen entre ellos, así la comunicación es facilitada a través una ontología compartida, el cual define los conceptos y las relaciones entre los conceptos de un
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 68 dominio en particular [114]. Hoy en día se entiende como ontología: un esquema conceptualquepermiteespecificarelconocimientodeunoovariosdominiosquees compartido por varios agentes e interpretable por un programa informático. Una ontología permite la representación del dominio con el objetivo de compartir, intercambiaryserreutilizadaporlosagentes.Lavisióndeunaontologíaparadiferentes propósitostalescomoaplicacionesWeb,Websemántica,sistemasdeinformación,está recibiendo mayor atención. Una ontología es una especificación de una conceptualización compartida, es un acuerdo para usar un vocabulario de forma consistente. Puedendarsevarioscasosdevideostreamingdondelosambientes son distribuidos,heterogéneosycontiposdiferentesdesistemas.Enestoscasosserequiere deestructurasmásflexiblesydinámicas,paraelloesnecesario la combinación del sistemabasadoenelconocimiento,elcualespresentadodesdelasontologíasyeluso demódulosinteligentesproactivospresentadoporsistemasdeagentes. 2.3.2. SistemaMultiagente Unúnicoagentenopuedelograrlasolucióndeproblemascomplejos,paraaquelloen loqueesnecesariounconjuntodeagentesqueinteractúanybuscanellogrodelos objetivoscomunesplanteadosenelsistema.Elusodevariosagentes representala descentralizacióndelaaplicaciónypriorizalacomunicacióncomofactorcríticodeéxito. Lossistemasexistentesnotienencapacidaddecolaboración,seutilizaagentes inteligentesporquecooperanentreellospararealizarlasactividades a ellos encomendadas.UnMultiagentSystem(MAS)esunsistemacompuestodemúltiples agentes inteligentes interactuantes, estos son utilizados para resolver problemas difícilesdehacerloporunagenteindividual[115][116]. EnunMAS,unconjuntodeagentesinteligentestrabajanparalogarunobjetivo global,defineunambientequecontienevariosagentes,estospuedeninteractuaruno con el otro a través de mensajes, en este entorno, el elemento fundamental es un
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 69 agente inteligente el cual tiene tres características como: habilidades sociales, proactivasyreactivas. La programación orientada a agentes permite el desarrollo de MAS estructuradosparainteractuarycooperarpararesolverproblemasqueestánfueradel alcancedecadaagente,sedestacalaimplementacióndeestructurascooperativasque sonmuyútilesparaelcontroldevideostreamingendispositivosinalámbricos[117]. UnMASesaquelcompuestodevariosagentes,loscualesdesempeñantareas encomendadasporunusuariouotroagente,debenserautónomosesdecirposeerlas capacidaddedecidirquédebenhacerparacumplirconsusobjetivos de diseño e interactuarconotrosagentesatravésdelintercambiodedatos.UnMASdebidoaque está constituido por varias entidades independientes (agentes) necesita definir muy biencómoestánorganizados,cómosecomunican,coordinanycooperan,yfinalmente como se controlan estos agentes para lograr un objetivo común. Los agentes son caracterizadospordiferentesvisionesdelMundoquesonexplícitamentedefinidaspor lasontologías,esdecir,quelasvisionesqueelagentereconocesonconceptosdescritos poreldominiodelaaplicaciónelcualestáasociadoalagentejuntoconsusrelacionesy restricciones. Lainteroperabilidadentreagentesselograatravésdelaconciliacióndelos puntosdevistaovisionesdelmundomedianteelcompromisodeontologíascomunes quepermitenalosagentesinteroperarycooperarmientrasmantienensuautonomía [118]. Han sido utilizados para construir aplicaciones distribuidas basadas en componentes.Existenunavariedaddemetodologíasyherramientasqueapoyanenel desarrollodeestetipodesistemas,esidealquesetomenencuentatodoslosaspectos delcomportamientodeunagenteysudespliegue.Esnecesarioentonces:1)modelar losagentesenunsistemaylasinterfacesdeestosagentes2)describirlainformación consumidaygeneradaporcadaagente3)esbozarlasposiblesinterrelacionesentre agentes4)especificarelcontenidodelainformaciónintercambiadaentreagentes.Estas especificaciones deber ser interpretables por la computadora y proveer suficiente detalleparaconduciraldesplieguedelosagentes.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 70 Tabla2.5SistemasMAS PLATAFORMA LICENCIA LENGUAJE DOMINIO ABLE AgentBuildingand LearningEnvironment OpenSource AbleRule Language Construccióndeagentesinteligentes haciendousodemáquinasdeaprendizajey razonamiento iGen TheCognitiveAgent SoftwareToolkit Propietario C,C++,java Modeladodediversosaspectosbiológicos delserhumano ADK AgentDevelopmentKit GPL Java Aplicacionesconunaaltaescalabilidad ZEUS OpenSource VisualEditors Sistemasmulti‐agentebasadoenreglasy scripting JASA JavaAuctionSimulator ApplicationProgramming Interface(API) GPL Java Simulacióndeentornoseconómicos AgentBuilder Propietario KQML,java,C++ Sistemasmulti‐agentedepropósitogeneral JADE JavaAgentDevelopment Framework GPL Java Sistemasmulti‐agentedepropósitogeneral Esimportanterealizarelanálisisdelasplataformasquepermiteneldesarrollo deMASyseleccionarlamásidóneadeacuerdoalescenarioyelproblemaplanteado. Comosepuederevisarenlatabla2.5 (adaptada de [119])sehangeneradovarias plataformasentreellasJADE. CuandoungrupodeagentesindividualesconformanunMASesnecesariodefinir ellenguajedecomunicaciónquepermitaelintercambiodemensajesentrediferentes agentes.SehaescogidoellenguajedeagentesdepropósitogeneralFoundationfor intelligent Physical Agent(FIPA) Agent Communication Language (ACL) que se caracteriza por permitir que los agentes se comuniquen utilizando ontologías y lenguajes de contenido. FIPA es una organización de estándares de la IEEE que promuevelatecnologíabasadaenagentesylainteroperabilidaddeéstosconotras tecnologías.FIPAdefinetodoslosaspectosfundamentalesdecomunicacióndentrode un MAS especificando protocolos de interacción, lenguajes de comunicación y ontologías.Establecereferenciasparalacreación,registro,localización,comunicacióny operacionesentreagentes.Lacomunicaciónentreagentesesfundamentalparapoder conseguirlapotenciapropiadelosMAS.Paraquelosagentessepuedancomunicar debenusarelmismolenguajedecomunicación.Ellenguajedecomunicacióndeagentes
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 71 (FIPAACL)permitirátransmitirunaseriedeconocimientoquevendráexpresadoenun lenguajedecontenido[120]. Latecnologíadeagentessehaconvertidoenunnuevocampoenlascienciasde lacomputación,esteavancehageneradounbuennúmerodeplataformasdediferentes calidadesymadurez.En[119]seevalúalasplataformasASDK,Ajanta,Tryllian`sADK, FIPA‐OS, Grasshopper, JADE, JACK Intelligent Agent, Zeus, de acuerdo a parámetros como: compatibilidad, comunicación, movilidad, políticas de seguridad, usabilidad; parámetros seleccionados de acuerdo a los estándares definidos en las recomendacionesFIPAparaimplantarplataformasdeagentes. En el análisis JADE ocupa el segundo lugar luego de Grasshopper, ya que se caracteriza por ser open source, tener buena documentación, muy buena interfaz gráfica,aceptacióndelosusuariosyesutilizadoenmuchosproyectosdedesarrollo. PerfeccionadoenbaseaFIPA,cuentaconbuenascaracterísticasdeseguridad,varios protocolosdecomunicación.SehaescogidoJADEcomolaherramientadedesarrollo, ya que cumple con las especificaciones FIPA y soporta la mayor parte de la infraestructura establecida como: protocolos de comunicación, codificación de mensajesyserviciodepáginasamarillas[121]. 2.3.3. JADE Fue desarrollado en Italia conjuntamente por Centro Studi e Laboratori Telecommunicazioni(CSELT).EsunmiddlewarecompletamenteimplementadoenJava, que simplifica la implementación de sistemas multiagente ya que proporciona un conjuntodeherramientasgraficasquepermitenladepuraciónenlasfasesdedesarrollo ydespliegue[122].Incluye:1)unentornodeejecucióndondelosagentesJADEpueden residirydebenestarpreviamenteactivosenunhostdeterminado,paraqueunoomás agentespuedaninvocarlos,2)unabibliotecadeclasesquesepuedeutilizarparael desarrollo de agentes y 3) un conjunto de herramientas graficasquepermitela administraciónysupervisióndelaactividaddelosagentesactivos[123].Proporciona tantoun entorno dedesarrollo como unentorno de ejecuciónpara la realización y
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 72 mantenimiento de sistemas multiagente, proporciona un conjunto de herramientas gráficasquepermitentareasdedepuración,monitorización,documentaciónysoporte. JADEsebasaenestándarFIPAadoptadoporlamayoríadeplataformasMAS. LascomunicacionesdeagentesFIPAseespecificanformalmenteenellenguaje decomunicaciónACLparacodificación,semánticayusodelosmensajesqueindica comointeraccionanysongestionadoslosagentes.ElmensajeFIPAsedefineporla ontologíaenlaquesedescribenlostérminosdelcontenidodelmensaje. AlgunasdelascaracterísticasqueJADEofreceson: Es un middleware ya que permite el funcionamiento de agentes sobre plataformasheterogéneas. Ejecucióndecadaagentecomounhiloseparado,capazdeejecutarseen máquinasremotas. Proveeserviciosdepáginasamarillasyblancas. Proporciona API para crear, suspender, reanudar, bloquear, despertar, mitigar,clonarydestruiragentes. Apoyaalamovilidaddeagentesentreprocesosydiferentesmáquinas. Proveedeherramientasparaanalizarlosmensajesdecomunicaciónentre agentes. Soporteparaontologíasylenguajesdecontenido. IntegracióncontecnologíasWeb. Proporcionaaplicacionesgráficasquefacilitalamonitorizaciónydepuración. CadainstanciadelentornodeejecucióndeJADEsellamacontenedor.Losagentesviven enloscontenedores,quesonprocesosJavaprovistosporJADEentiempodeejecución yproporcionantodoslosserviciosnecesariosparalaejecucióndelosagentes.Hayun contenedor especial, llamado contenedor principal que representan el punto de arranquedelaplataforma:eselprimercontenedorqueseríalanzadoyelresto de contenedoresdebenunirseaestecontenedormedianteelregistrocorrespondiente. JADEposibilitalaimplementacióndeagentesindependientedelaplataformaen laquesevaaejecutar,estáconformadaporunoomáscontenedoresquepuedenestar
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 79 2.5. Contribuciones a la mitigación de las interrupciones de videostreaminginalámbrico Nosotrosproponemosvariassolucionesalamitigacióndelasinterrupcionesdelservicio de video streaming en terminales inalámbricos. En ninguno de los trabajos antes relacionados hemos encontrado que se analice la producción de software cliente servidorparaelserviciodevideostreaming.Nosotroshemosencontradolospatrones softwareadecuadosparaestediseño,proponiendounaarquitecturanovedosaenlaque basamosnuestrassolucionesdemitigacióndelasinterrupcionesdelserviciodevideo streamingenredesinalámbricas. 2.5.1. Patronessoftwaredediseño Unpatróndediseñoesunadescripcióndeclasesyobjetoscomunicándoseentresí adaptadapararesolverunproblemadediseñogeneralenuncontextoparticular. Cadapatróndescribeunproblemaqueocurreunayotravezennuestroentorno yentoncessedescribeelnúcleodelasoluciónadichoproblemadetalformaquese puedausarestasoluciónunmillóndevecessihacerdosvecesdelamismaforma. Lospatronessoftwaredediseñosonsolucionesgenéricasaproblemasconcretos quesurgeneneldesarrollodesoftware.Estosayudanaresolverproblemasdediseño querepetidamenteocurren,seenfocanendocumentarytransmitirlaexperienciaenla soluciónalproblemapromulgandolareutilización. Deacuerdoa[143]buenpatróndebecumplirlossiguientesrequisitos: Debesolucionarunproblema. Sonconceptosprobadosnoteorías. La solución no es obvia, genera una solución para un problema indirectamente. Describeunarelaciónesdecirdescribesistemas,estructurasomecanismos másprofundos.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 80 Debeteneruncomponentehumano,recurrirexplícitamentealaestéticay utilidad. Acontinuaciónsedescribelospatronessoftwareutilizadosenelpresentetrabajode investigación,tomadode[144]: Tabla2.6ComponentesMVC VISTA CONTROLADOR MODELO Enlavistaseproducela visualizacióndelas interfacesdeusuario. Permitealusuario interactuarconlaaplicación. Setrabajaconlosdatospero noserealizaunacceso directoalosmismos. Secomponedela informaciónqueseenvíaal clienteylosmecanismosde interacciónconéste. Eselenlaceentrelas vistasylosmodelos. Seencargadeprocesar lasinteraccionesdel usuarioyrealizalos cambiosapropiadosen elmodelooenlavista. Realizallamadasal modeloparaobtenerlos datosyselospasaala vistaparaquelos muestrealusuario. Representalainformación conlaquetrabajala aplicación. Dondesedefinen mecanismospara: accederalainformación actualizarelestado Contieneuna representacióndelosdatos quemanejaelsistema,su lógicadenegocio relacionadaconlosdatos,y susmecanismosde persistencia. Figura2.8PatrónComposite
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 81 PatrónModeloVistaControlador(MVC):separaencomponentesdistintos los datos, la interfaz de usuario y la lógica de control, promulga orden, reutilización,flexibilidad…loscomponentesdeestepatrónysudetallese puedeobservarenlatabla2.6. PatrónComposite:componeobjetosenestructuradeárbolpararepresentar jerarquíasdetodoparte,permitequelosclientestratendemanerauniforme alosobjetosindividuales.EnbasealaFigura2.8,seenfocaenlaconstrucción deobjetoscomplejosapartirdeobjetossimplesysimilaresentre sí, utilizando composición recursiva y definiendo la estructura jerárquica de elementosanidados.Elobjetivodeestepatróneslafacilidaddeusoyapoya alavistadelpatrónMVC. PatrónStrategy:defineunafamiliadealgoritmos,encapsulaacadaunode ellos y los hace intercambiables. De acuerdo a la Figura 2.9, este patrón permite que los algoritmos o estrategias prestablecidas varíen de forma independiente de los clientes quelousan.Suimportanciaradica en que encapsulaunalgoritmosinpreocuparsedelosdetallesdeimplementacióny permiteuncambiodeestrategiaentiempodeejecución.Elobjetivodeeste patróneslograrmayorniveldefiabilidadyflexibilidad.Apoyaalcontrolador enelpatrónMVC. Figura2.9PatrónStrategy
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 82 PatrónObserver:defineunadependenciadeunoamuchosentreobjetosde formaque,cuandounobjetocambiadeestado,senotifica a losobjetos dependientes para que se actualicen automáticamente. En este patrón diferentesobjetossuscriptoresestáninteresadosenelcambiodeeventode unobjetoobservadoyreaccionarandeformaindependientecuandoeste cambioocurra,puedeobservarseenlaFigura2.10.Elobjetivodeestepatrón esmantenerbajoacoplamiento.ApoyaalmodeloenelpatrónMVC. PatrónProxy:proporcionaunsustitutoointermediarioparaotroobjetode modoquepuedacontrolarseelaccesoquesetienehaciaél.Deacuerdoala Figura2.11,esunaentidadalaquesedelegalaejecucióndeprocesos,y decidiráquéactividadesrealizarparasuconsecución.Setienenvariostipos deproxies. o Proxyremoto:se encargade la comunicación entreelclienteyel objetoremoto. o Proxy virtual: coordina la instanciación de objetos que realizan operacionescomputacionalescostosasúnicamentecuandoelacceso alobjetoesrequerido. o Proxydeprotección:controlaelaccesoaunobjetoenbaseareglas deautorización. Figura2.10PatrónObserver
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 83 PatrónAdapter:conviertelainterfazdeunaclaseenotrainterfazqueel clienteespera.DeacuerdolaFigura2.12,defineunacapaintermediaque permitecomunicarseadosclasesconinterfacesincompatibles,atravésde una adaptación de la interfaz. Este patrón se aplica cuando se necesita transformarunaestructuraaotra,perosinmodificarlaclaseoriginal. Figura2.11PatrónProxy Figura2.12PatrónAdapter
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 84 2.5.2. JADE‐WSIG Ademásdeusarelmodeladodepatronessoftwareparadiseñarelserviciobásicode videostreaminginalámbrico,tambiénhemosusadoserviciosWebbasadosenaddons delaplataformaJADE(JADE‐WSIG)queproporcionainteroperabilidadynospermite diseñarunasoluciónmultiplataforma.Hastadondealcanzanuestroconocimientoesta eslaprimeravezqueseutilizaestaplataformaparaestepropósito. LosserviciosWeb[145][146][147]propicianlaintegracióndeaplicacionesque hansidodesarrolladasendiferenteslenguajesdeprogramaciónyseejecutansobre distintas plataformas. Constituyen un conjunto de funcionalidadaccesibleporel protocolo Simple Object Access Protocol (SOAP)[148] [149] basado en mensajes eXtensibilityMarkupLanguage(XML)[150][151]. ParaqueelservicioWebpuedaserleídoeinterpretadoseutilizaWebServices DescriptionLanguage(WSDL)[152][153],queesuncontratoentreelproveedoryel cliente,enésteseestablecenlosdetallesdetransportedemensajesysucontenido.La descripciónconcretadelservicio se puedepublicar en unservicio de registrocomo UniversalDescription,DiscoveryandIntegration(UDDI)[154],frecuentementedescrito comoelserviciodepáginasamarillasdelosserviciosWeb. Los servicios Web son un conjunto de aplicaciones o de tecnologías con capacidadparainteroperarenlaWeb,lascualesintercambiandatosentresíconel objetivo de ofrecer servicios. Los proveedores ofrecen sus servicios como procedimientos remotos y los usuarios solicitan un servicio llamandoaestos procedimientosatravésdelaWeb.Estosserviciosproporcionanmecanismosde comunicaciónestándaresentrediferentesaplicaciones,queinteractúanentresípara presentarinformacióndinámicaalusuario. Un servicio Web es un componente al que se puede acceder mediante protocolos Web estándar, utilizando XML para el intercambio de información. Un servicioWebesunacoleccióndemétodosalosquesepuedellamardesdecualquier lugardeInternet,siendoestemecanismodeinvocacióntotalmenteindependientede
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 85 la plataforma que se utilice y del lenguaje de programación en el que se haya implementadointernamenteelservicio. LosserviciosWebofreceninformaciónconunformatoestándarquepuedeser entendidofácilmenteporunaaplicación,soncomponentesdeaplicacionesdistribuidas queestándisponiblesdeformaexterna,sepuedenutilizarparaintegraraplicaciones escritas en diferentes lenguajes y que se ejecutan en plataformas diferentes. Los servicios Web son independientes de lenguaje y de la plataformagraciasaquelos vendedoreshanadmitidoestándarescomunes. ElWorldWideWebConsortium(WC3)defineunservicioWebcomounsistema softwarediseñadoparasoportarinteraccionesmáquinaamáquinaatravésdelared. Dicho de otro modo, los servicios Web proporcionan una forma estándar de interoperaciónentreaplicacionessoftwarequeseejecutanendiferentesplataformas. Porlotanto,suprincipalcaracterísticasugraninteroperabilidadyextensibilidadasí comoporproporcionarinformaciónfácilmenteprocesableporlasmáquinasgraciasal usodeXML.LosserviciosWebpuedencombinarseconmuybajoacoplamientopara conseguirlarealizacióndeoperacionescomplejas.Deestaforma,lasaplicacionesque proporcionanserviciossimplespuedeninteractuarconotraspara"entregar"servicios sofisticados. UnServicioWebestáformadoporlossiguientescomponentes: Lógica: se trata del componente que procesa la petición para generar la informaciónsolicitadaporelcliente.Básicamenteresuelveel“problema”y puede,paraello,comunicarseconotrosserviciosWeb,accederabasesde datosobieninvocarAPIdeotrasaplicacionessolicitandolainformación(o partedeella)quehadegenerarparaenviarenformatoXML. SOAP: protocolo de comunicación, basado en XML, que sirve para la invocacióndelosServiciosWebatravésdeunprotocolodetransporte,como HyperTextTransferProtocol(HTTP).Constadetrespartes:unadescripción delcontenidodelmensaje,unasreglasparalacodificacióndelostiposde datosenXMLyunarepresentacióndelasllamadasRemoteProcedureCall
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 86 (RPC)paralainvocaciónyrespuestasgeneradasporelServicioWeb. El mensajeSOAPestácompuestoporunenvelope(sobre),cuyaestructuraestá formadaporlossiguienteselementos:header(cabecera)ybody(cuerpo). UDDI:directoriodondeesposiblepublicarlosserviciosWeb,permitiendo conelloquelosposiblesusuariosdeeseserviciopuedanobtenertodala informaciónnecesariaparalainvocaciónyejecucióndelservicioWeb.Un directorio UDDI ofrece una serie de interfaces que posibilitan tanto la publicación como la obtención de información sobre los servicios Web publicados. WSDL:lenguajebasadoenXMLquepermiteladescripcióndelosServicios Webdefiniendolagramáticaquesedebeusarparapermitirsudescripcióny capacidades(datos,comandosqueaceptanoproducen),ysupublicaciónen undirectorioUDDI. LosserviciosWebdebencaracterizarseporlosiguiente: Comunicación ubicua: la conexión de cualquier sistema o dispositivo a Internet debe garantizar la disponibilidad para cualquier otro sistema o dispositivoconectadoaInternet. Formatode datosuniversal:cualquiersistemacompatibleconestándares abiertos como mensajes de texto autodescriptivos puede comprender y compartirlosserviciosWebXMLypermitirlacomunicaciónentresistemas autónomosyheterogéneos. Interoperabilidad: un servicio debe permitir su utilización por clientes de otrasplataformas. AmigabilidadconInternet:lasolucióndebepoderfuncionarparasoportar clientesqueaccedanalosserviciosdesdeInternet. Interfacesclaramentedefinidas:nodeberíahaberambigüedadacercadel tipodedatoenviadoyrecibidodesdeunservicio. AprovecharlosestándaresdeInternetexistentes:enlaimplementacióndel servicioWebyevitarreinventar soluciones a problemas que ya se han resuelto.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 87 Soporteparacualquierlenguaje:elservicioWebesindependientementedel lenguajedeprogramaciónenelquesehallaescritoelcliente. Distribuida:lasoluciónnodebeestarligadasoloaunainfraestructurade componentesenparticular. ElmiddlewareJADE[155],proporcionaadd‐onsquepermitenlograrlaaccesibilidady colaboraciónenaplicativosWeb.WSIGesunsoftwareadd‐onparaJADEqueposibilita que los agentes expongan sus operaciones como servicios Web, proporcionando interconectividad y escalabilidad. WSIG soporta el estándar de servicios Web que consistedeWSDLparadescripcionesdeservicios,SOAPparatransportedemensajesy elrepositorioUDDIparapublicarlosserviciosWeb. WSIGpromulgaelusodelasontologíasquenosoloincorporandatos sino contenidosemántico,medianteladescripcióndeconceptosysusrelacionesparaque formenpartedelconocimientodeunagenteypermitanlacomunicaciónentreagentes al compartir mismo idioma y vocabulario, JADE WSIG posibilita quelosagentes expongan sus operaciones como servicios Web, proporcionando interconectividad y escalabilidad[15].SoportaelestándardeWebServicesqueconsiste de WSDL para descripcionesdeservicios,SOAPparatransportedemensajesyelrepositorioUDDIpara publicarlosWebServices,contienedoselementos,mostradosenlaFigura2.13: WSIGServlet:eselfront–endhaciaelmundodelInternetyresponsablede atenderlassolicitudesHTTP/SOAP,yprepararlaacciónqueesenviadaal AgenteWSIG,unavezquelaacciónhasidoejecutadaseencargadeconvertir elresultadoobtenidoenunmensajeSOAPygenerarunarespuestaquees entregadaalclientesolicitantedelservicio. WSIG Agent: es el puente entre la Web y el mundo de agentes y es responsablededireccionarlasaccionesrecibidasdelWSIGServletalagente correspondienteparaqueejecuteelservicio. LosagentesJADEpublicansusserviciosenelDFmedianteunaestructurallamadaDF‐ Agent‐DescriptionbasadaenlaespecificaciónFIPAdondesedetallalosserviciosque
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 88 proveeelagente,lasontologíasausarseparaaccederalservicioylasaccionesquese ejecutarán.DichasdescripcionessonmapeadasaunWSDLypublicadasenunregistro UDDI. WSIG requiere de JADE 3,5 o superior para ser instalado, siendo WSIG una aplicaciónWebesnecesariotenerunContenedorServletquepuedeserGlassfisho ApacheTomcat. Enresumen,WSIGseencargadeconectarlaplataformaJADEconlosservicios Web, provee de mecanismos de transformación que aseguran la integración, sin necesidad de cambiar las especificaciones de JADE. Su función es de ser un intermediario,cuandounagentequiere comunicarseconunservicioWeb, WSIGse encargadeadministrarytransformarestepedidoparaposteriormenteenviarlosalos serviciosWebcorrespondientes.AlretornardesdeelservicioWeblosresultados,estos son receptados por WSIG para traducir esta respuesta y reenviarla al agente correspondiente. WSIGproporcionaunaarquitecturadereferenciaestándarquehaceposiblela interoperabilidadyextensibilidadcondiferentesaplicacionesypermitesucombinación paraejecutarlosserviciossolicitados. Figura2.13ComponentesdeWSIG
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 95 Tinteseltiempodeduracióndelainterrupción. neselnúmerodeinterrupciones. Asumiendo que el servicio de video streaming presenta iguales tiempos de establecimientoentodosloscasos,entonceselTstartpresentaelmismotiempode duración,porloque: ⋯ Entonces: 1∗ ⋯ ⋯ Luego si agrupamos los Tdata transmitidos más de una vez, agrupamos los Tint presentadosyseparamoselTdatantransmitidounasolavez,tenemos: 1∗ ⋯ ⋯ Siaplicamoselsumatoriotenemoslaecuación1: 1 ∑ ∑ (1) Tdataneslasumatoriadetodoslosflujosquehansidoretransmitidosmáselflujoque hasidoenviadounasolavez,sedeterminaporlasiguienteecuación. ⋯ ′ Aplicandolasumatoriatenemos:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 96 ′ ReemplazandoTdatanenlaecuación1seobtiene: 1 ′ Obteniéndoselaecuacióndefinitiva: 1 2 ′ Donde: 1 eseltiempototaldeiniciodelosflujostransmitidosporn interrupciones. ∑ eseltiempototaldeTdatatransmitidosmásdeunavez. ∑ eseltiempototaldeinterrupciones. ′eseltiempodeldatotransmitidounasolavez. Esimportanteanalizarelimpactodelasinterrupcionesenlatransmisióndelvideo,para ellosehaseleccionadodosescenarios: Peorescenario:dondecadainterrupciónqueocurrasedarámuycercanoala finalizacióndelvideo. Mejorescenario:cadainterrupciónsedaráenlomáscercanoaliniciodelvideo. EnlaFigura2.19puedeobservaseelcomportamientodelosflujostransmitidosfrente aunainterrupción,enelpeorescenario.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 97 Seanalizaacadaflujotransmitidoparaestablecerelnúmeroderetransmisiones queelflujopuedeteneralocurrirunainterrupción. ∗ ∗ 1 …. ∗ 1 ∗ 0 Obteniéndoselasiguienteecuación(2): ú 1(2) Dondei:eselnúmerosecuencialdeocurrenciadelainterrupción. Figura2.19Análisispeorescenario
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 98 Para obtener en este peor escenario la cantidad de frames que no se retransmitensemuestraenlaFigura2.19elTflujonqueeslatransmisióndetodoel video,esiguala: … ElTflujon‐1queeselflujotransmitidoantesdelaúltimainterrupción,deestosederiva elnúmerodeframesquenoseretransmitenconlasiguienteecuación. Concluyéndosequeelnúmeroframesnoretransmitidosseríasiempremuchomenor, enesteescenarioyaquelasinterrupcionesocurrencuandoelusuariohavistolamayor cantidaddelvideo. EnlaFigura2.20puedeobservaseelcomportamientodelosflujostransmitidos frenteaunainterrupción. Figura2.20Análisismejorescenario
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 99 Seanalizaacadaflujotransmitidoparaestablecerelnúmeroderetransmisiones queéstepuedeteneralocurrirunainterrupción. ∗ 1 ∗ 1 …. …. ∗ ∗ 0 Obteniéndoselasiguienteecuación: ú 1 Dondei:eselnúmerosecuencialdeocurrenciadelainterrupción. Paraestablecerenestemejorescenariolacantidaddeframesquenoseretransmiten, seobservaenlaFigura2elTflujonqueeslatransmisióndetodoelvideoqueesiguala: … ElTflujo1queeselflujotransmitidoconlaprimerainterrupción,querepresentaelflujo conmayorcantidaddeframes,conloqueseestablecelasiguienteecuación. Concluyéndosequeestenúmeroseríasiempremuchomayoryaquelasinterrupciones ocurrenenlosiniciosdelavisualizacióndelvideo.Realizandounacomparaciónentelos dos escenarios se puede establecer que en el peor escenario, la cantidad de retransmisióndelosframesocasionaunacongestiónenelusodelaredinaceptable.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 100 Tambiénesimportanteindicarqueeltiempoderetransmisióndeframessiemprees menorenelmejorescenarioencomparaciónconelpeorescenario. Conlafinalidaddeevaluarelmodelomatemáticoesnecesarioutilizarunanueva métricaqueeselnúmerovecesqueunflujodebytesesretransmitidoenbasealnúmero de interrupciones dadas. Para determinar el tiempo invertido enrepetirlosflujos cuandoocurreunainterrupción,seplanteanlassiguientescondicionesideales: Capacidaddecanalconstante. Noexistenretransmisionesporcausasdepérdidadedatosenelcanal. EsnecesariodeterminarlacantidaddebitstransmitidosenTdata,lasiguienteecuación permitecalcularobtenerelnúmerodebits. ú ∗ SielcanalesAsymmetricDigitalSubscriberLine(ADSL)conWiFitransmitea10Mbpsy siTdata1tuvountiempodeejecuciónde16,20segundos,entonceslaecuaciónpara obtenerelnúmerodebitsquesetransmitieronseria: ú 16,20∗10162 Paraobtenerlacantidadenbyteslodividimospara8obteniéndose20,25MB. Paradefinirelanálisisdelacantidaddebytesquesonretransmitidosencada flujoseprocedeadesignarunvaloracadatdataparatransformarloanúmerodebytes ypoderanalizarelefectodelasretransmisiones,sedetermina3interrupcionesyse obtienelostiemposdeTdata1=28s,Tdata2=4s,Tdata3=12syTdatan=32s;aplicando laecuaciónanteriorseobtienelacantidaddebytesquesehantransmitidoencadauno deellos:Tval1=35MB,Tval2=5MB,Tval3=15yTvaln=40MB.EnlaFigura2.21estos valoressonordenadosdemenoramayorparapoderestablecerdeformagráficala cantidaddevecesquesonretransmitidoscadaflujo,tambiénpuedeanalizarsequehay flujosquenoseretransmiten.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 101 Figura2.21Flujosretransmitidos Figura2.22Totaldeflujosretransmitidos EnlaFigura2.22sedefinematemáticamentecadatdataysucorrespondiente tamaño en bytes, también se detalla la cantidad de bytes de cada flujo que se retransmitenyelnúmeroderetransmisionesentotalquepresentacadaflujoporefecto de las interrupciones, para este número se aplicó la ecuación 2.Tambienpuede observarseeltotaldevideotransmitidoyeltotalderetransmisión, el 138% es totalmenteunfactornegativoinfluyenteenlaQoEdelusuario. LaFigura2.23indicalarelaciónentreelnúmerodevecesquelosflujoshansido retransmitidos,enesteescenarioelflujodemenortamañoseretransmitepormás ocasiones,apesardeserunflujodemenortamañoenbyteslacantidadtotaldebytes retransmitidos afecta directamente al servicio de video streaming que enfrenta interrupciones,provocandodegradacióndecalidadpercibidaporelcliente,quiendesea recibirunserviciocontinuoyefectivo. Tdata2 Tdata3 Tdata1 Tdatan #retrans 4s 12s 28s 32s 55 5 53 10 10 10 2 20 20 1 5 Tval2 Tval3 Tval1 Tvaln 5MB 15MB 35MB 40MB Tdata Tamaño bytes bytes retransmitidos #retrans totalbytes retrans 28,00 35,00 20,00 1 20 12,00 15,00 10,00 2 20 4,00 5,00 5,00 3 15 Totalvideo s Totalvideo MB Totalretrans MB % 32 40,00 55,00 138
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 102 Figura2.23Análisisderetransmisióndeflujos Figura2.24Efectosdelaretransmisión La cantidad de bytes adicionales que deberá soportar el clientealdarse interrupciones puede observarse en la Figura 2.24, el efecto que ocasiona las retransmisionessuperannegativamentealosnivelessoportadosporelusuario. Para corroborar los resultados obtenidos en el supuesto caso planteado anteriormente,sehaprocedidoarealizarunaexperimentaciónreal en el mejor escenario, generando interrupciones al inicio del video. En la Figura 2.25 puede observarsetodoslosdatosobtenidostantodelatransmisióncomodelainterrupciony eltiempototaldeejecución.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 103 Figura2.25Experimentaciónmejorescenario Figura2.26Totalderetransmisiónmejorescenario Figura2.27Resumenderetransmisionesmejorescenario La definición de los datos, su transformación en bytes y la cantidad de retransmisiones de cada flujo se han establecido en la Figura 2.26.Enestemejor escenario, se puede observar el total de video transmitido y la cantidad de bytes retransmitidos,definiéndosequesedaunmenorporcentajedeafectacióncuandoel usuariohavisualizadopocosframesyenfrentaunainterrupción. abc Texec (n+1)*Tstart ∑(Tdatai) ∑(Tinti) a+2(b)+c+Tdatan' s3,93 16,20 12,21 3,93 22,18 10,90 3,93 11,80 16,06 3,93 1168,82 1219,00 15,72 50,18 39,17 1324,07 MB 4,91 20,25 15,26 4,91 27,73 13,63 4,91 14,75 20,08 4,91 1461,03 1523,75 19,65 62,73 48,96 1655,09 Tstart Tdata3 Tint3 Tstart Tdatan' TdatanTstart Tdata1 Tint1 Tstart Tdata2 Tint2 Tdata Tamaño bytes bytes retransmitidos #retrans totalbytes retrans 22,18 27,73 7,48 1 7,48 16,20 20,25 5,50 2 11,00 11,80 14,75 14,75 3 44,25 Totalvideo s Totalvideo MB Totalretrans MB % 1219 1523,75 62,73 4
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 104 Figura2.28Efectosdelaretransmisiónmejorescenario Enestemejorescenario,dondelasinterrupcionessehandadocasialiniciodel videosepuedeobservarenlaFigura2.27queelflujode14,75MBhasidoretransmitido 3veces. EnlaFigura2.28sepuedeestablecerlacantidaddebytesretransmitidosque afectanlaprestacióndelserviciodevideostreamingenun4%. Esimportantecompararlosefectosdelasinterrupcionesenelpeorescenario dondelasinterrupcionessedancercadelafinalizacióndelvideo,paraellosehatomado datosdeunaexperimentaciónreal(Figuras2.29y2.30),dondeeltamañodelosflujos retransmitidosesmuchomayorencomparaciónalosflujosdelmejorescenarioypor ende tienen un 50% de afectación a la calidad percibida por el usuario del servicio proporcionado. EnestepeorescenariosepuedeobservarenlaFigura2.31queelflujode236,88 MBhasidoretransmitido3veces.Esteflujoqueseretransmiteportresocasioneses totalmentesuperioralflujoqueserepiteigualcantidadenelmejorescenario(14,75 MB). Demostrando la afectación al canal por la cantidad de vecesquelosflujosse retransmiten,enestecasosoninaceptablesyaqueafectanindiscutiblementealaQoE yQoSdelserviciodevideostreaming,alocasionardesperdiciodetiempoporpartedel usuarioenlareproducciónrepetidadelvideo.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 111 3. Solución básica basada en proxies paraiOS Seexponeaprofundidadeldiseñodelasoluciónbásica,sucaracterizaciónbasadaen patronessoftwareparaimplantarunmecanismoproactivoquecontrolainterrupciones en la transmisión de video streaming. De manera puntual, se detalla el proceso de desarrollodelprototipodesarrolladodenominadoJADE‐iPhone,que implementa el modelobásicopropuestoysedemuestrasuefectividadalbrindarcontinuidaddela transmisióndelvideoeneldispositivomóviliOS.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 112
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 113 3.1. Análisisdeldiseñobasadoenpatronessoftware Enelcapítuloanteriorseexplicóelmecanismobásicoquepermitelaejecucióndel procesodereproduccióndevideoatravésdeusodelpatrónMVC,enbasealanálisisy pruebasrealizadasdelmodelomatemáticosedefinióelimpactodelasinterrupciones enlacantidadderetransmisionesdelosdatosquepuedenocurrir,influyendoenla congestióndelaredyeneltiempodeejecucióndelserviciovideostreaming.Elimpacto negativo de mayor preocupación, es la QoE del usuario al causarlemolestiasde demoras,malacalidaddevisualización,reiniciodesesiónqueprovocaelabandonode la sesión. Estamos interesados en establecer una solución basada en proxies que controlalasinterrupcionesyreducelasretransmisionesdelosflujos,estoselograalser proactivos en detectar una eminente quiebre en la comunicación y establecer los mecanismosnecesariosparapermitiralusuariocontinuarvisualizandoelvideodesdela posición de reproducción en la que se encontraba cuando ocurrió la interrupción. Buscamosdemostrarqueelmodelopropuestoreducelasretransmisionesymejorael tiempodeejecución,loqueapoyaindudablementealamejoradelaQoEdelusuario, tambiénpretendemosconseguirmedirelimpactodemejoradetransmisióndelcanal loqueinfluyeenlaQoS. Figura3.1Diagramadecasosdeuso
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 114 Sehanestablecidonuevasfuncionalidadesaestemodeloconlafinalidadde controlarlasinterrupcionesquepuedandarseenelcanaldecomunicaciónylograrla reconexión automática, potenciando el servicio de video streaming al proveer de mejoresnivelesdeQoEalusuarioalproveercontinuidaddereproducciónalocurrir problemasenelcanaldecomunicación. El modelo propuesto mantiene la flexibilidad al cambio, orden, reutilización, escalabilidad, modularidad… aspectos solventados por uso del patrónMVCenel mecanismobásicodevideostreaming,descritoenelcapítuloanterior.Losrequisitos quedebecubrirlapropuestasehanestablecidoatravésdelmodelodecasosdeuso definidoenlaFigura3.1enelqueseestablecenlosprocesosdelareproduccióndel video,revisióndelalmacenamiento,análisisdelcanaldecomunicación,gestióndeuna interrupciónymanejodeunareconexión. Enlatabla3.1sedetallatodoelprocesodelasolicituddelserviciodevideo streaming,lacoordinaciónporpartedelProxyylaatencióndelpedidorealizadaporel servidor. Tabla3.1Casodeusoreproducirvideo CasodeUso:reproducirvideo Actores:cliente Resumen: se describe puntualmente como inicia la petición de la reproduccióndelvideoysudespliegue. Precondiciones: Descripción: CursoNormal: 1. Elclientesolicitalavisualizacióndelvideo 2. Ingresalosdatosdelpuertoyservidor 3. LosdatossonvalidadosporelProxy 4. AlnoexistirproblemaselProxysolicitaelservicioalservidordevideo streaming 5. Sedespliegaunaventanaenlaqueiniciaelvideostreaming 6. Elservidorinicialaentregaperiódicadelosflujosalalmacenamiento temporal Poscondiciones:sesolicitalarevisióncontinuadelalmacenamiento Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 115 Sedetallalafuncionalidadreferentealarevisiónperiódicadelalmacenamiento temporaldondesealojanlosframesparadeterminarsihayproblemascuandosesupera elumbralpermitido(tabla3.2)ytodoelprocesorelacionadoconevaluarelestadodel canaldecomunicacióninalámbricoyestablecersisehadadounainterrupciónpara alertardeesteeventoalProxyquienrealizalasaccionestendientesaenfrentareste problema(tabla3.3). Tabla3.2Casodeusosolicitarrevisiónalmacenamiento CasodeUso:solicitarrevisiónalmacenamiento Actores: Resumen:seexplicalaimportanciadeverificarelalmacenamientotemporal Precondiciones:elProxysolicitalarevisióndelalmacenamiento Descripción: CursoNormal: 1. Continuamentesepidelainformacióndelestadodel almacenamiento 2. Secomparaconelnivelmáximoestablecido 3. Segeneraunaalertaencasodesuperarelumbraldefinido 4. SecomunicadeesteproblemaalProxy Poscondiciones:sesolicitalaevaluacióndelcanaldecomunicación Observaciones: Tabla3.3Casodeusoevaluarestadocanaldecomunicación CasodeUso:evaluarestadocanaldecomunicación Actores: Resumen:paraasegurarquesetratadeunainterrupciónesnecesarioevaluar cómoestálacomunicacióninalámbrica. Precondiciones:elProxysolicitalaevaluacióndelcanaldecomunicación Descripción: CursoNormal: 1. SeevalúalacomunicaciónaniveldeRTSP 2. SeevalúalacomunicaciónaniveldeUDP 3. Sedeterminaelestadodelcanaldecomunicación 4. EsteestadoescomunicadoalProxy Poscondiciones:sesolicitamantenerlacontinuidaddelservicio Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 116 SeexplicaelprocesoquesigueelProxyparadefinirlaoperaciónarealizary solventarunainterrupcióndada(tabla3.4)ysedetallatodalafuncionalidadalocurrir unainterrupción,elusodebufferparaalmacenarlosframesquehansidoenviadospor elservidoryquenopuedenserentregadosalclientealhaberocurridounainterrupción (tabla3.5). Tabla3.4Casodeusomantenercontinuidaddelvideo CasodeUso:mantenercontinuidaddelvideo Actores: Resumen:frenteauneventodelcanaldecomunicacióndebegestionarsela continuidaddelserviciodevideostreaming Precondiciones:elProxysolicitalaejecucióndeunprocesodeacuerdoal estadodelcanaldecomunicación Descripción: Cursoalertainterrupción: 1. Encasodeserunaalertadeconexiónsesolicitalagestiónde interrupción Cursoreconexión: 2. Cuandoelcanalseharestablecidosesolicitalareconexión automática Poscondiciones: Observaciones: Tabla3.5Casodeusogestionarinterrupcióndelservicio CasodeUso:gestionarinterrupcióndelservicio Actores:cliente Resumen:explicaeldetalledelasactividadesacumplircuandoocurreuna interrupciónycomosecontrolalamisma Precondiciones: Descripción: Cursonormal: 1. Sesolicitaelalmacenamientodelosflujosenelbuffer 2. Sedespliegaenlainterfazgráficadelusuarioelmensajequeseha dadounproblemayqueseencuentraenestadodeesperapara reconectarseautomáticamente 3. Sepideelserviciodeevaluarcontinuamenteelcanalde comunicación. Poscondiciones: Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 117 Tabla3.6Casodeusogestionarreconexión CasodeUso:gestionarreconexión Actores: Resumen:explicaeldetalledelasactividadesacumplircuandoelcanalseha restablecido Precondiciones: Descripción: Cursonormal: 1. Sesolicitaquelosflujosalmacenadosenelbufferseantransmitidos aldispositivocliente 2. Elclienteautomáticamentecontinúavisualizandoelvideoenelpunto enelqueseencontrabacuandoocurriólainterrupción. Poscondiciones: Observaciones: Enlatabla3.6seexplicalarecuperacióndelosframesdelbufferyeldespliegue enelclienteunavezquelacomunicaciónseharestablecido. 3.1.1. Justificacióndelospatronessoftwareautilizar Lapropuestadeestediseñosefundamentaenproveerunmodelogenéricoquepueda ser implementado en un escenario de experimentación específico para dispositivos inalámbricos,sehadecididoutilizarelpatrónMVCaplicadoenelmodelodelcapítulo anterior,porlaspotencialidadesquepresentaalpermitirdesarrollarcódigoordenado alsepararlosdatosdelaaplicación,lainterfazdeusuarioylalógicadecontrol,loque posibilitalafacilidaddecambiosyadicióndefuncionalidades,apoyaalaintegracióny la reutilización de componentes, brinda escalabilidad y facilidaddeldesarrollode prototipos.SehadecididoimplementarelpatrónCompositeenelladodelavistapara que su contexto y componentes se organicen estructuradamente y puedan ser reemplazadosconfacilidad;elpatrónObserveracompañaalmodeloparaestablecer cambios de estado del almacenamiento o buffer y notificar oportunamente al controladordeloscambiosdeestadodelobjetoobservadoyse utiliza el patrón Strategyenlacapacontroladoraparadeterminarlasaccionesaseguiren caso de gestionarunainterrupciónoreconexióndelservicio.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 118 Figura3.2Modelobasadoenpatrones El patrón Proxy es el encargado de ser el intermediario entre el cliente y el servidorseubicaenlacapacontroladora,quieneselorquestadordetodoelmecanismo decontroldeinterrupción.Paralograrlafuncionalidadrequeridaypermitirelcontrol delasinterrupcionessehanadicionado componentesquepuedenobservarseenla Figura3.2, en este se puede observar el incremento de un subsistema externo que permiteseejecutelaevaluacióndelcanaldecomunicación. Losrequisitosestablecidosenelcasodeusosolicitarrevisiónalmacenamiento sehaimplementadoatravésdelpatrónObserver,quefortalecelacapadelmodelodel MVC,seencargadeestarconstantementemonitoreandoalalmacenamientoyrealiza laevaluacióndelestadodelbuffervselnivelmáximoestablecido.Cuandoelbuffer superaelumbralelobservadornotificaalProxyesteevento.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 119 Cuando ocurre la notificación de problemas en el almacenamiento, se debe ejecutarlosrequisitosdefinidosenelcasodeusoevaluarestadocanaldecomunicación paraellosehavistolanecesidad de crear un paquete externo conformado por un observadoralmismonivelqueelcontrolador,esteseencargaderecibirelpedidodel Proxyyrevisarquesucedeconelcanalinalámbrico,lapotencialidaddeesteobservador estáenquegarantizaalaplicativosirealmentehayunainterrupción,hecho quees notificadoalservidor.Deigualformacuandohayunareconexión,lautilidaddeeste observadoresvisiblealproporcionarelserviciodeindicardeformaoportunayeficiente cuandoserestableceelcanal. Paracumplirconlosrequisitosespecificadosenloscasosdeuso mantener continuidaddelservicio,gestionar interrupcióndel servicioygestionarreconexiónal obtenercomorespuestaelestadodecanaldesconectado,elProxysolicitaalpatrón Strategy, la ejecución del algoritmo de interrupción, el cual realiza dos actividades: solicitud del almacenamiento temporal de los flujos emitidos por el servidor y despliegueenlavistadelmensajereconectando. Cuando los problemas de conexiónhansidosuperados,elobservador del subsistemaexternodeterminaqueelcanaldecomunicaciónseharestablecido comunicandodeestehechoalProxy,quiénsolicitaalpatrónStrategylaejecucióndel algoritmodeconexión;enestecasosepidequelosflujosalmacenados en el almacenamientotemporalseantransmitidosalcliente. 3.1.2. Diseñoarquitectónicoydedespliegue Eneldiseñosedefinelaarquitecturadelapropuestaquesoportelosrequisitosynos lleveaimplantarelpatrónbásicobasadoenpatronessoftware.Eldiagramadeclases delsistemaseexponeenlaFigura3.3. Acontinuaciónseexplicalarelaciónentreelmodelodepatronessoftwareylas clasesquehansidodefinidaseneldiagramadeclases:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 120 Modelo y patrón Observer: las clases que permiten el almacenamiento temporalyelobservadorqueanalizaconstantementeelestadodelbuffer son:ServerStreaming,BufferyDataListener. Vista y patrón Composite:lasclasesquesonejecutadasparalograrel desplieguedelvideo streaming en el dispositivocliente son: VideoPlayer, URLStreamingyVideoView. Controlador:defineelpatrónProxyelcualestárepresentadoporlasclases AgentProxy, ServerAgentProxyyClienteAgentProxy. El patrón Strategy también fortalece la capa de control implementado mediante las clases: ActionControler,InterrupciónActionyReconexionAction. Elobservadorexternoquepermiteevaluarelestadodelcanalde comunicaciónestárepresentadoporlasclases:EnlaceListener,ListenerUDP yListenerRTSP. Figura3.3Diagramadeclases
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 127 3.3. Análisisdelaimplantaciónexperimental SehadesarrolladoJADE‐iPhoneparalaplataformaiOS,paraimplantarelmecanismo quecontrolalatransmisióndelvideoysuvisualizaciónenlosdispositivosinalámbricos, laideabásicaesevitarqueelusuariotengaquereiniciarunasesiónRTSP,cuandoocurre unainterrupciónyquepuedarecibirendiferidolosframesdevideoperdidos,locuales estántemporalmentealmacenadosenunbufferhastaqueeldispositivomóvilvuelvaal áreadecobertura.EneldesarrollodeJADEparaiPhoneseutilizaunaarquitecturade agentes de software, que proveen métodos orientados a establecer la reanudación automáticadelasesióndelusuariosinpérdidadelainformación. 3.3.1. Proyeccióndelospatronessoftwareenlosdiagramasdediseño En el diseño se define la arquitectura de la propuesta, los diagramas de clases del sistemaseexponenenlasFigura3.9.Acontinuaciónseexplicalarelaciónentreel modelodepatronessoftwareylasclasesquehansidodefinidaseneldiagramade clases: Modelo y patrón Observer: las clases que permiten el almacenamiento temporalyelobservadorqueanalizaconstantementeelestadodelbuffer son:MemoryStream,DataStreamyNSStream. Vista y patrón Composite: las clases que son ejecutadas para lograr el desplieguedelvideostreamingeneldispositivoclienteEAGLView,Rendery UrlRTSP. Controlador:enestesedefineelpatrónProxyelcualestárepresentadopor lasclasesAgent,AgentProxyyNAgent.ElpatrónStrategytambiénfortalece lacapadecontrolimplementadomediantelasclases:BehaviourFactory, BehaviourConnectyBehaviourDisconnect. Elobservadorexternoquepermiteevaluarelestadodelcanalde comunicaciónestárepresentadoporlasclases:ConnectionListener, ListenerPortUDP, ListenerPortRTSP, ListenerMessageUDP, ACLMessage, ListenerMessageRTSPyMessageRTSP.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 128 Figura3.9DiagramadeclasesiPhone
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 129 Figura3.10Diagramadesecuencia
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 130 EnlaFigura3.10semuestraneldiagramadesecuenciaqueexplicaadetallela comunicaciónquesedaentrelasclasesparacumplirelestablecimientodelasesiónde videostreaming,laactivacióndelosobservadores:delalmacenamientoydelcanalde comunicación, la definición de una interrupción y la selección del algoritmo que se ejecutadeacuerdoaleventoocurrido. En la Figura 3.11 se expone el diagrama de despliegue donde se indica la ubicacióndeloscomponentesylacomunicaciónentreellos,sepuedenotarqueelProxy seubicatantoenelclientecomoenelservidordeaplicaciónparaconseguirgenerarla comunicaciónygestióndelBuffercuandoocurralainterrupción,estoapoyaraaqueno sepierdanlosframesyqueseanmostradosenelclienteunavez solucionado el problemaqueocasionolainterrupción. Figura3.11Diagramadedespliegue
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 131 AliniciarestavisualizaciónelProxysolicitaeltrabajodeobservadoraNSStream quien continuamente está revisando a MemoryStream y define alerta de umbral superado.SiesteeventoocurreelProxysolicitaelserviciodeConnectionListenerde observarelestadodelcanaldecomunicación,siestarespuestaaseguraquehayuna interrupción el Proxy invoca al servicio del BehaviourFactory para que seleccione el algoritmoaejecutar,enestecasoBehaviourDisconnect.Estealgoritmoseencargade queelProxysolicitealServerStreamingelalmacenamientotemporaldelosflujosque nopuedensertransmitidosyalConnectionListenerpidequeevalúeelcanalydetermine surestablecimiento.AlrestablecerseelcanalelProxyrecibeestanotificaciónypideal BehaviourFactorylaejecucióndelalgoritmocorrespondiente,paraestasituaciónsería BehaviourConnect mediante el cual el Proxysolicitalatransmisióndelflujoquese encuentraalmacenadoenelBufferdelServidordeAplicaciónyseaentregadoalproceso devisualizaciónubicadoeneldispositivomóvil. 3.3.2. Desarrollodelmodeloconsoftwarepropietario Con miras a crear y ejecutar agentes en el entorno iOS, se desarrolló el aplicativo denominadoJADE‐iPhone,queesunportdelcódigodeJADESHARPcreadoparaser utilizadocon.NETCFo.NETJADE_SHARP. Este código está bajo licenciaGNULibrary GeneralPublicLicense(LGPL)3yescompatibleconlaversión2.1deJADESHARP,la libreríadesarrolladatomaencuentaloscopyrightylicenciasdeJADE. JADE‐iPhonees un aplicativodesarrolladoen código abiertopara interactuar específicamenteconeliOSyaligualqueJADE,posibilitalaimplementacióndeagentes bajolosestándaresFIPA,suprimeraversiónpermitelacomunicacióndemensajesACL; funciona como JADE LEAP en modo Split, significa que el contenedor en el que se despliegaelagentesedivideenunapartefrontal(FrontEnd)eneldispositivomóvily unapartetrasera(BackEnd)enunservidorremoto. JADE‐iPhonepermiteeldesarrolloyejecucióndeagentesJADEenterminales móvilesconectadosatravésderedesinalámbricas,tomandoencuenta que estos dispositivos presentan limitaciones en algunos recursos como es la conectividad,
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 132 memoria y procesamiento. Toda la comunicación está basada en elintercambiode mensajes.LaPlataformaJADE‐iPhonequealbergaalagenteseencargadehacerlellegar losmensajesalaplataformadelagentedestinatario.Lacodificacióndecodificaciónde mensajeslahacenautomáticamentelosagentes. LaprimeraversióndelaplicativoJADE‐iPhoneproporcionaunainterfazamigable paraelaccesoalasfuncionesbásicasdelterminalmóvilalejecutarvideostreaming, permitelacreacióndeagentesysucomunicaciónmediantemensajesACL,basadoen losestándaresFIPA;alserIphoneunaplataformacerradayalnoexistirenelmercado un aplicativo que posibilite la implementación de agentes, el aplicativo permite la transmisióndefotogramas. Se procedió a adaptar la arquitectura ya explicada de los agentes Jade al protocoloRTSP/RTPquehalogradoquelatécnicadevideostreamingseamuyutilizada, yestévigentehastalaactualidad.EléxitodelprotocoloRTSP,sedebeasuvelocidady eficienciaalahoradetransmitirvideosdegrantamañoycalidad.Aestaeficienciaen los dispositivos inalámbricos se le añade el CODEC de video H263, que comprimen mediantealgoritmoseltamañodelosfotogramas,paraevitarocuparungranespacio dememoriaeneldispositivomóvil. El Proxy se divide entre el cliente y el servidor, éstos se comunican continuamenteparaconocerelestadodelatransmisióndelvideostreaming,alocurrir unainterrupciónelProxyservidoralertaysolicitaquesealmacenenlosfragmentosen el buffer. El manejo de proxies y agentes inteligentes permite distribuir la carga computacionalymejorarlaefectividaddelarecuperacióndelainterrupción. Elmodeloquerealizalatransferenciadevideoentiemporealsobreteléfonos móvilesiOS,determinalassiguientesentidades(Figura3.12):unServidordevideoRTSP, un Agente Proxy Servidor(APS), un dispositivo móvil que actuará como cliente, albergandounAgenteProxyCliente(APC)yalaaplicaciónRTSPClientelacualsellama PlayeryvieneintegradaaldispositivoiPhone,estageneralaspeticionesyvisualizael video.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 133 ElServidorseconectaconelAPS,esteasuvezconelAPCmedianteunaconexión inalámbrica.EnlosenlacesentreServidor–APSyAPC–Clientesetransmitenmensajes utilizando RTSP que para comunicar video utiliza RTP. Los agentes APS y APC se desplieganenlaplataformaJADEysecomunicanatravésdemensajesFIPAACL,conlo quesesimplificalacomunicaciónentreagentesevitandodeclararontologías.EnJADE‐ iPhoneelAPCsedivideendospartes:FrontEnddelAPCaserejecutadoenelteléfono iPhoneyelBackEndenelServidor,lasdospartesseconectanporunaredWiFi,donde lasposiblesdesconexionessegestionandeformatransparenteparaelAPC. ElAPScumpledosfunciones,laprimeraesladereceptarlosmensajesdelAPCy losenvíaalservidorsegúnlospuertosasignadosenlanegociaciónylafunciónrestante esreceptarlosmensajesprovenientesdelservidoryenviarlosalAPC. ElAPCpermitequeeldispositivomóvilpuedarecibiryenviarlosmensajesRTSP, lospaquetesRTPyRTCPdemanerasegura.EsteAPCimplementaunmecanismode almacenamientoyenvío,asícomoeldefiltrarlanegociaciónRTSPparaquesealomás transparenteposible.Esteresideeneldispositivomóvillocualaseguraqueelagente nuncasevaadesconectardelcliente. Figura3.12ModeloJADEiPhone
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 134 AlcolocaragentesenelAPSyAPC,éstoscooperanendefinircuándoelmóvil está fuera de cobertura al usar señalización MTP, encargándose de resolver las desconexionesintermitentesyreanudarautomáticamentelasesióndevideostreaming. AlocurrirunainterrupciónlosmensajestransmitidosFIPA‐ACLalteléfonomóvilson guardados en el buffer del APS ya que no pueden ser entregados al destinatario, reenviándoseunavezquesereanudelaconexión. Al ocurrir una interrupción inalámbrica, los paquetes que llegan al APS son encapsuladosytratadosporelservicioderepartopersistente,estevaguardandotodos losmensajesquenosepuedenentregarasudestinatarioenelbuffer,hastacuandoel agenteAPCvuelvaaconectarseyseleenvíelosmensajesguardados.Deestamanera lainterrupciónporproblemasenlaredinalámbricapasainadvertidaparaelservidory elcliente. UnodelosbeneficiosenJADE‐iPhoneesqueintentareconectarelAPSyelAPC durantealgúntiempo.ElprotocoloMTPpermitedefinireltiempodeesperaparaqueel cliente se reconecte, éste tiempo influye en el dimensionamiento del buffer. Los fragmentos que no pueden ser visualizados en el cliente porque ha ocurrido una interrupciónsonguardadosenelbufferdelcliente.Losagentesinteligentescolaboran endefinirelestadodelaconexión.Alrestablecerselaconexiónentrelosagentes,elAPC leelosframesdevídeoordenadosen elbufferylos envíaalvideoreproductordel cliente.Deestaformasepermitequeelclienterecupereelvideodesdeelpuntode quiebre. ElcódigogeneradoposibilitaaliOSejecutaragentesJADEperoconlimitantes: nopermiteontologíassoloframesdetipoOrderedyQualified y se debe utilizar el servicioBEManagementServiceenelladodelservidor.Lossocketsdecomunicaciónse implantaronenObjectiveC.EstossocketsempaquetanlosmensajesACLenframesya sean OrdereroQuailified, para luego ser convertidos en datos binarios y que se encapsulanenTCP/IP;parapoderiniciarlaconexiónconelservidorJADE,seenvían mensajesdeHandShackingenlaplataforma.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 135 3.3.3. Resultadosexperimentales Enelescenariodepruebasseutilizóunservidordevideodelibredistribución,quees másaceptadoanivelmundialcomoesVLC.Sehatratadodeemitirelvideocodificado enunformatocompatibleconlosdispositivosinalámbricosiPhone.Laconfiguracióndel formatodevideoeselsiguiente:paravideoelCODECH.263,tasadebitsde900kbps, 25fps,ancho=176,alto=144yparaelaudioelCODECMPEG,tasadebitsde128kbps,1 canalylatasademuestreode44100.SeutilizóunaredinalámbricacontecnologíaWiFi conunpuntodeaccesode50Mbps,unaportátilIntelCorei5de2.67Ghzcon8GBde RAM, con tarjeta WiFi (Intel 82577LM) en el cual se ejecuta el servidor de video streamingyelAPS;unacomputadoraIntelCorei5de1.9Ghzcon4GBdeRAMytarjeta WiFi(IntelI218‐V)enelcualseejecutaAPCbackEndqueconectaaunmóviliPhone,en elqueseejecutaelclienteyelfrontEnddelAPCyundispositivomóviliPhonemodelo 5S. EnlaFigura3.13sepuedeobservarunafotografíadeestemecanismo en funcionamientoutilizandoproxies.Enestaimagen,puedeverseenlazonainferiorel dispositivo móvil y en su pantalla un fotograma del video que el cliente móvil está observando. En la parte central aparece la sucesión de mensajes FIPA ACL que se intercambianentreelAPCyelAPS,informaciónproporcionadaporlautilidadsnifferde laplataformaJADE‐iPhone. Figura3.13FuncionalidaddeJADEiPhone
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 136 Se han realizado varias pruebas, simulando una interrupción en la red, para verificar y comprobar la efectividad de JADE al momento recuperarlospaquetes despuésdeunainterrupción.Sehaprobadoquemedianteelusodesistemadeagentes JADE‐iPhone,lassesionesdevideostreamingsiemprefueronreiniciadasenelpuntoen queelclienteperdiólaconexión. Paraelanálisisdeljitteryretardosehananalizado500framesendosescenarios, transmisióndevideostreamingsinproxiesytransmisiónconproxies.Enlafigura3.14 seanalizalavariacióndeljitter,enlacualseobservaqueel jitter enviando video streaming sin Proxy tiene mayores niveles que la transmisión con control de interrupciones. Figura3.14Análisisdejitter Figura3.15Análisisdelretardo
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 143 Sedetallalafuncionalidadreferentealarevisiónperiódicadelalmacenamiento temporaldondesealojanlosframesparadeterminarsihayproblemascuandosesupera elumbralpermitido(tabla4.2)ytodoelprocesoalanálisisontológicodelosrecursos deldispositivomóvilparaestablecersihayriesgodeunainterrupción,estecasodeuso esposteriormenteexplotadoydefinidosudetalle(tabla4.3). Tabla4.2Casodeusosolicitarrevisiónalmacenamiento CasodeUso:solicitarrevisiónalmacenamiento Actores: Resumen:seexplicalaimportanciadeverificarelalmacenamientotemporal Precondiciones:elProxysolicitalarevisióndelalmacenamiento Descripción: CursoNormal: 1. Continuamentesepidelainformacióndelestadodel almacenamiento 2. Secomparaconelnivelmáximoestablecido 3. Segeneraunaalertaencasodesuperarelumbraldefinido 4. SecomunicadeesteproblemaalProxy Poscondiciones:sesolicitalaevaluacióndelestadoderecursosdeldispositivo Observaciones: Tabla4.3Evaluarestadoderecursosdeldispositivo CasodeUso:evaluarestadoderecursosdeldispositivo Actores: Resumen:paraasegurarquesetratadeunainterrupciónesnecesarioevaluar ontológicamenteelestadodelosrecursosdeldispositivo Precondiciones:elProxysolicitalaevaluacióndelestadodelosrecursos Descripción: CursoNormal: 1. Serealizaelmonitoreodelestadodelosrecursos 2. Seefectúaelanálisisontológicodelosrecursos:batería,latenciay geolocalizaciónysedeterminasiexisteproblemadeinterrupción 3. SetransformalasaccionesdelagenteaserviciosWeb 4. SecomunicadelproblemadeinterrupciónalProxy Poscondiciones:sesolicitamantenerlacontinuidaddelservicio Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 144 SeexplicaelprocesoquesigueelProxyparadefinirlaoperaciónarealizary solventarunainterrupcióndada(tabla4.4)ysedetallatodalafuncionalidadalocurrir unainterrupción,elusodebufferparaalmacenarlosframesquehansidoenviadospor elservidoryquenopuedenserentregadosalclientealhaberocurridounainterrupción (tabla4.5). Tabla4.4Casodeusomantenercontinuidaddelvideo CasodeUso:mantenercontinuidaddelvideo Actores: Resumen:frenteauneventodelcanaldecomunicacióndebegestionarsela continuidaddelserviciodevideostreaming Precondiciones:elProxysolicitalaejecucióndeunprocesodeacuerdoal estadodelosrecursosdeldispositivo Descripción: Cursoalertainterrupción: 1. Encasodeserunaalertadeinterrupciónsesolicitalagestiónde interrupción Cursoreconexión: 2. Cuandoelcanalseharestablecidosesolicitalareconexión automática Poscondiciones: Observaciones: Tabla4.5Casodeusogestionarinterrupcióndelservicio CasodeUso:gestionarinterrupcióndelservicio Actores:cliente Resumen:explicaeldetalledelasactividadesacumplircuandoocurreuna interrupciónycomosecontrolalamisma Precondiciones: Descripción: Cursonormal: 1. Sesolicitaelalmacenamientodelaúltimaposicióndereproducción delvideo 2. Sedespliegaenlainterfazgráficadelusuarioelmensajequeseha dadounproblemayqueseencuentraenestadodeesperapara reconectarseautomáticamente 3. Sepideelserviciodeevaluarcontinuamenteelcanalde comunicación. Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 145 Tabla4.6Casodeusogestionarreconexión CasodeUso:gestionarreconexión Actores:Cliente Resumen:explicaeldetalledelasactividadesacumplircuandoelcanalseha restablecido Precondiciones: Descripción: Cursonormal: 1. Sepidealalmacenamientolaúltimaposicióndereproduccióndel video 2. ElProxysolicitaalservidorvideostreaminglareproduccióndelvideo desdelaposiciónespecifica 3. Elclienteautomáticamentecontinúavisualizandoelvideoenelpunto enelqueseencontrabacuandoocurriólainterrupción. Poscondiciones: Observaciones: Enlatabla4.6seexplicalarecuperacióndelosframesalmacenados temporalmenteenelbufferyeldespliegueenelclienteunavezquelacomunicaciónse harestablecido. DelaFigura4.1sehaexplotadoelcasodeusoevaluarestadoderecursosdel dispositivoenelqueseestablecetodalafuncionalidaddelanálisisontológicodelestado delosrecursosdeldispositivo,losagentesontológicosejecutansusaccionestendientes aestablecersihayunainterrupciónysutransformacióndelasaccionesdelagentea serviciosWebinteroperables(Figura4.2). Lafortalezadeestasoluciónradicaenladefiniciónproactivadelaocurrenciade unainterrupción,paralocualsesustentaenelplanteamientodeontologíasqueson gestionadas por el agente mediante comportamientos que en conjunto definirán la alertaeminentedeunainterrupciónylatransformaciónaserviciosWebparaapoyaren laejecucióndeestrategiasproactivasquepermitanenfrentarlamisma. Lanuevafuncionalidaddeestasoluciónsemuestraclaramenteenestediagrama decasodeusoenelquesedetallaelmonitoreo,elanálisisontológicoylaconsecución delainteroperabilidadatravésdeserviciosWeb.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 146 Enlatabla4.7semuestralasactividadestendientesarealizarelmonitoreoconstante delosrecursosdeldispositivo:batería,latenciaygeolocalización. Figura4.2Explosióndeldiagramadelcasodeuso Tabla4.7Casodeusorealizarmonitoreoestadoderecursos CasodeUso:realizarmonitoreoestadoderecursos Actores:Proxy Resumen:seexplicalaimportanciademonitorearelestadodelosrecursos Precondiciones:elProxysolicitalarevisióndelestadoderecursos Descripción: CursoNormal: 1. Continuamenteseobtienelainformacióndelestadoalosrecursos deldispositivo:batería,latencia,geolocalización 2. Estainformaciónesalmacenadatemporalmente 3. Lainformacióndelosrecursosesmonitoreadaconstantemente 4. SecomunicaalProxyelestadodelosrecursosmonitoreados Poscondiciones:sesolicitaelanálisisontológicodelosrecursos Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 147 Sedetallatodoelprocesorelacionadoalasolicitudarealizar el análisis ontológico de: batería, latencia y geolocalización para poder definir si hay una interrupción(tabla4.8)ylaexplicacióndecómoseestableceelanálisisontológicodela bateríadeldispositivomóvil(tabla4.9). Tabla4.8Casodeusorealizaranálisisontológicodelosrecursos CasodeUso:realizaranálisisontológicodelosrecursos Actores: Resumen:paraasegurarquesetratadeunainterrupciónesnecesarioevaluar ontológicamenteelestadodelosrecursosdeldispositivo Precondiciones:elProxysolicitaelanálisisontológico Descripción: CursoNormal: 1. Sesolicitaelanálisisontológicodelabatería 2. Serequiereelanálisisontológicodelalatencia 3. Serequiereelanálisisontológicodelageolocalización 4. Sedeterminasiexisteproblemadeinterrupción Poscondiciones:sesolicitatransformaraserviciosWeb Observaciones: Tabla4.9Casodeusoanálisisontológicobatería CasodeUso:análisisontológicobatería Actores: Resumen:serealizaelanálisisontológicodelabatería Precondiciones: Descripción: CursoNormal: 1. Serevisaelporcentajedecargadelabatería 2. Seestablecesielporcentajeestáenelrangodel10%al30% 3. Alestareneserangosedefineriesgodeinterrupciónderivadode estefactor. Poscondiciones: Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 148 Sedetallatodaslasactividadestendientesaanalizarontológicamenteelestado delalatenciadeldispositivomóvil(tabla4.10)yseexplica el proceso del análisis ontológicodelageolocalización(tabla4.11). Tabla4.10Casodeusoanálisisontológicolatencia CasodeUso:análisisontológicolatencia Actores: Resumen:serealizaelanálisisontológicolatencia Precondiciones: Descripción: CursoNormal: 1. Serevisalalatenciaenmilisegundos 2. Seestablecesiestalatenciaessuperioralos100milisegundos 3. Siessuperiorseestableceunaalertadealtaprobabilidadde interrupción Poscondiciones: Observaciones: Tabla4.11Casodeusorealizaranálisisontológicogeolocalización CasodeUso:realizaranálisisontológicogeolocalización Actores: Resumen:serealizaelanálisisontológicodelageolocalización Precondiciones: Descripción: CursoNormal: 1. Serevisalosdatosdelalatitudylongituddiagnosticandolared 2. Siestableceenquerangoseencuentraestainformación 2.1 0‐135m:conexiónfavorable 2.2 135‐150m:alertadeconexiónenriesgo 2.3 Mayorde150m:alertadeinterrupcióneminente 3. Sedefineeltipodealertadeacuerdoalrangoexplicado Poscondiciones: Observaciones:
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 149 Tabla4.12Casodeusotransformaraserviciosweb CasodeUso:transformaraserviciosWeb Actores: Resumen:SetransformanlasaccionesdelosagentesenserviciosWeb Precondiciones: Descripción: CursoNormal: 1. Seobtieneelanálisisontológicodelosrecursos:batería,latenciay geolocalizaciónysedeterminasiexisteproblemadeinterrupción 2. SetransformalasaccionesdelagenteaserviciosWeb 3. SeenvíalosserviciosWebalProxy Poscondiciones: Observaciones: Enlatabla4.12sedetallatodoelprocesodetransformacióndelasaccionesdel agenteaserviciosweb,conlafinalidaddeindicaralProxyqueestáocurriendouna interrupción. 4.1.1. Justificacióndelospatronessoftwareautilizar Enlasoluciónbásicabasadoenproxiesseplanteóundiseñosustentadoenpatrones softwarerobustoqueapoyaronenestablecermecanismosquepermitierongestionar efectivamenteelcontroldeunainterrupción,estediseñoproporcionaunaorganización estructuradadelMVC,sepotencióacadaunadeellasconlospatrones software Observer,StrategyyComposite. EnbasealasbondadesqueofreceMVCencuantoamodularidad,flexibilidad, facilidaddecambio,escalabilidad…yalosresultadosobtenidosenelcapítuloanterior, alasoluciónseadicionaunobservadorqueseencargadeevaluarynotificarelestado delosrecursosmonitoreados(batería,latenciaygeolocalización)yrealizarelanálisis ontológicoparadefinirproactivamentesihaocurridounainterrupción;tambiénseha incrementadounadaptadorquepermiteadaptarlosserviciosdelagenteontológicoen serviciosWebparaquepuedanserreconocidosenlaWebylograrlainteroperabilidad deseada.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 150 Figura4.3ModeloWebinteroperable ComosemuestraenlaFigura4.3sehaestablecidounincrementofuncionalen el subsistema externo que permite el monitoreo constante de los recursos del dispositivomóvilyelanálisisontológicoparadeterminarunainterrupción,enestecaso sehautilizadoelpatrónObserver.Paralograrlainteroperabilidad,elpatrónAdapter permitelatransformacióndelasaccionesdelagenteaserviciosWeb. AcontinuaciónsedescribeelsubsistemaMVC: Modelo:estáubicadoenelservidordeaplicaciones,enesteseencuentra identificadoelalmacenamientotemporal,cuandoocurreunainterrupciónse grabalaposiciónactualdelareproduccióndelvideo.Lasoluciónsefortalece con la implementación del patrón Observer que constantemente está monitoreandoelestadodelalmacenamientotemporalyselocomunicaal Proxy.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 151 Vista:sedespliegaenlosdispositivosinalámbricosutilizandoelpatrónde diseño Composite. En caso de ocurrir una interrupción, se mostrará el mensajereconectando...,elcualpermaneceactivohastacuandoelcanalse restableceylareproduccióndelvideocontinúa. Controlador:estáenelservidordeaplicaciones,paracomplementarsu accionarsehautilizadolospatronessoftware:ProxyyStrategy.Elpatrón Proxycumplelalabordeintermediarioentreelservidordevideostreaming yelreproductordevideo.Unadesusactividadesprincipalesesenviarla informacióndelhardwarededispositivomóvil,alsubsistemaexternoyen casoderecibirlaalertadeinterrupciónsolicitaalpatrónStrategylaejecución delalgoritmodeinterrupción.Almomentoderestablecerselacomunicación, el Proxy se encargará de requerir del patrón Strategy la ejecución del algoritmodeconexión. Sedescribeelsubsistemaexterno: Enelladodelmodelosealmacenalainformacióndelhardwaredel dispositivocliente:latencia,bateríaygeolocalización.Estesefortalececonla implementación del patrón Observer que constantemente está monitoreandoelestadodelosrecursosdeldispositivomóvilyselocomunica alProxy. EnelladodelcontroladorelObserver externo recibe la información del hardwaredeldispositivomóvilremitidoporelProxy; realiza el análisis ontológico correspondiente y define proactivamente una posible interrupción.EncasodeocurriresteeventoelpatrónAdaptertransformalas accionesdelagenteontológicoaserviciosWebinteroperablesylosenvíaal Proxy. EsimportantedetallarlafuncionalidaddelaplicativoWebinteroperable.Elreproductor devideosolicitaeldesplieguedelvideoalProxy,ésteasuvezlodemandadelservidor devideostreaming.Continuamenteseregistraelestadodelosrecursosdeldispositivo: batería,latenciaygeolocalización.Elestadodeestosrecursosesrevisadoporelpatrón ObserverdelsubsistemaexternoycomunicadosalProxy.
Diseñodeunaplataformadeagentesparacontroldeserviciosdevideostreamingmóvil 152 ElProxysolicitaalObserverdelsubsistemaexternoelanálisisontológicodel estado de la batería, latencia y geolocalización. Del análisis realizado puede desprenderselaposibilidaddeinterrupción,enestecasoelpatrónAdapterseencarga detransformarlasaccionesdelagenteenserviciosWebylosenvía al Proxydel subsistema MVC. Este evento ocasiona que el Proxy solicite al patrón Strategyla ejecución del algoritmo de interrupción, el cual demanda que se almacene en el almacenamientotemporallaposiciónenlaqueseencuentraelvideo,despliegaenla vistaelmensajedequeestadesconectadoeiniciaelbucledereconexión. CuandoelProxyrecibelanotificacióndequeelcanalseharestablecido,solicita al Strategy la ejecución del algoritmo de conexión,elcualpermiterecuperar la informacióndelaúltimaposicióndelvideodelalmacenamientotemporalysolicitaal servidordevideostreamingeldesplieguedelvideodesdeestaposición. Enresumen,el aplicativodesarrolladopermiteelcontrolinteroperabledeunainterrupción;elusode agentesinteligentescomoserviciosWebapoyanenlaprediccióndeunainterrupción, pudiéndosealmacenarlaúltimaposicióndelvideo,conloqueselogralacontinuidad delvideostreaming. 4.1.2. Diseñoarquitectónicoydedespliegue Eneldiseñosedefinelaarquitecturadelapropuestaquesoportelosrequisitosydirija aimplantarelmodeloWebinteroperablebasadoenpatronessoftware.Eldiagramade clasesdelsistemaseexponeenlaFigura4.4. Acontinuaciónseexplicalarelaciónentreelmodelodepatronessoftwareylas clasesquehansidodefinidaseneldiagramadeclases: ModeloypatrónObserver: las clases que permiten el almacenamiento temporalyelobservadorqueanalizaconstantementeelestadodelbuffer son:ServerStreaming,BufferyDataListener. Vista y patrón Composite: las clases que son ejecutadas para lograr el desplieguedelvideo streaming en el dispositivocliente son: VideoPlayer, URLStreamingyVideoView.