unidad 3.- construcciÓn de aplicaciones mÓviles

46
UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES 3.1 ARQUITECTURA DELCLIENTE INTELIGENTE. Como se mencionó anteriormente esta arquitectura que está comprendida en tres partes: una aplicación móvil especifica en el dispositivo móvil con persistencia de datos, un servidor de sincronización y unas bases de datos empresariales. Cliente Inteligente: El cliente inteligente es una aplicación móvil ejecutada y desplegada en mi dispositivo con persistencia de datos. Provee acceso offline a datos que previamente han sido cargados en las bases de datos de mi dispositivo móvil. Servidor de Sincronización: Es una aplicación inteligente que permite identificar dispositivos y transmitir los datos desde el dispositivo hacia las bases de datos empresariales y desde las bazas de datos empresariales hacia el dispositivo manteniendo la integridad de los datos y de la información a través de procesos de resolución de conflictos. El servidor de sincronización entra en acción cuando es llamado desde el dispositivo móvil. Base de Datos Empresarial: El servidor de sincronización establece la conexión con la base de datos empresarial y permite acceder a los datos, realizar operaciones de actualización y de consulta. A través del servidor de sincronizaciones y por medio físico cableado o inalámbrico, accedemos a los datos de la base de datos empresarial y cargamos esos datos al dispositivo móvil; posteriormente se puede desconectar y salir a trabajar en campo. Cada vez que necesitemos actualizar los datos simplemente se conecta nuevemente al servidor de sincronización que es el que ejecuta el Conduit o conducto y actualizamos la base de datos empresarial. puede acceder a las bases de datos empresariales o propias de la organización usando el mecanismo de conexión preferido. Ventajas

Upload: eduardo-amaya

Post on 11-Apr-2016

30 views

Category:

Documents


1 download

DESCRIPTION

Unidad 3: Topicos avanzados de programacion II

TRANSCRIPT

Page 1: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES3.1 ARQUITECTURA DELCLIENTE INTELIGENTE.Como se mencionó anteriormente esta arquitectura que está comprendida en tres partes: una aplicación móvil especifica en el dispositivo móvil con persistencia de datos, un servidor de sincronización y unas bases de datos empresariales.

Cliente Inteligente: El cliente inteligente es una aplicación móvil ejecutada y desplegada en mi dispositivo con persistencia de datos. Provee acceso offline a datos que previamente han sido cargados en las bases de datos de mi dispositivo móvil.Servidor de Sincronización: Es una aplicación inteligente que permite identificar dispositivos y transmitir los datos desde el dispositivo hacia las bases de datos empresariales y desde las bazas de datos empresariales hacia el dispositivo manteniendo la integridad de los datos y de la información a través de procesos de resolución de conflictos. El servidor de sincronización entra en acción cuando es llamado desde el dispositivo móvil.Base de Datos Empresarial: El servidor de sincronización establece la conexión con la base de datos empresarial y permite acceder a los datos, realizar operaciones de actualización y de consulta.A través del servidor de sincronizaciones y por medio físico cableado o inalámbrico, accedemos a los datos de la base de datos empresarial y cargamos esos datos al dispositivo móvil; posteriormente se puede desconectar y salir a trabajar en campo.

Cada vez que necesitemos actualizar los datos simplemente se conecta nuevemente al servidor de sincronización que es el que ejecuta el Conduit o conducto y actualizamos la base de datos empresarial. puede acceder a las bases de datos empresariales o propias de la organización usando el mecanismo de conexión preferido.

VentajasDisponibilidad de Datos: Esta arquitectura permite disponer o acceder a datos cuando no existe una cobertura da alguna red inalámbrica, debido a que existe persistencia de datos. El usuario puede acceder y modificar los datos luego sincronizarlos con la base de datos empresarial.Interfaces de usuario enriquecidas: Se pueden construir aplicaciones enriquecidas con gráficos, gráficos estadísticos entre otros. Estas interfaces son muy similares a las interfaces de aplicación de escritorio por que se pueden enriquecer con múltiples controles de interfaz de usuario.Performance: Debido a que las aplicaciones se ejecutan en el dispositivo directamente, la velocidad y eficiencia dependen de la capacidad de procesamiento del dispositivo. A diferencia de las redes inalámbricas donde la performance depende de la congestión del servidor web y la red inalámbrica.Computación Distribuida: Al ser ejecutadas las operaciones en los dispositivos móviles esto reduce la tarea del servidor de datos en una organización, pues sólo consumen recursos de los dispositivos y no del servidor de datos de la organización.

Page 2: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Seguridad: Se pueden diseñar esquemas de seguridad más sólidos que en las aplicaciones de wireless Internet. Debido a que se implementan procesos de asignación y autenticación de usuarios a dispositivos móviles.Costos: Reduce los costos de transmisión de datos pues no existe una conexión en todo momento y no depende de infraestructura inalámbrica y los datos se pueden llevar a distancias donde no existe cobertura de red.

DesventajasIntegridad con las Bases de Datos Empresariales: El error común que todos los desarrolladores principiantes cometen, es pretender llevar la estructura de la base de datos al dispositivo móvil, lo cual es casi innecesario y lo que se recomienda es llevar solo los datos que se necesitan, de tal forma que la estructura de datos cambia y al sincronizar se deben solucionar conflictos de integración con las bases de datos empresariales.Desarrollo: Este tipo de arquitectura es un poco compleja de implementar, debido a que realmente es necesario realizar varias aplicaciones e integrarlas para que funcione correctamente. Aplicación Móvil, sincronizador de dispositivos o Conduit y una aplicación de administración de los dispositivos.Múltiples Ciclos de Desarrollo: Se crean diversos ciclos de desarrollo en especial cuando se defina que la aplicación debe funcionar para múltiples sistemas. Herramientas de desarrollo

Tipos de aplicacionesEn cuanto al funcionamiento de una aplicación móvil dentro de un dispositivo existen dos tipos de aplicaciones:código nativo

código runtime engine(rte) código nativoEl código nativo es un tipo de aplicación compilada y generada con una herramienta, para que se ejecute directamente sobre el sistema operativo del dispositivo móvil; es decir todas las instrucciones, operaciones y tareas son interpretadas por el sistema operativo directamente.

Estas aplicaciones tienen como ventaja que al ejecutarse directamente sobre el sistema operativo del dispositivo móvil lo hacen de manera rápida y consumen menos recursos. La desventaja es que como desarrolladores debemos preocuparnos por conocer el sistema operativo, para que cualquier operación que se programe no bloquee el dispositivo móvil y optimizar los recursos de memoria.

código rteEl código RTEes un tipo de aplicación compilada y generada con una herramienta para que se ejecute sobre una máquina virtual o motor de ejecución (runtime engine). Esta máquina virtual interpreta las operaciones del código y lo traduce a lenguaje del sistema operativo y una vez traducidas las instrucciones se ejecutan.

Page 3: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Estas aplicaciones tienen como ventaja que como programadores no se debe preocupar por conocer el sistema operativo del dispositivo móvil y solo con las instrucciones dadas a la máquina virtual es suficiente. La desventaja es que ese engine ocupa espacio de memoria y las aplicaciones no son tan rápidas como las de código nativo, pero lo suficiente como para que sean funcionales.Una vez entendidas los tipos de aplicaciones existen muchas herramientas para construirlas ya sean de tipo código nativo o de tipo rte y en la arquitectura seleccionada.Las herramientas más utilizadas para implementar de aplicaciones móviles son:

Metrowerks CodeWarrior: Es una herramienta que genera código nativo tanto para dispositivos móviles palm os y windows mobile, también para dispositivos de telefonía móvil. Tiene una interfaz grafica IDE propia que permite acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño y de ejecución. Esta basado en lenguaje C++ lo que lo hace una herramienta muy poderosa para aplicativos móviles.

Satellite Form (Enterprise +Server): Es una herramienta que genera RTE tanto para dispositivos móviles palm os y windows mobile. Posee una interfaz gráfica IDE propia que permite acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño y de ejecución. Esta basado en lenguaje muy parecido a Visual Basic, denominado script de visual basic.

AppForge CrossFire Mobile VB: Es una herramienta que genera RTE tanto para dispositivos móviles palm os, windows mobile y symbian os. Es un plug in para visual basic, ya sea la versión profesional 6.0 o visual studio 2005 .net permitiendo utilizar la IDE de visual basic para diseñar las aplicaciones móviles. Esta basado en lenguaje Visual Basic.

Oracle Lite 10I: Es una herramienta que genera RTE tanto para dispositivos móviles palm os y windows mobile. Tiene una interfaz gráfica IDE propia que permite acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño.

Visual Studio 2005 CF 2.0: Es una herramienta que genera RTE tanto para dispositivos móviles palm os y windows mobile. Tiene una interfaz gráfica IDE propia que permite acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño y de ejecución. Extiende el modelo de visual studio para dispositivos móviles.

SuperWaba: Es una herramienta que genera RTE tanto para dispositivos móviles palm os y windows mobile. No posee una interfaz gráfica IDE propia. Es una maquina virtual compatible con java. Extiende el modelo de java para dispositivos móviles.

J2ME:Es una herramienta que genera RTE tanto para dispositivos móviles palm os, windows mobile, y teléfonos celulares según su fabricante. No posee una interfaz gráfica IDE propia. Extiende el modelo de java para dispositivos móviles en sus dos configuraciones CDC(Conected Device configuration) y CLDC(Conected Limited Device Configuration).

Page 4: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Pocket Studio: Es una herramienta que genera RTE para dispositivos móviles palm os. Tiene una interfaz gráfica IDE propia que permite acomodar los controles en la pantalla del dispositivo ganando tiempo de diseño y de ejecución. Para los amantes del Delphi es el modelo que extiende sus clases del borland Delphi.

WAP 2.0 Es una herramienta que genera scripts tanto para dispositivos móviles palm os, windows mobile, y teléfonos móviles. No posee interfaz gráfica IDE propia basado en una extensión del XML llamada WML (Wireless Markup Language) que en su versión 2.0 ya promete incluir DHTML en los contenidos de las paginas.

3.2.1 Sistemas Moviles Ligeros

Nos proponemos hacer un breve repaso por el complejo mundo de los sistemas operativos móviles. El objetivo es ofrecer una visión lo más gráfica y tangible posible de lo que supone el reto de la diversidad. Ya hemos hablado en numerosas ocasiones en este Observatorio acerca del gran problema al que se tienen que enfrentar la comunidad de desarrolladores de aplicaciones y contenido para el móvil. La varianza de los sistemas operativos móviles es tan solo un componente más, eso si muy importante, a añadir al fragmentado y complejo universo de dispositivos móviles. Para empezar, tomemos la definición de Sistema Operativo en su sentido más amplio:Capa compleja entre el hardware y el usuario, concebible también como una máquina virtual, que facilita al usuario o al programador las herramientas e interfaces adecuadas para realizar sus tareas informáticas, abstrayéndole de los complicados procesos necesarios para llevarlas a cabo.La figura es un modelo conceptual que nos brinda una visión simplificada de la pila de software que conforman el marco de trabajo para los desarrolladores de aplicaciones para dispositivos móviles. Sobre estas capas, descansa y se ejecuta cualquier aplicación en nuestros teléfonos móviles.

el kernelEs el núcleo que proporciona el soporte necesario para acceder a los distintos elementos del hardware. Los principales servicios ofrecidos por el kernel a las capas superiores de la pila de software son los siguientes:

Drivers para el hardware Acceso y gestión de la memoria Sistema de archivos Gestión de procesos

el middlewareEl middleware es el conjunto de módulos software que hacen posible la existencia de las propias aplicaciones para móviles. Esta librerÃa de software es totalmente transparente para el usuario final y ofrece servicios claves para las aplicaciones como:

Motor de mensajería

Page 5: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Intérpretes de páginas web/WAP Motor de comunicaciones Codecs multimedia Gestión del dispositivo Seguridad el entorno de ejecución de aplicaciones

Esta capa consiste de un gestor de aplicaciones y un conjunto de interfaces programables (APIs) abiertas y accesibles por los programadores para facilitar la creación de aplicaciones.

la interfaz

Esta capa es la que facilita la creación de las interfaces de usuario de las aplicaciones que facilitarán la gestión de la interacción con el usuario final y el diseño de la presentación visual de la aplicación (look and feel). Los principales servicios que esta capa ofrece a las aplicaciones son:

Componentes gráficos: por ejemplo, pantallas, botones, listas, etc. Marco de interacción: Un componente adicional que no se muestra en el gráfico y que se sitúa al mismo nivel que las aplicaciones de terceros, de ahí que hayamos preferido no incluirlo, es la Familia de Aplicaciones nativa del teléfono, que proporcionan el interfaz de usuario principal del teléfono: menús, marcador de números de teléfono, bandeja de entrada de mensajes, navegador, etc.

3.2.- WINDOWS CE.Justo cuando los programadores se estaban acostumbrando a Windows 9x y Windows NT, Microsoft ha agregado un nuevo hermano: Windows CE. Sin embargo este nuevo integrante de la familia Windows tiene un objetivo especial.A los largo de los capítulos se ha visto que Windows 95 y Windows 98 se dedican a entregar compatibilidad con las aplicaciones y hardware existentes, mientras intentan entregar nuevas características como la multitarea. El objetivo de Windows NT es convertirse a largo plazo en el mejor sistema operativo de empresa. Sin embargo, Windows CE tiene otro objetivo: proveer un moderno sistema operativo de plataforma cruzada, multihilado y de tamaño pequeño. Esta última característica es la principal diferencia con Windows 95 y Windows NT. Cuando se habla de tamaño, se refiere a la cantidad de memoria y de almacenamiento necesario para albergar al sistema operativo.

Mientras se desarrollaba Windows CE se le dio el nombre de Pegasus y junto a él se estaba diseñando un nuevo dispositivo, que tendría más tarde a Windows CE como sistema operativo. A este nuevo dispositivo se le llamó Handheld PC (HPC) o PC de bolsillo. Es así como el HPC sería la primera de muchas plataformas en aceptar el uso de Windows CE.

Page 6: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Windows CE también funciona con otros dispositivos denominados Palm-size PC o "PC del porte de la palma", que son más pequeños que los HPC y que carecen de teclado, reemplazado por un reconocimiento de un sistema de tacto y un panel de entrada que aparece en pantalla. La figura anterior muestra un Palm-size PC.

Los dispositivos para Windows CE se sirven de baterías para obtener poder y duran 20 horas con uso continuo o una semana si el uso es discontinuo. Como una regla general se puede decir que: las máquinas Windows CE tiene baterías con vida más corta.A diferencia de Windows 9x o NT, el sistema operativo Windows CE no tiene que ser re iniciado cada vez que el usuario lo desea utilizar. De hecho, se pueden configurar las máquinas para que se prendan instantáneamente a la respuesta al input del usuario, y sistema vuelve al estado justo antes de apagarse.

El sistema operativo no viene es discos, ni en CD-ROM sino que en una pequeña tarjeta que se inserta en un HPC o en un Palm-size PC.Antes de analizar más la arquitectura de Windows CE se verá algo de los HPC con el objetivo de comprender sobre qué sistema hardware debe correr Windows CE y que además permitirá comenzar a entender cómo funciona este nuevo sistema operativo.

el pc de bolsillo

Un PC de Bolsillo o HPC casi siempre se compone de una pantalla de 480x240 o 640x240 en escala de gris, acompañada de un pequeño teclado. En vez de mouse, el dispositivo tiene un panel de contacto que cubre la pantalla. Todo HPC incluye un puerto serial y un puerto infrarrojo de 115 Kbps. Los sistemas tiene un slot PCMCIA o un slot de minitarjeta.La configuración de la memoria física es muy interesante en un HPC. Un PC de bolsillo típico tiene 4 MB ó 8 MB de memoria ROM y 2 MB ó 4 MB de RAM. La memoria ROM contiene al sistema operativo y a la suite de aplicaciones de bolsillo que se venden con Windows CE (Word y Excel), a los que se les ha bautizado como Pocket Word y Pocket Excel (Word de Bolsillo y Excel de Bolsillo). Sin embargo, y debido a la naturaleza de la memoria ROM las aplicaciones no pueden sólo ejecutarse en ROM, las aplicaciones no sólo leen de memoria, sino que también escriben.

Por lo tanto se puede concluir que en la memoria ROM residen las instrucciones y valores de sólo lectura mientras que algo de RAM debe utilizarse para los valores que las aplicaciones deseen escribir en algún momento. La memoria RAM necesaria para el sistema operativo mismo es de cerca de 500 KB, y las aplicaciones en realidad no ocupan mucho. Por ejemplo una instancia de Pocket Word utiliza solamente 16 K de RAM cuando se carga.La memoria RAM se divide en dos partes, una para la RAM del sistema utilizada por el sistema operativo y las aplicaciones, y la otra parte, denominada almacén de objeto, para el almacenamiento de datos. Los archivos que se guardan en el almacén de objeto, no son guardados tal cual son, sino que son comprimidos en un radio 2:1. Los HPCs no tiene 

Page 7: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

unidades de disco flexibles, ni discos duros, sin embargo se soporta SRAM y Tarjetas de PC Flash ATRA en dispositivos con slots PC Card.Rompiendo con la tradición, los HPC actualmente no utilizan procesadores Intel o compatibles con Intel.En cambio, los HPC actualmente soportan el uso de procesadores RISC: El Hitachi SH3, el NEC VR4101 y el Phillips 3910 (los dos últimos compatibles con el procesador MIPS). Debido a que los procesadores NEC y Phillips utilizan un subconjunto común de las instrucciones MIPS, se puede decir que desde el punto de vista software, solamente se soportan dos CPUs: MIPS y SH3.

Como se ha dejado entrever en los párrafos anteriores, Windows CE incluye unas versiones en miniatura de las aplicaciones de oficina de Microsoft: Versiones de bolsillo de Word y Excel, un Calendario, Internet Explorer, un cliente de E-mail, y el Solitario. Si bien se incluye Word de bolsillo, sus características son limitadas si se le compara con el Word para Windows 9x/NT, presenta un mínimo soporte para fuentes y listas. Por ejemplo, no existe corrección ortográfica en Pocket Word (figura superior).

Pocket Excel es una sombra de su hermano mayor, ya que no incluye toda la funcionalidad (como las funciones incorporadas) de la versión de Windows 9x/NT (figura izquierda).

Todo HPC viene con una aplicación mostrada a la izquierda de comunicación y sincronización que se puede ejecutar en un PC, con el objetivo de poder comunicar el PC con un HPC a través del puerto serial. El programa llamado HPC Explorer, se parece al Explorador de Windows, y sólo despliega los archivos que residen en el HPC. Cuando el usuario arrastra un archivo desde el Explorador de Windows hasta el Explorador de HPC, un filtro de formato lo traduce desde formato PC a formato HPC.Para programar una aplicación Windows CE para HPC es simple. Cualquier persona que tenga experiencia en desarrollo de programas en C con Win32 API puede desarrollar una aplicación en un abrir y cerrar de ojos. Los requisitos son Visual C++ para PC, Visual C++ para Windows CE (que en realidad es un agregado para soportar las nuevas plataformas MIPS y SH3) y las clases MFC para Windows CE.

Todo lo necesario es justamente el tema de este estudio, por lo tanto se garantiza al lector que una vez leído este documento se tendrán las condiciones para desarrollar una aplicación Windows CE.Todo lo anteriormente dicho se cumple para la versión Windows CE 1.0, sin embargo hoy Windows CE está ya es su versión 2.x, que se verá un poco más adelante windows ce 1.x

Windows CE 1.00 y 1.01 fueron el primer paso en la creación de un sistema operativo Windows cuyo objetivo no era un PC. Si bien, mucha gente piensa que CE significa "Compact Edition", la verdad es que ese nombre puede engañar al programador y al usuario, porque al decir Edición Compacta suena a "subconjunto de Windows", y en 

Page 8: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

realidad Windows CE fue escrito desde cero, a diferencia por ejemplo de Windows 95 que fue escrito basado en Windows 3.x. Como se ha dicho, la primera versión de Windows CE se embarcó con los HPC.características y metas de windows ce 1.xwindows ce presenta las siguientes metas:

Compatibilidad con Windows. Windows CE soporta el modelo de programación Win32, sin embargo sólo soporta un subconjunto de todo el mundo Win32. Al igual que Windows NT y Windows 9x, Windows CE realiza multitarea con desalojo. El formato para los archivos ejecutables y librerías son los mismos que los de Windows 9x y NT.

Aunque Windows CE no puede ejecutar aplicaciones de Windows de forma arbitraria (en otras palabras, cualquier aplicación Windows), es relativamente fácil portar la mayoría de las aplicaciones a Windows CE.

Consume pocas cantidades de RAM. Todos los componentes de Windows CE se pueden ejecutar en ROM, reduciendo la necesidad de RAM. NO se requiere flash memory o una unidad de disco (aunque ambos son soportados).

Independiente del hardware del sistema. Windows CE trabaja en una variedad de microprocesadores de 32 bits y no requiere una arquitectura de hardware particular.

arquitectura de windows ce 1.xx

Windows CE es un sistema operativo modular compuesto de varios elementos software. Estos elementos son interfaces compatibles con Win32 y estas interfaces permiten que cada uno de los elementos software puedan integrarse entre sí. Cada elemento comprende varios componentes de nivel más bajo y los diseñadores del sistema tienen la posibilidad de incluir o excluir estos componentes de nivel más bajo según sus necesidades. La siguiente figura (siguiente página) muestra los elementos de la arquitectura de Windows CE.Como lo muestra la figura es posible que un desarrollador excluya módulos como USER y GDI, obteniendo así un Windows CE sin interfaz de usuario. Bueno, esa característica ahora ha permitido que Windows CE funcione en sistema empotrados (Embedded Systems) en los cuales todo es controlado mediante memoria ROM y no hay interfaz de usuario, ya que por lo general los sistemas empotrados son automatizaciones donde no hay intervención humana. Windows CE debido a su tamaño se hace ideal para realizar 

Page 9: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

trabajo en tiempo real y permite llevar la API Win32 a sistema automatizados de tiempo real.Comenzando por el fondo, los principales elementos que conforman el sistema operativo son: la capa de abstracción OEM denominada OAL (OEM Abstraction Layer), que incluye la administración de poder, los drivers de dispositivos y los servicios de las tarjeta de PC (PC Card); EL Kernel de Windows CE, USER, GDI, sistemas de archivos y bases de datos; los protocolos de comunicaciones IRDA y TCP/IP; las distintas APIs; la conectividad remota, Internet Explorer para Windows CE y el shell. Como se dijo anteriormente un diseñador puede incluir o excluir algunos de estos elementos (por ejemplo, el Internet Explorer) según sus necesidades.

oal y administración de poder

El OAL permite a los diseñadores adaptarse a su plataforma hardware y proveer funciones de administración de poder específicas. Windows CE no requiere un estructura de interrupciones o una proyección de memoria estándar. En cambio, los diseñadores escriben pequeñas rutinas de servicio de interrupciones en la capa OAL de Windows CE que permiten que el sistema operativo se ejecute un cualquier configuración de hardware. La administración de poder incluye la características "encendido instantáneo" permitiendo que los dispositivos Windows CE sean apagado y luego encendidos instantáneamente si el dispositivo tiene RAM no volátil (respaldada con baterías).

drivers y servicios de pc card

Los dispositivos de Windows CE pueden contener dos tipos de drivers de dispositivos: drivers incorporados para el hardware que está siempre presente en dispositivo como el teclado en un HPC, y drivers instalables en tiempo de ejecución para periféricos que pueden agregarse. Windows CE 1.01 directamente soporta varios tipos de dispositivos,

tales como teclados, mouse, paneles de tacto, puertos seriales, módems, pantallas, slots de PC Card, procesadores de audio, parlantes, puertos paralelos, disco ATA o unidades de "flash card". Los diseñadores pueden fácilmente agregar nuevos tipos de dispositivos.Para todos los drivers de dispositivos soportados, Windows CE tiene un conjunto bien definido de DDI o Device Driver Interfaces (Interfaces del Driver del Dispositivo) para los cuales los diseñadores escriben. Los drivers de dispositivos corren como procesos normales en el sistema, con acceso a todos los servicios del sistema operativo. Esto permite que las rutinas de servicio de interrupción que típicamente "despiertan" a los drivers de dispositivos sean simples y rápidos: el hilo del driver hace la mayoría del trabajo.Windows CE provee un subconjunto de servicios de PC Card y de Sockets de Windows. Permitiendo que PC Cards tales como tarjetas de módems inalámbricos o tarjetas de flash memory sean utilizados. Los diseñadores pueden utilizar estas interfaces para sus propias tarjetas.

Page 10: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

kernelEl Kernel de Windows CE fue escrito específicamente para dispositivos "no PC". Implementa el modelo de proceso, hilo y memoria virtual de Win32. Al igual que Windows NT y Windows 9x, presenta un sistema multitarea con desalojo basado en prioridad, también provee una rica variedad de primitivas de sincronización, incluyendo semáforos, mutex y eventos.

El Kernel de Windows soporta la ejecución de programas en ROM o RAM. También implementa paginación bajo demanda para las aplicaciones que se almacenan comprimidas y/o se almacenan en un medio que soporta ejecución en el lugar (como lo es para RAM o ROM). El kernel tiene una rutina de bajo nivel de servicios de interrupción y baja latencia de hilo (a los hilos se les puede asignar la CPU y hace cambio de contexto en menos de 100 microsegundos en un HPC a 33 Mhz). Esto permite que Windows CE sea utilizado en muchos tipos de sistemas de tiempo real.

user y gdi

Los componentes de USER y GDI de Windows CE proveen la funcionalidad básica para la interfaz de usuario, si la hay. En Windows CE 1.01, una pantalla de escala de grises es soportada por GDI. USER de Windows CE exporta las mismas características de interfaz de usuario de Win32 presentes en la versión USER de Windows NT/9x. Ventanas traslapadas, administración de eventos, controles de interfaz de usuario, cajas de diálogo, comunicación entre procesos, entre otras características. Se incluye soporte para UNICODE.

almacén de objetos

Los componentes de Almacén de Objetos de Windows CE proveen almacenamiento persistente para aplicaciones y datos. Los datos persistentes están usualmente contenidos en memoria no volátil, tales como RAM respaldad por baterías o flash memory. Cuando se utiliza RAM que también se usa para las aplicaciones que se ejecutan, el diseñador puede ajustar la cantidad de RAM utilizada por el Almacén de Objetos (los usuarios también pueden realizar esto). El Almacén de Objeto está compuesto de tres clases de componentes: sistemas de archivos, el registro y bases de datos. En Windows CE 1.01, existen tres tipos de sistemas de archivos: un sistema dearchivos basado en ROM, un sistema de archivos basado en RAM, y un sistema de archivo FAT para las unidades de disco.La funcionalidad de bases de datos de Windows CE no tienen un corolario en Windows NT o Windows 95. La base de datos provee almacén, acceso y ordenamiento de objeto. Se utilizó inicialmente en el HPC para cosas como libro de dirección y apuntes. Una característica clave de las bases de datos, el sistema de archivos y el registro es que ellos están protegidos contra un "reset" imprevisto (como uno causado por una interrupción de poder en sistemas como un HPC que tienen una batería de respaldo). Si ocurre un "reset" durante un escritura al almacén de objeto, Windows CE asegura que el almacén no estará 

Page 11: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

corrupto, ya sea completando la operación cuando el sistema se reinicie o retrocediendo al último estado estable conocido antes de la interrupción.

TCP/IP, PPP, y IrDALos protocolos de comunicaciones de Windows CE 1.01 proveen conectividad a los PCs de escritorio Windows, Internet, y a otros dispositivos Windows CE. La pila de protocolo de comunicaciones para las conexiones es el protocolo estándar de Internet, TCP/IP, acompañado de PPP. TCP/IP y PPP se utilizan cuando se utiliza la característica "Conexión Directa mediante Cable" entre PCs Windows, así como también ahora se utiliza para comunicar un dispositivo Windows CE con Internet a través de un módem o una LAN. Windows CE también incluye un estándar infrarrojo (IRDA) y que se muestra en la figura superior. apis

Windows CE exporta un subconjunto de Win32 API. Dentro de este subconjunto se incluyen sobre 500 de las más utilizadas APIs de Win32. Aplicaciones como Pocket Word y Pocket Excel han sido escritas con este subconjunto.Junto con los protocolos de comunicaciones, Windows CE provee varias de las APIs familiares para comunicaciones de Windows, incluyendo Windows Sockets, TAPI (API de Telefonía) y Unimodem.

conectividad remota

Para posibilitar aplicaciones de conectividad, Windows CE exporta RAPI o Remote Access API (API de Acceso Remoto) a un PC con Windows a través de Sockets. El PC a su vez importa esa API y puede manipular al dispositivo HPC. Una aplicación en un PC, como el Explorador de HPC, utiliza RAPI para manipular el almacén de objeto del dispositivo Windows CE. Los archivos puede moverse hacia y desde el dispositivo Windows CE, las bases de datos pueden actualizarse, el registro puede ser modificado y revisado a través de la conexión.

Mediante la utilización de TAPI, esta conexión puede realizarse remotamente a través de una línea telefónica.

Internet Explorer para Windows CELa conectividad a Internet es un módulo de Windows CE. Aunque está destinado para dispositivos con pantalla, los componentes de Internet Explorer puede utilizarse para conseguir información a través de Internet aún si la navegación de las páginas de WWW no es un requerimiento.

shellPero, muchos sistemas empotrados (embedded) que utilizan Windows CE no tendrán este shell, o quizás no tendrán ningún shell (o ni siquiera pantalla). Sin embargo, para aquellos 

Page 12: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

sistemas que necesitan una "look" Windows, el shell de Windows CE provee una experiencia similar a la de Windows NT 4.0 y Windows 9x. Windows CE está disponible en una variedad de idiomas.

requerimientos de hardware para windows ce 1.x

Como mínimo Windows CE debe tener un procesador, memoria y un reloj de tiempo real. Realmente no se necesita técnicamente nada más, pero obviamente un número importante de otros dispositivos tendrá un número de periféricos. Los procesadores soportados, y tal cual se dijo anteriormente, son el NEC 4100 MIPS, Phillips 3900 MIPS y el HITACHI SH3.La memoria necesaria para Windows CE es totalmente dependiente de los componentes que el diseñador del sistema seleccionó. Por ejemplo, un sistema de bajo nivel que sólo utiliza el kernel, la pila de comunicaciones requiere menos de la mitad de un megabyte de ROM y 256 KB de RAM. Los componentes en un Windows CE de un HPC, con todos los componentes de Windows CE activos toma 2 MB de ROM, y al arranque ya consume 512 KB de RAM. Pero cuando se agregan Word y Excel y resto de las aplicaciones se requieren 4 MB de ROM y 2 MB de RAM, con un 1 MB destinado al almacenamiento de datos.

windows ce 2.x

A mediados de 1997 se comenzó a distribuir una versión beta de Windows CE 2.0, que en realidad mantiene la misma estructura de componentes que Windows CE 1.x, sin embargo presenta avances importantes:Soporte para los procesadores Intel y AMD.La serie 82x de los procesadores PowerPC de Motorola.

Pantalla con colores de hasta 24 bits. Conexiones LAN mediante el protocolos NDIS. Subconjunto de ActiveX. Java Virtual Machine. Visual Basic Script. Subconjunto de MFC para Windows CE. 

La figura superior muestra a Windows CE 2.0, y como puede verse soporta colores, algo que Windows CE 1.x no hacia. Las siguientes figuras muestran el avance entre Windows CE 1.x y Windows CE 2.0. La primera muestra como se convierte una hoja de cálculo de Excel a formato HPC en Windows CE 2.0.

La figura anterior muestra el Internet Explorer de Windows CE 2.0, que puede verse muy superior al de Windows CE 1.x no sólo por los colores sino por que Windows CE 2.0 incluye ActiveX , JVM y VB Script lo cual da un potencial tremendo a las aplicaciones Internet en Windows CE.

Page 13: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

windows ce 2.01Se agrega soporte para:

FAT32 ADO fast IRDA USB Imprimir

 arquitectura de memoria de windows ce

Se ha dicho en esta sección que Windows CE soporta multitarea y multihilos con prioridad de forma similar a como lo hacen Windows NT y Windows 9x. Sin embargo, al momento de administrar memoria las cosa cambian radicalmente.Como recordará el lector, en los capítulos de las Arquitecturas de Windows 9x y Windows NT se dijo que cada aplicación (proceso) tiene su propio espacio de direcciones virtuales de 4 GB que oculta la arquitectura física de la memoria.

Windows CE realiza el mismo método: oculta al programador la administración de memoria física del dispositivo y mantiene la idea de memoria virtual. El gran cambio es que Windows CE no provee 4 GB de memoria virtual a cada nuevo proceso que arranca. Windows CE al momento de partir crea un espacio de direcciones de 4 GB pero que es único para todos los procesos.Al igual que en Windows NT y Windows 9x la memoria sigue siendo asignada por páginas. En Windows NT el tamaño de la página depende del procesador, en Windows CE también y va desde 1 KB hasta 4 KB.El lector puede estar pensando que tener un espacio de direcciones común entre todos los procesos puede que hagan a Windows CE un sistema inestable sin embargo esa posibilidad se elimina al momento en que Windows CE implementa protección no a nivel de espacio de direcciones sino que a través de protección de páginas.

palm os versus windows ce  Los dos sistemas operativos más extendidos del mercado son Palm OS, de Palm Inc., y Windows CE, de Microsoft. Existen muchos otros pero, a no ser que tengamos necesidades muy particulares, la mejor opción sería quedarse con un dispositivo que funcione con uno de estos dos sistemas, pues son los que tienen a su disposición un mayor número de actualizaciones y programas. Entre los dos, copan más del 90% del mercado de ordenadores de bolsillo.Sobre los dispositivos basados en Palm OS no hay nada malo que decir, en términos absolutos. O sea, cualquier modelo de Palm Inc. o de Handspring funcionará de maravilla durante años, sin errores, sin problemas y sin complicaciones. Además, la cantidad de programas disponibles para la plataforma Palm es enorme.Ahora bien, para el usuario de Windows 9x/NT/2000, es decir, para más del 95% de los usuarios, utilizar un ordenador basado en Palm OS puede suponer ciertas limitaciones. No 

Page 14: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

es que exista ninguna incompatibilidad entre Palm OS y el Windows de nuestro PC de escritorio, pues los programas de sincronización son los que hacen todo el trabajo de comunicación. El verdadero problema es que Palm OS nació como un sistema operativo para ordenadores de bolsillo y nada más, mientras que Windows CE surgió como un sistema operativo para ordenadores de bolsillo que permitiera la absoluta integración entre estos y el PC de escritorio basado en Windows. Es decir, teniendo en cuenta que un ordenador de bolsillo tiene como función principal servir de extensión al ordenador de escritorio, la opción de Windows CE será la más adecuada para la mayoría de los usuarios.

Aquél que compre un dispositivo basado en Windows CE se encontrará con un entorno muy similar al que tiene su Windows de escritorio (menús desplegables, botón Inicio, ...) y con muchas aplicaciones casi idénticas a las que tiene en él (Internet Explorer, Word, Excel, Outlook, Reader, Explorador de Windows, etc.), aunque en las versiones específicas para la plataforma Pocket PC. Esto hará que pasar de trabajar en el PC de escritorio a trabajar en el PC de bolsillo sea prácticamente inmediato, sin aprendizaje intermedio.

Por el contrario, los que adquieran un dispositivo basado en Palm OS no disfrutarán de ninguno de esos programas, sino que tendrán que adquirir o conseguir aplicaciones de otros fabricantes que les permitan trabajar con sus documentos de Word o de Excel. Además, la organización de la información en Palm OS, por medio de registros de bases de datos en vez de archivos, es una solución técnicamente muy ingeniosa pero que suele causar problemas a los usuarios: la pregunta habitual es "¿dónde está el documento que escribí con aquél programa que me bajé de Internet?"; en ningún sitio visible, sino dentro de la base de datos de ese programa.

La última característica distintiva de los dispositivos basados en cada uno de estos dos sistemas operativos son sus capacidades multimedia. Mientras que sólo unos pocos dispositivos basados en Palm OS disponen de pantalla en color, todos los que usan Windows CE en la actualidad incorporan, además de pantallas TFT en color, tarjetas de sonido, altavoces y micrófonos, lo que no sólo reduce las diferencias con respecto a los PCs de escritorio sino que, además, dota a estos aparatos de nuevas funcionalidades: tomar notas con la voz, grabar conversaciones, usarlos como walkman de MP3, etc.Finalmente, para aquellos a los que les guste programar sus propias aplicaciones, lo más probable es que la plataforma Windows CE sea la opción más adecuada, una vez más, pues podrán utilizar la mayor parte de sus conocimientos de Windows y de Visual C++ y Visual Basic, pues las herramientas de desarrollo de Microsoft para Windows CE utilizan estos dos lenguajes y muchas tecnologías comunes, como ActiveX, ADO (ADOCE) y API's estructuralmente muy similares a las de Windows 9x/NT.Una vez que sepamos qué plataforma se adapta mejor a nuestras necesidades, sólo queda elegir el modelo.

Page 15: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

palm os.Palm OS 5.4.9 (Garnet OS) en una Treo 680 (2006)El sistema operativo Palm fue desarrollado originalmente por Jeff Hawkins para el Pilot PDA de US Robotics. La versión 1.0 se vendía con los primeros Pilot 1000 y 5000 y la versión 2.0 se introducía con el Palm Pilot Personal y Profesional.Cuando salieron los Palm de la serie III se introdujo la versión 3.0 del Sistema operativo. Posteriormente, salieron las versiones 3.1, 3.3 y 3.5, que añadían apoyo para color, puertos de expansión múltiples, nuevos procesadores y otras prestaciones.La versión 4.0 salió con la serie m500, y más tarde salió la actualización para aparatos anteriores. Esto añadía una interfaz estándar para el acceso del sistema de archivos externo (como tarjetas SD) y mejoraba las bibliotecas de telefonía, seguridad y mejoras de IU.La versión 5.0 (Garnet) fue la primera versión que soportó los dispositivos ARM. Anunciado como paso importante por apoyar a los procesadores ARM, las aplicaciones Palm se ejecutan en un entorno emulado denominado el Entorno de Compatibilidad de Aplicaciones Palm (PACE, en inglés), disminuyendo velocidad pero permitiendo gran compatibilidad con programas antiguos.

El software nuevo puede aprovechar los procesadores de ARM con ARMlets, pequeñas unidades de código ARM. Era también aproximadamente entonces cuando Palm empezaba a separar sus divisiones de hardware y de sistemas operativos, y finalmente se convierten en dos compañías PalmSource, Inc. (sistemas operativos) y palmOne, Inc. (hardware). Las siguientes versiones de Palm OS 5 han tenido un API estándar para alta resolución y áreas de entrada dinámicas, junto con un cierto número de mejoras menores.Palm OS 4.1.2, 5.1 y posteriores, incluyen Graffiti 2, debido a la pérdida de un pleito de violación con Xerox. Graffiti se basa en Jot de CIC.PalmSource, Inc. presentó Palm OS Cobalt (también denominado Palm OS 6) a los licenciatarios el 29 de diciembre de 2003. Esto completaría la migración a aparatos con ARM, y permitiría apoyar a las aplicaciones nativas ARM junto con apoyo multimedia mejorado. Actualmente NO existen equipos que usen el Palm OS 6 o Cobalt. No está muy claro el futuro de esta versión de Palm OS, derivado de la compra de PalmSource por la compañía japonesa ACCESS, LTD.Aparentemente, en algún momento será posible tener nuevos equipos PDA con Palm OS cuyo núcleo (Kernel) sea un Linux completamente funcional.

aplicaciones incluidas con el palm oslibreta de direccionesEl programa Libreta de Direcciones del Palm almacena información personal, en cualquiera de las categorías definidas por el usuario. Se muestran las entradas y salidas se ordenan por los apellidos, y nombre (esto sólo se puede cambiar a Compañía, Apellidos). Hay cinco campos para el teléfono o correo electrónico, cada uno de los que se puede designar a Trabajo, a Casa, Fax u Otras, Correo Electrónico, Principal, Buscapersonas o Móvil (los nombres de los campos no se pueden cambiar).calculadora

Page 16: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

La Calculadora convierte el ordenador de bolsillo en una calculadora estándar de 4 funciones con botones de tres tonos morados y azules que contrastan con los dos botones rojos para borrar. Ialculadora ncluye teclas de raíz cuadrada y de porcentaje y tiene memoria.También tiene una opción para mostrar un historial de los cálculos realizados, como muchas calculadoras que se usaban antes.calendarioEl Calendario muestra un horario diario o semanal, o una vista mensual simple. El horario diario tiene una línea cada hora, entre dos horas del día que el usuario puede elegir. Al hacer clic en una línea vacía se crea una cita nueva. Las líneas vacías se llenan con las citas correspondientes, y la hora en que empiezan y su duración se muestran en el margen de la izquierda.El sistema operativo puede anunciar una cita con una alarma, en el momento indicado, minutos, horas o días antes. Estas alarmas suenan incluso cuando la unidad está apagada.Las citas se pueden repetir en un número especificado de días, semanas, meses o años y pueden contener notas.gastosLa aplicación Gastos permite a un usuario seguir los gastos comerciales habituales. El ordenador de bolsillo no realiza ningún cálculo para obtener el total. El usuario tiene que sincronizar con un ordenador de escritorio y ver los datos de los gastos en un hoja de cálculo en las que se incluyen las plantillas para Microsoft Excel. Debido a esta desventaja, muchos usuarios consideran esta aplicación poco útil.libreta de notasLas Notas de Texto permiten escribir notas de hasta 4000 caracteres, clasificadas en categorías configurables por el usuario. Las notas se pueden ordenar alfabéticamente o manualmente (que permiten al usuario escoger el orden de las notas). Las Notas de Texto sólo pueden incluir texto, no dibujos. Por esto, el texto en las Notas se ha de introducir utilizando el alfabeto Graffiti.notasEn las Notas se pueden hacer dibujos y notas manuscritas. Se pueden ingresar hasta 10 palabras por página, si la escritura es pulcra. De lo contrario, es mejor poner texto en la Libreta de Notas. Hay tres medidas de lápices de dibujo, más una goma de borrar. Es posible dibujar un mapa muy simple.tareasTambién denominada lista de tareas. Es el lugar adecuado por crear recordatorios personales y priorizar las cosas que tienes que hacer. Cada elemento de la lista de tareas también puede tener: una prioridad, categorías (por organizar y agrupar las tareas en grupos lógicos), adjuntar una Nota (por añadir una descripción o una aclaración de la tarea). Las tareas se pueden ordenar por: fecha, prioridad o categoría.

Palm OS 4.1 en una Palm m515 (2002)

comunicacionesinfrarrojos

Page 17: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Una de las características de las máquinas con Palm OS es que se venden de serie con un puerto infrarrojo, es decir que se pueden comunicar con otros dispositivos que incluyan un puerto infrarrojo, como por ejemplo algunos modelos de impresora, ordenadores portátiles y modelos de teléfono móviles así como también a las redes de computadoras con las que pueda establecer comunicación por medio de Wi-Fi.A partir del PalmOS 3.0, que salió con el Palm III, el sistema operativo incluye apoyo por comunicaciones por infrarrojo, de acuerdo con la norma IrDA.Una de las limitaciones de la comunicación por infrarrojos, es que no pueden haber obstáculos entre los dispositivos que se comunican. Para superar este inconveniente, más adelante han aparecido nuevas tecnologías como por ejemplo el Bluetooth, y el Internet Wi-Fi.bluetoothEl Bluetooth es un sistema de conexión inalámbrica de corto alcance (aproximadamente 10 metros).En los últimos tiempos ha proliferado tanto la conexión entre los pequeños dispositivos y, al mismo tiempo, éstos han ido reduciendo tanto su volumen, que no es extraño que la muchedumbre de cables que usamos para conectarlos ocupe casi el mismo espacio, si no más, que los mismos dispositivos. La tecnología Bluetooth ha venido a salvarnos de esta absurda situación.A partir del PalmOS 5.0, que salió con el Palm Tungsten T, el sistema operativo incluye apoyo para comunicaciones por Bluetooth, de acuerdo con el estándar Bluetooth v1.1, que corresponde al 802.15.1 IEEE, que usa la misma gama de frecuencias (2.4 Ghz) que el IEEE 802.11b, aun cuando no se tienen que confundir.otras aplicacionesHay muchas aplicaciones interesantes para el sistema operativo PalmOS que se pueden añadir. En agosto de 2003, había más de 19,000 aplicaciones disponibles para la plataforma Palm OS, incluyendo software libre (totalmente liberado) como el lector de documentos Plucker o la base de datos Pilot-DB, y shareware (demos para probar el programa antes de comprarlo), y aplicaciones comerciales.resolución de pantallaPalm OS admite múltiples resoluciones de pantalla. El Palm original utilizaba una resolución de 160x160 píxeles. Los primeros ordenadores de bolsillo de terceras marcas podían esconder el área de escritura (o área de Graffiti) hasta ocupar 160x250 píxeles. Hay ordenadores de bolsillo con pantallas de alta resolución de 320x320 píxeles como por ejemplo la Zire 72 de PalmOne, la gama Sony Clie o la Tungsten T3 de PalmOne que venden con pantallas de alta resolución de 320x480 con áreas de Graffiti virtuales.Obtenido de "http://es.wikipedia.org/wiki/Palm_OS"

symbianPara competir contra Palm y contra el Smartphone de Microsoft, hace ya 9 años (en 1998), varias empresas de telefonía móvil como Nokia, Siemens, Fujitsu, Arima, Samsung, LG, Mitsubishi Electric, Panasonic, Motorola, Lenovo, Sharp, Benq, Sony Ericsson, Sanyo y 

Page 18: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Sendo se unieron en una alianza para crear un sistema operativo para muchos teléfonos móviles con capacidad de procesamiento de datos.Fruto de esa alianza, crearon la empresa Symbian Ltd en 1998 con el objeto de desarrollar un sistema operativo abierto para las diversas plataformas de teléfonos móviles. Y así llego el Sistema Operativo Symbian, un sistema operativo diseñado específicamente para dispositivos móviles y diseñado para funcionar en un espacio pequeño, con escasos recursos de memoria y preparado para administrar de manera eficiente la energía (por aquella época el problema del consumo energético en los móviles era un problema importante con el surgimiento de pantallas a color y la necesidad de proceso).

Además, Symbian tenía que ser tolerante a fallos, de una manera más amplia a como lo eran los PCs, la gente puede entender que un pc se cuelgue, pero no así su teléfono móvil. De la misma manera, tras el apagado del teléfono móvil (fuese como fuese) los datos contenidos en él debían permanecer íntegros, nunca podrían perderse debido a un Sistema Operativo corrupto o dañado.

Como software de sistema operativo, Symbian proporciona las rutinas y los servicios subyacentes para las aplicaciones. Tecnicamente el sistema operativo Symbian es una colección compacta de código ejecutable y varias archivos, la mayoría de ellos bibliotecas DLL (aunque también encontramos archivos de configuración, tipografías, imágenes y otros recursos).

Por norma general, el sistema operativo Symbian lo encontramos cargado en la memoria flash del teléfono móvil, de esta forma podemos conservar el sistema operativo aun cuando no tengamos batería. Además, el estar dispuesto en una memoria aparte, facilita su re programación o actualización sin necesidad de separarla de los demás circuitos.

Symbian contempla cuatro tipos de dispositivos para su sistema operativo, los denominados Serie60, Serie80, Serie90 y UIQ. La mayoría de Nokia son Serie60 (aunque también dispone de Serie80 y Serie90) y todos los de Sony Ericsson y Motorola trabajan bajo UIQ. De hecho, Nokia ha hecho del Sistema Operativo Symbian su opción estratégica para los sistemas operativos de los smartphones. El software de los Nokia Serie60 es actualmente la plataforma de software más ampliamente utilizada en el mercado smartphone de todo el mundo, con mas 60 millones de telefonos

El desarrollo de aplicaciones para Symbian es sencillo ya que no es necesario aprender un lenguaje de programación nuevo, se puede programar a partir de lenguajes de programación de pc como Java, C++ Visual Basic, Python, Perl, Flash Lite (entre otros). Este echo ha conseguido que existan en la actualidad millones de aplicaciones para móviles Symbian que realicen todas las tareas imaginables: juegos, mapas, guías de ciudades, reproductores de vídeo, traductores, diccionarios, administradores de archivos, emuladores de otros dispositivos como consolas, navegadores web…

java y j2me

Page 19: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

J2ME es el acrónimo de Java 2 Micro Edition. J2ME es la versión de Java orientada a los dispositivos móviles. Debido a que los dispositivos móviles tienen una potencia de cálculo baja e interfaces de usuario pobres, es necesaria una versión específica de Java destinada a estos dispositivos, ya que el resto de versiones de Java, J2SE o J2EE, no encajan dentro de este esquema. J2ME es por tanto, una versión reducida de J2SE.

Sun, dispuesto a proporcionar las herramientas necesarias para cubrir las necesidades de todos los usuarios, creó distintas versiones de Java de acuerdo a las necesidades de cada uno. Según esto nos encontramos con que el paquete Java 2 lo podemos dividir en 3 ediciones distintas. J2SE (Java Standard Edition) orientada al desarrollo de aplicaciones independientes de la plataforma, J2EE (Java Enterprise Edition) orientada al entorno empresarial y J2ME (Java

Micro Edition) orientada a dispositivos con capacidades restringidas. Veamos cuáles son las características de cada una de las versiones:

1. Java 2 Platform, Standard Edition (J2SE). Esta edición de Java es la que encierta forma recoge la iniciativa original del lenguaje Java. Tiene las siguientescaracterísticas:

Inspirado inicialmente en C++, pero con componentes de alto nivel, como soporte nativo de strings y recolector de basura.Código independiente de la plataforma, precompilado a bytecodesintermedio y ejecutado en el cliente por una JVM (Java Virtual Machine).Modelo de seguridad tipo sandbox proporcionado por la JVM.

Esta versión de Java contiene el conjunto básico de herramientas usadas paradesarrollar Java Applets, así cómo las APIs orientadas a la programación de aplicaciones de usuario final: interfaz gráfica de usuario, multimedia, redes decomunicación…

2. Java 2 Platform, Enterprise Edition (J2EE). Esta versión está orientada al entorno empresarial. El software empresarial tiene unas características propiasmarcadas: está pensado no para ser ejecutado en un equipo, sino para ejecutarse sobre una red de ordenadores de manera distribuida y remota mediante EJBs (Enterprise Java Beans). De hecho, el sistema se monta sobre varias unidades o aplicaciones. En muchos casos, además, el software empresarial requiere que sea capaz de integrar datos provenientes de entornos heterogéneos. Esta edición está orientada especialmente al desarrollo de servicios web, servicios de nombres, persistencia de objetos, XML, autenticación, APIs para la gestión de transacciones, etc. El cometido de esta especificación es ampliar la J2SE para dar soporte a los requisitos de las aplicaciones de empresa.

Page 20: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

3. Java 2 Platform, Micro Edition (J2ME). Esta versión de Java está enfocadaa la aplicación de la tecnología Java en dispositivos electrónicos con capacidades computacionales y gráficas muy reducidas, tales como teléfonos móviles, PDAs o electrodomésticos inteligentes. Esta edición tiene unos componentes básicos que la diferencian de las otras versiones, como el uso de una máquina virtual denominada KVM (Kilo Virtual Machine, debido a que requiere sólo unos pocos Kilobytes de memoria para funcionar) en vez del uso de la JVM clásica, inclusión de un pequeño y rápido recolector de basura.

nuevos conceptosconfiguración

La configuración es un mínimo grupo de APIs (Application Program Interface),útiles para desarrollar las aplicaciones destinadas a un amplio rango de dispositivos. La configuración estándar para los dispositivos inalámbricos es conocida como CLDC (Connected Limited Device Configuration). El CLDC proporciona un nivel mínimo de funcionalidades para desarrollar aplicaciones para un determinado conjunto de dispositivos inalámbricos. Se puede decir que CLDC es el conjunto de clases esenciales para construir aplicaciones. Hoy por hoy, sólo tenemos una configuración, pero es de esperar que en el futuro aparezcan distintas configuraciones orientadas a determinados grupos de dispositivos. Los requisitos mínimos de hardware que contempla CLDC son:

160KB de memoria disponible para Java.Procesador de 16 ó 32 bits con al menos 25 Mhz de velocidad.Ofrecer bajo consumo, debido a que éstos dispositivos trabajan con suministro de energía limitado, normalmente baterías.Tener conexión a algún tipo de red, normalmente sin cable, con conexión intermitente y ancho de banda limitado (unos 9600 bps).

Los dispositivos que claramente encajan dentro de este grupo, son los teléfonos móviles, los PDA (Personal Digital Assintant) o los Pocket PC†�. En cuanto a

los requisitos de memoria, según CLDC, los 160KB se utilizan de la siguiente forma:128KB de memoria no volátil para la máquina virtual Java y para las librerías del API de CLDC32KB de memoria volátil, para sistema de ejecución (Java Runtime System).En cuanto a las limitaciones impuestas por CLDC, tenemos por ejemplo lasoperaciones en coma flotante. CLDC no proporciona soporte para matemática en coma flotante. Otra limitación es la eliminación del método Object.finalize. Este método es invocado cuando un objeto es eliminado de la memoria, para optimizar los recursos.

Page 21: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

También se limita el manejo de las excepciones. Es complicado definir una serie de clases de error estándar, que se ajuste a todos los dispositivos contemplados dentro de CLDC. La solución es soportar un grupo limitado de clases de error y permitir que el API específico de cada dispositivo defina su propio conjunto de errores y excepciones.

La seguridad dentro de CLDC es sencilla, sigue el famoso modelo sandbox. Las líneas básicas del modelo de seguridad sandbox en CLDC son:

Los ficheros de clases, deben ser verificados como aplicaciones válidas.Sólo las APIs predefinidas dentro de CLDC están disponibles.No se permite cargadores de clases definidos por el usuario.Sólo las capacidades nativas proporcionadas por CLDC son accesibles.

perfilesEl perfil es el que define las APIs que controlan el ciclo de vida de la aplicacióne interfaz de usuario. Más concretamente, un perfil es un conjunto de APIsorientado a un ámbito de aplicación determinado. Los perfiles identifican un grupo de dispositivos por la funcionalidad que proporcionan (electrodomésticos, teléfonos móviles…) y el tipo de aplicaciones que se ejecutarán en ellos. Las librerías de la interfaz gráfica son un componente muy importante en la definición de un perfil. Aquí nos podemos encontrar grandes diferencias entre interfaces, desde el menú textual de los teléfonos móviles hasta los táctiles de los PDAs.El perfil establece unas APIs que definen las características de un dispositivo,mientras que la configuración hace lo propio con una familia de ellos. Esto hace que a la hora de construir una aplicación se cuente tanto con las APIs del perfil como de laconfiguración. Tenemos que tener en cuenta que un perfil siempre se construye sobre una configuración determinada. De este modo, podemos pensar en un perfil como un conjunto de APIs que dotan a una configuración de funcionalidad específica.

Existen unos perfiles que construiremos sobre la configuración CDC y otros que construiremos sobre la CLDC. Para la configuración CDC tenemos los siguientes perfiles:

Foundation Profile.Personal Profile.RMI Profile.Y para la configuración CLDC tenemos los siguientes:PDA Profile.Mobile Information Device Profile (MIDP).

midletLas aplicaciones J2ME desarrolladas bajo la especificación MIDP, se denominan MIDLets. Las clases de un MIDLet, son almacenadas en bytecodes java, dentro de un fichero .class. Estas clases, deben ser verificadas antes de su puesta en marcha para garantizar que no realizan ninguna operación no permitida. Esta preverificación, se debe hacer debido a las 

Page 22: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

limitaciones de la máquina virtual usada en estos dispositivos (KVM). Para mantener esta máquina virtual lo más sencilla y pequeña posible, se elimina esta verificación, y se realiza antes de la entrada en producción. La preverificación se realiza después de la compilación, y el resultado es una nueva clase, lista para ser puesta en producción.

Los MIDLets, son empaquetados en ficheros .jar. Se requiere alguna información extra, para la puesta en marcha de las aplicaciones.Esta información se almacena en el fichero de manifiesto, que va incluido en el fichero .jar y en un fichero descriptor, con extensión .jad. Un fichero .jar típico, por tanto, se compondrá de:

Clases del MIDLetClases de soporteRecursos (imágenes, sonidos...)ManifiestoDescriptor

Un fichero .jar puede contener varios MIDLets. Esta colección de MIDLets, sesuele llamar MIDLet Suite. Esta unión de varios MIDLets en una distribución, permite compartir recursos tales como imágenes o sonidos y, por tanto, optimizar los recursos del dispositivo.Un MIDlet durante su ejecución pasa por 3 estados diferentes:

Activo: el MIDlet está actualmente en ejecución.Pausa: El MIDlet no está actualmente en ejecución. En este estado el MIDlet no debe usar ningún recurso compartido. Para volver a pasar a ejecución tiene que cambiar su estado a Activo.Destruido: El MIDlet no está en ejecución ni puede transitar a otro estado.

El gestor de aplicaciones (AMS) cambia el estado de los MIDlets haciendo una llamada a cualquiera de los métodos anteriores. Un MIDlet también puede cambiar de estado por sí mismo.

Ahora vamos a ver por los estados que pasa un MIDlet durante una ejecución típica y cuáles son las acciones que realiza tanto el AMS como el MIDlet. En primer lugar, se realiza la llamada al constructor del MIDlet pasando éste al estado de Pausa durante un corto período de tiempo. El AMS por su parte crea una nueva instancia del MIDlet.Cuándo el dispositivo está preparado para ejecutar el MIDlet, el AMS invoca al método MIDlet.startApp() para entrar en el estado de Activo. El MIDlet entonces, ocupa todos los recursos que necesita para su ejecución. Durante este estado, el MIDlet puede pasar al estado de Pausa por una acción del usuario, o bien, por el AMS que reduciría en todo lo posible el uso de los recursos del dispositivo por parte del MIDlet. Tanto en el estado Activo como en el de Pausa, el MIDlet puede pasar al estado Destruido realizando una llamada al métodoMIDlet.destroyApp().

Page 23: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Esto puede ocurrir porque el MIDlet haya finalizado su ejecución o porque una aplicación prioritaria necesite ser ejecutada en memoria en lugar del MIDlet. Una vez destruido el MIDlet, éste libera todos los recursos ocupados.

herramientas de desarrollo

En el mercado existen varias herramientas que nos pueden ayudar a la hora decrear nuestros MIDlets. En este tutorial vamos a hacer uso de un par de ellas que explicaremos a continuación:

1. La primera de ellas es un entorno de desarrollo de Java con un emuladorintegrado, el Sun One Studio Mobile Edition. Este entorno es exactamente igualal Sun One Studio, pero incluye un emulador con el que podemos ver laejecución de nuestros MIDlets, además de incluir las APIs propias de laconfiguración CLDC y el perfil MIDP (Mobile Edition).

2. La segunda herramienta es el J2ME Wireless Toolkit 2.0 que es simplementeun emulador al que le proporcionamos las clases java ya creadas y podemos ver el MIDlet en ejecución.

3.Desarrollo de aplicaciones en el Sun One Studio Mobile Edition

Una vez instalado el Sun One Studio Mobile Edition, nos aparecerá un entornobasado en ventanas donde podremos desarrollar y compilar nuestro MIDlet.Figura. Aspecto del Sun One Studio Mobile Edition.En esta herramienta es posible realizar todas las fases del desarrollo deaplicaciones MIDP:

Disponemos de un editor de texto totalmente integrado donde crear el códigofuente.Una vez creado el código del MIDlet es posible su compilación ya que elentorno dispone de todas las librerías necesarias para ello.El proceso de preverificación se realiza automáticamente después de lacompilación.El entorno también nos da la posibilidad de empaquetar el MIDlet por separado dentro de una MIDlet suite.

Por último, las fases de ejecución y depuración también la podemos realizarcon esta herramienta ya que nos permitirá ejecutar el MIDlet sobre un emulador, ya que trae integrada la herramienta J2ME Wireless Toolkit 1.0.4. Es posible sustituirla por la 2.2 con objeto de utilizar ciertas extensiones que esta última incorpora. Como vemos, esta herramienta engloba todas las fases de desarrollo en un mismo entorno.

Page 24: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

desarrollo de aplicaciones con el j2me wireless toolkit 2.2

Se trata de una plataforma ideada por Sun Microsystems cuya última versión salió al mercado a finales de octubre de 2004. Es un conjunto de herramientas que hace posible crear aplicaciones para teléfonos móviles y otros dispositivos inalámbricos. Aunque está basado en MIDP 2.0 (Mobile Information Device Profile), la J2 Wireless Toolkit también trae una amplia colección de paquetes opcionales que lo convierten en una herramienta de desarrollo bastante potente.

componentes.

Ktoolbar: que automatiza la mayor parte de las tareas involucradas en la creación de aplicaciones MIDP. Es el centro de la aplicación y se puede usar para construir aplicaciones, lanzar el emulador y empezar las utilidades.Emulator: se trata de una simulación de un teléfono móvil. Sobre él se evalúan las aplicaciones MIDP.Una colección de utilidades que proporciona otros servicios igualmente útiles,como pueden ser utilidades de criptografía o una consola de mensajes.

características.La J2ME Wireless Toolkit permite la creación de aplicaciones MIDP con lassiguientes características principales.

Building and packaging: el usuario sólo debe escribir el código y la herramienta de ocupa del resto, ya que ella compila, preverifica los ficheros de clases y empaqueta un MIDlet suite.Running and monitoring: se puede ejecutar el MIDlet directamente en elemulador o instalarlo usando un proceso que se parece a la instalación de unaaplicación en un dispositivo real.MIDlet suite signing: contiene herramientas para firmar criptográficamente losMIDlet, hecho que resulta de gran utilidad.

usoAl arrancar la Ktoolbar nos encontramos con una ventana con un aspecto tal que:

Se trata de un entorno muy simple que ni siquiera aporta un editor de texto. Portanto, el código deberemos escribirlo en cualquier editor de texto pasárselo a laKtoolbar de una manera bastante particular como veremos a continuación.

Page 25: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Si hacemos click en el botton de New project, nos aparecerá una ventana en el que tendremos que definir el nombre del proyecto que queremos crear así como el nombre de su MIDlet.Al hacer esto, nos saldrá una pantalla en la que podremos escoger multitud depropiedades y característias propias de la aplicación que queremos desarrollar.

La pantalla que muestra por defecto es:Figura. Menú de opciones de las aplicaciones.

Y, finalmente, nos dice los directorios que ha creado automáticamente donde deberán guardarse los ficheros. Este aspecto es especialmente crítico, ya que los ficheros deberemos colocarnos nosotros manualmente en dichos directorios.

3.3.- PROCESOS PARA EL DESARROLLO DE APLICACIONES MÓVILESPara la construcción de aplicaciones web y móviles se necesitan crear tres grandes procesos: Empecemos por el cliente móvil este debe cumplir, en lo posible, con los requerimientos del cliente en cuanto a procesos en el dispositivo móvil. despues encontramos la aplicación Web que es la que hace el trabajo "fuerte" y procesa el trabajo de los clientes móviles.El tercer gran proceso es el que se encuentra en el medio de los anteriores se denomina la sincronización. Este es el mecanismo por el cual se mantiene la consistencia e integridad de datos entre los clientes móviles y la aplicación de servidor.

  Para las aplicaciones en los clientes Móviles existen una variedad de dispositivos y software con los que se puede utilizar para crear sistemas que cumplan los requerimientos de un proyecto específico. algunos programas para la creación de software en el cliente móvil son:superwaba c# java(microedition) thinkdbEn cuanto a las aplicaciones Web tenemos una variedad de software como la siguiente:Jsp(Java Server Page) Php .Net python, Los procesos de sincronización se pueden implementar con Java,C# o utilizar algunas Herramientas de sincronización que traen las aplicaciones para Pda como ThinkDB.

3.4.- ALMACENAMIENTO DE DATOSsqliteSQLlite es una pequeña librería programada en lenguaje C que implementa uncompleto motor de base de datos que no precisa configuración.Es muy rápido y la ventaja fundamental es que permite utilizar el lenguajeestandar SQL.SQLite destaca, además de por su velocidad, por su versatilidad. El motor dePHP 5 ahora incluye soporte interno para SQLite.SQLite es Software Libre por lo tanto el código fuente es del dominio público y licencia GPL.La mayor parte de los lenguajes de programación modernos soportan SQLite.

Page 26: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

SQLite funciona en múltiples Sistemas Operativos.Las bases de datos de SQLite son compatibles al 100% entre cadaSistema Operativo.Transacciones atómicas, consistententes e incluso aún con una falla deenergía o caída del sistema no corrompen la base de datos.Cero configuración o administración necesitada.Implementa el lenguaje SQL92(Algunas características no oportadas)Una base de datos completa es almacenada en un solo archivo.La base de datos puede ser libremente compartida entre diversasmáquinas.Soporta tipos de datos BLOB.Simple y fácil de usar los API de desarrollo.Código fuente bien comentado con pruebas de hasta un 95% cubiertasNo tiene dependencias externas, Librerías de SQLite están autocontenidas.

Código Fuente es del dominio público,, puede usarse para algún propósito.

3.5.- FUNDAMENTOS DE SINCRONIZACIÓN.La Sincrinización es el proceso por el cual dos componentes intercambian datos o información. Los datos intercambiados pueden afectar la información uno o de ambos componentes. Se dice que esto se hace por medio de protocolos de sincronización, donde ambos componentes "conocen" la forma de intercambio de datos.

                                    sincronización de informaciónLa importancia de la sincronización radica en el mantenimiento de la confiabilidad e integridad de la información.Entre los protocolo se encuentran los siguientes:

Slow sync : En términos generales cuando se va ha sincronizar con este protocolo la pda transfiere todos los datos hacia el PC. y compara uno a uno los registro para ver cual ha sufrido cambios, se ha borrado o ha sido adicionado.

                         sincronización por medio de slow sync.Entoces cada uno de los datos existentes en la Base de datos o archivo de la pda pasa a sincronizar al pc, por eso se denomina show sync.Un ejemplo de datos pude ser la sincronización de pedidos, los cuales se requieren que pasen todos para su posterior facturación.

Fast sync :  Este protocolo de sincronización es mucho mas rápido que el anterior y se basa en que sólo pasan al servidor los datos que han tenido modificaciones, en otras palabras, los datos que no han sufrido cambios, borrados o adiciones no se sincronizan.

sincronización por medio de flast sync.

Page 27: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Un ejemplo típico de sincronización con este protocolo seria  el del  mantenimiento de una agenda de citas. Donde no se interesa sincronizar las citas que no han sufrido modificaciones. Si algunas citas permanecen igual se quedan sin sincronizar.Este protocolo de sincronización utiliza una  "bandera" de estado que permite  "marcar" los registros que han sufrido modificaciones desde la ultima fecha de sincronización.Cuando se sincronizan los el Pc y la Pda pueden ocurrir  los siguientes eventos:Inserción:          el registro nuevo en la Pda es adicionado al servidorModificación    : el registro de la Pda Remplaza al del servidor.Borrado          : el Registro en el servidor es borradoGuardado      : el Registro se guarda en el servidor.

Cuando termina la sincronización los "banderas"  de estado se anulan o "Resetean". Y se guarda la fecha de sincronización.El Protocolo Intellisync anywhere esta dedicado para la sincronización en red de diferentes dispositivos, donde los dispositivos móviles sincronizan con un servidor central.Además de los dos protocolos anteriores existe otro llamando SyncMl (Synchronous Mark Up Language)La objetivo de este protocolo es la sincronización "abierta" entre dispositivos de diferentes familias. Varias compañías unen esfuerzos para que sus equipos trabajen con este protocolo de sincronización. Se puede decir que se busca un protocolo de sincronización Universal.Este protocolo asume que cada dispositivo guarda banderas de estado de los registros de los demas. Asi que este necesita bastante almacenamiento para mantener la integridad de la información y las banderas de estado.                                      sincronización por medio de intellisync y per-to-per.Per-To-Per: es otro protocolo de sincronización donde todos y cada uno de los dispositivos se sincronizan sin la necesidad de un computador centrar o servidor como ocurre en el caso del protocolo  Intellisync anywhere.No esta demás hacer énfasis en que la sincronización es un proceso diferente al de transmisión de información. No se deben confundir estos términos por muy similares que parezcan.El lector puede buscar información de este tema por el nombre de Conduit.Para la sincronización en  una aplicación se pueden  utilizar  tablas de sincronización.En algunas aplicaciones no se sincroniza directamente sobre la base de datos. para este fin se utilizan tablas temporales donde se guarda la información y  posteriormente con un proceso  se puede depurar y hacer correcciones.Lo anterior se realiza por motivos de seguridad.                       

Sincronización sobre Tablas de sincronización. No directamente sobre la base de datos principal.

Page 28: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Un ejemplo de esto seria la sincronización en un sistema de pedidos donde lo que se necesita es descargar los pedidos y  que el proceso de facturación se encarge del resto.Claro esta que se puede sincronizar directamente sobre la base de datos y hacer la depuración en el proceso de sincronización

        agente de sincronización de hotsyncEstas simplemente son opciones que se plantean, el lector puede utilizar la que mejor se adapte a su aplicación.

3.6.- ARQUITECTURAS DE SINCRONIZACIÓN.

sincronización de procesos Concurrencia de procesos Región crítica Semáforos Esquemas de sincronización Bloqueos mútuos (deadlock).

región crítica

* Regiones críticas: Zonas de un código que leen o modifican datos compartidos con otros procesos.* Es necesario garantizar la ejecución de cada región crítica como una operación de modificación o consulta atómica (evitar que los datos sean accedidos por otro proceso durante la ejecución de esa parte del código)* Las operaciones para lograr la ejecución de una sección crítica en exclusiónmútua son:

Esperar (wait): Verifica que nadie ejecuta una región crítica. Indicar terminación (signal): Indica que se abandona la región crítica.

proceso1: d=generar datosproceso2: wait(S)wait(S) obtener dato f de Bufferalmacenar d en Buffer signal(S)signal(S) consumir dato f

semáforos

* Son objetos ofrecidos por el sistema operativo a los procesos que permiten controlar la exclusión mútua.* Estado del semáforo: indica si hay algún proceso dentro de la sección crítica* Operaciones (semáforos binarios):

Page 29: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

* wait(S): si el semáforo está ocupado, bloquea al proceso,cuando esté libre continua la ejecución y pone el semáforoa ocupado.* signal(S): pone el semáforo en estado libre.* Existen semáforos n-arios que dejan pasar hasta n procesos a la exclusiónmútua antes de bloquear a los que entran.* Monitores: tipos de datos de lenguajes de alto nivel (como Ada) que incorporan implícitamente un semáforo en su implementación (esconden el control de concurrencia al programador).

esquemas de sincronización

* Existen esquemas de sincronización de procesos concurrentes muy usados.* Exclusión mútua: acceso concurrente a datos para operaciones de consulta y modificación (p.e. bases de datos).*Productor-consumidor: uno o mas procesos dejan dato en un buffer y uno o mas procesos los toman del buffer (la sincronización solo hace esperar al consumidor cuando no hay datos).

proceso1: repetir proceso2:repetirproducir dato wait(S)signal(S) consumir datofrepetir frepetir

* Barrera de sincronización: varios procesos trabajan deforma independiente para producir un único resultado a partir de los resultados parciales (reducción).proceso1: procesar datosproceso2:procesar datos

barrier(S) barrier(S) combinar resultadosbloqueos mútuos (deadlock)

* El sistema controla la asignación de recursos a procesos* Los procesos piden recursos* El sistema los asigna a los procesos* Los procesos los devuelven cuando terminan de usarlos* Cuando un proceso pide un recurso ya asignado se bloquea hasta que el recurso es liberado.* Un deadlock es una espera cíclica entre procesos que esperan recursos pedidos .* El sistema debe evitar que los procesos se queden bloqueados para siempre

estrategias de asignación de recursos

Page 30: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

* Prevención: políticas de petición y asignación de recursos conservadoras evitan que se puedan producir deadlocks.* Detección: políticas de petición y asignación más liberales que permiten la aparición de deadlocks requieren algoritmos de detección: examinar la situaciónactual para encontrar grupos de procesos bloqueados por deadlock

* Recuperación: políticas de actuación para deshacer lassituaciones de deadlock (eliminar procesos, revocar asignaciones, â€¦).seguridad

* Seguridad*Medidas de prevención*Medidas de recuperación*Sistemas de almacenamiento redundantes (RAID, SAN)

medidas de prevención

- Medidas que tratan de evitar los desastres o fallos.- Medidas de protección (control de acceso de usuarios y políticas de permisos).- Sistemas de alimentación ininterrumpida SAI (UPS).- Sistemas redundantes o tolerantes a fallos.- Fuentes de alimentación redundantes.- Sistemas multiprocesadores: un computador con varios modulos independientes de procesadores y memoria.- Sistemas distribuidos: varios computadores independientes unidos por una red de datos.- Sistemas de almacenamiento redundantes (RAID).- Uso de salas seguras (acceso restringido) y acondicionadas (condiciones de temperatura, humedad, y partículas de polvo controladas).

Uso de cortafuegos en la red de datos.

medidas de recuperación- Medidas que permiten recuperar el sistema en caso de desastre o fallo.- Realización de copias de seguridad.-Almacenado de cintas de backup en armarios ignífugos.- Reconfiguración automática del hardware/software en los equipos redundantes/tolerantes a fallos.- Reconfiguración automática del software en los sistemas distribuidos.- Cambio de componentes con el equipo en funcionamiento (hot-swap).

Page 31: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

sistemas de almacenamiento redundantes (i)- RAID: Armarios de discos que son vistos por el computador como un solo disco.- Se requiere un controlador que controla el conjunto de discos y responde al computador como si fuera un único disco.- Algunas configuraciones permiten velocidades de transferencia muy elevadas.- Permiten continuar funcionando en caso de avería de un disco gracias a la redundancia (mirroring, paridad ).

sistemas de almacenamiento redundantes (ii)- Storage Area Network: El bus de periféricos permite conectar los discos a varios computadores simultáneamente.- En caso de avería de un sistema, otro sistema puede continuar ejecutando las aplicaciones accediendo a los mismos datos (p.e. servidores de Base de Datos redundantes).- La reconfiguración es automática (no requiere desenchufar y enchufar nada ni reconfigurar sofware).

Page 32: UNIDAD 3.- CONSTRUCCIÓN DE APLICACIONES MÓVILES

Bibliografíahttp://www.monografias.com/trabajos24/arquitectura-cliente-servidor/arquitectura-cliente-servidor.shtmlhttp://luciacpe.blogspot.mx/2010/03/cliente-ligero-y-cliente-inteligente.htmlhttp://es.slideshare.net/TWIGGYRamirez1/arquitectura-cliente-1https://es.wikipedia.org/wiki/Middlewarehttp://www.tesoem.edu.mx/alumnos/cuadernillos/2013.001.pdf