• No se han encontrado resultados

Personaljava, una oportunidad en dispositivos móviles

N/A
N/A
Protected

Academic year: 2020

Share "Personaljava, una oportunidad en dispositivos móviles"

Copied!
36
0
0

Texto completo

(1)PERSONALJAVA, UNA OPORTUNIDAD EN DISPOSITIVOS MÓVILES. ADOLFO ARDILA PORRAS Código: 199921696. Tesis De Ingeniería De Sistemas Y Computación. ASESOR: PROFESOR HAROLD CRUZ. UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA INGENIERÍA DE SISTEMAS Y COMPUTACIÓN BOGOTÁ, COLOMBIA JUNIO DE 2005.

(2) PRESENTACIÓN A continuación se presenta el documento final del trabajo de Tesis final, el cual es el resultado de varios meses de estudio y sacrificio, que me gustó, cautivó y decepcionó al mismo tiempo.. Aquí se evidencia el trabajo realizado durante los últimos semestres de mi pregrado en Ingeniería de Sistemas y Computación de la Universidad de los Andes. Quisiera agradecer de especial manera a mi asesor Harold Cruz, quien estuvo atento a mi trabajo, además de comprensivo y amigable. Todos mis profesores de la carrera y mis compañeros. Además, quiero aprovechar esta oportunidad para agradecerles a mis padres y hermana, ya que sin su ayuda esto hubiese sido muy complicado..

(3) TABLA DE CONTENIDO INTRODUCCIÓN .................................................................................................................4 DEFINICIÓN DEL PROBLEMA.........................................................................................6 OBJETIVOS ..........................................................................................................................7 Objetivos Generales......................................................................................................7 Objetivos Específicos ...................................................................................................7 MARCO REFERENCIAL ....................................................................................................9 Marco Teórico.................................................................................................................9 Definiciones Previas....................................................................................................9 PersonalJava ............................................................................................................. 10 Otras Alternativas...................................................................................................... 11 Estado del Arte ............................................................................................................ 14 DISEÑO METODOLÓGICO............................................................................................ 17 Herramientas Utilizadas ............................................................................................ 17 NetBeans.................................................................................................................... 18 PersonalJava Emulation Environment................................................................... 18 ¿QUÉ ES PERSON ALJAVA? ......................................................................................... 19 Paquete que adiciona funcionalidad para dispositivos móviles ................... 21 APLIC ACIÓN DESARROLLADA.................................................................................... 24 Tópicos Importantes .................................................................................................. 27 RESULTADOS .................................................................................................................. 29 CONCLUSIONES............................................................................................................. 32 BIBLIOGR AFÍA.................................................................................................................. 35.

(4) INTRODUCCIÓN En la actualidad hay un gran furor en el aprovechamiento de la tecnología, se ha visto cómo la comercialización de PDA1 (también conocidas como Handhelds) está volviéndose muy popular, para muchas personas se ha vuelto un dispositivo indispensable. Esto se debe principalmente a que los costos han disminuido, asimismo, las características de éstos han mejorado. Adquirir tecnología en estos tiempos es sencillo, no se necesitan presupuestos astronómicos, ni paciencia con la importación de un dispositivo, en las tiendas cerca de los hogares es posible conseguir lo que se desea. Algo similar ocurre con los teléfonos celulares, el público ha afrontado que estos dispositivos no pueden faltar en la sociedad moderna, muchas actividades en el mundo se mueven gracias a la comunicación a través de los teléfonos móviles. Ahora, si ya se sabe que cada vez más y más personas buscan tecnología, ya sea de PDA o de teléfonos celulares, por qué no comenzar a desarrollar sistemas para estas nuevas tecnologías. Es apenas natural, que cada persona es distinta y necesita programas en su dispositivo móvil que no viene incluido, o que trae muchas limitaciones, en el mismo. ¿No sería interesante conveniente que cada persona que quisiera pudiese desarrollar sus propios programas para sus dispositivos, que sea acorde para sus necesidades? Pensando en esto se ha intentado llegar a un estándar, que hiciera simple el desarrollo de aplicaciones para dispositivos móviles; uno de ellos es PersonalJava, un lenguaje de programación que fue uno de los precursores.. 1. Agendas Digitales Personales, por sus siglas en inglés.

(5) Aunque en muchas cosas es limitado y presenta problemas, fue el punto de inicio y tiene un papel importante en la historia del desarrollo para dispositivos móviles. Basado en estas razones, considero que es importante conocer de dónde salió todo, cómo fueron sus inicios y complicaciones, para ello este trabajo tiene como fin analizar en profundidad PersonalJava, así como sus avances, sus aportes a la ciencia de la computación y su futuro..

(6) DEFINICIÓN DEL PROBLEMA Si se tuviese alguna forma de desarrollar aplicaciones para dispositivos cuyos recursos en cuanto a desempeño sean limitados, se podrían hacer las adaptaciones necesarias, para escalarlo hacia PDA o teléfonos celulares. Esta es la principal complicación que se presenta cuando se habla de software para dispositivos móviles, su reducida memoria. El lenguaje y la tecnología usados deben tener este hecho en cuenta y optimizar siempre el uso de la memoria. En la actualidad hay varias posibilidades para llevar a cabo un desarrollo para dispositivos móviles, una opción es usar PersonalJava, una tecnología que es bien conocida en el mundo de la Computación Móvil, es un ambiente Java que se basa en una máquina virtual y en un conjunto de APIs similares al JDK 1.1.. Aunque este lenguaje está siendo adaptado en su totalidad por el perfil Personal Profile de J2ME, sería importante entender las características de esta tecnología. Esto mismo es o que se pretende este documento, analizar a fondo las ventajas y limitaciones, así como entender su funcionamiento. Téngase en cuenta que fue el punto de partida de muchas investigaciones y trabajos para llegar a estandarizar y darle robustez al desarrollo para dispositivos móviles, sería interesante saber cómo funciona, qué se puede y que no hacer con él, qué problemas presenta, entre otros..

(7) OBJETIVOS. Objetivos Generales El objetivo principal de este trabajo es el estudiar la tecnología de desarrollo PersonalJava, entender su funcionamiento y analizar sus ventajas y desventajas en comparación a otras opciones. Esto con el fin de crear un criterio de comparación entre alternativas, con respecto a la viabilidad y conveniencia de la utilización de determinada tecnología, esto pensando en que esta es una situación común en la vida laboral que me espera. Las conclusiones que se obtengan de esta investigación, no serán sólo obtenidas de lo que puedan decir papers o investigaciones de otras personas o instituciones, se quiere llegar más allá, la manera óptima de obtener una idea de lo que realmente es PersonalJava es enfrentársele en el desarrollo de una aplicación, no importando tanto su complejidad, simplemente será usada a manera de comparación. Cuando se concluya la investigación, el análisis ha de ser lo suficientemente completo y acertado que el lector debe ser capaz de identificar las ventajas y desventajas de escoger una u otra tecnología de desarrollo para dispositivos móviles.. Objetivos Específicos Profundizando más sobre los objetivos, es importante decir que se pretende desarrollar una aplicación que muestre a PersonalJava en acción, con la idea de dejar la teoría un poco de lado y analizar esta tecnología en la práctica.. La aplicación a desarrollar para apreciar el desempeño es una agenda, en la cual se llevaría un registro de los contactos del dueño, así como también de los.

(8) eventos registrados, como por ejemplo citas, reuniones, etcétera. Lo que interesa en esta ocasión no es la magnitud de la aplicación, sino la forma en que fue desarrollada, lo que se utilizó para este hecho y las restricciones que se tienen.. Se sabe que a la hora de impresionar con un software la carga visual es muy importante, por esta razón, se pretende implementarle una interfaz gráfica que sea atractiva para el usuario y que cautive su atención. Se sabe, gracias a investigaciones previas, que PersonalJava es un lenguaje que está en su recta final, que no es muy flexible a la hora de prestar funcionalidad para mostrar información, estos factores probablemente dificulten su utilización óptima, pero no la imposibilitan..

(9) MARCO REFERENCIAL En el marco referencial que sigue se muestran partes esenciales del trabajo, que incluyen el estado del arte, muy importante a la hora de calcular los avances y limitaciones que se tendrán.. Marco Teórico Una parte que considero importante para un Marco Teórico es el proceso de definiciones.. Definiciones Previas. Antes de empezar a tratar nos temas que referido en este documento, es importante dejar en claro varios términos que se presentan a lo largo del mismo. Por tal motivo se decidió incluir esta sección, que no pretende tratar a fondo los conceptos mencionados, sólo definirlos.. Dispositivo Móvil: Se llama dispositivo móvil a aquel que tiene autonomía de funcionamiento en todo aspecto, se abastece de energía por medio de una batería que debe ser previamente cargada, además, debe ser de un tamaño lo suficientemente cómodo de cargar.. JDK: Java Developer Kit, es el paquete de desarrollo que distribuye Sun para implementar aplicaciones por medio del lenguaje de programación Java, para la investigación que se llevará a cabo, interesa la versión 1.1, un poco desactualizada, pero es la que soporta PersonalJava..

(10) JVM: Java Virtual Machine. Es la máquina virtual de Java, es decir, un ambiente de ejecución sobre el cual corren los desarrollos hechos usando este lenguaje de programación y todas sus extensiones y tecnologías que se derivan de él. Perfil: Un perfil de J2ME es una división que se hace dentro de esta tecnología y que define el tipo de dispositivo para el cual está diseñada determinada aplicación, esta clasificación se hace dependiendo de las capacidades del equipo y de su desempeño. CDC: Connected Device Configuration. Es el perfil de J2ME que reemplazó a PersonalJava, está pensado para dispositivos con bajas capacidades de desempeño; en esta familia de concentran Foundation Profile, Personal Basis Profile y Personal Profile. CLDC: Connected Limited Device Configuration. Junto a CDC es la otra gran familia de perfiles de J2ME. API: Application Programming Interface. Conjunto definido de convenciones que 2. permiten a un aplicativo acceder a una serie particular de servicios.. PersonalJava. ¿Qué es PersonalJava? 2. Información tomada de http://www.scottygroup.com/glossary.

(11) Lo primero que se debe hacer para darle más contexto al problema es definir PersonalJava:. “PersonalJava es un ambiente Java basado en la JVM 1 y en un conjunto de APIs similares al ambiente del JDK 1.1. Este incluye el Touchable Look and Feel (también conocido como Truffle), un conjunto de herramientas gráficas, optimizado para dispositivos con una pantalla sensible al tacto. PersonalJava será incluido en J2ME en 3. el próximo a salir Personal Profile, el cuál será construido sobre CDC”. Es natural pensar que no hay una sola tecnología para desarrollar aplicaciones en dispositivos que no cuentan con de memoria reducida.. Este documento intenta hacer un análisis más a fondo y detallado de la tecnología para desarrollo en dispositivos móviles llamada PersonalJava. Comparando con otras tecnologías similares, con otras formas de desarrollar aplicaciones para dispositivos con limitaciones en memoria y procesamiento.. Otras Alternativas Actualmente se está avanzando rápidamente en las tecnologías y posibilidades para el desarrollo de aplicaciones para dispositivos móviles, cada vez se mejora el desempeño de éstos, lo que hace más cómodo la construcción de los aplicativos. Téngase en cuenta que los dispositivos para los cuales se desarrollan las aplicaciones son teléfonos celulares y PDA. Los primeros, la mayoría de las veces, presentan más restricciones de desempeño, pero por ser en esencia unos teléfonos, son muy difundidos en la tecnología moderna. Ahora, las handhelds se dividen dependiendo el sistema operacional sobre el cual trabajan, pueden ser 3. Definición obtenida del Centro de Certificación SCMAD..

(12) Pocket PC que trabaja sobre Windows CE o Palm el cual implementa Palm OS (Operating System) en su funcionamiento. Estos dispositivos en auge y que se han vuelto tan importantes en nuestras vidas cotidianas están ampliando sus funciones, permitiéndonos usarlos de manera más completa y activa. Por esta razón se hizo necesario encontrar una forma de desarrollar aplicaciones que pudiéramos cargar en nuestro bolsillo, se ha pasado por muchas tecnologías y varios lenguajes de programación. A continuación haremos un listado de algunos de ellos.. J2ME Java 2 Micro Edition, es una colección de tecnologías y especificaciones que están diseñadas para las diferentes partes del mercado de dispositivos pequeños, ya que J2ME se expande a una variedad de dispositivos no tendría sentido crear 4 una solución que encaje con todos .. No olvidemos que PersonalJava funciona con el kit de desarrollo versión 1.1, además que fue la primera aproximación a J2ME, se considera como el primer intento para estandarizar una tecnología de desarrollo para dispositivos con serias restricciones de desempeño. En la actualidad J2ME cuenta con el perfil “Personal”, el cual fue diseñado con la simple función de reemplazar PersonalJava, desde el lanzamiento de este último ha habido muchos cambios en la comunidad de precursores de los desarrollos para dispositivos móviles, dichos adelantos han hecho migrar la tecnología 5. PersonalJava a desaparecer y ser una parte más de J2ME.. 4 5. Introduction to Wireless Java[tm] Technology - http://java.sun.com Más adelante se hablará más al respecto.

(13) JavaPhone JavaPhone es una extensión de PersonalJava, fue el paso intermedio entre este y J2ME. Lo que hace a JavaPhone diferente es su flexibilidad en la utilización de funcionalidad de comunicación inalámbrica que brindan los dispositivos en los cuales corren sus desarrollos.. Aunque también es un proyecto de SUN, fue acompañado por otras compañías desarrolladoras, que estaban muy interesados en extender sus productos a otras tecnologías nacientes.. Junto a PersonalJava hacían un gran equipo, ofrecían excelentes oportunidades de desarrollo, es por esta razón que en J2ME se decidió fusionarlos y aprovechar estas habilidades para complementarse. A manera de conclusión se podría mencionar que la tecnología que inició el auge de los desarrollos para dispositivos móviles, fue PersonalJava, fue pensándose la manera se hacerlo más robusto y completo y así fue como evolucionó a JavaPhone y posteriormente a J2ME. Symbian OS Symbian OS no es precisamente una posibilidad de tecnología con la que se puedan desarrollar aplicaciones para dispositivos móviles. Es más otro posible cliente de estos aplicativos, se define como un sistema operacional en el cual se pueden implementar desarrollos que intentan aprovechar al máximo los bajos recursos de algunos dispositivos como SmartPhones o comunicadores complejos. En la actualidad varios dispositivos de desempeño alto incorporan la capacidad de trabajar con varias tecnologías, ya sea JavaPhone, PersonalJava y Symbian, las máquinas virtuales que utilizan para trabajar incorporan muchas funcionalidades similares, lo que hace muy lógico el hecho de fusionarlos..

(14) Estado del Arte Para entender y tener un punto de partida para la investigación, se comenzará con un análisis del estado del arte de la tecnología.. Recuento histórico: Cuando se pensó en que Java no siempre tendría grandes recursos para funcionar SUN se percató de que eso sería un problema, no podían permitirse perder el control de los lenguajes de programación, por eso empezaron campañas con proyectos alternativos que les significaran entrar en sistemas con serias limitaciones. 6 El primer intento fue el llamado Proyecto Verde . La idea, como en todos los. dialectos de Java, era no tener que modificar el código para que las aplicaciones funcionaran en distintas plataformas, ya manejaba el concepto de clases yobjetos. La primera aproximación fue interesante, aunque tendrían que pasar 7 años aproximadamente para que apareciera el siguiente eslabón en la cadena evolutiva, PersonalJava. Este intento ya fue más real, ya usaba Java en su JDK 1.1, presentaba la capacidad de adicionarle interfaces gráficas y la gran novedad, la posibilidad de interactuar con otros dispositivos por medio de comunicaciones e intercambio de datos. Posteriormente hubo un gran auge y unbuen número de nuevas opciones, entre 7 8 las cuales sobresalen JavaPhone , SuperWaba y J2ME. Estas pueden ser. catalogadas como los que dominan el mercado. De estos proyectos SuperWaba presenta hechos interesantes, por ejemplo, intenta funcionar como algún dialecto Java, sin serlo realmente, necesita su propia máquina virtual y su propio, su. 6 7 8. Traducido del inglés: “Green Project”. JavaPhone API. http://java.sun.com/products/javaphone/index.jsp SuperWaba. http://www.superwaba.com.br/en/default.asp.

(15) utilización en desarrollo es muy similar a J2ME o JavaPhone, pero no tiene nada que ver con ellos. En la actualidad la mayoría de los desarrollos para dispositivos móviles son hechos por medio de J2ME, no sólo es muy popular y difundido, sino que es muy cómodo para usar en casos de poca memoria.. En la actualidad casi todas las compañías que fabrican teléfonos celulares, como SonyEricsson, Siemens, cuentan con su kit de desarrollo basado en J2ME y que está enfocado en funcionar en sus dispositivos, esto demuestra el especial interés que tiene estas grandes empresas en popularizar la construcción de software para estos teléfonos. Cada compañía ha invertido fuertes sumas de dinero para liderar este mercado que concentrar gran parte de los fondos movidos por concepto de tecnología alrededor del mundo. En un futuro la tecnología crecerá de tal forma que lo que creemos ahora insuperable será tan obsoleto que ni siquiera sea necesario recordarlo, en la actualidad los teléfonos ya incluyen cámaras no sólo fotográficas, también con la capacidad de almacenar clips de video, el primer reto era incluir en un objeto tan pequeño como un teléfono de mano una cámara digital, ya fue resuelto, luego se quiso ampliar la capacidad de almacenamiento, en la actualidad es normal hablar de 128 MB de almacenamiento, ahora la principal frustración para su utilización completa son los pocos recursos, a mi modo de ver no falta mucho para que este impedimento se haga historia así como los anteriormente mencionados. La personalización de los dispositivos también asegurará un éxito entre esots dispositivos, no todos los usuarios requieren equipos de gran capacidad, con tener un ayudante que sea fácil de usar y actúe siempre como se espera es más que suficiente..

(16) Basado en los párrafos pasados puedo decir que el desarrollo en dispositivos móviles tiene una larga vida, no importa qué tecnología y sobre qué plataforma se use, es un mercado que está en constante crecimiento y que no encuentra límite. Además de la posibilidad de desarrollar aplicaciones para celulares estamos olvidando las versátiles PDA, las cuales proporcionan un poco más de recursos y por ende más opciones de desarrollo. Actualmente ya hay muchos proyectos que integran las bondades de un teléfono celular y un PDA, es sencillamente más cómodo cargar un solo dispositivo que estar vigilando dos por aparte. El futuro nos tiene guardadas sorpresas tecnológicas, esperémoslas y aprovechémoslas..

(17) DISEÑO METODOLÓGICO Este capítulo tiene por objeto que el lector se haga a la idea de los aspectos que fueron necesarios para llevar a feliz término esta investigación. Las plataformas usadas, el IDE9 seleccionado, el emulador, entre otros.. Herramientas Utilizadas La aplicación que se desarrolló debe hacerse en Java, usando el compilador en su versión 1.1, para usarlo como es debido no se descargó esta versión, se optó por emplear la versión 1.4.2 y a la hora de compilar se usaba el parámetro: -target 1.1. Pero PersonalJava tiene unas clases que no vienen incluidas en el J2SDK 1.4.2, 10. es necesario descargarlas por separado, esto se hace desde la página de SUN. (casa desarrolladora de toda la tecnología JAVA, así como toda la familia de lenguajes derivados de él). Llegando a la sección de PersonalJava se pueden encontrar todas las posibilidades y las noticias de esta tecnología. Aquí considero es pertinente dejar en claro que PersonalJava está en periodo de 11 finalización de su vida . Hasta ahora es un preanuncio, lo que implica que es un. periodo de transición y que SUN todavía presta soporte sobre este producto. En un capítulo siguiente entraremos a hablar más al respecto.. Además del J2SDK mencionado anteriormente, es necesario tener un emulador del dispositivo móvil donde se pueda corroborar que va a funcionar bien cuando se necesite, además donde se pueda probar la interfaz gráfica de la aplicación de prueba.. 9. Entorno integrado de desarrollo http://java.sun.com 11 End of life Preannouncement 10.

(18) NetBeans NetBeans es un IDE desarrollado completamente en Java, ofrece grandes ventajas cuando se debe implementar una interfaz gráfica, es muy versátil en este aspecto, además, su acoplamiento con Java es un arma muy importante para usar a la hora de un desarrollo. Se escogió para este proyecto y fue una gran ayuda.. PersonalJava Emulation Environment Este fue el sistema de emulación que se usó en el proyecto, es necesario tener forma de comprobar que la aplicación funcione en un dispositivo. Recuérdese que es desarrollado en Java 1.1, el cual contiene a PersonalJava, pero no todas las clases de PersonalJava están contenidas en el JDK 1.1, es necesario adicionarle las clases faltantes, las cuales se consiguen en la sección de SUN de 12 PersonalJava . Estas funcionalidades adicionales son necesarias para culminar. algunos posibles requerimientos, por esta razón es pertinente escalar el sistema mediante el paquete. La versión del PJEE (PersonalJava Emulation Environment) utilizada fue la 3.1, la cuál es la más reciente, recuérdese que no es una herramienta de desarrollo, sólo una forma de comprobar que es compatible con PersonalJava. Para su utilización se usa el comando pjava, el cuál queda en la subcarpeta bin.. El emulador despliega una ventana típica de Java donde se muestra la aplicación desarrollada.. 12. http://java.sun.com/products/personaljava/.

(19) ¿QUÉ ES PERSONALJAVA? PersonalJava es un lenguaje de programación pensado en dispositivos móviles como objetivo, la idea era no centrarse en una plataforma sobre la cual se desarrollaría, sería independiente del sistema operacional, la multiplataforma sería una gran ventaja.. Su aporte a la ciencia de la computación y más específicamente, al desarrollo en dispositivos con limitaciones fue clave, fue el primer intento que tuvo éxito real en esta carrera contra el tiempo. PersonalJava ofrece las ventajas de la familia Java, como son el recolector de memoria, multiplataforma, estas características del lenguaje son usadas en esta versión a menor escala. Con el tiempo se han ido mejorando y haciendo crecer el lenguaje de tal forma que sus evoluciones han capturado la atención de todos. Como todo en la vida, PersonalJava ha cumplido su ciclo, ya está siendo eliminada de las tecnologías a las cuales SUN les da soporte, está catalogada como “Preanunciada de fin de vida”, es decir, la casa matriz se ha dado cuenta que puede progresar a otras opciones y que no es eficiente o conveniente seguir estancado en la tecnología a erradicar, en este caso PersonalJava; la solución que dio SUN para reemplazarlo fue incluir un perfil en J2ME que incluyera toda la funcionalidad que presentaba, así aseguraría que la migración no generaría tantos traumatismos para quienes ya la utilizaban, esta advertencia se hace para que los usuarios habituales de esta tecnología se acostumbren al cambio y hagan las modificaciones necesarias a sus aplicaciones. Después de que SUN declare que una plataforma ha acabado su vida, no se prestará más soporte sobre ella y será total responsabilidad del usuario su utilización, es lógico que las aplicaciones sigan funcionando, es decir, no es perentorio migrar a nada más, con lo que se tiene se puede funcionar..

(20) PersonalJava está compuesto por un API y una máquina virtual, este API incluye clases de los siguientes tipos: •. Paquetes requeridos del JDK 1.1. •. Paquetes modificados del JDK 1.1. •. Paquetes adicionales no incluidos en el JDK 1.1. La idea es hacer el API funcional, pero liviano, para que así pueda correr en dispositivos con limitaciones de memoria. La principal característica que tiene PersonalJava y por lo que fue tan utilizado y difundido, fue la capacidad de crear interfaces gráficas que hicieran las cosas más fáciles para el usuario final, éstas eran creadas usando el popular AWT, este hecho hacía muy familiar el proceso de 13 creación de las GUI al acostumbrado con todas las aplicaciones para JAVA.. Los problemas que llevaron a que SUN decidiera acabar con PersonalJava son precisamente las ventajas que sus creadores diseñaron. Una de las características favorables era la posibilidad de creación de interfaces gráficas, pero la complicación es que PersonalJava no estaba pensada para Celulares, por contradictorio que suene, cuando fue lanzado en 1997 la tecnología no llegaba a tal punto de sofisticación como para que fuera posible una adaptación de una máquina virtual en un dispositivo de este tipo. Cuando se alcanzaron los celulares que podrían incorporar aplicaciones desarrolladas en PersonalJava, fue obvio que no era cómodo usar AWT del JDK 1.1 para crear el ambiente gráfico, esta herramienta está diseñada para interfaces en aplicaciones para computadores, donde se tiene un gran campo visual y el manejo de pantallas y corrimiento de páginas es relativamente sencillo; si se intenta abrir una aplicación diseñada para un computador personal con un monitor de 15 pulgadas en un celular cuyo display mide 2 pulgadas se tendrán problemas de distribución.. Otro inconveniente que presentaba PersonalJava es, que como se ha mencionado anteriormente, esta es una adaptación de Java y como tal es pesada, recuérdese 13. Graphic Unit Interface.

(21) que éste fue diseñado para computadores personales, donde no se cuentan con limitaciones de memoria tan serias, PersonalJava no “ofusca” sus resultados lo que hace más pesada la ejecución del mismo. Por ejemplo, J2ME (la tecnología que reemplazó a PersonalJava) tiene la característica de minimizar su código de máquina, lo que hace más liviana y factible su ejecución en dispositivos móviles. Otro problema que evidencié al utilizar PersonalJava son las complicaciones que se generan al intentar emular el ambiente de pruebas. La pobre técnica de emulación puede deberse en parte a que esta tecnología está desapareciendo, pero por investigaciones previas se ha clarificado que no eran muchas las opciones para correr las aplicaciones emuladas en el ambiente de desarrollo. Esto hace más pesado el proceso de desarrollo, menos cómodo para culminarlo, además el hecho de estar probando constantemente la aplicación para no infringir las normas de funcionamiento de PersonalJava, es decir, si se intenta usar algún método de alguna función que no sea aceptada por esta tecnología, aunque esté 14 incluida en el JDK 1.1, se generará una excepción propia de Java.. Paquete que adiciona funcionalidad para dispositivos móviles Como se mencionó anteriormente es poco lo que diferencia a PersonalJava del JDK 1.1, estos paquetes adicionales agregan ciertas funciones que son útiles en un celular únicamente. El archivo pj.jar es el que adiciona la funcionalidad que se necesita, aquí se muestra su estructura de una forma global.. Estructura del archivo pj.jar. 14. java.lang.NoSuchMethodError.

(22) A continuación se hará un resumen de la evolución de PersonalJava hasta llegar a la 1.2, su última versión.. Versión 1.0: En esta versión inicial sólo se pretendió construir un Java que tuviera la funcionalidad necesaria para correr aplicaciones básicas, son muchas las clases del JDK 1.1 no incluidas en PersonalJava, por ejemplo java.sql, el cual es el que contiene las funciones que permiten establecer conexiones a bases de datos. Es natural pensar que este tipo de clases no serán necesarias en un versión y distribuida de Java. Versión 1.1: Se avanzó implementando gran parte de paquetes que no eran soportados o eran parcialmente. El avance más importante es la capacidad de manejar años en las fechas de hasta cuatro dígitos.. Versión 1.1.1: En esta versión se procuró ordenar lo que ya se tenía, no hay cambios representativos respecto a código.. Versión 1.1.2: Ya se estaban quedando sin actualizaciones para hacerle a PersonalJava, se dedicaron a fortalecer su trabajo. El adelanto importante fue la inclusión de las clases ZipFile, ZipOutputStream en el paquete java.io. Versión 1.1.3: En este momento de las actualizaciones los cambios eran poco notorios y no representaban adelantos merecedores de ser mencionados, cambios en el paquete java.io son los más importantes..

(23) Versión 1.2: Siendo la versión que perduraría tendría que presentar cambios significativos. Por lo menos lo fueron para la época en la que estamos situados (inicios de 2000). Se comprobó que se pudiesen compilar las aplicaciones con el JDK 1.1.8 más robusto y completo en relación al de la versión 1.1 que se utilizaba hasta ese momento. Se modeló mejor la clase Ptimer que era la que maneja los compromisos y los relacionaba con la hora y fecha local del dispositivo, mediante el método notifyListeners, tiene control sobre el comportamiento del dispositivo, esta útil característica está implementada en el paquete com.sun.util. El principal cambio a mi modo de ver fue la adición de capacidad de guardar cierta seguridad; fue necesario adicionar algunos paquetes y modificar otros..

(24) APLICACIÓN DESARROLLADA Para mostrar el uso que se le dio a PersonalJava para culminar este proyecto, se decidió hacer una agenda personal, donde un usuario podría llevar un registro de sus compromisos, así como también puede llevar una lista de sus contactos. La idea de este desarrollo era enfrentarse con la idea de la construcción de software usando PersonalJava, con todos los retos y limitaciones que esto implica. Además, se quiere manejar persistencia de datos, para ello se requirió escribir en un archivo externo donde se guarde toda la información.. Aunque el sistema no sea muy robusto, su construcción llevó a complicaciones no sólo de requerimientos funcionales, el hecho de decidir qué IDE usar, cómo lograr la interfaz gráfica amigable, cómo lograr la persistencia, generaron decisiones que serían importantes a lo largo del proyecto. Cada opción tomada traía consigo implicaciones obvias.. Diagrama de Clases del Paquete kernel.15. 15. No considero necesario mostrar el diagrama de clases de la interfaz gráfica..

(25) Inicio: La aplicación se lanza y se despliegan las opciones con las que puede interactuar el usuario, Contactos y Compromisos.. Muestra del menú principal de la aplicación. Contactos: Los contactos de un usuario se pueden adicionar, editar o Buscar.. Muestras del menú de consulta y de inserción de contactos. Si se quiere adicionar un contacto nuevo, se piden cuatro datos primarios, Nombre, Teléfono Celular, Teléfono casa, Otro Teléfono; para cada registro existe un campo que no puede repetirse, el correspondiente al nombre, es decir, no puede haber dos o más contactos con el mismo nombre, si a la hora de insertar un contacto se da este hecho el sistema alertará al usuario para que solucione este inconveniente e intente nuevamente la inserción. Los contactos también pueden ser buscados, como el sistema estaba pensado para que corriera sobre un dispositivo móvil, cuando el usuario comienza a escribir el nombre del contacto a buscar, el sistema muestra una lista de todas las.

(26) posibilidades para los cuales coinciden las letras iniciales ingresadas por el usuario. En el mismo módulo de búsqueda está la opción de borrar contactos, es decir, al seleccionar el contacto requerido se puede acceder a la opción borrar por medio de uno de los botones.. Compromisos El mapa de esta área de la aplicación es similar al anterior segmento de Contacto, se pueden adicionar, buscar y borrar, de una manera similar a la mencionada anteriormente, se deben guardar las proporciones, ya que para un compromiso se debe tener en cuenta la fecha de inicio y la fecha de finalización, así como el lugar y la descripción del evento.. Imagen del sistema de inserción de compromisos o eventos en la Agenda. Téngase en cuenta que no se puede adicionar un evento donde ya existe otro. Si esto ocurre, el sistema imprime un mensaje informando al usuario de lo sucedido..

(27) La persistencia se maneja por archivos, se guarda un registro por línea, es decir, para la agenda de contactos aparece un nombre y sus teléfonos en cada línea.. Tópicos Importantes En esta subsección se mencionarán aspectos que se utilizaron para llevar a cabo el desarrollo con el fin de facilitar un poco las cosas. Manejo de Fechas: Para hacer más sencillo y eficiente el complicado y pesado (computacionalmente hablando) manejo de fechas, se decidió interpretarlas como números en formato long, al tenerlas como valores numéricos, sería mucho más fácil compararlos y almacenarlos. Siempre es un dolor de cabeza el manejo de fechas y lo sería más si se contara con recursos limitados en un dispositivo, tal es el caso que nos atañe. Aunque dentro de la ejecución del programa se manejan como objetos de la clase Date, a la hora de manipularlos realmente se parsearían hacia el mencionado Long. Manejo de Archivos: Para llegar a almacenar los datos que se necesitaban, se utilizaron las clases de Java que lo permiten, por ejemplo DataAccessRandomFile, entre otros, la persistencia también es un inconveniente que debe ser tratado como de prioridad 1. En las nuevas tecnologías se ha resuelto de manera muy cómoda, por ejemplo para J2ME se introdujo el concepto de RMS que funcionan como especies de Bases de Datos locales y a pequeña escala, esta es una gran ventaja que tiene J2ME sobre su predecesor PersonalJava. Interfaz Gráfica: Una ventaja que presenta PersonalJava es la facilidad en el desarrollo de interfaces gráficas que sean atractivas para el usuario final. Para tal fin se implementó el uso de AWT. Se emplearon sólo elementos clásicos, como lo son.

(28) TextField, Lists, Choice, la captura de su información iría directamente al kernel el cual debe registrar o mostrar la información según sea el caso. La distribución usada para ordenar los elementos en las vistas fue GridBagLayout, el cual da facilidades de ordenamiento. La idea del desarrollo era parecerse a la pantalla de un celular, por esta razón la aplicación se despliega en forma reducida, en cierto modo podría decirse que se compactan los campos y la información para poderla exhibir de manera completa. Esta idea de aprovechar al máximo el espacio y además de minimizar el número de veces de pulsación de una tecla se hace pensando en la comodidad del usuario, por experiencia personal sé que es muy tedioso escribir frases o seguir procedimientos largos en un dispositivo móvil, ya que molestan las articulaciones. Otro aspecto importante que se utilizó, es que cada menú que iba apareciendo en la aplicación fueron creados como frames, es decir, son como páginas de un libro, cada una va reemplazando a la anterior sin reutilizar información, esto es más cómodo a la hora de trabajar con pantalla de despliegue pequeñas y con dispositivos de memoria reducida como los que se están manejando. Patrón Fachada: Para tener un mejor control de los datos que llegaban para ser procesados se implementó el patrón fachada, el cual consiste en crear un filtro de los datos, lo que implica que el kernel no tiene que preocuparse por hacer validaciones que serían pesadas y costosas, sólo por cumplir sus funciones básicas..

(29) RESULTADOS A continuación se exponen las conclusiones de la experiencia en el desarrollo de la aplicación de prueba, no del trabajo en conjunto, sólo de la culminación de este paso. Dificultades para comenzar: El simple hecho de comenzar ya presentó inconvenientes, como hemos venido repitiendo a lo largo del documento, la tecnología está siendo sacada del mercado, lo que retrasó el proceso de investigación, esto a su vez redundó en problemas para encontrar un buen emulador, una guía de desarrollo para PersonalJava, entre otras.. El “Hello World” aunque fácil de culminar no tiene documentación o ayudas que faciliten su utilización, la idea de este tipo de dinámicas es proporcionar al desarrollador cierta experiencia, que se vaya familiarizando con la tecnología que está probando. Pero para PersonalJava no vale la pena, no se involucran problemas que se vayan a presentar más adelante; esta es una desventaja frente a otras plataformas de desarrollo, es muy similar a Java normal.. Interfaz Gráfica: Para que la interfaz gráfica fuera totalmente funcional y además fuera atractiva para el usuario final, se debían cumplir con ciertos estándares de programación, el cumplirlos al pie de la letra no se acomoda siempre a las limitaciones del lenguaje. El hecho de que para desarrollar la interfaz gráfica fuera necesario obligatorio AWT, generaba muchos problemas de forma y diseño de los botones, mensajes y otros..

(30) Para lograr armonía entre los elementos de una vista es muy importante la distribución, para el uso de AWT este factor está supeditado a muchas cosas y complicado lograr configurarlo para que se aprecien bien las partes de la imagen.. Compilación: Si el proceso de compilación se deja para el final sin adelantarlo parcialmente, se pueden presentar problemas, si el desarrollador sin notarlo comete algún error al usar una función de una clase que no es aceptado por PersonalJava a la hora de intentar emularlo se presentarán errores, si hubo muchos errores, sería tedioso solucionarlos todos, la mejor forma de evitarlo, son compilaciones y emulaciones parciales y repetidas. Además, PersonalJava sólo puede ser compilado con el JDK 1.1.8 o 1.2, en mi caso personal no pude conseguir ninguno de estos, por esta razón use la versión 1.4.2, lo que hacía más engorroso el proceso. Emulador: El ambiente de emulación es pobre, no ofrece facilidades, al compararlo con J2ME, la mayoría de los Toolkits. 16. presentan una interfaz gráfica que asemeja a. un celular real, donde el desarrollador puede ver su creación en e dispositivo para el cual fue planeado, así se hará una idea más cercana a la realidad de lo que tiene su aplicativo. Limitaciones: Aunque en varios reportes y artículos de Internet leí que PersonalJava no era conveniente porque consumía muchos recursos, no pude recrear esta limitación, la idea era que en un celular o PDA necesitaría mucha memoria. Como no probé la aplicación en ninguna de los dos, no puedo refutar o comprobar dicha teoría.. 16. Se llama toolkit al conjunto de herramientas que se usan para desarrollar y probar algún tipo de aplicación..

(31) Comparación: El principal factor en el que PersonalJava tiene desventaja frente a otras alternativas de desarrollo como J2ME es el consumo final de memoria de la aplicación, mientras que pJava no hace nada con el archivo empaquetado que contiene la aplicación, J2ME tiene la capacidad de “ofuscar” el resultado, lo que hace más fácil y liviano su cargue, además de hacerlo más veloz en ejecución. J2ME no es la única tecnología que implementa esto, si hablamos de desarrollo para Symbian, es posible hacer un proceso similar, encapsulan los resultantes ylo hacen más compacto y veloz..

(32) CONCLUSIONES A continuación se enuncian las conclusiones de la investigación. •. PersonalJava fue uno de los primeros intentos de SUN para ingresar al mercado de desarrollo para dispositivos con limitaciones. Para ser un punto de partida fue una experiencia grata, aunque tiene vacíos de éste se derivaron las tecnologías que dominan el mercado.. •. No ha tenido grandes adelantos desde su creación y ya está a punto de salir del mercado, esa pasividad le costó su vida útil, mientras más tecnologías y más posibles clientes de aplicaciones para dispositivos móviles veían la luz, PersonalJava más encontraba limitaciones y complicaciones a su progreso.. •. SUN tuvo gran éxito con su lenguaje de programación Java, por muchas características de este, entre ellas que funcionaba en varias plataformas sin necesidad de cambiar el código fuente, esto se trató de crear para dispositivos móviles, sin importar a quién iba dirigido sólo se necesitaba que la máquina virtual estuviese configurada, esta idea funcionó correctamente, fue igualmente exitoso a su compañero, Java.. •. Con el tiempo los desarrolladores se dieron cuenta de que entre menos memoria consumiera una aplicación eran más las ventajas que ofrecía, apareció J2ME y con él el principio del fin para PersonalJava, su inclusión como perfil de la nueva opción abrió un mundo de posibilidades para muchos. Lo que más llamó la atención de la nueva tecnología es que daba la oportunidad de ofuscar el código compilado, lo que significaba que necesitaría menos memoria para su ejecución..

(33) •. Una ventaja que presentó PersonalJava fue la buena utilización de su nombre, el hecho de provenir de Java lo hizo muy popular y además, fácil de usar, téngase en cuenta que éste es un lenguaje muy popular y como la sintaxis y semántica era prácticamente igual, no generó trauma alguno entre la comunidad desarrolladora.. •. PersonalJava fue diseñado para dispositivos que tuviesen comunicación en una red, esto abrió el camino a la adaptación de celulares como pequeños computadores personales, el uso de las capacidades de intercambio de información creó grandes expectativas entre sus usuarios y desarrolladores también.. •. Cuando PersonalJava salió a la luz pública fue una gran idea para el desarrollo en dispositivos móviles, con el tiempo se vieron sus problemas, si yo tuviera que recomendar una tecnología de desarrollo para nuestros días tendría que sugerir J2ME que ya contiene a PersonalJava en su perfil Personal. Las ventajas respecto a su antecesor le dan la razón.. •. Así como muchas grandes ideas cuando innovaron fueron ampliamente reconocidas, pero con el tiempo su empuje y sus ganas fueron reemplazados por ideas nuevas, así le pasó a PersonalJava y no hay mucho que hacer, sólo tenerla presente cuando de historia se trate, su uso no es recomendable, pero se sabe que hizo mucho bien a la comunidad internacional de desarrolladores.. •. Y a manera de conclusión personal, esta investigación me sirvió para caer en cuenta de las cosas con las que me voy a enfrentar en la vida laboral, es muy común que por ignorancia o por problemas económicos algunas empresas no puedan migrar a los últimos adelantos tecnológicos, siento que el trabajo fue a fondo, el análisis y el desarrollo me dieron herramientas para ser crítico con PersonalJava, al darme conocimiento de causa sobre el.

(34) tema y sobre las posibilidades de desarrollo. Además, las asignaturas cursadas a lo largo de mi carrera me mostraron los beneficios ydesventajas de usar una u otra tecnología..

(35) BIBLIOGRAFÍA •. Java Referente Guide. Encontrado en Abril de 2005 de la página en Internet http://www.informit.com/guides/content.asp?g=java&seqNum=174&rl=1. •. “The harmony of mobile developer”. Encontrado en Abril de 2005 de la página en Internet http://benhui.net/bluetooth/index.html.. •. “Personal Java, specifications” encontrada en abril 12 de 2005 de la página en Internet http://www.itvdictionary.com/personal_java.html. •. “PersonalJava-PersonalProfile”. Encontrada el 12 de abril de 2005, en la página Web http://www.itvdictionary.com/personal_java.html. •. “PersonalJava API Specification”. Tomado de internet en abril de 2005. http://altair.snu.ac.kr/~seungil/research/pjavaport/pjae-spec/1.2/index.html. •. “Aplicaciones de Personal Java” Consultado en abril de 2005 en el sitio en Internet http://www.access-us-inc.com/news_archives/news_2003/12082003.html. •. “J2ME Support” Consultado en abril de 2005 en la página http://www.jtom.de/Support.411.0.html?&L=3. •. “SuperWaba: The Real Power of Mobile Computing”, consultado en abril de 2005. http://www.superwaba.com.br/en/default.asp.

(36) •. “Java-Web”. Consultado en Internet el 12 de abril de 2005 en la página http://www.wangjammers.org/index.html?trk=gaw1. •. “PJEE - PersonalJava Emulation Environment”. Información encontrada en Internet en abril de 2005, en el sitio http://www.microjava.com/articles/perspective/personaljava_j2me?content_id=1440. •. “Connected Limited Device Configuration (CLDC)”. Encontrado en abril de 2005 en la página de Internet http://java.sun.com/products/cldc/.

(37)

Referencias

Documento similar

Como asunto menor, puede recomendarse que los órganos de participación social autonómicos se utilicen como un excelente cam- po de experiencias para innovar en materia de cauces

El Gobierno del Primer ministro, por su parte, funcionaría de la siguiente mane- ra (67): posibilidad de introducir las primarias en los partidos; nombramiento del candidato a

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

información que el individuo puede procesar por su sistema nervioso, y los factores relacionados van a influir en las habilidades y destrezas sociales, que pondrá al uso al

En la parte central de la línea, entre los planes de gobierno o dirección política, en el extremo izquierdo, y los planes reguladores del uso del suelo (urbanísticos y

que hasta que llegue el tiempo en que su regia planta ; | pise el hispano suelo... que hasta que el

Sanz (Universidad Carlos III-IUNE): "El papel de las fuentes de datos en los ranking nacionales de universidades".. Reuniones científicas 75 Los días 12 y 13 de noviembre

(Banco de España) Mancebo, Pascual (U. de Alicante) Marco, Mariluz (U. de València) Marhuenda, Francisco (U. de Alicante) Marhuenda, Joaquín (U. de Alicante) Marquerie,