Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles




descargar 387.55 Kb.
títuloResumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles
página8/15
fecha de publicación28.11.2015
tamaño387.55 Kb.
tipoResumen
med.se-todo.com > Documentos > Resumen
1   ...   4   5   6   7   8   9   10   11   ...   15

JAVA Y J2ME



      1. JAVA


Java es un lenguaje de programación de propósito general, basado en clases y orientado a objetos. Fue diseñado para ser sencillo y con una sintaxis muy similar a uno de los lenguajes mas adoptados que existían desde la creación de Java hasta hoy, el lenguaje C/C++. Con una organización un poco diferentes y obviando algunos aspectos del mismo, Java fue concebido como un lenguaje para el área de producción y no para el campo investigativo.

El lenguaje Java se creó con cinco objetivos principales:

  • Usar la metodología de la programación orientada a objetos.

  • Permitir la ejecución de un mismo programa en múltiples sistemas operativos.

  • Incluir por defecto soporte para trabajo en red.

  • Ejecutar código en sistemas remotos de forma segura.

  • Fácil de usar y toma lo mejor de otros lenguajes orientados a objetos, como C++.

Para conseguir la ejecución de código remoto y el soporte de red, los programadores de Java a veces recurren a extensiones como CORBA (Common Object Request Broker Architecture), Internet Communications Engine u OSGi respectivamente.
        1. Independencia de la plataforma


Los programas escritos en el lenguaje Java puedan efectuarse igualmente en cualquier sistema operativo, de aquí el famoso lema de la compañía ‘write once, run everywhere.4’.

Para lograr este objetivo se compila el código fuente escrito en lenguaje Java. El compilador genera un código conocido como ‘bytecode’ (específicamente ‘Java bytecode’), el cual está formado por instrucciones de máquina simplificadas específicas de la plataforma Jav. El bytecode es un código intermedio entre el código fuente original y el código de maquina del hardware que va a ejecutarlo. El bytecode es ejecutado entonces por la máquina virtual (JVM).
        1. Máquina Virtual de Java


La Máquina Virtual de Java es un programa escrito en código nativo de una plataforma, que interpreta y ejecuta código bytecode de Java. La JVM (Java Virtual Machine) es entonces escrita y compilada para un sistema operativo específico, y tiene la responsabilidad de tomar el bytecode y ejecutarlo sobre el sistema operativo en el cual se encuentra y para el cual fue creada.



Figura . Ciclo de ejecución de los programas Java.

Adicionalmente se suministran bibliotecas adicionales para acceder a las características de cada dispositivo (como los gráficos, ejecución mediante hebras o threads, la interfaz de red) de forma unificada. La JVM interpreta el bytecode convirtiéndolo a instrucciones maquina del código nativo por el compilador JIT (Just In Time) que viene incluido en la JVM

Sin embargo, mientras el programa en Java es independiente de la plataforma gracias a la arquitectura de máquinas virtuales, el código de la máquina virtual no; cada sistema operativo que soporte Java debe tener una versión propia de su JVM5.
        1. Plataformas Java


Una plataforma Java es un conjunto de programas relacionados distribuidos como un único paquete por Sun Microsystems, para permitir el desarrollo y ejecución de programas escritos en el lenguaje de programación Java. Cada plataforma corresponde, no a un tipo de procesador o sistema operativo, sino a una JVM y un compilador con una serie de librerías que son específicas para un gama de sistemas operativos y hardware, de forma que los programas creados para un plataforma especifica funcionen en todos los dispositivos que alberge esta plataforma.

Las plataformas actuales son:

  • Java Card: Esta plataforma permite la creación y ejecución de pequeñas aplicaciones sobre tarjetas inteligentes ‘smart cards’ y dispositivos similares.

  • Java ME (Micro Edition): Alberga diversos tipos de dispositivos que se destacan por ser limitados en las prestaciones que ofrecen en comparación con ordenadores comunes, está diseñada para dispositivos móviles y otros con bajas capacidades de memoria, almacenamiento y procesamiento.

  • Java SE (Standard Edition): Para propósito general en computadores personales (PC), servidores y dispositivos similares

  • Java EE (Enterprise Edition): Es la misma plataforma SE, pero con diversas funcionalidades y APIs para realizar aplicaciones cliente servidor multi-capa.

Cada plataforma se distribuye con diversos programas, donde cada uno provee algunas funcionalidades específicas. Por ejemplo, el compilador de Java que convierte el código Java en bytecode Java pertenece a un subconjunto o kit de programas dentro de la plataforma denominado ‘Java Development Kit’ o JDK, que es un kit con los programas necesarios para desarrollar aplicaciones Java; otro, el JRE o ‘Java Runtime Enviorment’ viene con la JVM y el compilador JIT, este conjunto entonces es el encargado de ejecutar los programas que están en bytecode sobre el sistema operativo y hardware para el cual están construidos.



Figura . Componentes de las plataformas Java.
        1. Licenciamiento


Sun Mycrosistems anunció en la conferencia JavaOne en 2006 que Java sería gratuito y software libre. Desde ese entonces ha liberado parte de sus plataformas, gradualmente, debido a que secciones del código no eran de propiedad exclusiva de Sun Microsystems.
      1. J2ME: JAVA 2 MICRO EDITION


J2ME es una colección de tecnologías y especificaciones que conforman una plataforma apta para las necesidades de dispositivos como PDA’s, sistemas embebidos, dispositivos de hogar y teléfonos celulares.

La tecnología Java ME (ahora conocido como j2ME), fue originalmente creada para lidiar con las restricciones asociadas en desarrollar aplicaciones para dispositivos pequeños. Esta plataforma permite construir un entorno de ejecución de Java (JRE) que se ajuste a los requerimientos de un dispositivo en particular del mercado.

La Tecnología Java ME basa en tres elementos:

  • Configuración: Una configuración abarca una amplia gama de dispositivos con características similares en recursos, capacidad de procesamiento e interfaz. Cada configuración provee las librerías básicas y características de la maquina virtual específicas para la gama de dispositivos que cubre la configuración. J2ME cuenta con 2 configuraciones disponibles, una para pequeños dispositivos llamada Connected Limited Device Configuration (CLDC) donde entran PDA’s, teléfonos celulares y similares y Connected Device Configuration (CDC) para dispositivos con mayores capacidades.

  • Perfil: Un perfil es una serie de APIs que provee soporte específico para un conjunto de dispositivos. Es en el perfil donde se definen las interfaces de usuario para construir aplicaciones con interacción humana.

  • Paquetes adicionales: Son conjuntos de APIs específicos de ciertas tecnologías adicionales que no pertenecen a una configuración o a un perfil. Son tecnologías comunes que no son asociadas directamente al tipo de dispositivo, sino que son características que pueden estar o no en un dispositivo sin que este deje de cumplir su propósito general, por ejemplo Bluetooth, mensajería (SMS), localización, entre otras.

java me components

Figura . Plataforma de Java ME.
        1. Connected Limited Device Configuration (CLDC)


Esta configuración está diseñada para dispositivos con recursos limitados de memoria, almacenamiento, procesamiento y capacidades gráficas. Sobre esta configuración se especifican diversos perfiles que definen una serie de APIs de alto nivel que vendrán a definir el comportamiento de las aplicaciones que se ejecuten. Una combinación que ha tenido gran aceptación y popularidad, es combinar CLDC con el perfil Mobile Information Device Profile (MIDP), esta combinación constituye un entorno de ejecución para dispositivos móviles y otros dispositivos con características similares.

wireless platform

Figura . Plataforma CLDC y MIDP.
        1. Mobile Information Device Profile (MIDP)


Actualmente en la versión 3 (MIDP 3.0), este perfil está diseñado para dispositivos móviles, teléfonos celulares y similares. Cuenta con una API para visualización GUI (Grafical User Interface) llamada LCDUI y un API básico de juegos 2D, las aplicaciones creadas para usar este perfil son conocidas como MIDlets. La gran mayoría de teléfonos celulares vienen provistos con una implementación de MIDP y es el estándar de facto para los juegos de teléfonos celulares descargables de internet.
        1. Máquina Virtual KVM


J2ME cuenta con dos implementaciones de máquina virtual. Estas son la KVM (Kylo Virtual Machine) y la CVM (Compact Virtual Machine). La KVM es la máquina virtual Java más reducida desarrollada por Sun Mycrosistems y está orientada a dispositivos con bajas capacidades de procesamiento, esta máquina virtual es la que se utiliza en la configuración CDLC. La CVM es también una máquina virtual Java reducida y está orientada a dispositivos electrónicos con procesadores de 32 bits de gama alta y memoria total de 2MB o mayor.
        1. Paquetes Adicionales


Adicionales a los perfiles, J2ME tiene unos paquetes opcionales que agregan funcionalidades específicas a uno o más perfiles. Algunos de los más conocidos son:

  • Information Module Profile (IMP). JSR 195: Proporciona un entorno de aplicación para dispositivos embebidos que no tiene grandes capacidades gráficas o con recursos limitados de alguna otra manera: paneles de emergencia, parquímetros, sistemas de alarma domésticos y similares.

  • Multimedia API (MMAPI) JSR 135: Este paquete extiende la funcionalidad de la plataforma J2ME incorporando soporte de audio, vídeo y otros tipos de datos multimedia basados en tiempo a dispositivos de recursos limitados.

  • Wireless Messaging API (WMA) JSR 120 JSR 205: El API para mensajería sin cables proporciona acceso independiente de plataforma a recursos de comunicación sin cable como la mensajería SMS (Short Message Service).

  • Bluetooth API JSR 082: Proporciona un estándar para la creación de aplicaciones Bluetooth, de forma que las aplicaciones desarrolladas con el paquete opcional puedan ejecutarse utilizando esta tecnología.

  • Location API for J2ME JSR 179: Permite la localización de dispositivos móviles para dispositivos con recursos limitados. El API se ha diseñado para generar información sobre la localización geográfica actual del terminal para las aplicaciones Java.

  • Security and Trust Services API JSR 177: Este paquete amplía las características de seguridad para la plataforma J2ME añadiendo APIs de cifrado, servicio de firma digital y gestión de credenciales de usuario.

  • Mobile 3D Graphics API JSR 184: Permite generar gráficos tridimensionales a frecuencias de imagen interactivas en dispositivos móviles de recursos restringidos.

  • SIP API for J2ME JSR 180: El protocolo Session Initiation Protocol (SIP) se utiliza para establecer y gestionar sesiones IP multimedia. El API se ha diseñado para permitir que las aplicaciones Java envíen y reciban mensajes SIP.

  • J2ME Web Services APIs (WSA), JSR 172: Amplía la plataforma de servicios Web para incluir J2ME. Estas APIs permiten que los dispositivos J2ME puedan ser clientes de servicios Web mediante un modelo de programación consistente con la plataforma estándar de servicios Web.

  • J2ME RMI Optional Package, (RMI OP) JSR 066: Es un paquete que se puede utilizar sobre CDC. EL paquete RMI Optional (RMI OP) permite a dispositivos de consumo y aplicaciones embebidas interactuar cómo y con aplicaciones distribuidas.

3.4 JSON

JSON  (JavaScript Object Notation - Notación de Objetos de JavaScript) es un formato ligero de intercambio de datos independiente de cualquier lenguaje de programación. Está basado en un subconjunto del Lenguaje de Programación JavaScriptStandard ECMA-262 3rd Edition; como subconjunto de la notación literal de objetos de JavaScript  no requiere el uso de XML. JSON tiene formato de texto plano, de simple lectura, escritura y generación. Utiliza convenciones que son ampliamente conocidas por los programadores de la familia de lenguajes C, incluyendo C, C++, C#, Java, JavaScript, Perl, Python, y muchos otros. Estas propiedades hacen que JSON sea un lenguaje ideal para el intercambio de datos.

3.4.1 FORMAS DE REPRESENTACIÓN

JSON está constituido por dos estructuras:

  • Una colección de pares de nombre/valor. En varios lenguajes esto es conocido como un objeto, registro, estructura, diccionario, tabla hash, lista de claves o un arreglo asociativo.

  • Una lista ordenada de valores. En la mayoría de los lenguajes, esto se implementa como arreglos, vectores, listas o sequencias.

Estas son estructuras universales; virtualmente todos los lenguajes de programación las soportan de una forma u otra. Es razonable que un formato de intercambio de datos que es independiente del lenguaje de programación se base en estas estructuras.

En JSON, se presentan de estas formas:

Estructura

Definición

Representación

Objeto

Conjunto desordenado de pares nombre/valor. Notación:

  • Empieza con llave de apertura {

  • Termina una llave de cierre }

  • Sus propiedades se separan con comas ,

  • El nombre y el valor están separados por dos puntos :

object.gif


Array

Colección ordenada de valores u objetos. Notación:

  • Inicia con corchete izquierdo [

  • Acaba con corchete derecho ]

  • Los valores se separan con una coma ,

array.gif


Value

Puede ser:

  • Una cadena de caracteres con comillas dobles

  • Un número

  • True, false, null

  • Un objeto

  • Un array

Estas estructuras pueden anidarse

value.gif


String

Colección de 0 o más caracteres Unicode encerrados entre comillas dobles. Los caracteres de escape usan la barra invertida. Es parecida a una cadena de caracteres en C o Java.

string.gif

Number

Un número es similar a un número C o Java, excepto que no se usan los formatos octales y hexadecimales


number.gif

3.4.2 COMPARACIÓN CON XML

Entre sus similitudes se cuenta que ambos son legibles por humanos, tienen una sintaxis muy simple, son jerárquicos, son independientes del lenguaje de programación y se pueden usar empleando Ajax.

La ventaja fundamental de JSON frente a XML es la cantidad de caracteres que se emplean para representar información estructurada, significativamente menor en el caso de JSON en la mayoría de los casos. Por lo tanto, al momento de transmitir información aquella codificada en JSON se comunica de forma más veloz y eficiente. En contraposición, XML goza de mayor soporte y ofrece muchas más herramientas de desarrollo (tanto en el lado del cliente como en el lado del servidor). Hay muchos analizadores JSON en el lado del servidor, existiendo al menos un analizador para la mayoría de los entornos. Ambos formatos carecen de un mecanismo para representar grandes objetos binarios.

Sin embargo, para decidir entre XML y JSON es necesario experimentar con el conjunto de datos a tratar para determinar qué formato será más eficiente en términos de tamaño. JSON no es siempre más pequeño que XML. El beneficio de JSON, entonces, no es que sea más pequeño a la hora de transmitir, sino que representa mejor la estructura de los datos y requiere menos codificación y procesamiento. Con independencia de la comparación con XML, JSON puede ser muy compacto y eficiente si se usa de manera efectiva.

Los entornos en el servidor normalmente requieren que se incorpore una función u objeto analizador de JSON. Algunos programadores, especialmente los familiarizados con el lenguaje C, encuentran JSON más natural que XML, pero otros desarrolladores encuentran su escueta notación algo confusa, especialmente cuando se trata de datos fuertemente jerarquizados o anidados muy profundamente.

3.5 PLATAFORMA DE DESARROLLO .NET FRAMEWORK

Las aplicaciones del monitor LETSMonitor y del servidor LETSServer requirieron para su desarrollo el uso de la plataforma .NET Framework de Microsoft. Uno de los componentes más importantes del .NET Framework es el CLR o Common Language Runtime (Lenguaje común en tiempo de ejecución), que es el componente de máquina virtual de .NET Framework. Este es la implementación del estándar CLI (Common Language Infraestructure) que define un ambiente de ejecución para los códigos de los programas. El CLR se ejecuta sólo en sistemas operativos de Microsoft Windows. La forma en que la maquina virtual se relaciona con el CLR permite, durante el proceso de programación, ignorar muchos detalles específicos del CPU que ejecutará el programa. 

Los desarrolladores que usan CLR escriben el código en un lenguaje como C# o VB.Net. En tiempo de compilación, un compilador.NET convierte el código a MSIL (Microsoft Intermediate Language). En tiempo de ejecución, el compilador en tiempo de ejecución (Just-in-time compiler) del CLR convierte el código MSIL en código nativo para el sistema operativo. Alternativamente, el código MSIL es compilado a código nativo en un proceso separado anterior a la ejecución. Esto acelera las posteriores ejecuciones del software debido a que la compilación de MSIL a nativo ya no es necesaria.

diagrama clr.png

figura . DIAGRAMA CLR (COMMON LANGUAGE RUNTIME)

LETS fue desarrollado usando el .NET Framework 3.5 entre cuyas características se destacan:

  • Integración total de LINQ (Language Integrated Query) y del reconocimiento de los datos. Esta nueva característica le permitirá escribir código en idiomas habilitados para LINQ para filtrar, enumerar y crear proyecciones de varios tipos de datos SQL, colecciones, XML y conjuntos de datos usando la misma sintaxis.

  • ASP.NET AJAX le permite crear experiencias web más eficaces, más interactivas y con un gran índice de personalización que funcionan con los exploradores más usados.

  • Nueva compatibilidad con el protocolo web para generar servicios WCF, como por ejemplo AJAX, JSON, REST, POX, RSS, ATOM y distintos estándares WS- nuevos.

  • Compatibilidad total con las herramientas de Visual Studio 2008 para WF, WCF y WPF, incluida la nueva tecnología de servicios habilitados para flujos de trabajo.

  • Nuevas clases en la biblioteca de clases base (BCL) de .NET Framework 3.5 que tratan numerosas solicitudes de cliente comunes.

ASP.NET es un framework para aplicaciones web construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

Para la construcción de la aplicación LETSMonitor fueron utilizadas las "web forms" (formularios web), páginas de ASP.NET que son el principal medio de construcción para el desarrollo de aplicaciones web.  Están contenidos en archivos con una extensión ASPX; estos archivos contienen etiquetas HTML o XHTML estático, y también etiquetas definiendo Controles Web que se procesan del lado del servidor y Controles de Usuario donde los desarrolladores colocan todo el código estático y dinámico requerido por la página web. Para realizar programación dinámica se usa el modelo code-behind, o de respaldo, que coloca el código en un archivo separado o en una etiqueta de script especialmente diseñada. 

  1. MARCO METODOLÓGICO

La programación extrema o eXtreme Programming (XP) es un enfoque de la ingeniería de software, que se destaca entre los procesos ágiles de desarrollo de software. La metodología de programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad. Así, a medida que se desarrolla el producto de software los requisitos sobre los que este se ha elaborado pueden transformarse para responder de modo más adecuado a las necesidades del cliente. De este modo, no todos los requisitos para construir el software deben generarse al principio del proyecto.

En Extreme Programming Explained: Embrace Change (1999), el primer libro acerca de la metodología XP, su autor Kent Beck definió los principios fundamentales de la programación extrema. Estos son:

  • Simplicidad: La simplicidad es el fundamento de la programación extrema. El código es diseñado de forma sencilla y con poca complejidad, y se trabaja en mantener bajo su nivel de complejidad a lo largo del desarrollo del software, para que éste sea más ágil. El principio de simplicidad también se manifiesta en la elección de los nombres para las variables, métodos y clases; y en la insistencia de que la documentación del código, si bien completa, no exceda la justa medida en lo relacionado con los comentarios. El código debe quedar autodocumentado.

  • Comunicación: Existe comunicación en diferentes sentidos. Los programadores, que trabajan en parejas, se comunican constantemente entre sí. Por su parte, el cliente forma parte del equipo de desarrollo y por tanto tiene que estar interactuando con éste constantemente, ayudando a establecer prioridades y resolver incertidumbres. El código comunica en cuanto está autodocumentado, y se recomienda reducir los comentarios al máximo dado que pierden validez en el proceso.

  • Retroalimentación: En Extreme Programming, el trabajo se desarrolla en ciclos cortos y al final de cada uno se revisan los resultados para determinar si estos corresponden a los requisitos del software. El cliente, que está integrado al equipo de desarrollo, brinda su opinión acerca de los resultados para determinar si estos son los deseados o si deben ser modificados. Contar permanentemente con la opinión del cliente es vital para que el equipo de desarrollo direccione sus esfuerzos de la forma más eficiente.

  • Coraje: Este principio se asocia con la capacidad del equipo de desarrollo de adoptar los anteriormente mencionados. Cumplir con la programación en parejas, la retroalimentación constante entre el cliente y el equipo, mantener la simplicidad del código y realizar desarrollos en ciclos cortos son metodologías de desarrollo que, en principio, no se consideran tan eficientes, económicas o rentables como las tradicionales, pero que son defendidas por Extreme Programming dado que al final favorecen un desarrollo ágil y sostenido que respeta el trabajo del equipo de desarrollo y las necesidades del cliente.

  • Respeto: Este principio fue añadido en la segunda edición de Extreme Programming Explained. Se refiere al equilibrio que guardan entre sí los miembros del equipo al trabajar de forma cooperativa y armónica, sin obstaculizarse mutuamente y obrando en conjunto por lograr alta calidad en el producto final.


1   ...   4   5   6   7   8   9   10   11   ...   15

similar:

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles iconResumen el presente trabajo trata del diseño, construcción y caracterización...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles iconProtocolo de calidad para la implementación de herramientas de la...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles iconResumen El presente avance constituye el resumen de un artículo a...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles icon2011 diseño y construccion de la herramienta miosma para el posicionamiento...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles iconResumen general del software

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles iconDiseño e implementación de objetos virtuales de aprendizaje para...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles icon"diseño e implementación de un aula virtual como apoyo a las estrategias...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles icon"diseño e implementación de un aula virtual como apoyo a las estrategias...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles icon"diseño e implementación de un aula virtual como apoyo a las estrategias...

Resumen título: diseñO, análisis e implementación de un prototipo de herramienta de software orientada a geolocalización y seguimiento por eventos de terminales móviles iconResumen se realizo el proceso de cromatografía plana en papel utilizando...


Medicina



Todos los derechos reservados. Copyright © 2015
contactos
med.se-todo.com