Pasar al contenido principal

Proyectos del Instituto de Computación

Título Resumen
Sistema de Transporte colectivo para dispositivos móviles En muchas ocasiones un usuario de ómnibus no conoce el camino para ir desde un punto a otro de Montevideo, ya sea porque solo tiene la dirección de destino, o no conoce el lugar en el que se encuentra, o bien por no saber qué línea de ómnibus lo puede llevar a donde desea. Otras veces el usuario conoce bien el recorrido que debe realizar pero no sabe cuánto deberá esperar en la parada hasta que finalmente pase el ómnibus que espera. El crecimiento masivo del uso de teléfonos inteligentes, que cuentan con acceso a internet y tecnologías de localización como el GPS, hacen que el acceso a esta información sea posible desde cualquier lugar y en cualquier momento. El proyecto consiste en el desarrollo de un sistema que brinde información sobre recorridos y horarios a usuarios del sistema de transporte colectivo.
Una herramienta para la automatización del análisis de ciber-amenazas utilizando Indicadores de Compromiso Una característica técnica importante de un análisis forense informático es que permite identificar ciertos componentes involucrados en un ataque, como por ejemplo objetos afectados, herramientas, técnicas y procedimientos utilizados. Por otra parte, es razonable pensar que si los ataques son realizados de manera automática, o por un mismo atacante, se dejen rastros similares sobre los sistemas comprometidos. En consecuencia, es de interés caracterizar estos artefactos, técnicas y procedimientos descubiertos durante el análisis forense para utilizarlos posteriormente como un "indicador" de los ataques detectados. Codificar esta información facilita la automatización de los procesos de detección de amenazas y si además se dispone de una codificación estándar, esta información puede ser intercambiada para beneficio de otras organizaciones, o una comunidad, evitando traducciones costosas, propias de una codificación no estandarizada. Por lo tanto, a lo largo de este proyecto se investigó el estado del arte respecto a estos indicadores de compromiso, relevando los lenguajes existentes para expresar los mismos de la forma más estandarizada posible. Como resultado se diseñó y desarrolló una herramienta que asista a un analista de seguridad en la detección de compromisos, apoyándose en una base de conocimiento de indicadores de compromiso en el lenguaje STIX. A su vez se diseñó la herramienta basada en plugins, permitiendo escalabilidad, facilidad de integración con herramientas ya existentes, y se incluyó la posibilidad de agregar detección heurística.
Code Injection Firewall - Static Analysis Web programming languages are evolving, there are new ones that promise interesting things: multi-tier programming, Web native properties, and... security? As many applications are a mixture of HTML, JavaScript, and SQL, distinct assumptions are made that cannot be checked against each other. Using one language for generating code that handles all tiers could ensure, for instance, that applications are immune to XSS or SQL-like injection attacks. But this is not the case of traditional languages used for Web programming like PHP, that continue to be at the top five. There is the need to use classic techniques to prevent code injection in PHP. These techniques rely on static analysis and need to track information that comes from possible tainted sources.  As code injection will affect the output of applications, deciding when this output is safe or tainted is key. As many applications will output a mix of HTML, and others, we focus on techniques to approximate dynamically generated HTML Web pages statically. Using these techniques, we created an infrastructure using Apache, modsecurity and the OWASP ModSecurity CRS, to detect code injection when the HTML output differs from the previously computed approximation.
VirtualCert: Hacia una plataforma certificada de virtualización El trabajo de investigación realizado en el proyecto VirtualCert (Fondo Clemente Estable - ANII, edición 2009 y CSIC I+D 2012) se focaliza en el estudio de los mecanismos de seguridad de plataformas de virtualización. En una plataforma de este tipo el acceso compartido a los recursos de memoria de la plataforma es un tema especialmente crítico.  Como resultado del trabajo de investigación desarrollado ya se cuenta con una versión completamente formalizada y verificada usando el asistente de pruebas Coq de un modelo idealizado de plataforma de virtualización y se han probado propiedades de seguridad que garantizan que esos sistemas solamente tienen acceso a la memoria que les pertenece. Estas últimas propiedades han sido formuladas como propiedades de no influencia. Adicionalmente,  se ha desarrollado una extensión al modelo originalmente propuesto que consiste en incorporar la noción de memoria cache y TLB (Translation Lookahead Buffers). Esto permite modelar comportamiento relativo a la gestión, y particularmente al acceso, de la memoria de la plataforma.
Heurísticas de planificación en entornos computacionales heterogéneos, implementadas en GPU

 

En los últimos quince años, los entornos de computación distribuidos han sido cada vez más utilizados para resolver problemas complejos. Hoy en día, una plataforma para la computación distribuida por lo general consta de una conjunto heterogéneo de computadoras. Esta clase de infraestructuras incluye a Grid Computing y Cloud Computing, donde se combinan un amplio conjunto heterogéneo de equipos con diversas características, para proporcionar una eficiencia significativa en relación a  potencia de computo, software utilizado y acceso a los datos, para solucionar muchos tipos de problemas.Un problema fundamental cuando se utiliza un entorno de computo heterogéneo (HC) consiste en definir  una estrategia de planificación para el conjunto de tareas a ser ejecutadas. El objetivo, es asignar los recursos de computación para satisfacer algún criterios de eficiencia, por lo general relacionados con el tiempo de ejecución total o la utilización de recursos. El problema de planificación en entornos heterogéneos de computo (HCSP) se convirtió en especialmente importante debido a la popularización de sistemas heterogéneos de computación distribuida. Los problemas tradicionales de planificación están calificados como NP-difíciles, por lo tanto los métodos clásicos y exactos son útiles para resolver problemas de tamaño muy reducido. Los métodos heuristicos son capaces de obtener un resultado en un tiempo de computo razonable, pero aún con estos métodos se requiere de mucho tiempo para la resolución de problemas de gran tamaño. El orden de los tiempos de ejecución de estos métodos puede ser extremadamente alto para ser ejecutados bajo demanda por el planificador de un entorno heterogéneo de computo. Las técnicas de computación de alto desempeño pueden ser utilizadas para reducir los tiempos de ejecución para realizar la planificación.  El hardware masivamente paralelo de las unidades de procesamiento gráfica (GPU) ha sido aplicado con éxito para acelerar los cálculos necesarios para resolver problemas en muchas áreas de aplicación, mostrando una excelente relaciona entre el costo y la potencia de cálculo

Facial Recognition Using Neural Networks over GPGPU The project introduces a parallel neural network approach implemented over Graphic Processing Units (GPU) to solve a facial recognition problem, which consists in deciding where the face of a person in a certain image is pointing. The proposed method uses the parallel capabilities of GPU in order to train and evaluate a neural network used to solve the abovementioned problem. The experimental evaluation demonstrates that a significant reduction on com-puting times can be obtained allowing solving large instances in reasonable time. Speedup greater than 8 is achieved when contrasted with a sequential im-plementation and classification rate superior to 85 % is also obtained.
Computación de alto desempeño para el estudio de medios granulares Varios objetos del universo se pueden considerar como un aglomerado de partículas discretas que se acumulan por efecto de la gravedad mutua entre éstas. Tal es el caso de algunos asteroides, embriones planetarios, cúmulos de estrellas y galaxias. Se trata de conjuntos de millones de partículas de diferente tamaño con una distribución irregular de su ubicación en el espacio. Se pretende calcular el potencial gravitatorio generado por este conglomerado de partículas en una grilla tridimensional de puntos al interior y exterior del aglomerado. Además, se hará un ajuste del potencial calculado interpolando los resultados obtenidos.
Búsqueda de documentos utilizando criterios semánticos La búsqueda de contenidos en Sistemas de Recuperación de Información, como los buscadores web, se realiza básicamente a través del criterio de palabras claves y luego ordenando según algún criterio particular. Esto acota mucho la capacidad del usuario de reflejar una semántica deseada según el propósito de su búsqueda. Se propone una solución que permita a un usuario plantear una consulta con mayor información semántica que la de la simple presencia de palabras, a través de un lenguaje particular de búsqueda, y algoritmos que utilicen la información para ordenar los resultados.
Rediseño del proceso de venta de lentes en una óptica Se rediseño el proceso de venta de lentes de una óptica. Para esto se puso especial atención en la prueba de armazones que para personas con baja visión presenta algún problema. Las armazones no tienen lentes con el aumento adecuado para el paciente, por lo que este no puede verse con el armazón puesto. Para esto se diseño un software que permite cargar la foto del interesado y probar sobre la misma los lentes. En la muestra se presentará el software en un PC con cámara que permitirá a los asistentes probarse las armazones disponibles en la prueba. Así mismo se presentará el diagrama del proceso previo a su rediseño y el proceso nuevo. Se presentarán así mismo los indicadores y las mejoras obtenidas en cada uno.
Energy-aware scheduling in heterogeneous computing systems The project tackles the problem of scheduling tasks in a heterogeneous computing environment in reduced execution times, considering the schedule length and the total energy consumption as the optimization objectives.
Digi-Clima Grid The aim of the Digi-Clima Grid project is to provide semi-automatic processing capabilities for historical graphical rain intensity records using grid computing infrastructures.
Cluster-FING El cluster FING es la infraestructura de cómputo de alto desempeño de la Universidad de la República. Su principal objetivo consiste en proveer soporte para la resolución de problemas complejos que demanden un gran poder de cómputo.
Orquestación de Servicios en la Plataforma de Interoperabilidad de Gobierno Electrónico La AGESIC ha construido una Plataforma de Interoperabilidad que tiene como propósito facilitar la implementación de una Arquitectura Orientada a Servicios (SOA) a nivel de Estado, donde los organismos intercambien información siguiendo este paradigma. Este proyecto propone alternativas de solución para implementar orquestaciones de servicios en la Plataforma de Interoperabilidad, resolviendo en particular la integración con el sistema de seguridad de la misma. La propuesta consta de una arquitectura base que integra un motor de orquestaciones compatible con el estándar WS-BPEL y aprovecha fuertemente las capacidades de mediación del Enterprise Service Bus (ESB), el cual es uno de los componentes principales de la plataforma. Sobre esta arquitectura pueden configurarse una serie de módulos que permiten implementar distintas alternativas de solución, las cuales se distinguen fundamentalmente por variaciones en el token de seguridad utilizado.
Recolección y transmisión de datos para la detección automática de eventos en la crianza de animales El uso de la tecnología en la actividad ganadera, sobre todo en nuestro país, no ha tenido un desarrollo proporcional a lo que ha ocurrido en otras áreas productivas. Dentro de ella existen muchas tareas que pueden optimizarse y situaciones que podrían ser evitadas si se contara con información relevante que permitiera un mayor control de la hacienda. El proyecto se enfoca en la exploración y creación de mecanismos que permitan detectar eventos simples relacionados a la movilidad y posición del ganado (salida de potreros, entrada a montes), generar información detallada sobre los mismos y recolectar los datos resultantes en un sistema centralizado con el fin de apoyar la toma de decisiones en cuanto a la crianza y atención del ganado. Las principales limitantes y problemas a resolver están planteados por el diseño de los dispositivos de generación y transmisión de datos, ya que deben ser dispositivos de bajo costo y alta autonomía, y por la construcción de la red de recolección, ya que la misma opera en un ambiente de bajos recursos computacionales y de comunicación.
Marco Polo - Un enfoque integrado para la resolución del problema de ordenamiento de flota y asignación de tripulación en empresas de transporte público El proyecto Marco Polo ataca la etapa llamada "planificación operativa" dentro de la problemática asociada a las empresas de transporte. En esta etapa se deben cubrir un determinado conjunto de viajes fijos utilizando una flota de vehículos disponibles y determinar la secuencia en la cual serán ejecutados estos viajes de manera de que se respeten las reglas laborales existentes y se minimicen los costos operacionales asociados a dicha ejecución. El resultado de la asignación de flota y tripulación es a lo que se le llama libro de servicios y su planificación conjunta es lo que se quiere optimizar en el presente proyecto. En Marco Polo se decide abordar un enfoque de resolución integrado y se plantea la utilización de la metaheurística Algoritmos Genéticos para diseñar el algoritmo de resolución del problema. Además se presentan el diseño y la implementación de un sistema modular, que brinda soporte a dicho algoritmo, cuyo núcleo es un grafo que maneja las dimensiones espacio y tiempo. Se utilizan dos casos de estudio, se comparan los resultados con los obtenidos por dos proyectos antecesores y con la solución manual obtenida por la empresa COPSA, constatando que, en varios de los escenarios planteados, Marco Polo mejora los resultados existentes.
ANIMuS: A Natural-Interactive Multitouch Surface ANIMuS es un proyecto del área Interacción Persona Computadora que busca, en principio, estudiar la integración de técnicas multitáctil e interacción natural, incluyendo finalmente el desarrollo de un prototipo de aplicación funcional que utilice ambas técnicas en conjunto como principal vía de interacción del usuario con el sistema, aumentando una interfaz multitáctil con interacción natural. La idea conceptual detrás de ANIMuS consiste en obtener una superficie interactiva e inteligente con la cual el usuario pueda interactuar naturalmente, ya sea mediante gestos corporales o mediante contacto directo con la misma. El proyecto se enmarca en un proyecto de mayor alcance denominado CUIN: Computación Ubicua e Interacción Natural llevado a cabo por docentes del Laboratorio de Medios del Instituto de Computación (INCO) de la Facultad de Ingeniería en conjunto con investigadores del Centro de Investigación Básica en Psicología (CIBPsi).
Editor de reglas de negocio en lenguaje natural.

 

En las organizaciones existen especificaciones llamadas reglas de negocio, las cuales pueden ser vistas como condiciones en donde se define o se restringe algún aspecto del mismo. Estas reglas suelen cambiar con frecuencia a lo largo del tiempo, generando la necesidad de responder de la forma más rápida y eficiente posible, para lograr una rápida adaptación de los sistemas informáticos. Un Business Rule Management System (BRMS) permite entre otras cosas, definir reglas de negocio, mantenerlas, versionarlas e impactar los cambios inmediatamente en los sistemas de la organización. Sin embargo, uno de los problemas que presentan, es que requieren de un alto conocimiento técnico, siendo muy difícil que un analista de negocio pueda trabajar con ellos. Partiendo de estándares para la expresión de reglas en lenguaje natural, de software existente para gestión de reglas de negocio, así como de otras herramientas de apoyo, este proyecto de grado desarrolló un Editor para la especificación de reglas de una manera más amigable para los analistas de negocio. Nuestro editor permite expresar las reglas en lenguaje natural de forma asistida, integrándose con la infraestructura existe en la organización y más importante aún, utilizando los términos del negocio que este utiliza habitualmente. El escenario de aplicación de este proyecto es el "Cierre de obras" que lleva a cabo el área de Atyr dentro del Instituto de Previsión Social (BPS), el cual presenta más de 60 reglas de negocio, las cuales fueron editadas con el Editor desarrollado, permitiendo un rediseño del mismo basado en reglas de negocio y el BRMS JBoss Drools.

Extensión del plug-in de Eclipse SoaML para generación de código JEE y WS desde modelos SoaML

 

La orientación a servicios se ha convertido actualmente en una de las formas más utilizada para la informatización de los procesos de negocios de una organización [18]. El paradigma de Computación Orientada a Servicios (Service Oriented Computing, SOC) promueve la descomposición de la lógica  de la solución en unidades pequeñas de trabajo autónomo especializadas en resolver una porción específica del problema. Dichas unidades de trabajo son llamadas servicios y pueden ser usados y combinados para el desarrollo de nuevas aplicaciones, permitiendo un desarrollo rápido, con gran flexibilidad y agilidad ante cambios en el funcionamiento a nivel de negocio. SoaML (SOA Modeling Language, SoaML) es el estándar de la OMG para el modelado de servicios con UML. El plug-in SoaML2Code generado en este proyecto permite partiendo de un modelo SoaML, generar código ejecutable en lenguaje Java que represente dicho modelo, y exponga los servicios provistos en el modelo como servicios web. Los modelos SoaML pueden ser realizados en el plug-in SoaML de Eclipse (proyecto previo) o importados en formato XMI desde cualquier herramienta de modelado que lo permita. Los servicios generados son expuestos como servicios web SOAP bajo la API de Java para la creación de servicios web JAX-WS RI y JAX-WS  + Spring, permitiendo a los usuarios de la comunidad agregar fácilmente alguna otra implementación que deseen. Actualmente existen muy pocas herramientas que ofrezcan el modelado de servicios con el estándar SoaML en conjunto con la generación de código que represente dicho modelo, la mayoría de las cuales son comerciales y cuyas funcionalidades se analizaron como parte de los requerimientos para el desarrollo del plug-in. La herramienta obtenida es de fácil utilización, y al encontrarse en el contexto de Eclipse provee a la comunidad de un plug-in para la generación de código ejecutable que permite la exposición de servicios a partir de modelos SoaML, funcionando de manera independiente de la versión de Eclipse que se esté utilizando y brindando una herramienta de distribución gratuita y de código abierto como soporte para desarrollos orientados a servicios.

Generación automática de Arquitecturas Orientadas a Servicios desde Procesos de Negocios

 

 

La Gestión de Procesos de Negocio (BPM) es el conjunto de actividades que realizan las organizaciones para optimizar o adaptar sus Procesos de Negocio (PN) a las nuevas necesidades organizacionales. Explicitar estos procesos mediante modelos facilita, entre otros, la construcción de software que soporte su operativa. La infraestructura informática en las organizaciones ha evolucionado hacia arquitecturas orientadas a servicios (SOA) que soportan aplicaciones distribuidas basadas en servicios, interoperables y evolucionables.
La implementación de PNs con servicios contribuye a la reducción de la brecha existente entre las áreas de análisis del negocio y tecnologías de la información (TI), facilitando la comunicación y entendimiento de las necesidades del negocio. El desarrollo dirigido por modelos (MDD) permite definir y mantener la relación entre los modelos involucrados y automatizar en lo posible el pasaje de uno al otro mediante transformaciones entre éstos.MINERVA es el framework resultante de una tesis doctoral que aplica MDD para desarrollar sistemas orientados a servicios desde PNs, con foco en su mejora continua. Entre otras prestaciones, provee la generación automática de modelos de servicios en el estándar SoaML, a partir de modelos de PNs en el estándar BPMN2, que también pueden ser utilizadas fuera del framework.Este Proyecto de investigación es financiado por el Fondo Clemente Estable de la ANII y tiene como principal objetivo definir nuevas/extender las transformaciones (existentes) para generar servicios en SoaML desde otras construcciones en BPMN2, así como aumentar la expresividad de los modelos SoaML generados, por ejemplo con la incorporación de criterios de calidad de servicios (QoS). La generación de código desde los modelos SoaML hacia diferentes plataformas tecnológicas de interés (en principio JEE y WS) será provisto mediante un proyecto de grado para evaluar distintas opciones e implementar la elegido como plug-in de Eclipse. Adicionalmente se evaluarán y definirán enfoques de verificación de transformaciones que permitan evaluar la calidad de las transformaciones definidas.

Butia

Este proyecto plantea como objetivo crear una plataforma simple, la cual ponga al alcance de estudiantes escolares o liceales las herramientas necesarias para permitirles interiorizarse con la programación de comportamientos para robots. El proyecto Butiá trata de ampliar las capacidades sensoriales y de actuación de la computadora XO del proyecto OLPC, transformandola en una plataforma robótica móvil. Actualmente la implementación 1.0 del proyecto está siendo utilizado en formato de kit, distribuido a 28 liceos públicos del Uruguay, con un set de sensores y piezas que permiten cambiar la ubicación de los sensores en la plataforma móvil donde se coloca la computadora XO.A su vez el proyecto Butiá fue desarrollado teniendo en mente el hecho que agregar nuevos sensores o actuadores a la plataforma sea muy sencillo, esto abre la posibilidad a que usuarios interesados con el hardware puedan implementar fácilmente sus propios sensores y actuadores. Incluso el diseño industrial del robot es abierto lo cual permite realizarlo con materiales reciclados o de bajo costo.

Sumo.uy

La intendencia de “Mucho Choque” está preocupada por el aumento en la cantidad de accidentes que
ocurren por no respetar las señales de tránsito. Previendo, además, que el número de vehículos aumentará un 50% en los próximos años, se propone implantar un nuevo sistema de libreta de conducir por puntos y, simultáneamente, desarrollar un sistema robótico para apoyar la educación vial de sus conductores.
El desafío consiste en desarrollar un robot autónomo móvil capaz de moverse por las calles de una
ciudad, desde el punto de partida hasta la meta, sin pérdida de puntos y en el menor tiempo posible.
En tal sentido, el robot debe ser capaz de recorrer las calles de una ciudad en miniatura, desde el punto de partida especificado hasta la meta señalizada, respetando las señales de tránsito ubicadas a lo largo del recorrido, evitando salirse de la calle y chocar contra edificios o transeúntes.

OpenFING

OpenFING pretende ser una plataforma colaborativa de apoyo al estudio. Para lograr esto ofrecemos acceso gratuito e ilimitado al conocimiento impartido en la Facultad de Ingeniería, lo cual creemos que te ayudará a vos y a cientos de estudiantes más que ingeresan cada año. La plataforma se centra en la publicación de videos de clases y relaciones con otros materiales. Estas relaciones surgen de diferentes fuentes, entre las cuales está el aporte de usuarios.