desarrollo de aplicaciones basadas en xml web services para dispositvos moviles

Upload: miralaki

Post on 09-Jul-2015

310 views

Category:

Documents


0 download

TRANSCRIPT

UNIVERSIDAD

DE

BELGRANO

Las

de

BelgranoFacultad de Ingeniera y Tecnologa Informtica Carrera de Ingeniera en Informtica

tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles con Microsoft .NET Compact Framework

N 155

Pablo Andrs Bianco

Tutor: Carlos G. Said

Departamento de InvestigacinAbril 2005

AgradecimientosA Bruno y Silvia Bianco, mis padres, quienes me han dado todo con amor y desinteresadamente. Agradezco mucho a todas las personas que me han formado en mi camino universitario como ingeniero en informtica, a la Universidad de Belgrano, institucin donde me form y que adems me permiti haber conocido nuevos horizontes en otros pases donde pude estudiar y crecer, a Carlos Said, mi tutor, quien me ha conducido en esta tesina con entusiasmo, suma dedicacin y me ha tratado constantemente como a un profesional aunque no lo fuera, al personal de Microsoft de Argentina quienes me han brindado amablemente material acadmico. Y nuevamente, a mis padres y familia.

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

4

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

IndiceCaptulo 1. Dispositivos Mviles 1.1 Conceptualizacin de los dispositivos mviles ............................................................................ 7 Dispositivos de Consideracin Especial ..................................................................................... 8 1.2 Perspectiva futura del uso de dispositivos mviles ...................................................................... 8 Cul es la perspectiva futura para estos equipos y aplicaciones segn algunas de las consultoras ms relevantes? ................................................................................................... 10 1.3 Perspectiva actual del uso de dispositivos mviles ................................................................... 11 Porqu usar dispositivos mviles en las empresas? ............................................................... 11 Qu capacidades operativas se requieren para hacer que las aplicaciones de negocios estn disponibles para los usuarios mviles? ........................................................................... 12 Qu hace a los dispositivos y aplicaciones mviles aptos para brindar soluciones? ................. 12 Cules son los beneficios ECONMICOS de la implementacin de tecnologas mviles? ....... 13 Qu partes clave intervienen en el desarrollo de soluciones mviles? ...................................... 14 1.4 La Arquitectura de un Dispositivo Mvil .................................................................................... 14 Arquitectura de Hardware Pocket PC ....................................................................................... 14 Arquitectura Smartphone ......................................................................................................... 16 Diferencias Principales entre Pocket PC y Smartphone ............................................................ 17 Adecuacin de los dispositivos al contexto mvil ...................................................................... 18 Limitaciones generales de los dispositivos mviles ................................................................... 18 Captulo 2. Ambiente de Desarrollo de Aplicaciones Mviles 2.1 Conceptualizacin del Ambiente de desarrollo de aplicaciones mviles con Compact Framework ............................................................................................................... 19 Herramientas para el desarrollo de aplicaciones mviles ........................................................... 19 2.2 El marco de trabajo de Microsoft .NET Compact Framework ................................................... 21 Presentacin del .NET Compact Framework ............................................................................ 21 Arquitectura del Compact Framework ...................................................................................... 23 El gestor de tiempo de ejecucin (CLR) y cdigo administrado ................................................. 25 Interoperabilidad de lenguajes y desarrollo para varias plataformas ............................................ 28 Captulo 3. Desarrollo de Aplicaciones en Dispositivos Mviles 3.1 Indicaciones para el desarrollo eficiente en dispositivos mviles ................................................ 32 Gestin de los recursos limitados ............................................................................................ 32 3.2 Diseo de la interfaz grfica de usuario .................................................................................... 40 COMPONENTE PRIMERA: El Contexto Mvil ......................................................................... 41 COMPONENTE SEGUNDA : Diseo de Formularios ................................................................ 41 COMPONENTE TERCERA: Entradas ...................................................................................... 44 COMPONENTE CUARTA: LAS SALIDAS ................................................................................ 48 COMPONENTE QUINTA: La comunicacin del usuario con el sistema ..................................... 51 3.3 Consideraciones de Seguridad ................................................................................................ 54 Criptografa en Compact Framework ........................................................................................ 56 Captulo 4. Aplicaciones Mviles con XML Web Services 4.1 Concepto de Modelo de Computacin Distribuida ..................................................................... 56 Formas de procesamiento: camino hacia la computacin distribuida ........................................ 56 4.2 XML Web Services .................................................................................................................. 58 Introduccin a XML .................................................................................................................. 58 Servicios Web XML ................................................................................................................. 59 Infraestructura de los Servicios Web XML ................................................................................ 59 Protocolos de soporte para servicios Web ............................................................................... 60 Proceso de Desarrollo de una Aplicacin basada en XML Web Services ................................... 61 Consideraciones Previas de Diseo en Compact Framework .................................................... 63

5

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Captulo 5. Desarrollo de una Aplicacin Mvil con XML Web Services 5.1 Introduccin ............................................................................................................................ 63 5.2 Ambiente y Modo de Operacin ............................................................................................... 64 5.3 Algunos detalles de implementacin ........................................................................................ 65 Base de datos Universidad ...................................................................................................... 65 Mdulo de Administracin de Cursos ....................................................................................... 66 Servicio Web a Alumnos ......................................................................................................... 66 5.4 Solicitud de un servicio Web.................................................................................................... 67 Cmo se representa el DataSet del ejemplo mediante XML? .................................................. 68 Bibliografa ..................................................................................................................................... 72 Glosario ......................................................................................................................................... 75

6

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

IntroduccinNos encontramos actualmente en lo que algunos visionarios de la industria informtica denominan la dcada digital, caracterizada por una importante tendencia hacia las formas digitales. Lo vemos a diario en las operaciones bancarias y comerciales, en las fotografas, en las nuevas formas de audio y video, y en los documentos que enviamos y recibimos por Internet. El volumen de informacin digitalizada ha crecido considerablemente y ya ha pasado a ser de uso prcticamente cotidiano. El avance en las tecnologas de comunicaciones ha sido sin duda una de las causas ms importantes que ha incrementado indirectamente el manejo de la informacin digital, y ha sentado las bases para muchas reas relacionadas. Con Internet y redes privadas disponibles a un costo relativamente bajo y con un ancho de banda adecuado ha sido posible intercambiar todo de tipo de informacin, precisamente, digital. Paralelo al avance de las comunicaciones, las industrias electrnicas y de informtica se han desarrollado continuamente. Las organizaciones y personas individuales sacan provecho de los avances. Ya no solo es posible contar con sistemas de informacin en una empresa sino que se puede trascender el mbito fsico y llevar los sistemas prcticamente a cualquier lugar donde las comunicaciones estn disponibles. Es aqu donde los dispositivos mviles adquieren un rol protagnico. Estos dispositivos pueden contener aplicaciones personales, y empresariales, como una extensin de los sistemas de la organizacin. As, las empresas encuentran nuevas oportunidades de negocio, la posibilidad de acceder a nuevos mercados y alternativas para incrementar la ventaja competitiva. En esta tesina se trata el desarrollo de aplicaciones para dispositivos mviles de la mano de una tecnologa concreta, el Compact Framework. Al principio se exponen las caractersticas de estos equipos, cules son las perspectivas actuales y futuras para su uso, y sus limitaciones principales. Posteriormente se introduce el marco de trabajo propuesto para el desarrollo de aplicaciones mviles, las cuales requieren algunas consideraciones especiales de diseo e implementacin. Se dan pautas para lograr un desarrollo eficiente en bases a las restricciones de hardware y software actuales. Como nexo de comunicacin entre una aplicacin mvil y los sistemas organizacionales se propone el uso de XML Web Services, que suponen una forma relativamente simple de comunicar sistemas heterogneos de manera transparente, basndose en la infraestructura ya existente de Internet. Por ltimo, se incluye el desarrollo de un escenario en el cual una aplicacin .NET mvil accede a servicios Web ofrecidos por una universidad. As, los alumnos de la universidad pueden acceder a la base de datos para realizar consultas sobre cursos disponibles e inscribirse a los mismos, realizando esto desde un dispositivo mvil. 1.1 Conceptualizacin de los dispositivos mviles Segn el Diccionario de la Real Academia Espaola, un dispositivo es cualquier mecanismo o artificio dispuesto para producir una accin prevista. Podemos extender este trmino para hablar de dispositivos porttiles, que en el sentido amplio seala a dispositivos que una persona puede llevar consigo para su utilizacin y que ofrecen alguna funcionalidad o prestan algn servicio. Definidos as de manera inespecfica, los telfonos celulares, discman, calculadoras y todos aquellos que cumplan esta definicin general son dispositivos porttiles. Distinto es el trmino dispositivo mvil. En [HK02.0] se los define como aparatos electrnicos que sirven para la comunicacin, procesamiento e intercambio de datos y pueden ser llevados por sus usuarios para enviar, recibir o compartir datos con otros dispositivos. [KO03.0] comparte con la fuente anterior una definicin por extensin de los mismos, donde se incluyen: 1. telfonos celulares 2. computadoras porttiles (laptops, notebooks) 3. PDAs1 4. hbridos de los anteriores En el mbito de esta tesina vamos a darle una serie de caractersticas propias de acuerdo a los requerimientos del marco de trabajo que posteriormente se desarrollar. De aqu en adelante, cuando se mencionen los dispositivos mviles, el lector debe asociar a ellos las siguientes propiedades: son dispositivos electrnicos computacionales se pueden trasladar fcilmente por su forma y tamao adecuado inalmbricos tienen autonoma elctrica, es decir, pueden ser operados con independencia de la red elctrica por un lapso de tiempo determinado1. En ingls, Personal Digital Assistant que significa Asistente Personal Digital

7

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

son capaces de conectarse a redes de datos actualmente tienen restricciones de hardware y software suficientes para requerir un tratamiento especial poseen una CPU2 con capacidad adecuada de procesamiento tienen memoria RAM3 para el almacenamiento y ejecucin de programas poseen formas de almacenamiento permanente Las ltimas tres caractersticas le confieren la cualidad de hallarse encuadrados en una clase denominada dispositivos inteligentes4 [MS01.1]. Dispositivos de Consideracin Especial Es importante indicar que existen equipos electrnicos de avanzadas caractersticas que no son objeto de estudio de esta tesina, y sobre los cuales actualmente no pueden desarrollarse aplicaciones con el marco de trabajo que nos ocupa. Este es el caso, por ejemplo, de aparatos de telefona celular que permiten acceder a servicios de mensajera y hasta tienen micronavegadores de Internet, pero no cuentan con la capacidad de ejecutar aplicaciones personalizadas. Cabe indicar que las computadoras porttiles notebooks o laptops no sern consideradas en la categora de dispositivos mviles. La razn es que no poseen las restricciones fundamentales5 para requerir un tratamiento especial a la hora de desarrollar aplicaciones. Aunque poseen una arquitectura reducida en tamao, ofrecen las mismas facilidades que una PC de escritorio. Un notebook actual puede funcionar con el mismo sistema operativo que una computadora de escritorio y puede ejecutar los mismos entornos de desarrollo de aplicaciones, tienen teclado completo, acceso a las mismas unidades perifricas, display de gran tamao, etc. La cuestin especfica que las excluye de esta categora es el diseo de las aplicaciones, que sigue las mismas reglas que se emplean en una PC de escritorio en cuanto a sus interfaces de usuario y uso de los recursos. No se requiere el Compact Framework6 y de hecho no est disponible para PC. Las tablet PCs en cambio sern consideradas como dispositivos mviles. Esto puede parecer paradjico segn lo indicado anteriormente para los notebooks, pues las tablet PCs tampoco tienen las restricciones fundamentales mencionadas. La diferencia radica en que stas han sido diseadas y optimizadas para su uso mvil. Tienen caractersticas hardware que las hace muy adecuadas para integrarlas en las actividades diarias de las personas: son livianas, ofrecen caractersticas extendidas para la entrada/salida de datos (pueden usarse como un prctico tomador de apuntes por medio de la pantalla sensible al tacto, como libro de lectura) y pueden ser utilizadas como PC porttil. La idea detrs de esto es que son mucho ms prcticas que un notebook para el contexto mvil. Habiendo realizado las aclaraciones necesarias, algunos ejemplos estndar de lo que consideramos dispositivos mviles son: PDA XDA SmartPhone Tablet PC

(PDA + telfono) 1.2 Perspectiva futura del uso de dispositivos mviles Al momento de fundar su empresa en 1975, Bill Gates tuvo una simple pero muy acertada visin [MS01.0]: cada hogar tendr en unos aos una computadora personal disponible, lo cual actualmente parece ser evidente pero en aquel tiempo no lo era tanto debido a los altos costos del hardware y la escasa disponibilidad de software para ser adquirido masivamente. Michael Dertouzos7, unos aos antes de la aparicin al2. En ingls, Central Process Unit que indica Unidad Central de Proceso 3. En ingls, Random Access Memory que significa Memoria de Acceso Aleatorio. 4. En ingls, Smart Devices. 5. Tales restricciones se exponen en la seccin 4 de este captulo. 6. El Compact Framework de Microsoft es un marco de trabajo reducido diseado especialmente para dispositivos mviles de capacidades limitadas de hardware y software. Ser tratado con ms detalles en el captulo 2. 7. Director del Laboratorio de Ciencias de la Computacin del MIT, Massachusetts Institute of Technology.

8

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

mercado de las primeras computadoras personales le indic a un periodista de la revista People que los costos de las mismas serian accesibles y que en el plazo de una dcada uno de cada tres hogares tendra una PC. Aadi adems que, debido al avance de la tecnologa, las redes de ordenadores tambin iban a proliferar. En el ao 1999 tras haber comprobado en cierta medida su visin original, Gates reformul su perspectiva de acuerdo a los avances del momento e indic que: la gente se vera beneficiada por software poderoso disponible en cualquier lugar, en cualquier momento y en cualquier dispositivo. De la reformulacin de la visin de Gates surgen al menos tres preguntas esenciales. La primera es qu hace posible la disponibilidad del software en cualquier lugar?, qu hace posible la disponibilidad del software en cualquier momento? y qu hace posible la disponibilidad del software en cualquier dispositivo? Para lograr estas premisas se requiere una infraestructura que lo soporte, no obstante posibles respuestas simplificadas podran ser: conectividad y acceso a redes de alta disponibilidad para la primera y segunda pregunta, estndares y marcos de trabajo independientes de plataforma8 para la tercera pregunta. La tercera pregunta expone, de alguna forma, la problemtica general a la que se dirige esta tesina. La expresin genrica cualquier dispositivo incluye a los dispositivos mviles, que han sido referenciados directa e indirectamente por varios expertos y visionarios del ambiente tecnolgico, como Bill Gates y Michael Dertouzos. Dertouzos en [DE97] imagina algunas facilidades que estarn disponibles para la gente, basadas en su visin sociotecnolgica. Por ejemplo, habla de automviles informados, conectados remotamente a los servidores de la compaa, con sistemas de posicionamiento global que permiten indicar latitud y longitud exacta, mapas en lnea e informacin de navegacin de rutas, con capacidades de traslacin autnoma, y varias otras caractersticas que hoy en da no son habituales pero que ya se han comenzado a ver. Gates fundamenta su nueva visin sealando dos principales dcadas de la computacin actual [MS03.1]: Del 1990 al 1999, denominada Dcada de la PC, caracterizada por la presencia de sistemas operativos monoprogramados9 al inicio, dando paso a multiprogramados con poderosas interfaces grficas y la presencia de protocolos de Internet. La difusin de estndares dio poder a las masas, esto es, mediante la adopcin de estndares reconocidos comenz a hacerse posible la integracin de tecnologas y comunicaciones a gran escala. Del 2000 al 2009, denominada Dcada Digital, caracterizada por la proliferacin de los dispositivos mviles, la alta integracin de tecnologas y donde las fotografas, audio y video tienden hacia la forma digital. El desarrollo de la tecnologa mvil ha sido lento porque los avances an estn ocurriendo: ampliacin de capacidades de almacenamiento, incremento en la velocidad de procesadores, expansin de redes inalmbricas. Remarca la integracin de distintas tecnologas mviles. Esta dcada no marca la sustitucin de PCs por dispositivos mviles ni viceversa, pues considera un nuevo entorno computacional formado por una amplia gama de dispositivos desde largas pantallas planas hasta los ms pequeos dispositivos mviles, PDAs, Smartphones, etc. El poder est en la integracin, pone el ejemplo de una persona que adquiri un boleto de avin y ante un eventual cambio de vuelo, el usuario recibe un alerta en su dispositivo mvil. Queda mucho por hacer an- agreg. A continuacin se expone una caracterizacin de las tendencias de dispositivos tecnolgicos en general segn he analizado, seguida por una explicacin: Figura 1.1 Tendencias de los dispositivos mvilesDISPOSITIVOS EXISTENTES FIJOS PRACTICAS DE NEGOCIOS o NECESIDADES

llevan a

llevan a

VERSION MOVIL DEL DISPOSITIVO FIJO

DISPOSITIVO MOVIL QUE IMPLEMENTA LO ANTERIOR

derivan en.

NUMEROSOS DISPOSITIVOS AISLADOS Datos comunes no compartidos Costos elevados Problemas de administracin

8. Tanto de hardware como de software 9. En la terminologa de los sistemas operativos, se refiere a aquellos que son capaces de ejecutar un nico proceso completo por vez, sin posibilidad de cambios de contexto. Debe finalizarse la aplicacin actual para dar paso a una nueva.

9

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Resulta evidente que ante esta perspectiva futura en donde el hombre tiene la necesidad de acceso permanente e integral a la informacin, los dispositivos mviles tendrn un papel protagnico por la practicidad y flexibilidad que ofrecen. Por un lado ha habido una tendencia a desarrollar versiones porttiles de muchos dispositivos fijos que se usan habitualmente. Este es el caso de la telefona clsica que deriv en celulares, el caso computadoras de escritorio que deriv a PCs porttiles, de software de organizacin de tareas y contactos que deriv en simples agendas electrnicas hasta las ms avanzadas que tenemos actualmente, etc. Por otro lado ha habido una tendencia a desarrollar dispositivos porttiles para implementar prcticas de negocio/necesidades en cualquier lugar. Este sera el caso de equipos de recoleccin de datos porttiles utilizados por empresas de servicios para tomar mediciones y volcarlas en aplicaciones centrales, el caso de los equipos utilizados por vendedores de campo con los cuales levantan sus pedidos en la calle, de instrumentos especficos de ubicacin geogrfica como los dispositivos de GPS manuables, etc. Ante una nueva variedad de dispositivos mviles donde muchos comparten caractersticas comunes (datos compartidos) pero funcionalidades especficas diferentes, surgen algunos problemas que requieren solucin: es claro ver que una persona no puede desenvolverse adecuadamente con mltiples dispositivos porttiles diferentes, pues resulta imprctico y costoso. Adems, si varios equipos comparten datos comunes se generan problemas de administracin: inconsistencias, prdidas de datos, dificultad de actualizacin y de uso. Se plantea la necesidad de un nuevo diseo: 1. unificacin del hardware con funcionalidad 2. sincronizacin de los datos 3. procesamiento distribuido de aplicaciones La tendencia de unificacin del hardware con funcionalidad tiene que ver con unir funciones ofrecidas por varios dispositivos en un nico equipo. Un ejemplo complejo y real a la vez es: un ejecutivo que se traslada por distintos sitios geogrficos necesita estar comunicado, tener acceso a documentos y planillas de clculo. Se vera beneficiado con el uso de un equipo porttil pequeo con capacidad propia procesamiento y almacenamiento que permita ejecutar aplicaciones de negocios, personales, de entretenimiento y comunicaciones (telefona tradicional o IP, internet), que provea una interfaz para la conexin y sincronizacin con otros dispositivos o sistemas centrales residentes en hosts. La sincronizacin de datos consiste en homogeneizar los contenidos de los repositorios de datos de los dispositivos mviles con un host que posee el usuario, u otros dispositivos. Se trata de llevar las bases de datos a un estado de convergencia para que haya disponibilidad de datos, facilidad de actualizacin y evitar prdidas e inconsistencias. En la industria informtica actual tenemos muchas empresas que desarrollan productos y soluciones mviles. Para el caso particular de los asistentes personales digitales (PDAs), hay ms de un sistema operativo disponible y cada proveedor equipa al PDA con distintos componentes de hardware y de software. Cmo se puede hacer para que se comuniquen entre s dispositivos y sistemas no homogneos? Para ello la industria10 ha establecido y adoptado estndares que regulan la forma de comunicacin y presentacin de los datos. Las empresas de la industria compiten por ofrecer herramientas basadas en estos estndares ya aceptados. El procesamiento distribuido de aplicaciones consiste en la comunicacin abierta, independiente de caractersticas de implementacin especfica, entre dispositivos locales o distantes, que pueden compartir aplicaciones, datos u otros recursos. Dertouzos [DE97] indica que a mediados del ao 1996, el Web Consortium ya contaba con 150 organizaciones en calidad de miembros, entre las cuales se destacaban AT&T, Microsoft, Sony, Netscape y Sun, entre otras. Para ese momento sus miembros ya comprendan la necesidad de un consenso, de la adopcin de estndares como elemento preservador de la integridad de la Web compuesta por millones de mquinas del mundo entero y de ganar dinero con software y servicios ampliamente compartidos basados en la Web. Esta ltima frase da lugar a algunas interrogantes: software y servicios ampliamente compartidos a travs de dispositivos mviles entre otros? es aqu donde surge la idea de los Web Services? A lo largo de esta tesina mostrar el desarrollo de aplicaciones mviles basadas en XML Web Services, como posible respuesta a estas preguntas. Cul es la perspectiva futura para estos equipos y aplicaciones segn algunas de las consultoras ms relevantes? En [IC01] y [GA01] se muestran estudios de mercado hecho en el ao 2001 proyectados para los aos 2004 y 2005.10. En particular, el Consorcio de Internet www.w3c.org

10

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Gartner Group seala que para el ao 2005 se usarn a lo largo del mundo alrededor de mil millones de dispositivos mviles en general. Los investigadores de Gartner Research perciben tres razones para la inversin en aplicaciones mviles: 1. Oportunidad de inversin. La organizacin puede realizar inversiones cuando las tecnologas mviles ofrecen oportunidades potenciales de negocio que generen nuevos ingresos. Ejemplo: portal de compras desde dispositivos mviles. 2. Respuesta ante amenaza. La implementacin de aplicaciones mviles en algunas reas de negocio tal vez no genere nuevos clientes. No obstante, el costo de la no implementacin puede ser prdidas de clientes actuales. 3. Ahorro de costos. Por ejemplo: reemplazo de procesos basados en papel. Este grupo de investigacin espera que, en diez aos a partir del 2001, los dispositivos mviles tengan un rol principal en el trabajo y en la sociedad. Se los visualiza en un futuro con las siguientes caractersticas: siempre encendidos (listos para usar), inalmbricos y adecuados para que los usuarios los lleven siempre consigo. Se plantea, adems, que los dispositivos mviles habilitan la llamada Supranet, una Internet ampliada que provee integracin y comunicacin entre dispositivos, integracin de los procesos de negocios e interfaces de comunicacin entre los dispositivos y las personas. El grupo indica que hay elementos clave habilitadores de la Supranet: Redes inalmbricas Servicios de localizacin geogrfica de dispositivos Nuevas formas (o formas mejoradas) de tecnologas de entrada/salida que permitan mejorar la usabilidad de los dispositivos Proliferacin y mejora de los dispositivos computacionales personales A travs de un modelo de estimacin de tendencias en el mercado denominado Technology Radar Screen (pantalla de radar de tecnologa), Gartner realiza una suposicin para un planeamiento estratgico. La suposicin indica que, para el 2005, las tecnologas que tendrn crecimiento rpido son: XML, tecnologas Web inalmbricas, procesamiento del lenguaje natural, Bluetooth, esquemas de pagos electrnicos, autorizacin digital, etc.; con una probabilidad del 70%. Entre las tecnologas mencionadas, podemos ver que varias de ellas estn relacionadas estrechamente al tema central de esta tesina: XML (usado como lenguajes para los servicios Web), tecnologas Web inalmbricas (como parte de la infraestructura mvil), Bluetooth (como estndar para comunicaciones entre dispositivos), etc. McKinsey & Co, por otra parte, indic que para este ao (2004) las empresas podran ahorrar alrededor de 80 mil millones de dlares al ao con el uso de aplicaciones mviles por empleados, clientes y partners. 1.3 Perspectiva actual del uso de dispositivos mviles Por qu usar dispositivos mviles en las empresas? Se plantean dos motivos principales [MS01.1], de los cuales se derivan muchas prestaciones. El primer motivo es el costo del hardware que continuamente decrece en relacin a sus prestaciones. Los principales proveedores del mercado compiten ofreciendo nuevas caractersticas y costos menores que induce a las empresas a considerar inversiones para la adquisicin de dispositivos para un gran nmero de empleados. Los dispositivos son cada vez ms pequeos, ms poderosos en sus capacidades de procesamiento y almacenamiento, e incorporan nuevas tecnologas que flexibilizan las tareas de rutinarias de las empresas; por ejemplo, el empleo de tecnologas de comunicacin inalmbricas. El segundo motivo es una mejorada arquitectura de software disponible para estos dispositivos. Existen industrias de software que ofrecen marcos de trabajo que facilitan mucho el proceso de desarrollo de software. No se plantea el uso de los dispositivos mviles como sustitutos de las computadoras personales de escritorio que corren sistemas organizaciones, sino como una extensin de los mismos. La entidad que incorpora dispositivos mviles para su operacin puede obtener una serie de ventajas relativas [MS01.0]: facilidad para la administracin de informacin personal manipulacin de documentos: informes, planillas, imgenes, etc. recoleccin de datos automtica con mecanismos de validacin reduccin de costos de operacin seguimiento de stock para vendedores que trabajan afuera de sus oficinas acceso remoto a informacin del cliente sobre su estado de cuenta incrementar la satisfaccin del cliente ofreciendo un servicio ms eficiente

11

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

en el caso de entidades educativas, podra ser una herramienta integral para asistir al proceso enseanza y aprendizaje. Los puntos recientemente citados son slo ejemplos. Las distintas organizaciones pueden emplear estas caractersticas bsicas y adaptarlas a sus necesidades concretas. En el mundo, millones de personas trabajan fuera de los entornos tradicionales de trabajo. Muchos emplean mtodos costosos e ineficientes para la captura de datos necesaria para completar sus tareas. Podra definirse un abanico de los tipos de usuarios que se consideran ms propensos a necesitar soluciones mviles, como es el caso de ejecutivos, representantes de ventas, ingenieros, mdicos, conductores de vehculos, tcnicos, personal cuyo lugar de trabajo es temporal, etc. Con costos relativamente bajos, ms eficientes y con facilidades para el desarrollo de software, los dispositivos porttiles se pueden considerar adecuados para ser componentes de gran importancia en las aplicaciones organizacionales. Qu capacidades operativas se requieren para hacer que las aplicaciones de negocios estn disponibles para los usuarios mviles? [MS01.2] plantea tres capacidades fundamentales. A saber: 1. Infraestructura 2. Opciones para la conectividad flexible 3. Entorno de desarrollo familiar 1. Infraestructura Para que las aplicaciones cumplan los objetivos de sus usuarios deben reunir una serie de caractersticas concretas. Deben ser: seguras: un dispositivo mvil est expuesto a riesgos de robo, prdida, espionaje, etc. escalables: las aplicaciones debe acompaar el ritmo del crecimiento empresarial. administrables: cuando una compaa cuenta con un gran conjunto de dispositivos mviles, deben haberse definidos mecanismos de administracin centralizada por medio de redes computacionales y software para su sincronizacin. 2. Opciones de Conectividad Flexible Para aquellos usuarios que requieren algn tipo de conectividad, es muy importante que los dispositivos mviles sean compatibles con una variedad de opciones de conectividad por medio de tarjetas de hardware o puertos, de manera que el usuario tenga la posibilidad de implementar la arquitectura de comunicacin ms apropiada, sea Wi-Fi (en cualquiera de sus versiones), Bluetooth, tarjetas adaptadoras de red (NICs), mdems, etc. 3. Entorno de desarrollo familiar Si las herramientas disponibles para el desarrollo de aplicaciones mviles introducen una considerable complejidad adicional, la organizacin deber abordar altos costos extras de capacitacin y entrenamiento del personal de desarrollo en este nuevo entorno. [MS01.2] indica que existen ms de 5 millones de desarrolladores que emplean herramientas de uso generalizado tales como Visual Basic, Visual C++, ADO, COM, etc. Analizando esta cifra se desprende la idea que, existiendo alguna forma de desarrollar aplicaciones mviles con este tipo de herramientas, los costos de desarrollo no se incrementaran y algo an ms valioso, podra aprovecharse la experiencia adquirida que conducira a desarrollos en menor tiempo y con costos viables. Qu hace a los dispositivos y aplicaciones mviles aptos para brindar soluciones? Douglas Dedo expone en [MS03.0] que, a medida que las organizaciones visualizan oportunidades de hallar soluciones con el uso de estos dispositivos, se requiere de un proceso formal que justifique la inversin requerida. No tiene el mismo atractivo hacer una inversin si los usuarios consideran que estos equipos son anotadores modernos en los que se puede chequear mail en caso de que una PC no funcione, que hacer una inversin si se identifican aplicaciones especficas de negocios que extienden las capacidades de los sistemas para cubrir reas que otorguen ventajas. Hay cuatro tendencias de la industria que les dan atractivos particulares: 1. Sistemas mviles como extensin de los sistemas empresariales 2. Convergencia a los dispositivos mviles 3. Mayor capacidad de almacenamiento 4. Mayor ancho de banda en conectividad inalmbrica 12

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

1. Sistemas mviles como extensin de los sistemas empresariales Las empresas han estado haciendo que los datos operacionales sean accesibles por ms usuarios. Se ve en los inicios de los primeros sistemas basados en mainframes, donde los datos comenzaban a ser accedidos desde PCs de escritorio. Desde entonces, el enfoque ampliamente aceptado ha sido la arquitectura cliente servidor. Actualmente se desea extender estos sistemas con aplicaciones basadas en Web, donde los datos pueden ser accedidos desde dispositivos ms pequeos y porttiles ampliando as la infraestructura de la empresa. 2. Convergencia a los dispositivos mviles Se plantea la idea ya expuesta anteriormente en la caracterizacin de los dispositivos tecnolgicos en general, donde distintos dispositivos convergen en otros que combinan funcionalidades. 3. Mayor capacidad de almacenamiento Los equipos mviles que soportan operaciones de negocios requieren almacenar una gran cantidad de datos. Las manufactureras de hardware han desarrollado una gama de medios de almacenamiento porttil de capacidades variadas, cuyos costos han decrecido con el tiempo. 4. Mayor ancho de banda en conectividad inalmbrica Ya pueden observarse proveedores de conexiones a redes inalmbricas. El ancho de banda para conectividad local y de rea amplia se ha venido incrementado en los ltimos tiempos y los operadores inalmbricos han hecho nfasis en ampliar las reas de cobertura y proveer servicios confiables. La idea de los sistemas que implementan tecnologas mviles es en ltima instancia la de sistemas sin fronteras. No solo es posible que las aplicaciones trasciendan el mbito fsico de la empresa (lo cual ya fue posible mediante redes computacionales) sino que adems, su utilizacin no debe confinarse a espacios fijos. El usuario cuenta con la libertad de trasladarse y operar su sistema ampliado. Cules son los beneficios ECONMICOS de la implementacin de tecnologas mviles? Douglas Dedo en [MS03.0] reconoce que hay enfoques predeterminados que son los que tienen mayor probabilidad de producir un rpido retorno de la inversin a la organizacin. Esto implica que se debe evaluar de antemano el tipo de proyecto que se quiere implantar. No se garantiza el xito porque se trate de una solucin mvil.

Enfoques:Conversin de procesos basados en papel a aplicaciones basadas en formularios La recoleccin de datos con papel es inherentemente lenta, inexacta y propensa a errores. La migracin de procesos de recoleccin manual a procesos automatizados mediante formularios electrnicos en dispositivos mviles tiene la cualidad de acelerar la captura de los datos, facilitar el flujo y tener un control sobre las entradas. Los beneficios econmicos se evidencian en: mayor nmero de transacciones posibles en el mismo tiempo que un proceso manual reduccin de altos costos para la correccin de errores supresin del costo de ingreso de datos al sistema principal incremento en la satisfaccin de los clientes debido a una atencin ms eficiente Renovacin de antiguos dispositivos porttiles El mantenimiento y soporte necesario que requieren los antiguos equipos mviles, tales como lo que usan MS-DOS, tiene un costo creciente. El reemplazo de stos por equipos actuales disminuye el costo total de propiedad de los mismos y los nuevos dispositivos permiten explotar las ventajas tecnolgicas modernas que reducen los costos. Las variables en las que se aprecian reducciones son: costos en la actualizacin de hardware costos del desarrollo de software, debido a herramientas de generacin automtica de cdigo, entornos familiares, etc. costos de las comunicaciones inalmbricas, pues lo dispositivos modernos pueden transmitir ms datos en la misma unidad de tiempo

13

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Aplicaciones basadas en Web Hay organizaciones que necesitan que sus aplicaciones tengan un amplio alcance, accesibles para todo pblico posible. En estos casos, no es posible ser elitistas a la hora de determinar qu dispositivos soportarn las aplicaciones; deben ser accedidas desde mltiples dispositivos fabricados por las manufactureras existentes y en diversas plataformas de hardware y software. Para ello existen lenguajes para la representacin e intercambio de datos, como XML, que combinados con soluciones de empresas particulares ofrecen un buen grado de abstraccin respecto de los detalles de implementacin especficos. Los beneficios econmicos se observan en: los costos de desarrollo de sistemas cooperativos. Ejemplo: el proveedor de autopartes que suministra piezas de forma automtica por medio de una interfaz de software con la automotriz los costos de desarrollo de ampliacin de lneas de venta los costos de desarrollo y mantenimiento en general. Qu partes clave intervienen en el desarrollo de soluciones mviles? Se requiere el trabajo de diversos grupos industriales y organizaciones para lograr soluciones mviles integrales. [MS01.0] y [MS03.1] indican los siguientes sectores: manufactureras de dispositivos mviles manufactureras de dispositivos perifricos y de chips proveedores de servicios de red inalmbricos proveedores de soluciones mviles (proveen la experiencia) desarrolladores de software empresarial para dispositivos mviles Considero oportuno agregar los siguientes sectores: proveedores de software y entornos de desarrollo para dispositivos mviles organismos de estandarizacin 1.4 La Arquitectura de un Dispositivo Mvil Figura 1.2 Arquitectura de Pocket PC

Arquitectura de Hardware Pocket PC La figura 1.2 muestra la arquitectura de un dispositivo mvil Pocket PC estndar. Existen tres componentes principales: la unidad central de proceso (CPU) una unidad de memoria de slo lectura (que puede ser tecnologa Flash) una unidad de memoria RAM La unidad central de proceso es la encargada de llevar a cabo las operaciones aritmticas y lgicas, es decir, el procesamiento de la informacin. La unidad de memoria de slo lectura contiene el sistema operativo con todos los elementos necesarios para su funcionamiento: archivos de inicio del sistema, drivers11 y aplicaciones que vienen empotradas de fbrica. Esta memoria mantiene la informacin con independencia de la alimentacin elctrica y no es accesible al usuario para realizar escrituras. La unidad de memoria RAM contiene varias secciones: la pila de ejecucin (stack), el heap (montn) que es la zona donde las aplicaciones almacenan los objetos solicitados de forma dinmica, secciones11. Los drivers (o controladores) son piezas de software que permiten al sistema operativo la administracin de un dispositivo hardware.

14

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

reservadas para uso del sistema operativo y el sistema de archivos. Todos los datos, archivos y aplicaciones que incorpore el usuario se almacenan en memoria de ejecucin. Sabemos que la memoria RAM es voltil, es decir, si es desconectada de la alimentacin pierde toda la informacin contenida en ella. No obstante, la arquitectura de Pocket PC incluye una batera interna de resguardo que mantiene alimentada la memoria por si ocurren problemas con la batera de operacin (puede que se descargue, falle, no est disponible). La batera interna no es accesible al usuario. A continuacin se muestra la figura 1.3 tomada de [SDK03.1] a fin de visualizar los componentes bsicos de un Pocket PC. Figura 1.3 Componentes de Pocket PC

Pantalla Sensible al Tacto La pantalla de LCD tiene un tamao estndar de 240x320 pixels de resolucin de orientacin apaisada, con tamaos de punto que varan de .22 a .24 mm. segn el fabricante. Se puede tocar la pantalla con el stylus o bien con la mano, lo cual tiene un efecto similar al uso del mouse. Soporta una profundidad de color de hasta 16 bits por pxel. Stylus y Teclado Pocket PC no tiene un teclado hardware estndar. En cambio, ofrece un teclado emulado por software con disposicin QWERTY12 usando el stylus y reconocimiento de escritura sobre la pantalla. Botones de Navegacin Se proveen una serie de controles de navegacin. Permiten ampliar las opciones de control de las aplicaciones y pueden ser presionados, sostenidos, hacerles doble clic y presionados conjuntamente con otros controles. Entre ellos figuran: Tecla de encendido/apagado Tecla de accin (Enter) Control flecha arriba Control flecha abajo Teclas de programas (inician aplicaciones) Tecla de grabacin de voz CPU La familia de Pocket PC viene equipada con procesadores marca ARM que priorizan el bajo consumo de energa y la performance. Memoria Los equipos actuales incluyen al menos 24 MB de memoria ROM y 16 MB de RAM para la ejecucin. A fin de conservar la memoria RAM disponible, algunos componentes del sistema operativo vienen incluidos en la ROM. Algunas manufactureras equipan al dispositivo con puertos para memoria Flash a fin de expandir las capacidades. Energa Los equipos llevan una batera a fin de operar con independencia de la red elctrica durante varias horas. Incluyen internamente una batera de seguridad para evitar la prdida de datos si la batera principal falla.

12. Disposicin de las teclas en teclados estndar de idioma ingls.

15

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Audio Incluyen speakers para que el usuario pueda or audio y algunos fabricantes proveen una entrada de audio para conexin a otros equipos de audio. Puerto Serie Incluye un puerto serie de conexin cuya velocidad de transferencia varia entre 19.2 Kbit/segundo hasta 115Kbit/segundo. Este puerto est pensado para la conexin del dispositivo a una computadora de escritorio o a otros dispositivos. Algunos fabricantes proveen un puerto USB en vez del serie. Puerto Infrarrojo Pocket PC incluye en puerto de comunicaciones infrarrojo que se adapta a las especificaciones Infrarred Data Association (IrDA). Arquitectura Smartphone Figura 1.4 Arquitectura de Smartphone

La figura 1.4 muestra la arquitectura de un dispositivo Smartphone. Existen tres componentes principales: la unidad central de proceso (CPU) una unidad de memoria de almacenamiento permanente (puede ser tecnologa Flash) una unidad de memoria RAM Al igual que en Pocket PC, la unidad central de proceso es la encargada de llevar a cabo las operaciones aritmticas y lgicas, es decir, el procesamiento de la informacin. La unidad de memoria de almacenamiento permanente contiene el sistema operativo con todos los elementos necesarios para su funcionamiento: archivos de inicio del sistema, drivers y aplicaciones que vienen empotradas de fbrica. La diferencia fundamental con Pocket PC es que en este dispositivo el sistema de archivo (por ende archivos de usuario) reside en esta memoria no voltil; no es necesaria una batera de resguardo. Por ltimo, la memoria RAM es exclusivamente para la ejecucin del sistema operativo y aplicaciones. La figura 1.5 tomada de [SDK03.0] muestra los componentes de hardware bsicos: Figura 1.5 Componentes bsicos de Smartphone

CPU Los equipos cuentan con un procesador de 32 bits. Memoria Poseen un mnimo de 4MB de RAM dinmica y un mnimo de 8MB de ROM o tipo Flash. Pantalla No posee caractersticas de sensibilidad al tacto. Las dimensiones estndar son 176x220, 160x240 y 208x240 pxel, con un tamao de punto de 0.20 mm., orientacin apaisada y profundidad de color de 8 o 16 bits por pxel para pantallas color. 16

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

USB Incluye soporte Universal Serial Bus cliente hasta 12Mbits/segundo Teclado Incluye un conjunto de teclas para: encendido flechas de desplazamiento (arriba, abajo, izquierda y derecha) botn de accin volver atrs enviar detener dgitos alfanumricos, *, # tecla de grabacin de voz. Energa Bateras recargables con autonomas de acuerdo a los niveles requeridos. Audio Incluye micrfono, speaker y hardware de grabacin. Algunos fabricantes proveen conectores de audfonos externos. Diferencias Principales entre Pocket PC y Smartphone Tabla 1.1 Diferencias Principales entre Pocket PC y SmartphonePocket PC Procesador Procesadores actuales hasta 400 MHz. memoria estndar de 64 y 128 MB Smartphone Menor capacidad de procesamiento, actualmente hasta 120 MHz. Menor cantidad de memoria RAM, aproximadamente 16 MB

Memoria RAM

Memoria ROM Memoria FLASH Sistema de archivos Display

entre 32 y 48 MB opcin de tarjetas externas en RAM con batera de seguridad tamao estndar de 240x320 pxeles (TFT) pantalla sensible al tacto stylus teclado software teclas hardware de accin grabador de voz 90-200 gramos 4-12 horas de uso 64 MB, 32 disponibles en memoria Flash, mas lento que RAM tamao estndar de 176x220 pxeles (TFT) teclado alfanumrico teclas hardware de accin tecla por software (softKey)

Entrada

Peso aproximado Autonoma Bateras

80-150 gramos 4-7 horas de habla 100-170 horas en inactividad Modo ocioso (idle): A diferencia de PPC, necesita estar siempre encendido por ser un telfono celular. El sistema operativo siempre est ejecutndose para mantener la pantalla funcionando, an cuando el usuario no realiza ninguna accin. No obstante, existe un modo de ahorro de energa. No existe un control de cierre de aplicaciones. Simplemente, se ejecuta otra opcin. Las aplicaciones se cierran automticamente en base a la disponibilidad de memoria. Esto requiere un diseo especial del comportamiento de las aplicaciones.

Adm. de la energa

Modo de inactividad (standby): Cuando no se utiliza, se apaga completamente el sistema operativo y lo nico que se mantiene encendido es el CPU en espera de la activacin de la tecla Power (encendido)

Cierre de aplicaciones

Las aplicaciones proveen un control para que sean finalizadas como en W indows de escritorio.

17

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Adecuacin de los dispositivos al contexto mvil Los dispositivos mviles estn pensados para ser incorporados a las actividades diarias de las personas que los necesitan. Sus caractersticas fsicas y de diseo determinan el grado de adecuacin que ofrecen. Un equipo porttil que pesa 3 Kgs. es de esperar que sea rechazado por algunos usuarios, dada la falta de practicidad de traslado que presenta. A continuacin se muestran dos tablas con valores aceptables e ideales para algunas variables que indican el grado de usabilidad, para Pocket PC y Smartphone respectivamente: [MS03.1] Tabla 1.2 Valores de adecuacin para Pocket PCVolumen del dispositivo Peso Autonoma de uso efectivo (procesamiento) Autonoma en modo de inactividad aceptable: ideal: aceptable: ideal: aceptable: ideal: aceptable: ideal: hasta 135 cc. hasta 110 cc. hasta 170 gr. hasta 140 gr. 8 horas 15 horas 100 horas 150 horas

Tabla 1.3 Valores de adecuacin para SmartphoneVolumen del dispositivo Peso Autonoma de uso efectivo (procesamiento sin uso de radio) Autonoma en modo de inactividad Autonoma de uso del telfono celular (hablando) aceptable: ideal: aceptable: ideal: aceptable: ideal: aceptable: ideal: aceptable: ideal: hasta 100 cc. hasta 80 cc. hasta 110 gr. hasta 80 gr. 8 horas 12 horas 100 horas 150 horas 3 horas 4 horas

Limitaciones generales de los dispositivos mviles Se presenta la siguiente lista a modo de ofrecer al lector una idea general de las restricciones que poseen algunos equipos: Display de tamao pequeo, el rea de trabajo es crtica No poseen teclado (generalmente) Si poseen teclado es pequeo y de funcionalidad reducida Los procesadores son menos poderosos que los PC de escritorio y notebooks Tienen poca memoria RAM No tienen medios de almacenamiento magntico/ptico de alta capacidad Las bateras tienen duracin muy limitada La actualizacin del software no puede hacerse directamente a travs de perifricos como disquete, CD, etc. Se requieren enlaces a una PC. Es limitada la oferta de perifricos Hay muchos perifricos que no se han desarrollado para estos equipos: scanner La escalabilidad de hardware es limitada No dan posibilidad de opcin del sistema operativo La conexin a perifricos no porttiles esta supeditada a la existencia de los conectores fsicos y de los controladores para el sistema operativo. No son adecuados para la ejecucin de software de graficacin

18

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

2.1 Conceptualizacin del Ambiente de desarrollo de aplicaciones mviles con Compact FrameworkPara desarrollar aplicaciones mviles debe hacerse la eleccin del ambiente de desarrollo. Cada ambiente se forma mediante una configuracin particular de metodologas, modelos de programacin, herramientas, documentacin de apoyo a la implementacin y hardware. Una metodologa es un conjunto de procedimientos que permiten producir y mantener un producto de software. La metodologa define fases del ciclo de vida del software de las que se va a ocupar. Los modelos de programacin consisten en estilos y tcnicas de implementacin de acuerdo a tecnologas o plataformas particulares. Entre las herramientas estn los lenguajes, compiladores, depuradores (debuggers), emuladores, etc., idealmente contenidos en un entorno integrado de desarrollo. Si no se hallan integrados en un entorno nico, cada herramienta funciona de manera aislada y la integracin requiere un esfuerzo adicional que implica tiempos y costos extras. La documentacin de desarrollo suele presentarse bajo la forma de kits que contienen documentos electrnicos con guas, prcticas habituales e informacin acerca de los modelos de programacin. El hardware est formado por los dispositivos mviles objetivo para los cuales se desarrolla y por los equipos de escritorio necesarios para ejecutar los entornos de desarrollo. El proceso de implementacin en s ocurre en los equipos de escritorio. La figura 2.1 a continuacin representa el grfico general de un ambiente de desarrollo de aplicaciones mviles. Figura 2.1. Ambientes de desarrollo de aplicaciones mviles

En esta tesina se propone incorporar el uso de un marco de trabajo al ambiente de desarrollo de aplicaciones mviles. Un marco de trabajo provee idealmente tres elementos: [CP00] 1. un envoltorio (algn nivel de abstraccin) 2. una arquitectura 3. algn mtodo Un envoltorio ofrece la abstraccin necesaria para simplificar al desarrollador el acceso a las tecnologas de base. Puede materializarse, por ejemplo, a travs de un lenguaje intermedio independiente de plataforma de software/hardware, una librera de funciones que den acceso consistente a los servicios del sistema operativo, una API, etc. La arquitectura es la manera en que se relacionan los componentes y tiene un diseo especfico. El entorno que controla las condiciones de ejecucin del cdigo, la especificacin de los mecanismos de interaccin de componentes, la especificacin de cmo llevar a cabo la reusabilidad, las libreras de clases que ofrecen funcionalidad ya desarrollada, son posibles elementos que, juntos, conforman la arquitectura. Un mtodo es la manera en que se lleva a cabo el desarrollo. Refuerza la adopcin de una manera consistente de desarrollar aplicaciones. Puede emplearse, por ejemplo, el mtodo de orientacin a objetos y programar para lograr la reusabilidad. Considero que un marco de trabajo puede definir mtodos, pero stos se aplican siguiendo una metodologa aparte que no forma parte del marco. El marco de trabajo propuesto es el Microsoft Compact Framework y ser definido en las siguientes secciones de este mismo captulo. De ah en adelante, todos los temas tratados se basarn en el funcionamiento de este marco. Herramientas para el desarrollo de aplicaciones mviles Las herramientas que se proveen para el desarrollo de aplicaciones mviles siguen en general alguno de los siguientes esquemas de codificacin [MS03.6]: Uso de cdigo nativo. El cdigo fuente es compilado y se genera cdigo de mquina de una plataforma 19

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

especfica. Se utiliza para aplicaciones que requieren acceso directo al hardware, cdigo mquina de tamao reducido y alta performance. Uso de cdigo administrado13. El cdigo fuente es compilado a un lenguaje intermedio que es administrado por un gestor de ejecucin. Se utiliza para aplicaciones que requieren un desarrollo rpido, seguro o existe la necesidad de introducirlas rpidamente en el mercado. Uso de cdigo de servidor. Se trata de un conjunto simple de cdigo para dispositivos mviles que poseen un ancho de banda garantizado. Hasta el momento, la empresa desarrolladora del Compact Framework ha propuesto una serie de herramientas para el desarrollo en implementacin de aplicaciones mviles. Las herramientas ms usuales han sido: eMbedded Visual C++ 3.0/4.0: Genera cdigo nativo ptimo para la produccin de drivers o software que opera con el hardware Debe interactuar con la API de la plataforma Adecuado para aplicaciones que requieren recursos intensivos de procesamiento Programacin de juegos de alta performance eMbedded Visual Basic 3.0: Genera cdigo que es interpretado. Facilita el diseo de interfaces grficas Requiere un mdulo de ejecucin especial llamado Visual Basic Runtime La empresa desarrolladora recomienda que los nuevos desarrollos sean hecho en Visual Basic .NET y que esta herramienta se use para mantenimiento de aplicaciones ya hechas. Visual Studio .NET 2003: un entorno integrado de desarrollo para .NET La idea central es proveer un entorno integrado de desarrollo que tenga las mismas herramientas, lenguajes y modelos de programacin para aplicaciones de escritorio, de servidor y mviles. De esta forma, no sera necesario un reentrenamiento completo14 de los desarrolladores que ya cuentan con experiencia, lo cual es muy costoso. As, los programadores pueden emplear la experiencia ya adquirida en los lenguajes .NET y en el uso de las herramientas de desarrollo. La forma de abordar la construccin de los distintos tipos de aplicaciones es mediante el uso de proyectos. Se proveen varios tipos de proyectos y el ambiente de desarrollo adapta sus caractersticas, documentacin y opciones disponibles para cada proyecto. Las caractersticas principales que ofrece el entorno son: [MS03.5] Todos los lenguajes comparten el mismo diseador visual, interfaz de edicin de cdigo inteligente15, acceso a compiladores/debuggers16 y herramientas de diseo de bases de datos. Existen las mismas facilidades de acceso a datos para todos los proyectos, mediante ADO .NET. Se basa completamente en XML y permite trabajar con datos locales y remotos. Permite la integracin de sistemas heterogneos mediante el uso de servicios Web basados en XML, usando protocolos abiertos de Internet. Ofrece emuladores especficos de dispositivos mviles. Esta caracterstica es muy til ya que el desarrollador no requiere hardware adicional para realizar el desarrollo de una aplicacin mvil. Los emuladores que se proveen son muy fieles a los dispositivos porque se ejecuta el sistema operativo real del dispositivo objetivo en un proceso local, es decir, no es una simulacin. La parte que se simula es la interfaz grfica de usuario que incluye la pantalla y las teclas hardware de los dispositivos. En la versin 2003 se incorpor un conjunto de herramientas de gran utilidad denominadas Smart Device Programmability (SDP), ms conocido como Smart Device Extensions (SDE). Tiene el fin de dar soporte a los desarrolladores que utilizan el Compact Framework y es la parte que permite que los desarrolladores puedan generar aplicaciones mviles de forma similar al desarrollo de aplicaciones de Windows de escritorio. Cuando el programador desea probar sus aplicaciones existe la posibilidad de ejecutarlas sobre el emulador o sobre el dispositivo real. Si se cuenta con el dispositivo fsico, el entorno13. Este concepto ser ampliado posteriormente en este captulo por ser el esquema adoptado por el Compact Framework 14. Sin embargo, los desarrolladores de aplicaciones mviles deben conocer y adoptar algunas nuevas prcticas de diseo e implementacin para hacer frente a las restricciones actuales que poseen algunos dispositivos. Estos temas se tratan en el captulo 3. 15. Indica palabras reservadas, muestra la sintaxis de mtodos e informacin de mtodos y clases, y reduce la cantidad de texto que debe tipear el usuario. 16. El proceso de debugging consiste en la depuracin de los errores que contenga la aplicacin. El entorno ofrece facilidades como inspeccin de variables, punto de corte en la ejecucin y ejecucin paso a paso.

20

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

de desarrollo determina automticamente qu archivos y recursos necesita, y comienza la transferencia de datos. Concluida la transferencia, puede iniciarse el proceso de debugging. La funcin de depuracin remota permite realizar la correccin del cdigo para ejecucin local emulada o si es realizada en el dispositivo fsico.

ASP.NET Como complemento del Smart Device Extensions existe el Microsoft Internet Mobile Toolkit (MMIT). Es una extensin del Compact Framework y del Visual Studio para el desarrollo de aplicaciones Web mviles. Permite que los diseadores utilicen Visual Studio para que las aplicaciones Web mviles adapten su forma de presentacin automticamente de acuerdo al dispositivo en que se ejecuten. ASP no instala componentes en el dispositivo mvil, lo que hace es producir cdigo ejecutable en el servidor para adaptar la disposicin en pantalla a los distintos navegadores Web. Genera cdigo HTML, Compact HTML y Wireless Markup Language (WML). La tabla 2.1 a continuacin muestra las herramientas que ofrece la empresa desarrolladora del Compact Framework para las distintas opciones de entornos de ejecucin de cdigo, mientras que la tabla 2.2 muestra las herramientas que soporta cada plataforma y cules de ellas han sido las ms utilizadas por los desarrolladores. Tabla 2.1 Herramientas disponibles segn tipo de cdigoHerramientas Microsoft cdigo nativo cdigo interpretado cdigo de servidor cdigo administrado eMbedded Visual Tools 3.0: Visual C++ eMbedded Visual Tools 3.0: Visual Basic 3.0 ASP .NET Compact Framework Visual Studio .NET eMbedded Visual C++ 4.0 eVB Runtime

Tabla 2.2 Herramientas soportadas por cada plataforma mvileMbedded Visual C++ 3.0 Pocket PC/2002 Smartphone 2002 Pocket PC 2003 Smartphone 2003 eMbedded Visual Basic eMbedded Visual C++ 4.0 Compact Framework ASP .NET

? ?

?

?

? ?

? ?

? ?

? ?

?

Indica que la herramienta est soportada por la plataforma Indica que ha sido la herramienta ms utilizada

2.2 El marco de trabajo de Microsoft .NET Compact Framework Presentacin del .NET Compact Framework La idea central de .NET es un conjunto de software para conectar personas, sistemas, informacin y dispositivos a travs del uso de XML Web Services. El marco de trabajo .NET compacto proviene del marco de trabajo .NET estndar. Ambos pueden ser definidos en base a sus dos componentes principales, un entorno que administra la ejecucin de las aplicaciones y provee abstraccin respecto de su plataforma subyacente y por otra parte, una extensa librera usada por los desarrolladores para construir las aplicaciones, la .NET Base Class (FCL, Framework Class Library). FCL representa la API17 para el Framework y por ello todas las implementaciones .NET soportan la librera. Debe quedar claro que el Framework no es un sistema operativo, Windows es el sistema operativo y su API sigue ejecutndose de manera indirecta, es decir, no es el usuario quien invoca a la API directamente17. En ingls, Application Programming Interface, que permite a los usuarios utilizar primitivas de programacin del sistema operativo.

21

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

sino el gestor de ejecucin. El gestor, llamado Common Language Runtime (CLR) se sita en una capa intermedia entre el sistema operativo y las aplicaciones. El Compact Framework es una versin reducida respecto del Framework estndar, compuesto por: a. un subconjunto de las libreras que forman la .NET Base Class b. un superconjunto que incorpora a la librera nuevas clases que son de utilidad para el desarrollo de aplicaciones en dispositivos mviles c. una nueva implementacin del CLR Figura 2.2 .NET Framework Base Class Library Vs .NET Compact Framework.NET Framework (estndar) Librera Base ClassSubconjunto

Compact Framework

Porqu incluye un subconjunto de las clases que forman la Base Class Library? Como ya se ha tratado anteriormente, los dispositivos mviles cuentan con importantes restricciones en cuanto a su capacidad de memoria para ejecucin y de almacenamiento. Dado que el Framework es requerido para la ejecucin de todas las aplicaciones .NET, es de esperar que ste no ocupe demasiado espacio en relacin a las capacidades de los dispositivos. No obstante, la implementacin del Compact Framework es muy completa y reducida18 en tamao a la vez. Omite las clases que no agregan utilidad directa en el dominio de las aplicaciones mviles o aquellas que pueden contar con una implementacin alternativa que representen menor requerimiento de espacio de almacenamiento. Especficamente, se excluyeron aquellas clases que exponen servicios disponibles en computadoras con Windows de escritorio y dichos servicios no estn soportados por Windows CE19, aquellas clases que implementan funciones no usadas comnmente en dispositivos mviles y aquellas demasiado costosas de implementar computacionalmente. El marco reducido excluye selectivamente, adems, algunas clases, mtodos, enumeraciones e interfaces. A continuacin se expone una sntesis de algunas caractersticas excluidas: Tabla 2.3 Algunas caractersticas excluidas en .NET Compact Framework Caracterstica Serializacin Descripcin BinnaryFormater se utiliza para la serializacin binaria de objetos y SoapFormatter para la serializacin con el protocolo SOAP. Se han excluido por consideraciones de tamao y performance, no obstante existen alternativas para la serializacin utilizando XML. Se piensa que los dispositivos mviles suelen ser para la recoleccin de datos y consulta de informacin. La impresin ha sido de inters slo para una minora de usuarios y adems el sistema operativo PocketPC no la soporta. Esta caracterstica ha sido librada a terceros proveedores. La caracterstica de comunicarse con componentes remotos en otras mquinas puede ser implementada utilizando XML Web Services

Soporte para la impresin

Remoting

18. Tiene un tamao de 1,5 MB aproximadamente (referencia de compilacin en un procesador marca ARM, ampliamente utilizados en PDA) 19. W indows CE es un sistema operativo de la compaa Microsoft pensado para dispositivos que llevan software empotrado en general, entre ellos algunos dispositivos mviles.

22

Tesinas Formularios Web

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles... Las clases que integran el espacio de nombres System.Web, incluyen caractersticas de servidor. El servicio de contenidos Web no se considera parte del dominio de las aplicaciones mviles, dado que stas se comportan generalmente como clientes. Consiste en permitir a las aplicaciones invocar a objetos COM, probablemente heredados. Se ha excluidos por razones de espacio de almacenamiento. Una prctica comn es desarrollar aplicaciones cuya nica funcin consiste en bajar de Internet la ltima versin de una assembly20 .NET y ejecutarla en el cliente. Esta modalidad presupone la existencia de una conexin consistente a la red, lo cual no ocurre en el caso de dispositivos mviles. Adems el marco de trabajo compacto no dispone de cach para las bajadas de archivos. Esta caracterstica, es si duda, una de las ms importantes en el mbito de las aplicaciones mviles y an as ha sido excluida. Encontramos aqu una deficiencia importante que requiere una solucin alternativa. No surge precisin de porqu no ha sido incluida en el marco, pero presupongo que se debe a cuestiones de performance. La encriptacin requiere importantes recursos de procesamiento y almacenamiento.

Interoperabilidad COM

Desplegar Internet

Criptografa

Porqu se han incorporado nuevas clases al Compact Framework? El Framework completo no incluye en su librera de clases utilidades especiales para el desarrollo de aplicaciones mviles. Los gestores de bases de datos para equipos de escritorio usualmente requieren grandes espacios de almacenamiento, por ello se desarrollaron versiones especiales de servidores de bases de datos como SQL Server CE21. Para que las aplicaciones mviles .NET hagan uso de los datos, se incluyeron en la librera clases especiales para el manejo de datos en este servidor. Dicha librera es System.Data.SqlServerCe. Por otro lado, para dar soporte a comunicaciones infrarrojas se crearon clases para las ya existentes libreras System.Net y System.Net.Sockets. Para dar soporte al software input panel (SIP22) y a la comunicacin entre procesos tambin se han incorporado nuevas clases. Porqu provee una nueva implementacin del CLR? En vista de las limitaciones de los equipos mviles expuestas en el Captulo 1, el entorno de ejecucin de aplicaciones .NET debi adaptarse por razones de: performance optimizacin de recursos ahorro de energa para maximizar la utilizacin de las bateras Arquitectura del Compact Framework La figura 2.3 muestra cmo se organiza el marco de trabajo en base a sus dos componentes principales. El bloque de aplicaciones (externo al marco de trabajo) representa el cdigo intermedio MSIL de cualquier aplicacin .NET. El cdigo ser ejecutado y gestionado por el Common Language Runtime a fin de aislar la20. Concepto que ms adelante se desarrollar. De forma sinttica, es una unidad lgica que incluye el cdigo intermedio de la aplicacin e informacin adicional para la correcta gestin de la misma (metadatos). 21. SQL Server CE es una versin reducida de SQL Server de la compaa Microsoft, para el uso en dispositivos mviles de capacidades limitadas. 22. Es la forma es que los PDA ingresan sus datos, por medio de un teclado emulado por software.

23

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

aplicacin de otras que puedan interferir en su ejecucin normal, crear condiciones de seguridad y proveer independencia del sistema operativo de fondo. La librera de clases aporta funcionalidad extra a las aplicaciones y un marco consistente de orientacin a objetos. Figura 2.3. Ejecucin de aplicaciones en Compact FrameworkAplicaciones .NET para mvilesExterno al Compact Framework

CLR

.NET Base Classes

Representa Interaccin

Sistema Operativo Hardware

El uso de las clases ya incorporadas al Framework es una de las ventajas mayores porque facilitan notablemente al programador la tarea de implementacin y de acceso a servicios del sistema operativo. La .NET Base Class es una gran coleccin de clases de cdigo administrado, las cuales son provistas por la empresa creadora del Framework y permiten al desarrollador hacer cualquier tarea que anteriormente se haca con el API de Windows. Las clases se organizan segn un esquema de herencia simple y siguen el mismo modelo de objetos que utiliza el lenguaje intermedio, por esto es posible instanciar una clase de la librera o derivarla en una nueva que incorpore funcionalidad adicional. Lo ms destacable de esta jerarqua de clases es su relativa facilidad de uso y su gran cobertura del API de Windows. A continuacin se muestra una tabla con algunas reas de cobertura de las clases en el Compact Framework: Tabla 2.4 Algunas reas de cobertura de clases en el Compact Framework rea Diseo de formularios tipo Windows Elementos para graficacin en 2D Soporte para XML Acceso a datos Servicios de cliente Web Seguridad Conectividad Colecciones de datos Servicios de tiempo de ejecucin Manejo de Texto Entrada y salida Espacio de nombres que la implementa System.Windows.Forms System.Drawing System.Xml System.Data System.Web System.Security System.Net System.Collections System.Runtime System.Text System.IO

En [MS01.1] se propone una organizacin esquemtica de las libreras de clases del Compact Framework:

Figura 2.4 Distribucin de las clases en Compact FrameworkFormularios Windows Servicios Web XML

Datos y XML

Base Classes

24

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Formularios Windows: contiene las clases necesarias para construir GUIs23. Servicios Web XML: contiene clases para que la aplicacin mvil pueda ser cliente XML de servicios web. Datos y XML: estn las clases para acceso a datos y para la conversin de contenedores de datos ADO.NET a XML y viceversa. Base Classes: incluye los tipos de datos primitivos, estructuras de datos de uso frecuente como arrays, funciones de entrada y salida, seguridad y funciones para globalizar las aplicaciones. El procedimiento genrico para el desarrollo de una aplicacin en esta arquitectura es el siguiente: los desarrolladores eligen un lenguaje soportado por el marco de trabajo y construyen sus aplicaciones. Al ser compiladas se transforman en MSIL24, que es una representacin intermedia independiente de la plataforma de hardware y software subyacente. El linker25 empaqueta este cdigo junto a las referencias hechas a las Base Classes y posteriormente es recompilado a cdigo de mquina para ser ejecutado en cualquier plataforma que provea una implementacin del Framework.

El gestor de tiempo de ejecucin (CLR) y cdigo administrado La unidad de ejecucin del Compact Framework es la assembly, una estructura lgica que resulta de la compilacin y enlace del cdigo. Posee carcter lgico porque puede estar contenida en uno o ms archivos fsicos de tipo .dll o .exe. Tiene una cierta similaridad con las antiguas DLLs, pero esta estructura es completamente autodescriptiva, pues, incluye el cdigo MSIL de la aplicacin junto a metadatos26 que describen la assembly. Los metadatos se guardan en una seccin especial denominada manifiesto27, que contiene informacin acerca de los tipos28 de los miembros29, y referencias a otras assemblies. Con esta informacin complementaria, el gestor de tiempo de ejecucin tiene instrucciones especficas acerca de cmo ejecutar el cdigo. Las assemblies facilitan, adems, el control de versiones de componentes de software por medio de nmeros de identificacin que se guardan en el manifiesto. Una vez creada la assembly hemos pasado la primera instancia de compilacin pero an no se ejecuta la aplicacin. Es a partir de ahora donde el CLR toma un rol protagnico. Se encarga de: cargar una assembly (cdigo ya compilado a MSIL) crear un dominio de aplicacin30 para que se ejecute el cdigo contenido en la assembly utilizar un compilador JIT para compilar los mtodos a cdigo nativo que corrern en el procesador local administrar el recurso de memoria: alocacin y recoleccin de basura31 garantizar condiciones de seguridad: tratamiento de excepciones, permisos, etc. Vamos ahora a explicar por partes la funcin del Common Language Runtime. Carga de assemblies y creacin de dominios de aplicacin: Situndonos anteriormente a la tecnologa de .NET, los procesos [STA01] se utilizaban como unidades de aislamiento, es decir, cada proceso contaba con su imagen de memoria para el cdigo, pila de ejecucin y datos. Por lo tanto, una aplicacin se ejecutaba en un proceso y no poda escribir en la imagen de memoria de otro proceso y consecuentemente corromper la aplicacin. El encargado en este modelo de trabajo era el sistema operativo, quien para cada aplicacin asignaba un proceso de ejecucin. Con la arquitectura .NET surge un nuevo lmite para las aplicaciones, el dominio de aplicacin. En un entorno con cdigo administrado por el CLR se puede asegurar que una aplicacin no podr acceder al rea de memoria de otra aplicacin, aunque se ejecuten en el mismo proceso. De esta forma, mltiples aplicaciones pueden correr en un proceso simple pero cada una lo har en su dominio de aplicacin. El control del dominio de aplicacin es exclusivo del CLR. El modelo de los dominios de aplicacin puede verse de manera esquemtica mediante la siguiente grfica:

23. En ingls, Graphic User Interface que significa interfaz grfica de usuario. 24. En ingls, Microsoft Intermediate Language que significa lenguaje intermedio Microsoft. 25. La funcin del linker (enlazador) es crear una unidad de carga que consiste en programas y datos, para que el loader (cargador) del CLR los lleve a memoria de ejecucin. 26. Informacin sobre los propios datos. 27. Traduccin al espaol de la denominacin Microsoft manifiest 28. [GUE98] Ghezzi define el concepto de tipo como la especificacin del conjunto de valores que pueden ser asociados a un miembro, junto a las operaciones vlidas usadas para crear, acceder y modificar sus valores. 29. Mtodos y variables de las clases 30. Traduccin al espaol de la denominacin Microsoft application domain. Es el medio por el cual el CLR permite a cdigos distintos ejecutarse en el mismo espacio de un proceso. 31. Mecanismo de administracin de la memoria RAM que libera de forma automtica y devuelve al sistema operativo el espacio en memoria solicitado previamente y que ya no es utilizado por la aplicacin.

25

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

Figura 2.5. Modelo de Dominios de AplicacinProceso 1 Dominio de Aplicacin #1 Proceso 2 Dominio de Aplicacin #2 Proceso 3 Dominio de Aplicacin #3

XDominio de Aplicacin #2

?CLRSistema Operativo

X

No permitido

Dominio de Aplicacin #4

Permitido ??

X

??

En comparacin a los procesos estndar, los dominios de aplicacin tienen ventajas adicionales. Una ventaja del uso de dominios de aplicacin es que stos pueden crearse dinmicamente, de manera que es posible parar la ejecucin de una aplicacin sin frenar al proceso que la contiene. La activacin y terminacin de aplicaciones es mucho ms econmica computacionalmente que si residieran en procesos estndar. El CLR evita las llamadas entre objetos que pertenecen a distintos dominios de aplicacin. El nuevo concepto de dominios de aplicacin significa que diferentes aplicaciones, que necesitan ser aisladas unas de otras pero adems necesitan mecanismos de comunicacin entre ellas, pueden ser ubicadas en el mismo proceso, con grandes beneficios de performance. De manera predeterminada, hay un solo dominio de aplicacin por proceso. Puede crease uno nuevo con la clase System.AppDomain.ExcecuteAssembly. La actual implementacin del cargador de Windows CE (loader) lanza un nuevo proceso y CLR para cada aplicacin en vez de chequear la existencia previa de un proceso que est ejecutando el CLR. Las aplicaciones que corren bajo el control del CLR se dicen administradas por l, de aqu surge el concepto de cdigo administrado, en oposicin al cdigo que se ejecuta por debajo del CLR accediendo directamente a los servicios del sistema operativo, el cual se denomina cdigo no administrado. El entorno de ejecucin del Compact Framework puede dividirse conceptualmente en dos secciones: la que trata con cdigo administrado y la que trata con cdigo nativo 32. Ntese que el cdigo nativo es cdigo no administrado y no necesariamente la inversa. En la primera seccin, las aplicaciones, las libreras de clases especficas y la mayora de las clases FCL son compiladas a MSIL para ejecutarse bajo el control del CLR. En la segunda seccin reside el motor de ejecucin, que en s es cdigo nativo ejecutable al igual que la capa de abstraccin de la plataforma subyacente, PAL33. Esta capa y el motor de ejecucin han sido implementados conjuntamente en un archivo llamado Mscoree.dll. Es importante aclarar que el concepto de cdigo no seguro34 no es sinnimo de cdigo no administrado. La diferencia radica en que el cdigo no seguro es etiquetado como tal para que el CLR lo identifique y permita ejecutar acciones que contravienen los principios de seguridad y la buenas prcticas de programacin en .NET, pero aun as se ejecuta bajo el control del CLR. El cdigo no administrado escapa al mbito de accin del CLR. Compilador JIT35 Hay dos instancias de compilacin en una aplicacin .NET. La primera ocurre al cdigo fuente, el cual es traducido a MSIL, antes de la ejecucin. La segunda es en tiempo de ejecucin, tras la carga de las assemblies. Se traduce el cdigo MSIL a cdigo nativo. Esta segunda compilacin es producida por el JIT compiler. El cdigo administrado debe atravesar un proceso de verificacin antes de ser ejecutado. La verificacin garantiza que una aplicacin no accede a las direcciones de memoria de otras por medio de la validacin de tipos. Antes de que cualquier mtodo pueda ejecutarse, el compilador JIT produce cdigo nativo. En este compilador se halla el verificador que asegura que todos los tipos en el cdigo han sido declarados y32. 33. 34. 35. Se refiere al cdigo de las aplicaciones en lenguaje de mquina, dependiente de la plataforma de hardware. En ingls, Platform Adaptation Layer que es una capa de abstraccin entre el motor de ejecucin y el sistema operativo. Traduccin al espaol de la denominacin Microsoft unsafe code. JIT es el acrnimo para Just-In-Time o justo a tiempo. Indica realizacin bajo demanda.

26

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

operados adecuadamente. Es consecuencia de esto que una aplicacin .NET no puede fallar a causa de conversiones de tipo inseguras, variables no inicializadas, desbordamientos de buffers o indexacin de vectores fuera de lmites. Si el CLR no puede verificar las condiciones de seguridad de tipo, simplemente rechazar la ejecucin. Validado ya el cdigo, el CLR lo ubica para que se ejecute en un dominio de aplicacin. Toma la primera porcin de cdigo, lo compila y lo ejecuta en un thread36 apropiado del programa. Cada vez que el CLR encuentra una referencia a un nuevo mtodo, ste es compilado a cdigo nativo y ejecutado. La compilacin de cada mtodo ocurre slo una vez slo cuando es referenciado, pues referencias sucesivas al mismo mtodo quedan almacenadas en una memoria cach del CLR. Este proceso tiene un beneficio especial para el Compact Framework, ya que reduce el espacio de almacenamiento requerido en dispositivos mviles: slo se compilan a cdigo nativo los mtodos que se utilizan y el cdigo restante MSIL es mucho menor en tamao que el nativo. Cuando ya no se utiliza el cdigo nativo, es descartado liberando el espacio en memoria.

Administracin de la Memoria en el CLR El recolector de basura (garbage collector) es el principal mecanismo de .NET para la administracin de la memoria de ejecucin. Hasta ahora han habido dos enfoques previos usados en sistemas Windows para administrar el uso de la memoria que se solicita dinmicamente: el primero consiste en escribir cdigo adicional para liberar recursos de memoria manualmente, el segundo, mantener objetos que hagan conteos de referencias. Esta ltima tcnica consiste en incrementar un contador de referencias cada vez que un objeto en memoria es referenciado por algn otro objeto, y decrementarlo cada vez que un objeto deja de referenciarlo. Cuando ya no existen referencias a un objeto, se lo elimina de la memoria. El primer enfoque tiene la ventaja de ser muy eficiente pero suele ser complejo de programar y propenso a errores, y el conteo de referencias es muy costoso computacionalmente. Las tcnicas mencionadas son aceptables en entornos donde el cdigo de la aplicacin accede directamente a los servicios del sistema operativo, pero en un ambiente de cdigo administrado la gestin de memoria puede hacerse de manera simple y segura. El garbage collector de .NET se basa en el principio que la memoria solicitada dinmicamente se halla en el heap38. Cuando el CLR detecta que el heap de un proceso se est ocupando en un alto porcentaje, llama al garbage collector. ste recorre las variables del cdigo que se encuentran en un determinado mbito examinando si referencian a objetos ubicados en el heap. Si no halla referencias activas, supone que ya no son accesibles por el cdigo y por lo tanto debe ser liberada la memoria que las variables utilizaban en el heap. Este proceso es no determinstico, es decir, no sabemos el momento exacto en que la recoleccin ocurrir; la tarea queda en manos del CLR. La recoleccin se ve facilitada por la forma en que ha sido diseado el MSIL, pues es de tipo seguro: una referencia alcanza para saber el tipo del objeto al que apunta. Es simple, porque el programador no necesita proveer cdigo adicional ni destructores39 para liberar recursos de memoria solicitados, se hace de forma automtica. Y es segura, porque es realizada por el CLR que maneja cdigo cuyos tipos han sido comprobados, no queda en manos de las habilidades del programador para evitar errores. Condiciones de Seguridad en el CLR Ya hemos visto que los dominios de aplicacin son una primera instancia para procurar la seguridad de las aplicaciones. No obstante, el acceso irrestricto a memoria no es la nica causa de problemas. Puede ocurrir que el cdigo escrito por un desarrollador no contemple casos en que su aplicacin tiene un comportamiento inesperado. Designaremos con el trmino excepcin40 a la interrupcin del flujo de ejecucin normal de una aplicacin, que se da de manera no deseada, y a veces, inesperada. Esto puede ser consecuencia de una operacin aritmtica no vlida, el acceso a un archivo no disponible, una asignacin que no

36. Thread (o hilo) es una unidad de ejecucin independiente contenida en un proceso. 37. El heap (o montn) es un rea reservada de un proceso para la alocacin de memoria solicitada dinmicamente. 38. Es el concepto complementario de un constructor. Algunos lenguajes de programacin permiten la peticin dinmica de memoria y se deben proveer destructores para devolver los recursos al sistema operativo. 39. No indica necesariamente un error de programacin, puede deberse tambin a errores de ingreso de datos por parte del usuario o a condiciones fortuitas. 40. La pertenencia de un lenguaje al Compact Framework est dada por la implementacin de su respectiva versin .NET, es decir, se adapta el lenguaje a este marco y se crean nuevos compiladores que lleven el cdigo fuente a MSIL.

27

Tesinas

Desarrollo de Aplicaciones Basadas en XML Web Services para Dispositivos Mviles...

cumple las reglas de tipo seguro, etc. Durante la ejecucin normal del cdigo pueden ocurrir algunas de las condiciones anteriores y es imposible continuar ejecutando el programa. La Base Class Library incluye un completo soporte para el tratamiento de condiciones de excepcin. Los desarrolladores de aplicaciones .NET pueden hacer uso de estas facilidades para controlar la ejecucin de las mismas. Es el CLR el encargado de manejar y reportar en tiempo de ejecucin las ocurrencias de excepciones, a fin de que las aplicaciones puedan realizar acciones previstas de correccin, informar al usuario y continuar su ejecucin normal. El mecanismo se plantea de manera simple: se demarca una seccin de cdigo que potencialmente podra producir condiciones de excepcin y se provee un manejador para tratar la excepcin ocurrida. Este mecanismo provee una manera conveniente de obtener detalles precisos de la excepcin ocurrida, y as poder derivar el caso a un mtodo especializado que trate la excepcin. El CLR, provee un alto nivel de confianza de que el cdigo a ejecutar es confiable en cuanto al manejo de recursos y tipos. Tambin se ocupa de aspectos relacionados a la seguridad determinados por polticas; reglas explcitas que los administradores definen para lograr aplicaciones seguras. El Framework soporta las polticas de seguridad por medio de las assemblies. Todo el cdigo se ejecuta bajo un contexto de seguridad del CLR: el gestor de ejecucin toma las polticas de seguridad establecidas por el administrador del sistema y decide qu permisos se conceden al cdigo en cada nivel. Puede controlarse a qu recursos tiene acceso cada usuario o sistema. Interoperabilidad de lenguajes y desarrollo para varias plataformas La idea bsica de la interoperabilidad de lenguajes es que teniendo clases o mtodos escritos en diferentes lenguajes pertenecientes41 al marco de trabajo .NET, tales componentes puedan comunicarse de forma directa sin la necesidad de software adicional de comunicacin de componentes. Con este enfoque, una clase en un lenguaje genrico del Compact Framework podra invocar directamente a mtodos o heredarse de una clase en otro lenguaje. Tambin podra utilizarse un mdulo escrito en un lenguaje y tratar las excepciones que lanza desde un segundo mdulo escrito en otro lenguaje .NET. El valor agregado de esta caracterstica es un aumento en la reusabilidad de componentes, pueden compartirse piezas de software escritas en diferentes lenguajes de la plataforma. Para proyectos de mediano y gran tamao los desarrolladores de aplicaciones mviles pueden dividirse las tareas segn sus distintos perfiles y an as es posible un desarrollo integrado. Como veremos posteriormente, el Compact Framework es un medio para que el desarrollo de las aplicaciones mviles no sea un rea exclusiva de personal especializado. As, desarrolladores de aplicaciones de escritorio con experiencia previa en la .NET pueden adaptarse rpidamente al desarrollo de aplicaciones mviles reduciendo costos para la organizacin, tiempo de desarrollo y de lanzamiento al mercado. La cualidad de interoperabilidad de lenguajes de .NET aporta significativamente a estos fines. Qu hace posible la Interoperabilidad de lenguajes en .NET? [WRO01.0] Son tres los elementos fundamentales de la plataforma que permiten esta cualidad: el cdigo intermedio MSIL la existencia de un sistema comn de tipos la existencia de una especificacin comn de lenguajes MSIL Una vez ms puede verse que ante situaciones donde se requiere algn nivel de integracin de elementos heterogneos se necesitan estndares, o al menos especificaciones comunes a las cuales atenerse. El primer elemento que posibilita la interaccin de lenguajes es MSIL. Este lenguaje ha sido diseado de tal forma que, inevitablemente, debe implementar algn mtodo de programacin en particular. Consecuencia de ello es que cualquier lenguaje que vaya a ser compilado a MSIL debe tener compatibilidad con el mtodo elegido. El mtodo que los diseadores de MSIL eligieron es la orientacin a objetos clsica, con un esquema de herencia simple. La decisin tomada tiene una implicacin muy importante: los conceptos de clases y herencia se definen a nivel de lenguaje intermedio. Aqu se evidencia una parte de la interoperabilidad de lenguajes. Por otro lado, esto genera limitaciones prcticas pues no todos los lenguajes existentes podran ser compilados a MSIL, al menos sin una adaptacin co