Aplicación de patrones MVC y PAC en aplicaciones móviles Introducción La construcción de sistemas software interactivos con múltiples tipos de interfaces de usuario es cara y sujeta a errores, cuando la interfaz de usuario está íntimamente entr entrel elaz azad ada a con con el núcl núcleo eo func funcio iona nal.l. En este este caso caso,, una una apli aplica caci ción ón sepa separa rada da es hech hecha a cada cada tipo tipo de inte interf rfaz az de usua usuari rio o y el códi código go espe especí cífifico co de la inte interf rfaz az se dupl duplic ica a en cada cada apli aplica caci ción ón.. Esto resulta en esfuerzos duplicados en la implementación, que de acuerdo a [1] generalmente resulta en estilo "copiar y pegar". Por supuesto, la mayor complejidad de impl implem emen enta taci ción ón se tran transf sfie iere re a la crec crecie ient nte e comp comple lejijida dad d de las las prue prueba bass y el mant manten enim imie ient nto, o, y también es sabido que la actualización de las copias es inevitablemente imperfecta. "Len "Lenta tame ment nte, e, pero pero segu segura rame ment nte, e, apli aplica caci cion ones es que que prop propor orci cion onan an el mism mismo o núcl núcleo eo func funcio iona nall se está desarrollando en varios sistemas" [1]. El resultado es la expansión de futuros cambios en muchos módulos. Sin Sin emba embarg rgo, o, los los prob proble lema mass menc mencio iona nado doss ante anteri rior orme ment nte e pued pueden en evit evitar arse se.. sepa separa rand ndo o las las tare tareas as de la inte interf rfaz az de usua usuari rio o de las las del núcl núcle eo fun funcion ciona al. Al reso resolv lver er este este prob probllema ema, dos dos patr patron ones es de soft softwa ware re pued pueden en ser ser util utiliz izad ados os y está están n rela relaci cion onad ados os con con la form forma a de cons constr trui uirr el Interfaz de usuario de la aplicaciones. Estos son el patrón Modelos-Vista-Controlador (MVC (MVC)) y Pres Presen enta taci ción ón-A -Abs bstr trac acci ción ón-C -Con ontr trol ol (PAC (PAC). ). La sigu siguie ient nte e secc secció ión n de este este docu docume ment nto o defi defini nirá rá el prob proble lema ma.. de elec elecci ción ón entr entre e el patr patrón ón de soft softwa ware re MVC MVC y PAC PAC cuan cuando do dise diseña ñamo moss aplicaciones móviles. La tercera y cuarta sección mostrarán información de la literatur tura sobre estos patrones de software. La quinta sección establecerá la conexión. entre las condiciones que enfrenta la aplicación móvil y la selección de un patrón de software particular para la arquitectura de la interfaz de usuario. Al definir el conjunto de requisitos antes de las aplicaciones aplicaciones móviles, empezamos desde una visi visión ón de comp comput utac ació ión n gene genera raliliza zada da que que le perm permitite e a los los usua usuari rios os acce accede derr a las las apli aplica caci cion ones es y dato datoss rele releva vant ntes es desd desde e cual cualqu quie ierr disp dispos osititiv ivo, o, de una una form forma a que que es adap adapta tada da al usua usuari rio oya la tare tarea a que actu ctualme lmente nte rea realiza liza.. Las Las carac aracte terrísti ísticcas fun fundam damenta ntales les de las las aplic plicac acio ion nes generalizadas (pervasive) son la movilidad y el conocimiento del contexto. Una consecuencia de la movilidad es que las aplicaciones deben funcionar en varios tipos de disp dispos osititiv ivos os,, incl incluy uyen endo do disp dispos osititiv ivos os inst instal alad ados os en dife difere rent ntes es ento entorn rnos os y disp dispos osititiv ivos os que que los los usuarios llevan con ellos [3]. La necesidad de tener en cuenta el contexto surge desde el requ requer erim imie ient nto o de util utiliz izar ar la apli aplica caci ción ón en cont contex exto toss que que son son dife difere rent ntes es en comp compar arac ació ión n con con la estación de trabajo informática con teclado, mouse y pantalla. Los usuarios de apli aplica caci cion ones es de comp comput utac ació ión n gene genera raliliza zada da está están n típi típica came ment nte e enfo enfoca cado doss en otra otra tare tarea, a, y no en el uso del dispositivo de computación móvil, e incluso puede que no sepan que usan un disp dispos osititiv ivo o info inform rmát átic ico. o. Las Las apli aplica caci cion ones es debe deben n adap adapta tars rse e para para inte intera ract ctua uarr con con el usua usuari rio o de una man manera era que que sea sea aprop propia iad da para ara el con contex texto del usua usuari rio o actua ctuall y las las acti ctivida vidad des, deb deben saca sacarr vent ventaj aja a del del equi equipo po disp dispon onib ible le loca localm lmen ente te,, sin sin mole molest star ar al usua usuari rio o en la real realiz izac ació ión n de su tarea actual [4].
Consid nside eremo remoss un eje ejemplo mplo de una aplica licaci ción ón de calen alend dario rio gene enerali raliza zad do (per (perva vasi sive ve)) que que debe debe tene tenerr las las sigu siguie ient ntes es prop propie ieda dade des. s. Prim Primer ero o la apli aplica caci ción ón podr podrá á ejec ejecut utar arse se en múlt múltip iple less plataformas, desde un teléfono en red (con interfaz de usuario limitada, pero aún así cone onecta ctado) do) hasta asta el asis asiste ten nte digit igita al pers person ona al, PDA con con una una inte interf rfa az de usu usuario ario más rica rica y más gra grande y un anc ancho de banda nda mayor ayor,, pero pero no sie siempre mpre vincu incula lad do, al orden rdena ador dor inte interrior ior (con una interfaz de usuario rica y un un gran ancho de banda y que siempre está conectado). Además, el usuario podrá interactuar con la aplicación usando múltiples modalidades de interfaz, como la interfaz gráfica de usuario. (GUI), interfaz faz de voz o una combinación de estos dos. Segundo, La aplicación será sensible al entorno en el que se encu encuen entr tre. e. por por ejem ejempl plo, o, en casa casa,, la apli aplica caci ción ón mues muestr tra a el cale calend ndar ario io fami famililiar ar por por defe defect cto. o. si la aplicación se utiliza en la oficina y si el usuario es retrasado para la próxima reunión, la aplicación puede mostra trar el calendario de negocios con información sobre su próxima reunión, incluso haciendo énfasis en esta información. Las capacidades de la interfaz de usuario incluyen capacidades de salida (por ejemplo, tama tamaño ño y colo color) r);; capa capaci cida dade dess de entr entrad ada, a, tale taless como como el núme número ro de boto botone nes, s, scro scrollller erss y otro otross contr ontro oles, les, así como como acce ccesori sorio os soft softw ware are dispo ispon nibl ibles para para man manipu ipular lar las capa capaci cid dade ades de entrada y salida. Es necesario reescribir el componente de vista para cada dispositivo debi debido do a las las dife difere renc ncia iass en esta estass capa capaci cida dade dess de un disp dispos osititiv ivo o a otro otro.. En algu alguno noss caso casos, s, la estructura de Vistas también influirá en la estructura del Controlador.
Patrón de Software CONTROLADOR” - MVC
"MODELO-VISTA-
De acuerdo con el patrón de software MVC, la aplicación debe tener al menos tres componentes. El componente del modelo Incluye el núcleo de datos de la aplicación y la funcionalidad del dominio lógico. La Vista obtiene datos del Modelo y se los muestra al usua usuari rio. o. El cont contro rola lado dorr reci recibe be y inte interp rpre reta ta la entr entrad ada a dent dentro ro de los los requ requis isititos os para para el Mode Modelo lo o la Vista. Uno de los primeros usos del patrón de software MVC en aplicaciones de software orie orient ntad ado o a obje objeto tos, s, se dío dío en el leng lengua uaje je de prog progra rama maci ción ón Smal SmallT lTal alk. k. La desc descri ripc pció ión n de las las tare tareas as de los los comp compon onen ente tess espe especí cífifico coss en esta esta impl implem emen enta taci ción ón y la form forma a de coor coordi dina naci ción ón mutua se da en [2]. El modelo representa los datos del dominio del problema para la que la aplicación está destinada y las reglas de negocio que rigen el acceso y actualización de los datos. Dado que el modelo debe ser independiente, no puede tener una referencia ni a la Vista ni a cualquier parte del Controlador de la aplicación. El comp compon onen ente te Vist Vista a es resp respon onsa sabl ble e de pres presen enta tarr Info Inform rmac ació ión n al usua usuari rio. o. Dife Difere rent ntes es vist vistas as representan información del modelo de diferentes maneras. Cada Vista define el procedimiento de actualización de la visualización de la información al usuario, que se acti activa va por por el meca mecani nism smo o de prop propag agac ació ión n del del camb cambio io.. Cuan Cuando do tal tal proc proced edim imie ient nto o es invo invoca cado do,, la vista busca el valor actual de los datos que mostrará desde el Modelo y los pone en la pantalla. Durante la inicialización, todas las vistas se unen/suscriben al modelo y son regi regist stra rada dass por por el meca mecani nism smo o de prop propag agac ació ión n del del camb cambio io.. Cada Cada Vist Vista a crea crea un Cont Contro rola lado dor r apropiado y un Controlador coincide una Vista. Las vistas a menudo proporcionan una func funcio ion nalid alida ad que perm ermite a los Contr ntrola oladore doress manip anipu ular lar la pan pantal talla. la. Es uti utiliza lizabl ble e para ara las
operaciones iniciadas por el usuario que no afecten al Modelo, como el desplazamiento (scrolling), por ejemplo. La con consist sisten enccia de las las Vista istass con con el Modelo delo se propo roporc rcio ion na de una una for forma que que las las clase lasess del Modelo delo defi efinen el mecani canism smo o de notifi tificcació ación n del camb cambiio, usu usualme almen nte util tiliza izando el patr patró ón Obs Observe erverr que se apl aplica. ica. muy bie bien en Smal Smallt lta alk. lk. Esto Esto le permi rmite a la vista ista y al contr ontro olado ador ser ser info nforma rmados dos sobr sobre e los los cambio mbioss en el Mod Modelo. lo. Ya que esto estoss comp compo onen nentes tes se regi regist stra ran n con con el Modelo y el Modelo no tiene conocimiento de ninguna Vista particular o Controlador, no viola la independencia del Modelo. El mecanismo de notificación es el que permite la inme inmedi diat ata. a. actu actual aliz izac ació ión, n, que que es cara caract cter erís ístitica ca de la apli aplica caci ción ón MVC MVC en la inte interf rfaz az gráf gráfic ica a de usua suario rio. La Vist Vista a obti obtien ene e dato atos del Mod Modelo elo y los muestr estra a al usua suario rio. La vist vista a rep represe resent nta a la salida de la aplicación y refleja el contenido del modelo. La vista accede a los datos de la aplica licaci ción ón a tra través vés del del Mode odelo y espe especcific ifica a la manera nera en el que que deb deben mostr ostra arse rse los los datos tos. La responsabilidad del Modelo es mantener la consistencia de la presentación con los camb cambio ioss del del Mode Modelo lo.. El cont contro rola lado dorr tran transf sfie iere re inte intera racc ccio ione ness con con el usua usuari rio o en las las acci accion ones es a realizar por el Modelo. En el Cliente GUI independiente, las interacciones del usuario pueden ser un clic de un botón o una opción de menú, mientras que en la aplicación Web aparecen como peticiones GET y POST. Acciones realizadas por el Modelo incluyen la activación de procesos de negocio o cambios. del estado del modelo. El Controlador resp respon onde de elig eligie iend ndo o la Vist Vista a apro apropi piad ada a basa basada da en las las inte intera racc ccio ione ness del del usua usuari rio o y sali salida dass de la acciones realizadas por el Modelo. La Vist Vista a gene genera ralm lmen ente te tien tiene e acce acceso so libr libre e al Mode Modelo lo,, pero pero debe debe pued puede e camb cambia iarr el esta estado do del del Modelo delo.. La Vist Vista a lee los dato atos del del Mod Modelo util tiliza izando un métod todo de con consult sulta a cuya cuya ejecu jecuci ció ón es proporcionada por el Modelo. El componente Controlador acepta la entrada del usuario como eventos. La forma de entreg trega a de even ventos tos hacia cia el Contr ontro olad lador depen pende de la plata latafo form rma a de inte interf rfaz az de usua usuari rio o. Por Por simp simplilici cida dad, d, perm permíta ítame me asum asumir ir que que cada cada cont contro rola lado dorr impl implem emen enta ta un proc proced edim imie ient nto o para para mane manejo jo de even evento toss que que se llam llaman an para para cual cualqu quie ierr even evento to rele releva vant nte. e. Los Los even evento toss se trad traduc ucen en en peti eticion cione es en el Model delo o en las Vist Vista as asoc asocia iad das. as. Si el com comporta ortam mien iento del con contro trolad lador depende del estado del Modelo, el controlador se registrará con el mecanismo de prop ropaga agación ción de camb ambios ios e impl imple emen mentar tará el proce roced dimie imien nto de actu ctualiz alizac ació ión n. Por ejem jemplo plo, esto sto es necesa cesari rio o cuan cuand do el camb ambio al Mode odelo permi ermite te o imp impide ide un eleme lemen nto en el men menú. El diagrama de clases de la Figura 1 y el diagrama de secuencia de la Figura 2 muestran la apli aplica caci ción ón de los los patr patron ones es arqu arquititec ectó tóni nico coss MVC MVC en una una Apli Aplica caci ción ón impl implem emen enta tada da en Java Java 2 Mobile Editio tion. La aplicación consta de un MIDlet representado por el controlador [5], la clase lase Vista ista y la clase lase Model delo. Sobre bre el ini inicio cio de la aplic plicac ació ión n, el cont contro rollado ador crea crea ins instan tancias cias de Modelos y Vistas. Las Vistas luego se registran con el Modelo. La clase Controlador acep acepta ta coma comand ndos os de usua usuari rio o y llam llama a a las las oper operac acio ione ness para para actu actual aliz izar ar dato datos. s. en el Mode Modelo lo.. Luego ego, usand sando o el patró trón Obse Observ rve er, el Mod Modelo llama lama.. el méto método do update date() () de tod todas las las Vista istass registradas para reflejar en las Vistas todos los cambios que se hicieron en el Modelo.
En el patrón MVC, el controlador no es un intermediario entre vistas y modelos, y no se sitúa entre Modelos y vistas. La separación de las tareas de los Modelos. y las Vistas se pueden lograr usando el patrón Observer, no a través del Controlador Controlador [6]. La separación de los aspectos de control de las vistas, permite la combinación de varios controladores diferentes con una sola vista. Esta flexibilidad puede ser utilizada para implem implement entar ar difere diferente ntess modos modos de operac operación ión.. como, como, por por ejempl ejemplo, o, "usuar "usuario io princi principi piant ante" e" frente frente a "usuar suario io expert perto o", o para ara dise diseñ ñar una una vist vista a de solo solo lectu ctura uti utiliza lizan ndo un Contr ontro olado ador que ignora cualquier entrada.
Beneficios de MVC La aplicación de patrones MVC permite múltiples vistas sobre un modelo único. MVC separa estrictamente el Modelo de los componentes de interfaz de usuario y por lo tanto múltip ltiplles Vista istass puede eden ser ser Imp Impleme ementa ntadas y usar sar un único nico Mode odelo. lo. Durant rante e la eje ejecuci cución ón,, se pueden abrir varias vistas al mismo tiempo, y las vistas también se puede abrir y cerrar diná inámica micam mente ente.. Segun gundo, do, MVC Permit rmite e la sin sincro croniza ización ión de la Vist Vista a. Los mecan canism ismo de propagación del cambio en el Modelo disponen que todas las vistas registradas con el objeto "observador" son notificadas sobre los cambios de datos de la aplicación, exact xacta amente ente a tiem tiemp po Esto sto permi ermite te la sinc sincro roni niza zaci ció ón de tod todos las las Vist Vista as y Contr ontro olad ladores ores depe depend ndie ient ntes es.. MVC MVC tamb tambié ién n perm permitite e la crea creaci ción ón de Vist Vistas as y Cont Contro rola lado dore ress "con "conec ecta tabl bles es". ". La separación conceptual de MVC permite encontrar un reemplazo para un objeto Vista y Cont Contro rola lado dor. r. Los Los obje objeto toss de Inte Interf rfaz az de Usua Usuari rio o pued pueden en incl inclus uso o ser ser reem reempl plaz azad ados os dura durant nte e el tiem tiempo po de ejec ejecuc ució ión. n. El cuar cuarto to bene benefifici cio o se rela relaci cion ona a con con la posi posibi bililida dad d del del camb cambio io del del "loo "lookk and and feel feel"" de las las cara caract cter erís ístitica cass de la inte interf rfaz az de usua usuari rio. o. Ya que que el mode modelo lo es inde indepe pend ndie ient nte e del código de la inter terfaz de usuario, la transferencia de la La aplicación MVC a una nueva plataforma no afecta el núcleo funcional de la aplicación. Sólo se requieren implementaciones implementaciones apropiadas. de las vistas y controladores. controladores.
Desventajas del patrón MVC El monitoreo estricto de la estructura MVC no siempre es la mejor manera para construir una una apli aplica caci ción ón inte intera ract ctiv iva a debi debido do a que que el uso uso sepa separa rado do de Mode Modelo los, s, Vist Vistas as y Cont Contro rola lado dore ress para los menús. y los elementos de texto simples aumentan la complejidad sin obtener mucha cha fle flexib xibilid ilidad ad El uso de este este patró atrón n tamb tambié ién n crea crea el pote otencia cial de un número mero exces xcesiv ivo o de actua tualiza lizaci cio ones. nes. Si las las acci accion one es de un usua usuari rio o res resulta ultan n en much mucha as actu actua aliza lizaci cio ones, nes, el Mode Modelo lo debe debe omit omitir ir el Noti Notififica caci ción ón inne innece cesa sari ria a de camb cambio ios. s. El caso caso pued puede e ser ser que que toda todass las las vistas no están interesadas en la propagación de todos los cambios en el Modelo. Por ejemplo, la vista con la ventana y los iconos. puede no necesitar ser actualizada siempre que su ven ventan tana no sea sea rest restit itu uida ida a su tam tamaño año norm norma al. La falt falta a de cerca ercaní nía a entr entre e vist vista as. y los cont contro rola lado dore ress es tamb tambié ién n una una desv desven enta taja ja porq porque ue prev previe iene ne su uso uso espe especí cífifico co No es prob probab able le que la vista se use sin su controlador, o viceversa, con la excepción de Vistas de "solo lect lectur ura" a" que que comp compar arte ten n un cont contro rola lado dorr comú común n que que igno ignora ra toda todass las las entr entrad adas as en el even evento to de operac eració ión n con con Vist Vista as de "so "solo lectu ectura ra"". Ade Además, más, hay una estr estre echa cha con conexió exión n entr entre e la vista ista y el cont contrrolad olado or con el mode odelo. lo. Tan Tanto la vist vista a com como el con contro trolad lador hac hacen llam lamada adas dire irecta ctas al modelo delo.. Esto Esto impl implic ica a que los los cam cambio bios en la inte nterfa rfaz del mod modelo elo proba robab bleme lemen nte romp rompa an el códig ódigo o de la vista ista y el con contro trolad lador. or. Este ste prob probllema ema se incr incre ementa enta si el sist sistem ema a uti utiliza liza un gran ran
número de vistas y controladores. La inevitabilidad de los cambios. en los componentes tes Vista ista y Contro ntrollado ador tamb tambiién aparec arece e como como Venta ntaja, ja, en su tra trasla slado a otra tra plata latafo form rma a. Toda Toda dependencia de la plataforma de interfaz de usuario está encapsulada. dentro de los comp compon onen ente tess Vist Vista a y Cont Contro rollller er.. Sin Sin emba embarg rgo, o, ambo amboss comp compon onen ente tess tamb tambié ién n cont contie iene nen n el códi código go que que es inde indepe pend ndie ient nte e de plat plataf afor orma mass espe especí cífifica cas. s. La tran transf sfer eren enci cia a del del sist sistem ema a MVC MVC requ requie iere re la sepa separa raci ción ón de códi código go depe depend ndie ient nte e de la plat plataf afor orma ma ante antess de volv volver er a rees reescr crib ibir ir,, para encapsular dependencias de la plataforma.
Patrón de Software "Presentación - Abstracción Control" - PAC El patrón de diseño PAC se basa en el concepto de agentes que cooperan, los cuales se orga organi niza zan n en una una estr estruc uctu tura ra jerá jerárq rqui uica ca.. Cada Cada agen agente te es un aspe aspect cto o unit unitar ario io del del sist sistem ema, a, que que funciona como un nodo. en la jerarquía de agentes y consiste de los componentes de presentación, abstracción y control. Según este patrón, los sistemas interactivos se componen de agentes cooperativos. Un tipo de agente especializado en la inter teracción hombre-computadora acepta la entra trada del usuario y muestra los datos. Otros agentes mant mantie iene nen n el mode modelo lo de dato datoss del del sist sistem ema a y prop propor orci cion onan an la func funcio iona nalilida dad d basa basada da en dich dichos os datos. Agentes adicionales son responsables de diferentes tareas como la gestión de errores o la comunicación con otros sistemas de software. Este patrón de diseño ha surgido bajo la influencia de la siguientes circunstancias [2]: ● Los agentes a menudo tienen la necesidad de mantener su propio estado. y datos. Para garantizar la ejecución de todo la tarea de la aplicación, los agentes deben cooperar efectivamente, lo cual requiere un intercambio de datos, mensajes y eventos. ● Los agentes interactivos proporcionan su propia interfaz de usuario, ya que su interacción humano-computadora a menudo difiere mucho. ● Los sistemas se desarrollan contra el tiempo. Su aspecto de presentación es part partic icul ular arme ment nte e suje sujeta ta a camb cambio ios. s. Adem Además ás,, los los camb cambio ioss a agen agente tess indi indivi vidu dual ales es o la expansión del sistema con nuevos agentes, no debe afectar a todo el sistema. La soluc olució ión n está stá en la estru strucctura turaci ció ón de aplic plicac acio ion nes inte nteract ractiivas. vas. en la form forma a de un árbol rbol cuyos uyos nodos dos son son agente entess PAC PAC. Debe exis existi tirr un agen gente supe superi rio or, algu lgunos nos age agente ntes de nive ivel medio y algunos más agentes en la parte inferior de la jerarquía. Cada agente es responsable de cierto aspecto de la funcionalidad de la aplicación y consta de tres comp compon onen ente tes: s: pres presen enta taci ción ón,, abst abstra racc cció ión n y cont contro rol.l. La jera jerarq rquí uía a ente entera ra refl reflej eja a depe depend nden enci cias as transitivas entre agentes. Cada agente depende de los agentes de nivel superior en la jerarquía, hasta hasta el agente superior. superior. El comp compon onen ente te de pres presen enta taci ción ón prop propor orci cion ona a un Comp Compor orta tami mien ento to visi visibl ble e del del agen agente te PAC. PAC. El comp ompone onente nte de abstr bstra acci cción manti ntiene el mod modelo elo de dato datoss que está por debaj bajo del del agente ente y prop propor orci cion ona a la func funcio iona nalilida dad d que que trab trabaj aja a con con dich dichos os dato datos. s. El comp compon onen ente te de Cont Contro roll enla enlaza za los comp compo onente entess de Pres resenta ntación ción y Abstr bstra acci cción. y prop roporci orcion ona a una fun funciona ionallida idad que le permite al agente comunicarse con otros agentes PAC [7]. El agente superior PAC proporciona el núcleo funcional de la sistema. La mayoría de los otros agentes de PAC dependen u operan con tal núcleo. Los agentes PAC de nivel más bajo son conceptos semánticos con los cuales los usuarios del sistema pueden operar.
Además, ellos soportan todas las operaciones operaciones que los usuarios pueden realizar con tales conc concep epto tos. s. Los Los agen agente tess PAC PAC de nive nivell medi medio o son son comb combin inac acio ione ness o cone conexi xion ones es entr entre e agen agente tess de nive nivell infe inferi rior or.. Por Por ejem ejempl plo, o, el agen agente te de nive nivell medi medio o pued puede e mant manten ener er vari varias as vist vistas as con con los los mismo datos.
Estructura La prin princi cipa pall resp respon onsa sabi bililida dad d del del agen agente te PAC PAC de nive nivell supe superi rior or es prop propor orci cion onar ar un mode modelo lo de datos tos globa loball para ara el soft softw ware. are. Esta sta tare tarea a es rea realiza lizada da por el comp compo onente ente de abs abstrac tracci ción ón en el agen agente te supe superi rior or.. La inte interf rfaz az del del comp compon onen ente te de abst abstra racc cció ión n prop propor orci cion ona a func funcio ione ness para para mani manipu pula laci ción ón con con el mode modelo lo de dato datoss y para para búsq búsque ueda da de info inform rmac ació ión. n. La repr repres esen enta taci ción ón de dato datoss dent dentro ro del del comp compon onen ente te Abst Abstra racc cció ión n debe debe ser ser inde indepe pend ndie ient nte e del del medi medio o que que sopo soport rta a la adaptación del agente PAC para diferentes entornos sin cambios mayores en su componente de abstracción. El componente de presentación de un agente de alto nivel a menudo tiene varias responsabilidades Puede incluir elementos de la interfaz de usuario que son comunes a toda la aplicación. En algunos sistemas, la el componente de presentación no existe. El componente de control del agente superior de PAC tiene tres responsabilidades: ● Permite a los agentes tes de nivel infer ferior utilizar los servicios del Agente de alto nivel, prin princi cipa palm lmen ente te para para el acce acceso so y mani manipu pula laci ción ón del del mode modelo lo de dato datoss glob global al.. Requ Requis isititos os de servicio de entrada de los agentes de nivel inferior son pasados a cualquier componente de Abstracción o Presentación. ● Coordina la jerarquía de agentes PAC. Mantiene Información sobre las relaciones entr entre e los age agente ntes sup superio eriore ress y age agente ntes de nivel ivel infe nferio rior. El com compon ponente ente de con control trol util utiliz iza a esta esta info inform rmac ació ión n para para prop propor orci cion onar ar la coop cooper erac ació ión n corr correc ecta ta e inte interc rcam ambi bio o de datos entre los agentes de alto nivel y los agentes de nivel inferior. ● Mantie tiene información sobre la interacción del usuario con el sistema. Por ejemplo, pued puede e comp compro roba barr si una una oper operac ació ión n dete determ rmin inad ada a se pued puede e real realiz izar ar con con el mode modelo lo de dato datoss cuand ando es ini iniciad ciado o por el usua suario rio. Tam También ién pue puede real ealiza izar un segu eguimie imien nto de las funciones. que se llaman para provisionar historia y el servicio de deshacer/rehacer para operaciones con el núcleo funcional. Los agentes PAC de bajo nivel son conceptos tos semánticos específicos del dominio de la apli aplica caci ción ón,, que que pued puede e ser ser tan tan bajo bajoss como como un simp simple le obje objeto to gráf gráfic ico, o, por por ejem ejempl plo o un círc círcul ulo, o, o tan complejo como un gráfico de barras que dan una vista de resumen de todos los datos en el sistema. El componente de presentación del agente PAC más bajo es una Vista especial del conce oncep pto semá emánti ntico corr corre espo spondi ndiente ente y pro proporci rciona ona acce cceso a tod todas las fun funcion cione es que que los usua usuari rios os pued pueden en apli aplica car. r. Inte Intern rnam amen ente te,, el comp compon onen ente te de pres presen enta taci ción ón tamb tambié ién n mant mantie iene ne información sobre la vista, como la posición en la pantalla. El com compone onente nte de Abstr bstrac acci ción ón del del agente ente PAC nivel vel más más bajo tien tiene e una resp respo onsa nsabili bilida dad d similar a la del componente de Abstracción en el agente PAC de más alto nivel, mante nteniend iendo o info inform rma ación ión que es espe specífi cíficca para el agen gente. te. Contr ontra ariam riame ente al agente nte de Abstracción de de nivel superior, superior, otros agentes agentes PAC no dependen dependen de dichos dichos datos. El componente de Control del agente PAC de bajo nivel mantiene la consistencia entre la Abstracción y la Presentación, Presentación, evitando así una dependencia dependencia directa entre ellos. Sirve como el adaptador y ejecuta la adaptación tanto de la interfaz. y los datos. Este componente de
los agentes PAC de nivel más bajo se comunica con agentes de nivel superior para inte interc rcam ambi biar ar.. even evento toss y dato datos. s. Even Evento toss entr entran ante tes, s, como como las las soli solici citu tud d de "cer "cerra rarr vent ventan ana" a" - se envían al componente de presentación del agente de nivel bajo, mientras que los datos entr entran ante tess se enví envían an a su comp compon onen ente te de abst abstra racc cció ión. n. Los Los even evento toss sali salien ente tess e info inform rmac ació ión n de error. se envían a un agente asociado de nivel superior [8]. Los Los agen agente tess PAC PAC de nive nivell supe superi rior or no se limi limita tan n sólo sólo a prop propor orci cion onar ar conc concep epto toss semá semánt ntic icos os del del domi domini nio o de la apli aplica caci ción ón.. Los Los agen agente tess tamb tambié ién n se pued pueden en espe especi cififica carr para para impl implem emen enta tar r servicios del sistema por ejemplo, el agente de nivel superior puede ser el agente de comu comuni nica caci ción ón lo cual cual le perm permitite e al sist sistem ema a coop cooper erar ar con con otra otrass apli aplica caci cion ones es.. y supe superv rvis isar ar la cooperación. Los Los agen agente tess PAC PAC de nive nivell medi medio o pued pueden en cump cumplilirr dos dos func funcio ione ness dife difere rent ntes es:: La comp compos osic ició ión ny coordinación. Cuando, por ejemplo, cada objeto en una aplicación gráfica compleja es presentado por un agente PAC separado, los grupos de agentes de nivel medio agrupan tale taless obje objeto toss para para form formar ar un obje objeto to gráf gráfic ico o comp compue uest sto. o. Otro Otro pape papell del del agen agente te de nive nivell medi medio o es mant manten ener er la cohe cohere renc ncia ia entr entre e los los agen agente tess de nive nivell infe inferi rior or,, por por ejem ejempl plo, o, al llev llevar ar a cabo cabo la coordinación de múltiples vistas sobre los mismos datos. Las interfaces de los agentes PAC se diseñan util tilizando el patrón "Componer mensaje”. Todas las solicitudes del servicio de entrada, eventos y datos son procesados por una función llamada receiveMsg(). La cual interpreta los mensajes y los encamina a su destin stina atar tario, io, el cua cual pued uede ser ser un agen gente de abstra stracc cció ión n o com compon ponente ente de pres presen enta taci ció ón u otro agente. Del mismo modo, la función sendMsg () se utiliza para el empaquetado y entre trega de eventos tos, datos tos y solicitudes de servicios a otros agentes El patrón de diseño PAC se puede utilizar en el diseño de Aplicaciones móviles sensibles al contexto en el domini minio o de PIM (Ge (Gesti stión de Info Inform rmac ació ión n Perso erson nal), al), que ademá emás de la entra trada de usuar suario io que que vien viene e a trav través és del del tecl teclad ado o del del telé teléfo fono no,, es nece necesa sari rio o acep acepta tarr llam llamad ada a entr entran ante tess como como un even evento to de entr entrad ada. a. A trav través és del del cont contro rola lado dor, r, cada cada even evento to de entr entrad ada a prov provoc oca a la real realiz izac ació ión n de las acciones en el modelo y la consiguiente actualización de la Vista. La plataforma J2ME 2ME no ofre frece APIs PIs para para contr ontro olar lar la comu omunica icació ción por voz voz y si querem remos acced ccede er a esta estass funciones del teléfon fono en términos de programación, es necesario utilizar aplicaciones nativa tivas. s. Por Por lo tan tanto, to, es neces ecesa ario rio log lograr rar la comu omunica nicaci ción ón entr ntre el códi ódigo de Java ava 2. ME y el código de programación nativo.
En el sist siste ema operati rativo vo Sym Symbian ian para telé teléfo fono noss móvil óviles es podem demos usar sar los los soc sockets kets como meca mecani nism smo o de comu comuni nica caci ción ón.. Usan Usando do el Patr Patrón ón de dise diseño ño PAC, PAC, se util utiliz izar ará á este este meca mecani nism smo o de comunicación para la comunicación entre agentes, a saber, sus componentes de
Contr ntrol. ol. La inte interrfaz faz de apli aplica caci ció ón de usua suario rio es un age agente nte de nivel vel Supe uperio rior cuya uya fun función ción es coor coordi dina narr agen agente tess subo subord rdin inad ados os y el acce acceso so al mode modelo lo de dato datoss comú común n y el comp compor orta tami mien ento to del del sist sistem ema. a. Uno Uno de los los agen agente tess subo subord rdin inad ados os acep acepta ta entr entrad ada a de usua usuari rio o desd desde e el tecl teclad ado oy otro otro agen agente te acep acepta ta llam llamad adas as entr entran ante tes. s. Cada Cada uno uno de los los agen agente tess subo subord rdin inad ados os part partic icip ipan an en la actualización de las vistas. Dada la estructura del agente PAC, los controladores de comu omunica nicaci ció ón pue pueden actu actua ar como como clie clien ntes tes y com como serv servid ido ores. res. por lo tan tanto el contr ontro olad lador debe ten tener dos hilos, los, uno para para acep ceptar tar Comu omunica nicaci cio ones nes de otro tros contro ntrollado adores res y una para iniciar. Comunicación con otros controladores. El diagrama de clase en La figura 3 y el diagrama de secuencia de la figura 4 muestran la solución propuesta.
Beneficios El prim prime er benefi eficio cio es la sepa eparaci ración ón de tare tareas as.. Los dife iferent rente es conc concep epto toss semá emánti nticos cos en el domi domini nio o de apli aplica caci ción ón son son pres presen enta tado doss por por agen agente tess sepa separa rado dos. s. Cada Cada agen agente te mant mantie iene ne su prop propio io esta estado do y dato datos, s, coor coordi dina nado do con, con, pero pero inde indepe pend ndie ient ntem emen ente te de los los otro otross agen agente tess PAC. PAC. Los Los agen agente tess indi indivi vidu dual ales es PAC PAC tamb tambié ién n ofre ofrece cen n su prop propia ia inte intera racc cció ión n huma humano no-c -com ompu puta tado dora ra Esto Esto perm permitite e el desa desarr rrol ollo lo de mode modelo loss de dato datoss dedi dedica cado doss para para conc concep epto to semá semánt ntic ico o o tare tarea a dentro de la aplicación independientemente de otros conceptos semánticos o tareas. Segu Segund ndo, o, el patr patrón ón PAC PAC prop propor orci cion ona a sopo soport rte e para para el camb cambio io y la expa expans nsió ión. n. Los Los camb cambio ioss en los los comp compon onen ente tess de Pres Presen enta taci ción ón o Abst Abstra racc cció ión n del del agen agente te PAC PAC no afec afecta tan n a otro otross agen agente tess en el siste istem ma. Esto Esto permit rmite e modif odifiicaci cacio ones nes del del mod modelo elo de dato datoss en la base del del age agente nte PAC PAC o la mod modifi ificaci cació ón de su inte interf rfaz az de usua suario rio, por ejemp emplo, lo, desd desde e el She Shell de Coman mandos dos en los los menú menúss y diál diálog ogos os.. Adem Además ás,, nuev nuevos os agen agente tess se inte integr gran an fáci fácilm lmen ente te en la arqu arquititec ectu tura ra PAC PAC exist xiste ente nte sin sin gran grand des cambio mbioss de los los agente entess PAC exist xiste ente ntes. Todo odos los agente entess PAC se comu comuni nica can n entr entre e ello elloss a trav través és de inte interf rfac aces es pred predef efin inid idas as.. Adem Además ás,, los los agen agente tess exis existe tent ntes es pued pueden en regi regist stra rarr diná dinámi mica came ment nte e el nuev nuevo o Agen Agente tess PAC PAC para para prop propor orci cion onar ar comu comuni nica caci ción ón y cooperación. Func Funcio iona nalilida dad d para para admi admini nist stra rarr el nuev nuevo o agen agente te PAC, PAC, como como un meca mecani nism smo o de coor coordi dina naci ción ón de vist vista as y cam cambio bios y prop ropagació ación n de evento entos. s. ya exist xiste en. El modo odo de coor coordi dina nacción ión de los agen agente tess en el patr patrón ón PAC PAC prop propor orci cion ona a una una buen buena a base base para para la mult multititar area ea.. Los Los agen agente tess PAC PAC puede eden ser fáci fácilm lme ente dist distri rib buid uidos a difere feren ntes tes hilos, los, proc proces esos os o máq máquin uinas. as. Exte xtensió nsión n de agen agente tess PAC PAC con con la func funcio iona nalilida dad d apro apropi piad ada a para para la coop cooper erac ació ión n entr entre e proc proces esos os solo solo afec afecta ta su componente de control.
Desventajas Las desventajas del patrón PAC se reflejan en la Mayor complejidad del sistema. La impl mpleme ementa ntación ción de cada cada con concept cepto o semán mántico tico en su prop ropio agente ente PAC pue puede resul esulta tarr en una estru struct ctu ura comp omplejo lejo del sis sistem tema. Si algú lgún obj objeto eto gráfi ráfico co,, como omo círc círcu ulo y rect rectá ángu ngulo, lo, se impl mpleme ementa nta como un age agente PAC separa parad do, el sist siste ema se aho ahogará gará en un mar mar de agente entes. s. Los agentes tam también deben ser coordinados. y controlados, lo que requiere de agentes coordinadores adicionales. El nivel de granulación de diseño debe ser considerado cuidadosamente y también el punto donde detenerse con la disolución de agentes en un número creciente de agentes de nivel más bajo. En el sist siste ema PAC PAC, los comp ompone onentes tes de contr ontro ol son son med mediad iadores ores de la com comunic unicac ació ión n. Entr Entre e los los comp compon onen ente tess de abst abstra racc cció ión n y pres presen enta taci ción ón del del agen agente te y entr entre e dife difere rent ntes es agen agente tess PAC. PAC.
La cali calida dad d de impl implem emen enta taci ción ón del del comp compon onen ente te de cont contro roll es por por lo tant tanto o crít crític ico o tant tanto o para para la coop cooper erac ació ión n efec efectitiva va entr entre e los los agen agente tess y la cali calida dad d de la arqu arquititec ectu tura ra del del sist sistem ema a ente entero ro.. Los Los rol roles indivi dividu dua ales les del comp ompone onente de cont contrrol deben ben ser estr stricta ictam mente ente sepa eparado radoss unos nos de otro tros. La impl imple emen mentac tación ión de esto stos role roles. s. no deb debe dep depend ender de los los deta detalllles es espec specíf ífiicos cos de otros agentes, tal tales como sus nombres específicos o ubicaciones físicas en el Sistema distr istrib ibu uido ido. La inte interf rfaz az del com compon ponente ente de contr ontro ol debe ebe ser inde ndepen pendient iente e de los los deta detalllles es internos con el fin de asegurar que los agentes asociados no dependan de las interfaces espe specífi cíficcas de sus sus comp ompone onentes tes de pres presen enta taci ción ón o abstra stracc cció ión n. La Respo espon nsab sabilid ilidad ad del del componente de control es realizar cualquier adaptación de interfaces. o los datos. Tare Tareas as adic adicio iona nale less rela relaci cion onad adas as con con la comu comuni nica caci ción ón entr entre e los los agen agente tess PAC PAC pued pueden en afec afecta tar r la eficiencia del sistema. Por ejemplo, si el agente más bajo lee los datos del agente superior, todos los agentes que están en el camino de la más baja a la más alta en la jerarquía del PAC se incluye en este intercambio de datos. Si los agentes están distribuidos, distribuidos, la tra transfe sferenc rencia ia de datos tos tam tambié bién req requiere iere coop coope eraci ración ón entre ntre proce roceso sos, s, que incl inclu uye una serie de acciones que cargan el sistema de comunicación.
Técnicas para cumplir demandas de la Movilidad
con
las
Nacientes
El prin princi cip pal prob roblem lema que surg surge e con con el creci recien ente te núm número ero de plata atafor formas mas y modal dalidad idade es de inte intera racc cció ión n es la nece necesi sida dad d de crea crearr más más comp compon onen ente tess de pres presen enta taci ción ón de apli aplica caci cion ones es.. Un enfoque para evitar un aumento en los componentes de presentación que deben ser desa desarr rrol olla lado doss por por los los prog progra rama mado dore ress es la tran transc scod odifific icac ació ión n de pres presen enta taci cion ones es.. [3]. [3]. La idea idea bási básica ca en la tran transc scod odifific icac ació ión n es la reut reutililiz izac ació ión n de la Vist Vista a para para otro otro disp dispos osititiv ivo o medi median ante te el uso de un Transcodificador automatizado que realiza su transformación durante la ejecución. La técnica de transcodificación se centra en la separación de la información desde sde la vist vista a para cre crear un form format ato o indir ndirec ecto to que pueda eda ser ser util tiliza izado para para la produ roducc cció ión n de otra otrass vist vistas as.. El proc proces eso o de crea creaci ción ón de este este form format ato o inte interi rino no se llam llama a tran transc scod odifific icac ació ión. n. Sin Sin embarg bargo o, tra transco scodifi ificaci cación ón no es ampl mpliame iamen nte adop doptad tado porque rque fun fundam damenta entalm lmen ente te no controla las estructuras más profundas y la semántica de la aplicación. La transformación es otra técnica para limitar el crecimiento de la vista. Consiste en desc descri ribi birr la inte intenc nció ión n detr detrás ás de la inte intera racc cció ión n del del usua usuari rio o dent dentro ro del del comp compon onen ente te de vist vista, a, en lugar de dar una representación física real de la gestión de la interfaz de usuario [3]. Por ejemplo, el hecho de que la aplicación requiera de los usuarios ingresar su edad es prese resen ntad tado por un eleme emento nto genéri nérico co de ENTR ENTRA ADA con un lím límite ite gen general eral en el inte nterval rvalo o de datos. Entonces, basados en las características del dispositivo final, usabilidad. consideraciones o preferencias del usuario, la máquina de adaptación. determina si el elem lemento ento ENTR ENTRA ADA debe ser imple mplem menta ntado como un camp campo o de tex texto, to, lista ista o incl inclus uso o como omo una entrada por voz. Algunas presentaciones independientes del dispositivo han sido desarrolladas a lo largo de los años, incluido el User Interface Markup Language (UIML), Abstract User Interface Markup Language (AUIML), XForms y los Controles Móviles de Micro icroso soft ft ASP.N SP.NE ET [9]. [9]. Sin impo import rta ar las las técn técnic icas as de adapta aptacción ión usad sadas, los siste istem mas que sopo soport rtan an vist vistas as inde indepe pend ndie ient ntes es del del disp dispos osititiv ivo o tamb tambié ién n prop propor orci cion onan an un núme número ro de ento entorn rnos os de desarrollo integrado para dispositivos de de escritura contenido independiente
Las Las dos dos técn técnic icas as menc mencio iona nada dass ante anteri rior orme ment nte e se pued pueden en util utiliz izar ar inde indepe pend ndie ient ntem emen ente te de si la aplicación está diseñada con el patrón MVC o PAC. Cbe señalar que el sistema de tra transcod scodif ifiicaci cación ón y tra transfo sformac rmació ión n solo solo resu resue elve lve el probl roble ema de public blicac ació ión n de múlti ltiple ples tipos de interfaces de usuario para el usuario. También ignora el hecho de que la entrada del usua usuari rio o puede ede prove roven nir de una vari varied eda ad de can canale ales hete hetero rog géneos eos com como HTTP HTTP,, WAP, AP, VoIP o GSM. La lim limita itació ción del aumen mento en el núm número ero de contr ontro olad ladores res se contr ontro ola de tal tal manera era que un cont contro rola lado dorr de comp compon onen ente tess en apli aplica caci cion ones es dise diseña ñada dass por por el patr patrón ón MVC MVC se impl implem emen enta ta como como un Cont Contro rola lado dorr de apli aplica caci cion ones es.. Cont Contie iene ne el fluj flujo o de cont contro rol,l, incl incluy uyen endo do vali valida daci ción ón de datos tos y gesti estió ón de erro rrores, res, gene eneralm ralme ente nte en el proc proce edimi dimie ento nto de man manejo de even evento tos. s. Hay varias razones por las que el controlador de la aplicación es requierido en casos de múltiples dispositivos de destino: ● Los Los dife difere rent ntes es disp dispos osititiv ivos os tien tienen en dife difere rent ntes es hard hardwa ware re de entr entrad ada, a, desd desde e El tecl teclad ado, o, dispositivo de indicación, el micrófono en el PC, a un par de boton tones y rollers para desplazarse por la reloj ● El flu flujo de aplic plicac ació ión n pued uede ser ser difere feren nte en dife diferrente entess dispo isposi siti tivvos Por Por ejemp jempllo, una aplica aplicació ción n que que contie contiene ne transa transacci ccion ones es segura segurass pueden pueden no comple completar tar una una transa transacci cción ón en el dispo isposi siti tivvo que no tie tiene nivel ivel corre rrespo spondi ndiente ente de infra nfrae estru struct ctu ura. ra. Del mismo ismo modo, una aplicación que soporta contenido rico puede optar por omitir los dispositivos. que no son capaces de presentar contenido rico ● Durante la restauración y apertura de la página que es Independientemente del dispositivo, la página se puede dividir en múltiples páginas dependientes del dispositivo que es demasiado pequeño para contener toda la página. Como Como resu resultltad ado, o, una una solu soluci ción ón comp comple leta ta para para múlt múltip iple less disp dispos osititiv ivos os dest destin inos os debe debe incl inclui uirr la intr introd oduc ucci ción ón de cont contro rola lado dore ress de apli aplica caci ción ón.. La gest gestió ión n de la apli aplica caci ción ón y el mant manten enim imie ient nto o se vuelve más difícil con el aumento en el número de vistas y controladores, que, de acuerdo con [10] es especialmente cierto en la aplicación del patrón MVC, debido a la estrecha conexión entre vistas y controladores y dada la naturaleza asimétrica de este modelo. En contraste con el patrón MVC, los componentes del patrón PAC están muy desconectados y por lo tanto PAC escalas muy bien. Se pueden enlazar diferentes comp compon onen ente tess de una una form forma a muy muy sepa separa rada da,, ya que que es bast bastan ante te lega legall para para los los cont contro rola lado dore ress comu omunica nicars rse e y coo coopera perarr entr entre e sí. sí. Por consi onsig guie uiente nte la fabr fabric icac ació ión n de inte nterfa rfaces ces de usua usuari rio o complicadas basadas en más sencillas es mucho más natural para PAC que para MVC, porq porque ue la comp compos osic ició ión n de los los agen agente tess se pued puede e real realiz izar ar.. sin sin viol violar ar la enca encaps psul ulac ació ión. n. En este este patrón las diferentes piezas pueden ser procesos completamente separados. Estas propiedades son lo que hace que el PAC sea más adecuado para el desarrollo de Aplicaciones Aplicaciones móviles con múltiples modalidades modalidades de entrada y salida. [10]. El patrón PAC proporciona un lugar bien definido para agregar un variedad de componentes de infr infrae aest stru ruct ctur ura a que que tien tienen en en cuen cuenta ta la dime dimens nsio ione ness de la movi movililida dad, d, que que es el comp compon onen ente te de cont contro rol.l. Esto Esto sign signifific ica a que que el comp compon onen ente te de cont contro roll pued puede e comu comuni nica cars rse e con con sist sistem emas as de sensi ensib bilid ilidad ad a la ubica bicaci ción ón,, el moto motorr de reco recon nocim cimiento ento de voz, voz, el motor tor de sín síntes tesis de voz voz y todos los demás subsistemas que deben ser utilizados Para el control y la producción de nues nuestr tra a inte interf rfaz az de usua usuari rio o sin sin comp compro rome mete terr la sepa separa raci ción ón de tare tareas as entr entre e la abst abstra racc cció ión. n. y la presentación y de este modo protegiendo la lógica empresarial. Dadas las condiciones que llevaron a la for formación del patrón PAC, se puede concluir que los requisitos de los dispositivos móviles justo crearon tales condiciones que son mejor
resueltas mediante utilizando el patrón PAC. La variedad de interfaces de usuario, la exist xiste encia ncia.. de múlti ltiple ples inte interrfac faces, es, así como como la necesi cesida dad d de relat elatiiva faci facililida dad d para ara aña añadir dir una nueva interfaz de usuario al sistema en el futuro, son todos reconocido como los req requisi isitos tos de las apl aplica icacio ciones nes móvil óviles es y la con condici iciones nes que llev llevar aron on al rec recono onocim cimiento ento del patrón trón PAC PAC com como sol solució ución n. El prim primer er enfo nfoque con este ste patrón trón es ase asegura gurarr un meca ecanism nismo o unif unifor orme me de comu comuni nica caci ción ón entr entre e clas clases es,, así así como como meca mecani nism smos os para para la estr estruc uctu tura raci ción ón de la coor coordi dina naci ción ón.. Esto Esto perm permitite e mane maneja jabi bililida dad d de gran gran núme número ro de comp compon onen ente tes. s. El patr patrón ón MVC MVC debe ser util tilizado en caso de que la aplicación no disponga de una gran cantid tidad de tipos de inte interf rfac aces es de usua usuari rio o con con dife difere rent ntes es moda modalilida dade dess de entr entrad adaa-sa salilida da.. En la elec elecci ción ón de un patr patrón ón apro apropi piad ado o para para el dise diseño ño de apli aplica caci cion ones es con con múlt múltip iple less tipo tiposs de inte interf rfac aces es de usua usuari rio, o, nos guiamos por evitar la duplicación de partes del código y la reducción del número de clases y relaciones. entre ellos a un número tan pequeño como sea posible. Tabla 1: Comparación de patrones MVC y PAC Aspectos
MVC vs PAC
Complejidad
Mayor complejidad de PAC debido a múltiples componentes y debido a la forma de implementación que también puede incluir cooperación entre procesos
Separación de tareas entre los componentes componentes de presentación, presentación, control y patrón.
El modelo MVC puede incluir entrelazado de tareas, mientras que PAC separa más estrictamente la Tareas entre la componentes
Eficiencia
Puede ser baja con PAC debido al gran número de componentes y conexiones
Soporte para cambios y extensión
Debido a tareas entrelazadas entrelazada s en el patrón MVC la ventaja está del lado del patrón PAC que tiene una estructura uniforme.
La existencia de más subestructuras en el patrón, las cuales requieren formas específicas de interacción. interacción.
Mucha complejidad en el patrón PAC, debido a la necesidad por comunicación con otros componentes de control.
Para tener una correcta interpretación de las comparaciones. que figuran en la Tabla 1, cabe abe seña eñalar lar que que la necesi cesida dad d de comu omunica nicaci ció ón con con otro tros comp compo onen nentes tes de contr ontro ol, hace ace significativamente complejo el uso del patrón de diseño PAC. Debido a esto, rara vez se utiliza en aplicaciones móviles. Aunque el patrón de diseño MVC es ampliamente ampliamente utilizado durante el diseño de interfaces de usuario en aplicaciones móviles, no es universal. En ciertas circunstancias se hace necesa cesari rio o el patró atrón n de dise diseñ ño PAC PAC, como como en el cas caso de req requerim rimiento entoss por la exis existe ten ncia cia de inte nterfa rfaces ces de usua suario rio heter terogé ogénea neas multi ltimod modales ales.. Tale Taless solic olicit itu udes des requ equiere ieren n el uso uso de dife iferen rentes tes tec tecnol nología ogíass para la apli aplica caci ció ón de dete deterrmin minada adas parte artess del del requ equerim erimie ien nto, to, que
pued pueden en inte integr grar arse se entr entre e sí solo solo por por medi medio o de comu comuni nica caci ción ón entr entre e proc proces esos os.. En tale taless caso casoss es imposible utilizar el patrón MVC. En [2] se dice que el patrón de diseño PAC tiene la Ventaja que permite realizar múltip tiples tare tareas as.. Sin emb embargo argo,, la plata latafo form rma a J2ME J2ME permit rmite e una aplica licaci ción ón con múltip ltiplles hilos ilos,, por lo que esta plataforma le permite al controlador aceptar la entrada del usuario durante su ejecu jecucción, ión, por ejem jemplo plo, la com comunic unica ació ción HTTP. TTP. Por lo tan tanto, to, el PAC PAC no tie tiene exclu clusivi sivid dad sobre la multitarea
CONCLUSIÓN La nece necesi sida dad d de la exis existe tenc ncia ia de múlt múltip iple less moda modalilida dade dess de entr entrad ada a y sali salida da.. en apli aplica caci cion ones es móviles nos llevan a interfaces de usuario más complejos. Por lo tanto, deberíamos considerar los patrones de software disponibles para la construcción de interfaces de usuario con el fin de utilizar una estructura más eficiente para los requisitos dados. El artíc rtícu ulo revis evisa a los los patro trones nes de softw oftwa are MVC y PAC PAC y hace hace con conexió exión n entr entre e los los requ equisit isito os de las las apli aplica caci cion ones es móvi móvile less y las las cara caract cter erís ístitica cass de dich dichos os patr patron ones es de soft softwa ware re.. Las Las vent ventaj ajas as y desventajas de estos patrones de software son consideradas durante su uso en determ termiinad nadas circ circu unsta stancia ncias. s. Esto Esto faci facililita ta la elec lecció ción de los diseñ iseña adores ores de softw oftwa are del patr patrón ón de soft softwa ware re apro apropi piad ado o para para la cons constr truc ucci ción ón de inte interf rfac aces es de usua usuari rio o de apli aplica caci cion ones es móviles..
REFERENCIAS [1] Java Blue Prints Model-View-Controller, http://java.sun.com/blueprints/patterns/MVC-detailed.html [2] F. Buschmann, Buschmann, A system of patterns, Chichester: Wiley, 1996 [3] [3] G. Bana Banava var, r, N. Cohe Cohen n and and D. Soro Soroke ker, r, “Per “Perva vasi sive ve Appl Applic icat atio ion n Deve Develo lopm pmen ent: t: Appr Approa oach ches es and Pitf Pitfal alls ls”, ”, Mobile bile Comp omputi uting Hand andboo book, M. Ilya Ilyass, I. Mahg ahggou goub, eds. eds.,, Boca Rato aton: CRC Press, 2005 [4] G. Banavar, “An Authoring Technology for Multidevice Web Application”, Pervasive Computing, 2004 [5] [5] M. Yuan Yuan,, Ente Enterp rpri rise se J2ME J2ME:: Deve Develo lopi ping ng Mobi Mobile le Java Java Appl Applic icat atio ions ns,, New New Jers Jersey ey:: Pren Prentitice ce Hall PTR, 2003 [6] D. Greer, “Interactive Application Architecture Patterns”, www.ctrl shift-b.com/2007/08/interactive-application-architecture.html.2007 [7] „Presentation Abstraction Control“, http://www.phpwact.org/pattern http://www.phpwact.org/pattern/presentation_ /presentation_abstraction_ abstraction_control control [8] “IntrosPAC”, http://iihm.imag.fr/demos/IntrosPAC/ [9] [9] H. Witt Witt,, User User inte interf rfac aces es for for Wear Wearab able le Comp Comput uter ers, s, Wies Wiesba bade den: n: View Vieweg eg+T +Teu eubn bner er Verl Verlag ag,, 2008 [10] [10] B. Reza Reza,, Desi Design gnin ing g and and deve develo lopi ping ng mobi mobile le appl applic icat atio ions ns with with UML UML and and XML, XML, Camb Cambri ridg dge e University Press, 2004