Definición de Tecnologías emergentes: Son innovaciones en desarrollo que como su nombre lo dice en un futuro cambiarán la forma de vivir del ser humano brindándole mayor facilidad a la hora de realizar sus actividades. Estas tecnologías innegablemente están modelando nuestra sociedad, nuestras costumbres, la forma de relacionarnos y comunicarnos, la forma en la que las empresas producen, la forma en la que se educa. 2.- Clasificación de las tecnologías emergentes 2.1 Sistema Embebido Es un sistema electrónico diseñado para realizar pocas funciones en tiempo real, según sea el caso. Al contrario de lo que ocurre con las computadoras, las cuales tienen un propósito general, ya que están diseñadas para cubrir un amplio rango de necesidades y los Sistemas Embebidos se diseñan para cubrir necesidades específicas. El horno de microondas, el carro, el elevador y muchos otros aparatos, son controlados por computadoras que normalmente no poseen una pantalla, un teclado o un disco rígido, y no responden a lo que comúnmente denominamos “computadora”, este control lo operan los Sistemas Embebidos, que por lo que vemos, se encuentran disponibles en cualquier aspecto de nuestra vida. 2.2 Cómputo móvil y ubicuo 2.2.1 Computación móvil Es la serie de artefactos y equipos portátiles, hardware, que hacen uso de la computación para lograr su funcionamiento, así, se tiene a las computadoras portátiles, los teléfonos celulares, los cuadernos de notas computarizados, las calculadoras de bolsillo, etc. Aunque en la actualidad no son muchas las personas que traen su computadora bajo el brazo, tampoco son raras, y es que la computación móvil ha dejado de ser un instrumento de presunción, para convertirse en un medio de trabajo. Por ejemplo: Profesionales sin oficinas: ya no se necesita una oficina física para realizar el trabajo, que ahora puede realizarse desde cualquier lugar y en cualquier momento. Vigilancia de pacientes: la computación móvil permite una vigilancia continua de los pacientes, así como mantener el contacto entre médico y paciente sin necesidad de desplazamientos. Reuniones y grupos de trabajo de personal sin limitaciones horarias ni grandes desplazamientos. Ventajas Movilidad: desaparecen las limitaciones de espacio y tiempo, lo que significa que puede ubicarse una oficina en prácticamente cualquier lugar y cualqueir momento. Conectividad instantánea sin necesidad de tiempos de espera en instalaciones. Aplicaciones personalizadas para cada usuario, así como información personalizada para cada consumidor individual. 2.2.2 Computación ubicua Es la integración de la informática en el entorno de la persona, utilizando dispositivos móviles que pueden comunicarse entre ellos de forma inteligente y transparente para el usuario. La computación ubicua es un modelo de interacción en el que el procesamiento de información se integra fuertemente en las actividades y objetos cotidianos. A pesar de que el término de computación ubicua puede parecer demasiado técnico, el mismo se basa en un campo que tiene muchas implicaciones para el proceso de enseñanza-aprendizaje. Cada persona actúa sobre multitud de dispositivos programables que pueden ser manejados sin apenas conocimientos técnicos por parte del usuario: en la mayoría de los casos, la interactividad entre el sujeto y la máquina es transparente, es decir, el usuario muchas veces ni siquiera es consciente de su presencia. Un ejemplo de dispositivo que posee la tecnología de computación ubicua se encuentra en los novedosos teléfonos inteligentes que cuentan con un sistema de interconexión inalámbrico para el tránsito de información y datos desde un dispositivo móvil. 2.2.3 Diferencias entre computación móvil y computación ubicua Computación móvil Computación ubicua Es la realización de tareas informáticas Es la integración de la informática en el entorno mientras el usuario está en movimiento o de la persona, con dispositivos móviles que en lugares distintos de su entorno pueden comunicarse entre ellos de forma habitual. inteligente y transparente para el usuario. Los dispositivos prestan sus servicios de Hay un uso combinado de todos los dispositivos, forma independiente. de forma que el individuo interacciona con todos. Se usan dispositivos electrónicos inmersos en los Se usan pequeños dispositivos de fácil aparatos que utilizamos cotidianamente; por transporte como teléfonos, netbooks, ejemplo, la radio de un coche con Bluetooth para portátiles, PDA... conexión de teléfonos móviles. Tiene aplicaciones definidas, como Tiene una interfaz invisible para el usuario, es procesadores de texto, conexión a decir, no es necesario que el usuario aprenda a Internet, correo electrónico, manejar los dispositivos. reproducción de vídeos... 2.3 Redes de próxima generación El mundo está a punto de experimentar una nueva generación de sistemas móviles que harán más fácil las comunicaciones y los negocios. Estamos cruzando el umbral de una nueva era donde se imponen las comunicaciones sin cable. Y para ofrecer una respuesta eficaz en este naciente entorno se deben desarrollar redes de próxima generación (NGN, Next-Generation Networks) que permitan estos servicios de comunicación, información y entretenimiento. Para lograr una transformación es indispensable la convergencia de las diversas redes actuales, en una red unificada, multiservicio, de datos centralizados, que ofrezca los servicios a diferentes calidades y costos, en plataformas de servicio abiertos. El ambiente actual de las telecomunicaciones está conformado por una amplia variedad de redes. La mayoría de estas redes son altamente especializadas y diseñadas para proveer un servicio específico. Podemos referirnos a éstas como “redes integradas verticalmente”. Esta situación multired (“integración vertical”) es el resultado de un proceso de evolución a través de la historia, que dificulta la creación de mecanismos que reduzcan costos de operación, portabilidad del servicio, etc. Estas deficiencias pueden ser remediadas cuando se diseñe la plataforma para el futuro sistema de comunicación móvil, en donde las líneas divisoras entre telecom, datacom y la transmisión de multimedia desaparecerán. Esta tendencia tiene implicaciones importantes para el desarrollo de redes de próxima generación y para transportar servicios de comunicación, información y entretenimiento. Algunos requisitos de las redes de próxima generación (NGN) serán: Las redes tendrán que ser capaces de manejar una variedad de tráfico, desde transferencia de archivos sencillos hasta servicios de multimedia. Soportar acceso por cable e inalámbrico con mucho más ancho de banda del disponible actualmente. Tendrán que proporcionar altos niveles de QoS (generalmente llamado “carrierclass”) donde se requiera. Entregar voz, datos y los servicios de multimedia en tiempo real a gran número de usuarios residenciales y corporativos. 2.4 Interacción humano computadora La disciplina que estudia cómo las personas interactúan con las computadoras y hasta qué punto las computadoras se desarrollan para interactuar con las personas se llama Interacción Humano-Computadora. HCI consta de tres componentes: los usuarios, los ordenadores y la interacción entre ellos. La Interacción Humano-Computadora se convirtió oficialmente en una disciplina con el advenimiento de la computadora personal. Con el primer Macintosh, IBM PC 5150 y Commodore 64 utilizados en la oficina, la gente empezó a darse cuenta de cómo esta transición afectará no sólo a su trabajo sino a sus vidas en general. Los PCs fueron lanzados con muchas nuevas características como procesadores de texto, facilidades de juego y ayudas de contabilidad. Con el tiempo, su nivel de sofisticación aumentó hasta el punto en que el objetivo era hacer que la interacción hombre-computadora se asemejara a la interacción entre humanos, de la forma más natural y sin fisuras posible. HCI es un dominio interdisciplinario que abarca disciplinas como la informática, la ingeniería de los factores humanos, la inteligencia artificial, la lingüística, la filosofía, la antropología y la ciencia cognitiva. En los últimos cinco años, HCI ha pasado rápidamente de estudiar la interacción con los ordenadores de sobremesa a centrarse casi exclusivamente en los dispositivos móviles. ¿Por qué es importante el estudio de la Interacción Humano-Computadora? En la Interacción Humano-Computadora, las palabras clave son usabilidad, seguridad y funcionalidad. Además, para producir sistemas con estas características, la investigación de HCI debe ser consciente de las siguientes cosas: 1. Investigar y comprender los factores organizacionales, sociales y psicológicos que determinan cómo las personas utilizan la tecnología debe ser el punto de partida de cualquier proyecto de HCI. Es un proceso de aprendizaje continuo que se desarrolla a lo largo de la duración del proyecto. 2. La segunda parte más importante de la investigación de HCI es el enfoque centrado en las personas. John M. Carroll, autor y fundador del campo de la interacción hombre- computadora, escribe que HCI se está centrando cada vez más en las personas. Se ha expandido para crear soluciones para proyectos como la accesibilidad para las personas mayores, los discapacitados cognitivos y físicos. En esta fase tan evolucionada, los diseñadores de interacción ya no están en el negocio del diseño, sino en el negocio de las personas. En última instancia, el Diseño de Interacción Humana consiste en crear sistemas y marcos que mejoren la vida de las personas. 3. Partiendo de las necesidades del cliente, desarrollamos herramientas y técnicas para construir sistemas adecuados que satisfagan dichas necesidades. 4. Cree una interacción del sistema de usuario que sea efectiva, eficiente y segura. Comienza por entender las necesidades de los usuarios, para construir el sistema de acuerdo a esas necesidades. No al revés, creando un sistema que tiene que cumplir con los requisitos del usuario que usted descubrió más tarde en el proceso. 2.5 Arquitectura de software En el ámbito del software cada vez es más común escuchar el término “arquitectura de software”, y encontrar oportunidades de empleo para “arquitectos de software”. Aún así, este concepto tiende a ser malentendido y la falta de comprensión al respecto de sus principios frecuentemente repercute de manera negativa en la construcción de sistemas de software. El concepto de arquitectura de software se refiere a la estructuración del sistema que, idealmente, se crea en etapas tempranas del desarrollo. Esta estructuración representa un diseño de alto nivel del sistema que tiene dos propósitos primarios: satisfacer los atributos de calidad (desempeño, seguridad, modificabilidad), y servir como guía en el desarrollo. Al igual que en la ingeniería civil, las decisiones críticas relativas al diseño general de un sistema de software complejo deben de hacerse desde un principio. El no crear este diseño desde etapas tempranas del desarrollo puede limitar severamente el que el producto final satisfaga las necesidades de los clientes. Además, el costo de las correcciones relacionadas con problemas en la arquitectura es muy elevado. Es así que la arquitectura de software juega un papel fundamental dentro del desarrollo. ¿Qué es la arquitectura de software? Antes de elaborar sobre el tema, es conveniente definir el concepto ya que hoy en día el término de arquitectura se usa para referirse a varios aspectos relacionados con las TI. De acuerdo al Software Engineering Institute (SEI), la Arquitectura de Software se refiere a “las estructuras de un sistema, compuestas de elementos con propiedades visibles de forma externa y las relaciones que existen entre ellos.” El término “elementos” dentro de la definición del SEI es vago a propósito, pues puede referirse a distintas entidades relacionadas con el sistema. Los elementos pueden ser entidades que existen en tiempo de ejecución (objetos, hilos), entidades lógicas que existen en tiempo de desarrollo (clases, componentes) y entidades físicas (nodos, directorios). Por otro lado, las relaciones entre elementos dependen de propiedades visibles (o públicas) de los elementos, quedando ocultos los detalles de implementación. Finalmente, cada conjunto de elementos relacionados de un tipo particular corresponde a una estructura distinta, de ahí que la arquitectura está compuesta por distintas estructuras. ¿Por qué es importante la arquitectura de software? La arquitectura de software es de especial importancia ya que la manera en que se estructura un sistema tiene un impacto directo sobre la capacidad de este para satisfacer lo que se conoce como los atributos de calidad del sistema. Ejemplos de atributos de calidad son el desempeño, que tiene que ver con el tiempo de respuesta del sistema a las peticiones que se le hacen, la usabilidad, que tiene que ver con qué tan sencillo les resulta a los usuarios realizar operaciones con el sistema, o bien la modificabilidad, que tiene que ver con qué tan simple resulta introducir cambios en el sistema. Los atributos de calidad son parte de los requerimientos (no funcionales) del sistema y son características que deben expresarse de forma cuantitativa. No tiene sentido, por ejemplo, decir que el sistema debe devolver una petición “de manera rápida”, o presentar una página “ligera”, ya que no es posible evaluar objetivamente si el sistema cubre o no esos requerimientos. La manera en que se estructura un sistema permitirá o impedirá que se satisfagan los atributos de calidad. Por ejemplo, un sistema estructurado de tal manera que una petición deba transitar por muchos componentes antes de que se devuelva una respuesta podría tener un desempeño pobre. Por otro lado, un sistema estructurado de tal manera que los componentes estén altamente acoplados entre ellos limitará severamente la modificabilidad. Curiosamente, la estructuración tiene un impacto mucho menor respecto a los requerimientos funcionales del sistema. Por ejemplo, un sistema difícil de modificar puede satisfacer plenamente los requerimientos funcionales que se le imponen. Además de los atributos de calidad, la arquitectura de software juega un papel fundamental para guiar el desarrollo. Una de las múltiples estructuras que la componen se enfoca en partir el sistema en componentes que serán desarrollados por individuos o grupos de individuos. La identificación de esta estructura de asignación de trabajo es esencial para apoyar las tareas de planeación del proyecto. Finalmente, los diseños arquitectónicos que se crean en una organización pueden ser reutilizados para crear sistemas distintos. Esto permite reducir costos y aumentar la calidad, sobre todo si dichos diseños han resultado previamente en sistemas exitosos.