Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo"

Transcripción

1 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib Grupo WEBOO, Facultad de Matemática y Computación, Universidad de la Habana, Cuba {tamayo, darian.serrano, mkm}@matcom.uh.cu Abstract. This paper describes an architecture based on web standards (HTTP, SOAP, WS-*) to integrate and directly query heterogeneous distributed data sources. This approach permits the efficient execution of a distributed query which includes join, where, order by and select operations, enabling fail-over, error-handling and high-availability, taking advantage of multi-core capacity in the client computer. 1 Introducción Un sistema heterogéneo y distribuido de base de datos es una entidad que integra y permite consultar diferentes fuentes de datos hospedadas en diferentes servidores pero bajo una misma interfaz. Existen varios productos, como por ejemplo Oracle, que brindan una solución para la integración de diferentes sistemas de bases de datos en una misma base de datos permitiendo la ejecución y optimización de consultas distribuidas [1]. Sin embargo, en lugar de atarse a protocolos propios y específicos de una tecnología es conveniente aprovechar la heterogeneidad y distribución que nos brinda la web utilizando estándares tales como SOAP, WS-* o REST como interfaz común para interactuar con fuentes de datos que pueden ser independientes. Vale señalar que esto no quiere decir que hay que descartar el uso de servidores como Oracle, SQL Server o MySQL como soporte para el almacenamiento de datos, sino que multiplica su utilización al "subirlas a la nube" a través protocolos estándares. Si bien es útil publicar datos en la web a través de protocolos estándares, más útil sería poder consultar estos datos de manera distribuida, sobrepasando las fronteras de cada servicio de datos, tratando a la web como un gran sistema de base de datos. Un problema que se presenta en este escenario es cómo realizar uniones (JOIN) de manera eficiente entre varios servicios de datos, que no tienen por qué guardar una relación explícita entre ellos ya que fueron diseñados para trabajar de manera independiente. El aporte principal del presente trabajo es proponer una arquitectura para consultar diferentes fuentes de datos de manera distribuida utilizando protocolos estándares. En la sección 2 se exponen aquellos aspectos que motivaron el desarrollo de este trabajo. Posteriormente en la sección 3 se analizan algunos resultados de otros

2 2 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib trabajos anteriores. En la sección 4 se introduce una arquitectura inicial con un enfoque orientado a servicio y más adelante en la sección 5 se muestra cómo cambiando éste a un enfoque orientado a recursos se logra obtener mejores resultados. Siguiendo el presente enfoque se ha implementado un prototipo del que en la sección 6 se muestran algunos resultados experimentales. 2 Motivación La integración de datos provenientes de fuentes heterogéneas, pero bajo una misma interfaz de consulta, es un deseo común lo mismo en escenarios comerciales, gubernamentales, científicos, por lo que ha sido objeto de estudio por diferentes autores. En un escenario académico por ejemplo, la creación del perfil de un estudiante pudiera ser un proyecto a modelar utilizando una arquitectura distribuida, ya que pudieran existir fuentes de datos heterogéneas como el listado de los estudiantes, el listado de cursos, el registro de actividades extracurriculares, las evaluaciones docentes, los premios, etc, que pudieran estarse gestionando en sistemas independientes. Un ejemplo a gran escala podría ser a nivel de país publicar la información de los ciudadanos: donde cada persona además de un DNI, tiene historial médico, laboral, financiero, entre otros y que evidentemente (y por suerte) son gestionados por estructuras organizacionales independientes. Los objetivos que motivan el presente trabajo son el de minimizar los requerimientos computacionales, lograr una arquitectura simple (basada en estándares), poder integrar fuentes de datos heterogéneas y ejecutar de manera eficiente consultas distribuidas que permitan realizar uniones entre datos provenientes de diferentes fuentes. 3 Trabajos Relacionados Con la Web 2.0 han surgido los sistemas llamados NoSQL, diseñados con el objetivo de ser escalables horizontalmente, a diferencia de los DBMSs tradicionales basados en SQL, donde la escalabilidad se lograba añadiendo más recursos de cómputo al servidor [2]. Estos sistemas no son un reemplazo para los DBMSs tradicionales ya que a pesar de que ganan en escalabilidad horizontal, tienen limitantes en cuanto a complejidad, rendimiento, consistencia y confiabilidad; aunque en algunos escenarios específicos pueden brindar mayores beneficios [3]. Por tanto, una solución intermedia, pudiera ser mantener los DBMSs como soporte para el almacenamiento de datos y así obtener consistencia y confiabilidad y publicar los datos a través de una capa intermedia (Middleware) que utilice un protocolo de comunicación estándar que permita lograr la escalabilidad horizontal requerida. Además, no siempre se pueden homogeneizar las fuentes de datos producto de estar en sistemas legados, por lo que la alternativa a seguir es integrar y no migrar el sistema a una nueva plataforma. Una arquitectura orientada a servicio (SOA) basada en SOAP ha demostrado ser un buen soporte para creación confiable y eficiente de servicios distribuidos [4]. La integración de servicios no es un problema nuevo y de hecho existen soluciones

3 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo 3 utilizando lenguajes como BPEL sobre un Enterprise Service Bus (ESB) [5]. Sin embargo, son muchos los factores a considerar cuando se desean consultar grandes volúmenes de datos, sobre todo si se encuentran distribuidos en fuentes de datos heterogéneas ya que la optimización y ejecución eficiente de consultas resulta ser un aspecto decisivo. La idea de mantener fuentes de datos autónomas, heterogéneas, distribuidas y en constante cambio que puedan ser descubiertas dinámicamente a través de la web, ha sido objeto de estudio anteriormente [6]. Uno de los retos actuales para lograr el ideal de computación orientada a servicio [7] es el de crear una infraestructura que permita consultar dinámicamente, mediante una interfaz uniforme, fuentes de datos distribuidas y heterogéneas. Un ejemplo interesante de integración de datos es WS-Aggregation [8] que permite la agregación y consulta de servicios de datos XML (por ejemplo fuentes RSS) y que utiliza un lenguaje propio nombrado WAQL basado en XQuery. Presenta una arquitectura distribuida basada en Concentradores, que son las entidades que se encargan de conectarse a las diferentes fuentes y extraer de manera autónoma los datos, homogenizando el resultado para que posteriormente se pueda consultar de manera uniforme. La propuesta del presente trabajo, aunque similar a WS-Aggregation desde el punto de vista de arquitectura, difiere de éste en dos aspectos fundamentales. En primer lugar, los datos no se extraen de la fuente de datos para consultarlos posteriormente, sino que se consultan directamente de manera nativa mediante el lenguaje del proveedor de datos. Esto permite el manejo de grandes volúmenes de datos sin duplicar la información y además aprovecha las facilidades de consultas eficientes en el proveedor de datos. El segundo aspecto distintivo de nuestra propuesta es que usa un lenguaje similar a SQL para expresar una consulta global que puede involucrar múltiples fuentes de datos y que pueden representar diferentes entidades. Luego el sistema se encargará de convertir dicha consulta global en múltiples consultas locales en el lenguaje nativo para cada fuente de datos, permitiendo así una ejecución eficiente de las consultas para cada fuente y una composición del resultado que explota las características multi-núcleo de las computadoras modernas (utilizando para ello la técnica hybrid shipping para el procesamiento de la consulta distribuida [9]). Visto de otro modo, define un modelo virtual de datos que se puede consultar como un todo, similar a como se haría en una base de datos local (aplicar selecciones, filtros, uniones), pero en la práctica este modelo virtual estará compuesto por fuentes de datos independientes y distribuidas. La implementación del prototipo de prueba se llevó a cabo con C#.NET y utilizó Parallel LINQ [10] para la ejecución en paralelo de consultas expresadas en el lenguaje LINQ [11]. 4 Arquitectura inicial La base de la arquitectura propuesta está en el servicio de datos. Éste es una aplicación que se conecta directamente a la base de datos que se quiere acceder y

4 4 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib publica parcial o totalmente su contenido mediante dos enfoques diferentes; uno más clásico a través de un servicio web SOAP (WS-*) y otro a través de un servicio web RESTFul que implementa el protocolo OData [12]. Cada uno de estos enfoques tiene ventajas y desventajas que serán discutidas en este trabajo. Independientemente de cuál variante se utilice, ambos servicios web se pueden descubrir mediante la utilización del estandar WS-Discovery [13]. Las fuentes de datos podrán ser heterogéneas; lo mismo una base de datos relacional, que ficheros XML almacenados en un gestor de contenidos, pero la gracia es que se accederá de manera homogénea a través del servicio de datos. 4.1 Arquitectura orientada a servicios (SOA) Cada servicio de datos implementará una misma funcionalidad común que ofrece las operaciones disponibles y los tipos de datos involucrados en las mismas. Dicha información se puede acceder mediante WDSL para la creación dinámica de proxies que permiten la comunicación con el servicio de datos desde una determinada plataforma y lenguaje como es el caso de C# y.net u otra que implemente estos estándares SOAP, WS-*). Varios servicios de datos pudieran implementar la misma funcionalidad (caracterizada con un tipo interface en.net) lo que permitirá ejecutar de manera distribuida una misma operación entre dichos servicios combinando los resultados. Como ejemplo utilizaremos un modelo de datos que incluye un listado de personas y un listado de logros alcanzados por una persona (premios, títulos académicos, puestos de trabajo ejercidos). Lo interesante a destacar en este ejemplo es que existe una relación semántica de uno a varios entre las entidades persona y logro, además de que las listas de personas y logros pueden ser de gran tamaño por lo que podría haber que distribuirlos entre varios servicios de datos. Una posible definición de estos tipos (en este caso utilizando Windows Communication Foundation y C#) pudiera ser: [ServiceContract] public interface IPersonService { [OperationContract] Person[] GetPeople(int skip, int count); } [ServiceContract] public interface IBadgeService { [OperationContract] Badge[] GetBadgeByPersonId(int PersonID); } Como se puede apreciar la operación GetPeople recibe dos parámetros enteros que tienen como objetivo "paginar" la cantidad de personas que se van mostrando ya que sería impracticable devolver millones de elementos a través de la red. El tipo Person contendría el nombre, el apellido, la edad y otros datos personales. En el caso de la operación GetBadgeByPersonId se le pasa un identificador de la persona y se recibe el listado de logros de esta persona (el tipo Badge contendría de

5 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo 5 manera básica un campo Description con la información del logro y un campo Date con la fecha en que ocurrió dicho logro). Entonces se tendría un grupo de servicios de datos implementando el tipo IPersonService y otro grupo implementando IBadgeService de manera tal que la información quede distribuida en ambos grupos. Fig. 1. Topología en un entorno LAN (izquierda) donde el descubrimiento se realiza vía UDP (líneas intermitentes) y sobre Internet (Derecha) donde el descubrimiento se realiza con la ayuda de un repositorio HTTP que registra los servicios de datos. Para acceder a estos servicios de datos primero habría que realizar un descubrimiento dinámico, ya que no se tiene a priori información de disponibilidad ni ubicación. La topología de red juega un papel importante en este paso. En una red de área local (LAN), al iniciar un cliente se pueden realizar anuncios (Broadcast) que llegarían a los servicios de datos y estos a su vez responderían con anuncios que contengan la dirección URL en que se alcanza el servicio web propiciando un descubrimiento Ad-Hoc. En el caso de Internet, no es posible realizar este tipo de anuncios por problemas de seguridad por lo que la alternativa sería utilizar un servicio web adicional que actúe de Repositorio, recibiendo los pedidos de ambas partes (clientes y servicios) para mantener un mapa con la dirección URL de cada servicio y su disponibilidad (Fig. 1). De esta manera es que funciona WS-Discovery que se puede configurar en modo Ad-Hoc para su uso en una LAN y en modo Administrado para su uso en Internet. El cliente a priori solo tiene que conocer el tipo que expresa los servicios que quiere consultar. La dirección URL donde se encuentra el servicio, así como la versión del protocolo SOAP que se está aplicando, se descubren dinámicamente.

6 6 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib 4.2 Ejecutando operaciones distribuidas Dado un conjunto de servicios que implementan una misma interfaz o contrato, se puede ejecutar una misma operación (IPersonService.GetPeople por ejemplo) de varias formas 1 atendiendo a objetivos diferentes: 1. Ejecutar la operación en algún servicio y devolver el resultado 2. Ejecutar la operación en cada uno de los servicios y devolver el conjunto de resultados 3. Ejecutar la operación en cada uno de los servicios y devolver los resultados mezclados El primer caso se resuelve relativamente simple. Para ello primero se realiza una ordenación aleatoria de los servicios disponibles (previamente descubiertos) y se ejecuta en orden el pedido hasta que se obtenga un resultado (Round-Robin). En el mejor de los casos el primer servicio nos daría una respuesta, pero en caso de que éste falle, o se encuentre fuera de servicio, se continúa con el siguiente hasta haber intentado con todos los servicios disponibles. El objetivo de la ordenación aleatoria es lograr un balance de carga. Los restantes casos son un poco más complejos de tratar. La diferencia entre los dos últimos está en que uno devuelve un objeto iterable con los resultados de cada llamada (por ejemplo un array Person[] para el método GetPeople) por lo que para su fácil consumo sería conveniente contar con un método que mezcle cada uno de los resultados iterables en un único iterable. Está claro que el programador pudiera obtener manualmente el listado de servicios y ejecutar las operaciones una a una por cada servicio, pero ésta no es la mejor manera de hacerlo porque en este caso el tiempo de ejecución total sería igual a la sumatoria del tiempo que demore cada servicio. Pero como el tiempo de respuesta no es el mismo para cada servicio, si en el momento en que se espera por la respuesta de un servicio lento se realizasen otras llamadas a servicios más rápidos se estaría mejorando el tiempo de ejecución total. Es muy difícil encontrar una secuencia óptima de llamadas ya que en principio no se conoce a priori el tiempo de respuesta de cada operación para cada servicio. Por otra parte, si se realizan todas las llamadas a la misma vez puede saturarse el enlace o bloquearse el cliente debido a la cantidad de información resultante que tendría que procesar. Por último habría que manejar las distintas excepciones que se podrían lanzar (timeout, conexión rechazada, error de transmisión, etc). La solución adoptada fue la de implementar el patrón productor-consumidor en el que cada llamada a servicio se convierte en un productor que almacena el resultado en una colección con soporte concurrente y de la cual luego el consumidor obtiene el resultado al ser ésta una colección iterable (Fig. 2). A lo sumo se lanza una cantidad p productores en paralelo (más abajo se explica cómo se determina este valor p) sólo cuando existe un consumidor que le ha solicitado un elemento a la colección intermedia. Cuando un productor finaliza, si existe un consumidor esperando (debido 1 Se sale del alcance de este trabajo la composición de operaciones y la ejecución de flujos de trabajos.

7 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo 7 a que la colección intermedia está vacía) se lanza entonces el siguiente productor manteniendo de este modo, siempre que sea posible, un número p de productores en ejecución. El proceso de añadir el resultado devuelto por el productor (por ejemplo Person[] para el método GetPeople) y el contenido de la colección intermedia, se realiza inmediatamente, por lo que puede suceder que varios productores finalicen al mismo tiempo y resultado combinado quedaría entremezclado. El valor de p puede impactar en la eficiencia de la ejecución. Este número debe calcularse en dependencia de la cantidad de hebras disponibles en el sistema donde se ejecuta el cliente (lo cual se aprovecha cuando se tiene más de un núcleo de procesamiento). Si p es pequeño se estarían sub-utilizando las capacidades de cómputo, pero si es muy grande habría más hebras que capacidad real, por lo que se perdería tiempo en hacer cambio de contexto y el consumidor tendría menos tiempo para procesar la colección de elementos. En el prototipo implementado en.net se utilizó la heurística de paralelismo incluida en el Task Parallel Library (TPL) la cual calcula dinámicamente dicho valor [14]. Fig. 2. Ejecución en paralelo para p=3 de seis productores (llamada a servicio) que una vez que finalizan la ejecución publican el resultado en una colección intermedia para su posterior consumo. Note que solo hay a lo sumo tres productores ejecutando a la vez, A, B, C, al terminar B siguen A, C, D, al terminar A siguen C, D, E y por último E y F. Otro detalle interesante es que si el consumidor solicita solamente k elementos, y estos se obtienen con la ejecución de un subconjunto de productores, entonces no se realiza la ejecución de los restantes productores. 4.3 Limitantes del enfoque orientado a servicios para consulta de datos distribuidos Suponga que quiere obtener las k primeras personas ordenadas por el nombre cuyo apellido sea Rodriguez. En un entorno cliente-servidor donde se consulta un único servicio, una solución sería definir una operación con signatura Person[] GetPeopleByLastName(string lastname, int count) que devuelva el resultado de ejecutar una consulta SQL parametrizada como la siguiente:

8 8 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib SELECT * FROM People WHERE Lastname ORDER BY Name El primer problema con esta solución es que hay que ser algo clarividente para definir a priori todas las operaciones que se vayan a utilizar. Si se quiere filtrar u ordenar por otro criterio no previsto, habría que modificar el servicio para añadirles dichas operaciones. Por otra parte, es un inconveniente la cantidad de operaciones que habría que definir para que un modelo de datos real sea útilmente consultable. Por supuesto, siempre se podrían devolver a la aplicación cliente los datos de todas las personas y que ésta sea la que realice las operaciones de filtrado y ordenación, pero esto es impracticable debido al gasto de ancho de banda y al tiempo de transmisión requerido si la base de datos es de gran volumen. En un entorno distribuido con m servicios disponibles, si lo que finalmente decide el cliente es quedarse con las k primeras personas que cumplan las condiciones de la consulta, habría que transmitir al cliente como mínimo m*k personas (las k primeras de cada uno los m servicios disponibles) para luego reordenarlas y quedarse sólo con las k primeras globalmente. Note que en este caso se estarían transmitiendo innecesariamente los datos de k*(m-1) personas lo que impacta en el rendimiento y en el consumo de ancho de banda. Debido a estas dificultades se decidió investigar una alternativa mucho más eficiente basada en un enfoque orientado a recursos. 5 Mejorando la arquitectura con un enfoque orientado a recursos (ROA) En lugar de tener que determinar a priori las operaciones para la publicación de datos a través de una arquitectura SOA, se podría usar un enfoque que permita a posteriori diseñar y ejecutar una consulta basándose solamente en las entidades expuestas y no en la ejecución de operaciones predefinidas. Para ello tendría que ser posible serializar la consulta y transmitirla del cliente hacia el servidor, ejecutarla en el servidor y luego consumir los resultados. En principio si la fuente de datos fuese SQL podría utilizarse dicho lenguaje para expresar la consulta, pero no en un contexto en que las fuentes de datos son heterogéneas y no necesariamente bases de datos relacionales. En un trabajo previo [15] analizamos cómo modelar, serializar y ejecutar dinámicamente una consulta de datos sobre repositorios de datos heterogéneos. OData es un protocolo abierto que permite consultar y actualizar datos utilizando la Web como transporte basándose en estándares como AtomPub, JSON y el propio HTTP. Este protocolo cuenta con implementaciones en Java, PHP, Ruby y en la propia familia.net (.NET Framework, Silverlight y Windows Phone 7) y es utilizado en aplicaciones por grandes compañías como SAP y EastBank. En OData la consulta se codifica en la URL del pedido y el resultado se devuelve como un Feed de AtomPub [16]. Es posible establecer filtros, definir una ordenación para los resultados, paginar y proyectar pero no se pueden realizar uniones (JOIN). En los lenguajes que incorporan LINQ existe un proveedor que convierte una consulta LINQ en un pedido OData para simplificar la modelación de la consulta.

9 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo 9 La presente propuesta no impone restricciones sobre las fuentes de datos (salvo la trivial de que se publiquen a través de OData) sino que las impone sobre el cliente que es en donde se lleva a cabo el trabajo de serialización y ejecución en paralelo de las múltiples consultas requeridas para componer y satisfacer una única consulta distribuida. No obstante, las ideas que se muestran a continuación para el procesamiento de la consulta distribuida pueden implementarse, con más o menos trabajo, en otras plataformas en dependencia de las bondades de cada una. 5.1 Procesamiento de una consulta distribuida El procesamiento y ejecución de una consulta distribuida es un problema complejo a pesar de los beneficios en cuanto a escalabilidad horizontal que se obtienen al tener los datos distribuidos en varias máquinas en una red. Esto se debe a varios factores tales como el tamaño del sistema distribuido, la heterogeneidad de las fuentes de datos, el dinamismo del sistema y la limitante de la velocidad de la red que, por muy rápida que sea, hasta el momento no compite con la que se obtiene localmente en un mismo servidor. Es por ello que resulta de interés el estudio de diferentes técnicas que permitan el procesamiento eficiente de consultas distribuidas que incluyen filtros, uniones, proyección y ordenamiento. Estas técnicas básicamente se mueven entre dos extremos: ejecutar la consulta en el servidor y recibir el resultado procesado o recibir todos los datos y ejecutar la consulta en el cliente. Es evidente que ejecutar siempre la consulta en el cliente es impracticable producto del costo de transmisión. Lo ideal sería ejecutar las consultas en el servidor y procesar los resultados, pero existen consultas que simplemente no se pueden "distribuir", a menos que se conozca información adicional sobre los datos almacenados. Cuando se habla de procesamiento eficiente en un entorno distribuido, se refiere a minimizar el costo de transmisión que a fin de cuentas es el que más impacta el rendimiento. Lograr esta eficiencia es usualmente complejo, ya que la mayoría de los problemas de optimización de consultas distribuidas son NP-Hard [17]. Por tanto, en este trabajo el enfoque que se ha seguido es el de analizar los casos comunes de consulta y brindar una heurística con ciertas restricciones que aunque no necesariamente logra el óptimo, se ha comprobado que funciona aceptablemente para el problema que se quiere resolver. 5.2 Análisis semántico del árbol de sintaxis abstracta que representa a la consulta y ejecución distribuida Para aplicar las heurísticas de optimización, el enfoque adoptado parte de que la consulta distribuida se exprese en el cliente mediante LINQ para luego ejecutarla utilizando un proveedor LINQ personalizado que es quien se encarga de transformar la consulta en pedidos OData y luego componer los resultados. La idea es que en dependencia de la forma de la consulta, su ejecución se realizará completamente en el servidor, en el cliente o de forma híbrida. Considere el ejemplo siguiente:

10 10 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib query = (from person in bus.getdataservices<person>() where person.name.startswith("a") orderby person.name join badge in bus.getdataservices<badge>() on person.id equals badge.personid select new {person.name, badge.description}).take(25); En este caso, se está solicitado el descubrimiento automático de todos los servicios de datos disponibles que publiquen las entidades Person y Badge. De todas las entidades de tipo Person que se encuentran distribuidas en diferentes servicios de datos, solo interesan aquellas que cumplan cierta condición (en este ejemplo que el nombre empiece con A ) y que se devuelvan ordenadas por el nombre. Luego se realiza un inner join con las entidades de tipo Badge relacionadas y finalmente se proyectan los datos en un nuevo tipo que contenga las propiedades Name y Description. Pero la consulta también indica que de todos los resultados nos basta con los 25 primeros. Esta consulta ejecutará de manera eficiente si la cantidad de elementos que se transmiten por la red para lograr el resultado es linealmente proporcional a la cantidad solicitada (en el ejemplo 25). Fig. 3. Relación entre los ejecutores y cada parte de la consulta. El primer paso en el procesamiento de la consulta distribuida consiste en analizar el árbol de sintaxis abstracta (AST) que representa a la consulta y determinar las partes que pueden ser ejecutadas del lado del servidor. LINQ permite acceder al AST de una consulta y transformarlo dinámicamente según convenga. Además permite ejecutar una consulta en el cliente utilizando el proveedor LINQ to Objects si las fuentes de datos implementan la interfaz IEnumerable<T>. La estrategia que se siguió para lograr la eficiencia en la ejecución de la consulta distribuida fue la de analizar el árbol de expresión y sustituir aquellas ramas que puedan ejecutarse del lado del servidor por objetos especiales que se les llamó Ejecutores que implementan la interfaz IEnumerable<T> y son capaces de ejecutar dicha rama de forma remota del lado del servidor. Por ahora se han creado solo dos tipos de ejecutores: el SingleQueryExecutor y el JoinExecutor. El primero se encarga de ejecutar de forma remota consultas que involucren un solo tipo de entidad. En la Fig. 3 se muestra la relación de los ejecutores y la consulta que se está tomando como ejemplo. El SingleQueryExecutor (Fig. 4) transforma la consulta en pedidos OData y los ejecuta en paralelo en los servicios de datos disponibles siguiendo el proceso de ejecución en paralelo que se mostró en 4.2.

11 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo 11 Fig. 4. Funcionamiento del ejecutor SingleQueryExecutor Los datos no se devuelven inmediatamente sino que se paginan y se van devolviendo página a página según se vayan solicitando para minimizar el costo de transmisión. La idea es tratar de transmitir la misma cantidad de elementos; es similar tener 10 servicios con tamaño de página 10 que 2 servicios con tamaño de página 50 ya que se transmitirían en el pedido inicial 100 elementos. Cuando se establece una solicitud de ordenación (order by) cada servicio de datos ordena su subconjunto, pero el orden global hay que calcularlo. Lo que se hace es una mezcla ordenada; se ordena por el primer elemento de cada página devuelta y se selecciona el menor (o mayor según sea especificado) y se devuelve dicho elemento. Luego se reubica dicha página por el sucesor y se vuelve a realizar el proceso. Cuando la página queda vacía se solicita al servidor una nueva página y se continúa el proceso hasta que no queden páginas disponibles o se hayan devuelto la cantidad de elementos requeridos. Como no se conoce información sobre los datos almacenados, puede ser que los primeros k elementos ordenados globalmente estén en un único servicio de datos o distribuidos por todos los servicios de datos. Este algoritmo ejecuta en O(k) ya que se transmiten k elementos más un valor constante que es menor o igual que la cantidad de servicios de datos por el tamaño de página. La entrada de JoinExecutor estaría compuesta por dos fuentes de datos que son de tipo ejecutor, dos funciones con forma Entidad Llave que permitan realizar la unión y una función con forma ( ) que realice la reducción de la relación. Se siguió un enfoque híbrido para ejecutar el inner join. De la primera fuente de datos se solicita una página (que según el ejecutor que sea, este pedido puede realizarse de manera remota o local) y con estos elementos se le añade dinámicamente un filtro adicional a la consulta de la segunda fuente de datos para que solo devuelva las entidades que satisfagan los valores de las llaves de los elementos seleccionados. De esta forma se devuelven los valores que satisfacen el inner join para dicha página y se procede a la siguiente página con el mismo algoritmo. El tamaño de página aquí se calcula teniendo en cuenta el tamaño máximo

12 12 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib de la URL, ya que añadir un filtro con muchos valores puede sobrepasar este tamaño máximo y no se podría ejecutar el pedido OData. Toda parte de la consulta que utilice como fuente de datos a un ejecutor se ejecuta en el cliente utilizando LINQ to Object. En el ejemplo anterior, la proyección se realiza a nivel de cliente. El método Take también se ejecuta en el cliente, pero como los ejecutores se han diseñado con un comportamiento perezoso (Lazy) los pedidos remotos se hacen por páginas según la demanda de la consulta minimizándose así el costo de transmisión. 6 Resultados experimentales Se confeccionaron dos grupos de consultas que incluyen filtros, ordenación y uniones. Las consultas en el primer grupo solo devuelven la cantidad de elementos consultados y aquellas en el segundo, devuelven una cantidad específica de resultados (diez mil elementos de manera predeterminada). Cada servicio de datos se configuró para acceder a una base de datos de 1 millón de elementos, almacenadas en MySQL con motor MyISAM (sin ajustes personalizados) ejecutando en computadoras de escritorio con un procesador Core 2 Duo a 2Ghz y 1GB de memoria RAM conectadas a través de una red Fast Ethernet (100Mbps). En cada computadora física se ejecutaron de 5 a 10 servicios de datos por lo que cada una servía de 5 a 10 millones de datos en cada momento. La aplicación cliente ejecutó en una PC Quad 2 Core (4 núcleos) para así explotar el paralelismo. Tabla 1. Resultados experimentales Se realizaron diez repeticiones para cada consulta y se diseñaron seis ciclos de pruebas en donde en cada uno se iban incrementando la cantidad de servidores y servicios de datos paulatinamente. El resultado del experimento se puede visualizar en la Tabla 1. A lo sumo se levantaron 4 computadoras con 10 servicios llegando a 40 millones de elementos a consultar. Como caso promedio se logró un rendimiento de 1040 elementos por segundo y el rendimiento se sostuvo a medida que se iban añadiendo mayor cantidad de datos y servidores con un comportamiento lineal, lo que

13 Integración de servicios de datos distribuidos y su utilización eficiente en computadoras multi-núcleo 13 es consecuente, por lo que se puede concluir que se logró la escalabilidad horizontal que se quería. Como dato interesante, con 10 millones de elementos el proceso de MySQL utilizaba el 100% del procesador para realizar la mayoría de las consultas (donde la más costosa resultó ser aquella que incluye ordenación). A partir de 15 millones de elementos, el proceso MySQL comenzó a pasarse de los 60 segundos sin dar respuesta. Los 10 millones de elementos resultaron ser el límite aceptable para el hardware utilizado. De manera general cada iteración consumía elementos, salvo las dos variantes que incluyen ordenación, donde se devuelven 25 y 300 elementos respectivamente. En este caso se comprobó que el proceso MySQL requería unos cuantos segundos para realizar la ordenación antes de devolver respuesta (compare la consulta countwhere-orderby con query-where-orderby) por lo que el rendimiento de estas consultas no va a subir mucho aunque se soliciten los diez mil elementos ya que como se realizan los pedidos por páginas hay que reordenar nuevamente. Éste es otro indicador a tener en cuenta; la ordenación tiene que optimizarse utilizando índices o técnicas de cache del lado del servidor o reducir los datos locales y aumentar la cantidad de servidores. 7 Conclusiones Se ha presentado una arquitectura que permite consultar diferentes fuentes de datos de manera distribuida utilizando protocolos estándares. Al ser OData el protocolo utilizado para el intercambio de datos, se pueden utilizar fuentes de datos existentes que implementen dicho protocolo o crear servicios de datos utilizando diferentes lenguajes de programación que se conecten a sistemas legados, no necesariamente SQL, y publiquen en la web dicha información. El prototipo que se ha utilizado no requiere conocimiento adicional de la forma o relación de los datos, así como la disposición de los servidores. El descubrimiento de los servicios de datos se realiza de manera dinámica y el esquema de datos se infiere de igual manera. Para el programador, el trabajo con la red, el descubrimiento de servicios y la consulta de datos son transparentes ya que utiliza el prototipo como si los tipos de datos fuesen del propio lenguaje y los datos estuviesen almacenados en memoria. Empíricamente los resultados obtenidos muestran un buen rendimiento y alcanzan el objetivo de escalabilidad horizontal cuando el monto de datos es grande y no se puede lograr escalabilidad vertical. El aporte fundamental consiste en mostrar un prototipo que permite consultar, utilizando un enfoque orientado a recursos, una base de datos en la nube, compuesta por servicios de datos independientes.

14 14 Alejandro Tamayo Castillo, Darian Serrano Ferrer y Miguel Katrib Referencias 1. Oracle: Distributed Database Concepts. In : Oracle Database Administrator's Guide. 2. Cattell, R.: Scalable SQL and NoSQL data stores. ACM SIGMOD Record (2010) 3. Leavitt, N.: Will NoSQL Databases Live Up to Their Promise? IEEE Computer Society (2010) 4. Kart, F., Moser, L., Melliar-Smith, P.: Building a Distributed E-Healthcare System Using SOA. IT Pro IEEE (2008) 5. Keen, M., Acharya, A., Bishop, S., Hopkins, A., Milinski, S., Nott, C., Robinson, R., Adams, J., Verschueren, P.: Patterns: Implementing an SOA Using an Enterprise Service Bus. IBM RedBooks (2004) 6. Zhub, F., Turnera, M., Kotsiopoulosc, I., Bennettb, K., Russelld, M., Budgena, D., Breretona, P., Keanec, J., Layzellc, P., Rigbyd, M., Xue, J.: Dynamic Data Integration Using Web Services. ICWS'04 IEEE (2004) 7. Papazoglou, M., Traverso, P., Dustdar, S., Leymann, F.: Service-Oriented Computing: State of the Art and Research Challenges. (2007) 8. Hummer, W., Leitner, P., Dustdar, S.: WS-Aggregation: Distributed Aggregation of Web Services Data. SAC'11 ACM (2011) 9. Kossmann, D.: The State of the Art in Distributed Query Processing. ACM Computing Surveys 32(4) (2000) 10. Leijen, D., Schulte, W., Burckhardt, S.: The design of a task parallel library. (2009) 11. Pialorsi, P., Russo, M.: Introducing microsoft linq. (2007) 12. Open Data Protocol (OData). Available at: Web Services Dynamic Discovery (WS-Discovery). In: OASIS. Available at: Campbell, C., Johnson, R., Miller, A., Toub, S.: Parallel Programming with Microsoft.NET. Design Patterns for Decomposition and Coordination on Multicore Architectures. (2010) 15. Tamayo, A., Sánchez, L., Katrib, M.: Un Servicio de Datos Dinámico. CibSE 2010 (2010) 16. Chappell, D.: Introducing OData: Data Access for the Web, Cloud, Devices, and More. (2011) 17. Wang,, Ming-Syan, C.: On the complexity of distributed query optimization. IEEE Transactions on Knowledge and Data Engineering 8(4) (1996)

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO

SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO SERVICE ORIENTED ARCHITECTURE (SOA) CONTENIDO Introducción:...1 Service Oriented Architecture...2 Elementos de una Service Oriented Architecture...2 Application frontends...2 Servicios...2 Contrato:...3

Más detalles

Capítulo 5. Cliente-Servidor.

Capítulo 5. Cliente-Servidor. Capítulo 5. Cliente-Servidor. 5.1 Introducción En este capítulo hablaremos acerca de la arquitectura Cliente-Servidor, ya que para nuestra aplicación utilizamos ésta arquitectura al convertir en un servidor

Más detalles

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y Capítulo VI Conclusiones En este capítulo abordaremos la comparación de las características principales y de las ventajas cada tecnología Web nos ofrece para el desarrollo de ciertas aplicaciones. También

Más detalles

Elementos requeridos para crearlos (ejemplo: el compilador)

Elementos requeridos para crearlos (ejemplo: el compilador) Generalidades A lo largo del ciclo de vida del proceso de software, los productos de software evolucionan. Desde la concepción del producto y la captura de requisitos inicial hasta la puesta en producción

Más detalles

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto

PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto PORTAL DE INTEGRACIÓN DE BANCOS DE INFORMACIÓN DISPERSOS A TRAVÉS DE WEB SERVICES Autor: Ing. Walther Antonioli Ravetto Introducción: Sobre casi cualquier tema del quehacer humano que se aborde, existen

Más detalles

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN

LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN Tabla de Contenidos LINEAMIENTOS ESTÁNDARES APLICATIVOS DE VIRTUALIZACIÓN... 1 Tabla de Contenidos... 1 General... 2 Uso de los Lineamientos Estándares...

Más detalles

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la

La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la Servicios web Introducción Un servicio web es un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes

Más detalles

WINDOWS 2008 5: TERMINAL SERVER

WINDOWS 2008 5: TERMINAL SERVER WINDOWS 2008 5: TERMINAL SERVER 1.- INTRODUCCION: Terminal Server proporciona una interfaz de usuario gráfica de Windows a equipos remotos a través de conexiones en una red local o a través de Internet.

Más detalles

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA

Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Propuesta de Portal de la Red de Laboratorios Virtuales y Remotos de CEA Documento de trabajo elaborado para la Red Temática DocenWeb: Red Temática de Docencia en Control mediante Web (DPI2002-11505-E)

Más detalles

Utilidades de la base de datos

Utilidades de la base de datos Utilidades de la base de datos Desde esta opcion del menú de Access, podemos realizar las siguientes operaciones: Convertir Base de datos Compactar y reparar base de datos Administrador de tablas vinculadas

Más detalles

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo. GLOSARIO Actor: Un actor es un usuario del sistema. Esto incluye usuarios humanos y otros sistemas computacionales. Un actor usa un Caso de Uso para ejecutar una porción de trabajo de valor para el negocio.

Más detalles

Capitulo 5. Implementación del sistema MDM

Capitulo 5. Implementación del sistema MDM Capitulo 5. Implementación del sistema MDM Una vez que se concluyeron las actividades de análisis y diseño se comenzó la implementación del sistema MDM (Manejador de Documentos de MoProSoft). En este capitulo

Más detalles

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo.

CONSULTAS CON SQL. 3. Hacer clic sobre el botón Nuevo de la ventana de la base de datos. Aparecerá el siguiente cuadro de diálogo. CONSULTAS CON SQL 1. Qué es SQL? Debido a la diversidad de lenguajes y de bases de datos existentes, la manera de comunicar entre unos y otras sería realmente complicada a gestionar de no ser por la existencia

Más detalles

Capítulo IV. Implementación del Sistema

Capítulo IV. Implementación del Sistema La implementación del sistema consiste en la integración de la aplicación en una LAN, la instalación en varias computadoras personales de clientes del almacén, de administradores de almacén y de los almacenes

Más detalles

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO www.ubs-systems.com Teléfono: 91 3681185 UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO Unidesys Versión 2011 1 CONTENIDO 1 INTRODUCCIÓN 3 2 FUENTES DE DATOS 4 3 INSTALACIÓN DEL

Más detalles

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: Propósito del prototipo: Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades: 1º. Mostrar noticias y eventos propios del grupo de personas que administren la Web.

Más detalles

1 EL SISTEMA R/3 DE SAP AG

1 EL SISTEMA R/3 DE SAP AG 1 EL SISTEMA R/3 DE SAP AG SAP AG es una corporación en el ámbito mundial. Fundada en 1972 y con sede en Walldorf, Alemania, SAP es la cuarta compañía mundial en ventas de software en el mundo. La compañía

Más detalles

Internet Information Server

Internet Information Server Internet Information Server Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en

Más detalles

Tutorial: Primeros Pasos con Subversion

Tutorial: Primeros Pasos con Subversion Tutorial: Primeros Pasos con Subversion Introducción Subversion es un sistema de control de versiones open source. Corre en distintos sistemas operativos y su principal interfaz con el usuario es a través

Más detalles

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS 4 ARQUITECTURA DE DISTRIBUCIÓN DE DATOS Contenido: Arquitectura de Distribución de Datos 4.1. Transparencia 4.1.1 Transparencia de Localización 4.1.2 Transparencia de Fragmentación 4.1.3 Transparencia

Más detalles

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio).

1 GLOSARIO. Actor: Es un consumidor (usa) del servicio (persona, sistema o servicio). 1 GLOSARIO A continuación se definen, en orden alfabético, los conceptos básicos que se han abordado a lo largo del desarrollo de la metodología para la gestión de requisitos bajo la Arquitectura Orientada

Más detalles

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking

Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking 1 de 13 Seminario Electrónico de Soluciones Tecnológicas sobre Content Networking 3 Bienvenida. 4 Objetivos. 5 Soluciones comerciales

Más detalles

En los últimos años, se ha presentado una enorme demanda por servicios portátiles,

En los últimos años, se ha presentado una enorme demanda por servicios portátiles, Capítulo 1 Introducción En los últimos años, se ha presentado una enorme demanda por servicios portátiles, a los que se les ha llamado tecnologías móviles, este repentino crecimiento de tecnologías ha

Más detalles

UNIVERSIDAD DE SALAMANCA

UNIVERSIDAD DE SALAMANCA UNIVERSIDAD DE SALAMANCA FACULTAD DE CIENCIAS INGENIERÍA TÉCNICA EN INFORMÁTICA DE SISTEMAS Resumen del trabajo práctico realizado para la superación de la asignatura Proyecto Fin de Carrera. TÍTULO SISTEMA

Más detalles

Base de datos en Excel

Base de datos en Excel Base de datos en Excel Una base datos es un conjunto de información que ha sido organizado bajo un mismo contexto y se encuentra almacenada y lista para ser utilizada en cualquier momento. Las bases de

Más detalles

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos.

No se requiere que los discos sean del mismo tamaño ya que el objetivo es solamente adjuntar discos. RAIDS MODO LINEAL Es un tipo de raid que muestra lógicamente un disco pero se compone de 2 o más discos. Solamente llena el disco 0 y cuando este está lleno sigue con el disco 1 y así sucesivamente. Este

Más detalles

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado

Capítulo VI. Estudio de Caso de Aplicación del Integrador de Información Desarrollado Capítulo VI Estudio de Caso de Aplicación del Integrador de Información Desarrollado 6.1 Organización elegida La Organización elegida para el caso de aplicación, es la empresa CTM Tours del grupo Costamar,

Más detalles

SISTEMAS DE INFORMACIÓN II TEORÍA

SISTEMAS DE INFORMACIÓN II TEORÍA CONTENIDO: EL PROCESO DE DISEÑO DE SISTEMAS DISTRIBUIDOS MANEJANDO LOS DATOS EN LOS SISTEMAS DISTRIBUIDOS DISEÑANDO SISTEMAS PARA REDES DE ÁREA LOCAL DISEÑANDO SISTEMAS PARA ARQUITECTURAS CLIENTE/SERVIDOR

Más detalles

Procedimientos para agrupar y resumir datos

Procedimientos para agrupar y resumir datos Procedimientos para agrupar y resumir datos Contenido Introducción Presentación de los primeros n valores Uso de funciones de agregado 4 Fundamentos de GROUP BY 8 Generación de valores de agregado dentro

Más detalles

Redes de Computadores I

Redes de Computadores I Redes de Computadores I Proyecto Dropbox Guillermo Castro 201021015-4 Javier Garcés 201021002-2 4 de septiembre de 2013 3 PROTOCOLOS DB-LSP Y DB-LSP-DISC 1. Resumen La sincronización de archivos es hoy,

Más detalles

Simulador de Protocolos de Red a tráves de WEB

Simulador de Protocolos de Red a tráves de WEB Simulador de Protocolos de Red a tráves de WEB Propuesta de Estudio 20071608 Director Ing. Francisco Antonio Polanco Montelongo Resumen Introducción Actualmente, el desarrollo tecnológico a alcanzado niveles

Más detalles

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD

MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD MANUAL DE AYUDA TAREA PROGRAMADA COPIAS DE SEGURIDAD Fecha última revisión: Diciembre 2010 Tareas Programadas TAREAS PROGRAMADAS... 3 LAS TAREAS PROGRAMADAS EN GOTELGEST.NET... 4 A) DAR DE ALTA UN USUARIO...

Más detalles

MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez gretel@minrex.gov.cu Ministerio de Relaciones Exteriores Cuba.

MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez gretel@minrex.gov.cu Ministerio de Relaciones Exteriores Cuba. MENSAREX: SISTEMA DE MENSAJERÍA DEL MINREX Gretel García Gómez gretel@minrex.gov.cu Ministerio de Relaciones Exteriores Cuba Resumen El presente trabajo da solución a dos de los problemas informáticos

Más detalles

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor. Procesamiento del lado del servidor La Programación del lado del servidor es una tecnología que consiste en el procesamiento de una petición de un usuario mediante la interpretación de un script en el

Más detalles

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología

Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología Ciclo de vida y Metodologías para el desarrollo de SW Definición de la metodología La metodología para el desarrollo de software es un modo sistemático de realizar, gestionar y administrar un proyecto

Más detalles

Bechtle Solutions Servicios Profesionales

Bechtle Solutions Servicios Profesionales Soluciones Tecnología Bechtle Solutions Servicios Profesionales Fin del servicio de soporte técnico de Windows Server 2003 No hacer nada puede ser un riesgo BECHTLE Su especialista en informática Ahora

Más detalles

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios

CAPÍTULO 2 Sistemas De Base De Datos Multiusuarios CAPÍTULO 2 Sistemas De De Multiusuarios Un sistema multiusuario es un sistema informático que da servicio, manera concurrente, a diferentes usuarios mediante la utilización compartida sus recursos. Con

Más detalles

"Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios

Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios "Diseño, construcción e implementación de modelos matemáticos para el control automatizado de inventarios Miguel Alfonso Flores Sánchez 1, Fernando Sandoya Sanchez 2 Resumen En el presente artículo se

Más detalles

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl 1 Colección de Tesis Digitales Universidad de las Américas Puebla Morales Salcedo, Raúl En este último capitulo se hace un recuento de los logros alcanzados durante la elaboración de este proyecto de tesis,

Más detalles

App para realizar consultas al Sistema de Información Estadística de Castilla y León

App para realizar consultas al Sistema de Información Estadística de Castilla y León App para realizar consultas al Sistema de Información Estadística de Castilla y León Jesús M. Rodríguez Rodríguez rodrodje@jcyl.es Dirección General de Presupuestos y Estadística Consejería de Hacienda

Más detalles

Visión General de GXportal. Última actualización: 2009

Visión General de GXportal. Última actualización: 2009 Última actualización: 2009 Copyright Artech Consultores S. R. L. 1988-2009. Todos los derechos reservados. Este documento no puede ser reproducido en cualquier medio sin el consentimiento explícito de

Más detalles

Service Oriented Architecture: Con Biztalk?

Service Oriented Architecture: Con Biztalk? Service Oriented Architecture: Con Biztalk? Pablo Abbate Servicios Profesionales Danysoft SOA supone una nueva forma de pensar acerca de la arquitectura IT para las empresas. De hecho, es una asociación

Más detalles

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere.

Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. UNIVERSIDAD DE CARABOBO FACULTAD DE CIENCIA Y TECNOLOGÍA DIRECCION DE EXTENSION COORDINACION DE PASANTIAS Modificación y parametrización del modulo de Solicitudes (Request) en el ERP/CRM Compiere. Pasante:

Más detalles

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2 Manual de software Dynamic Cloud 10/2014 MS-Dynamic_Cloud v1.2 ÍNDICE GENERAL 1. INTRODUCCIÓN... 2 1.1 Configuración mínima del PC... 2 2. INSTALAR DYNAMIC CLOUD... 3 2.1 Ejecutar Dynamic Cloud por primera

Más detalles

CAPÍTULO 1 Instrumentación Virtual

CAPÍTULO 1 Instrumentación Virtual CAPÍTULO 1 Instrumentación Virtual 1.1 Qué es Instrumentación Virtual? En las últimas décadas se han incrementado de manera considerable las aplicaciones que corren a través de redes debido al surgimiento

Más detalles

PRESENTACIÓN TÉCNICA Y REQUISITOS DOCUMENTO EXTERNO

PRESENTACIÓN TÉCNICA Y REQUISITOS DOCUMENTO EXTERNO PRESENTACIÓN TÉCNICA Y REQUISITOS DOCUMENTO EXTERNO PRESENTACIÓN TÉCNICA Y REQUISITOS MANUAL Presentación Técnica y Requisitos www.kronotek.net 1 PRESENTACIÓN TÉCNICA Y REQUISITOS Tabla de contenido 1.

Más detalles

SISTEMAS DE INFORMACIÓN III TEORÍA

SISTEMAS DE INFORMACIÓN III TEORÍA CONTENIDO: Introducción a los Web services Las bases de los Web services La nueva generación de la Web Interactuando con los Web services La tecnología de Web services XML: Lo fundamental WSDL: Describiendo

Más detalles

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

AGREGAR COMPONENTES ADICIONALES DE WINDOWS INSTALACIÓN DE IIS EN WINDOWS XP El sistema está desarrollado para ejecutarse bajo la plataforma IIS de Windows XP. Por esta razón, incluimos la instalación de IIS (Servidor de Web) para la correcta ejecución

Más detalles

Descripción. Este Software cumple los siguientes hitos:

Descripción. Este Software cumple los siguientes hitos: WWWMONITORDBACOM Descripción Este Software cumple los siguientes hitos: a- Consola de Monitoreo b- Envío de Alertas (correo, SMS) c- Gestión de Eventos desatendidos (sea capaz ejecutar script de solución

Más detalles

IV. Implantación del sistema.

IV. Implantación del sistema. IV. Implantación del sistema. Para hablar sobre el proceso de desarrollo del sistema de Recuperación de Información Visual propuesto, empezaremos hablando del hardware utilizado, las herramientas de software

Más detalles

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013.

Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013. Empremática, Guía12 1 Facultad: Ingeniería Escuela: Computación Asignatura: Empremática Tema: CREACIÓN DE CONSULTAS E INFORMES EN UNA BASE DE DATOS CON MICROSOFT ACCESS 2013. Objetivos: Identificar las

Más detalles

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008

Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008 Oracle vs Oracle por Rodolfo Yglesias Setiembre 2008 Introducción Aunque la estrategia de adquisiciones que Oracle ha seguido en los últimos años siempre ha buscado complementar y fortalecer nuestra oferta

Más detalles

Activación de un Escritorio Remoto

Activación de un Escritorio Remoto Activación de un Escritorio Remoto La activación de un Escritorio Remoto se realiza en dos fases, en la primera se habilita a un Usuario de un ordenador para que pueda admitir una conexión remota, la segunda

Más detalles

Studium, Campus Virtual de la Universidad de Salamanca.

Studium, Campus Virtual de la Universidad de Salamanca. Studium, Campus Virtual de la Universidad de Salamanca. Contenidos 1 Qué es Studium 2 Instalación de Studium en USAL 3 Atención a los usuarios 4 Instalación Moodle. MoodleWindowsInstaller 5 Moodle portable

Más detalles

Componentes de Integración entre Plataformas Información Detallada

Componentes de Integración entre Plataformas Información Detallada Componentes de Integración entre Plataformas Información Detallada Active Directory Integration Integración con el Directorio Activo Active Directory es el servicio de directorio para Windows 2000 Server.

Más detalles

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA

COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA COPIAS DE SEGURIDAD AUTOMÁTICAS DE DIRECCIONES CALLEÇPAÑA Autor: Carlos Javier Martín González. Licenciado en Física Teórica por la Universidad Autónoma de Madrid. Analista programador y funcional. Desarrollador

Más detalles

Infraestructura Tecnológica. Sesión 12: Niveles de confiabilidad

Infraestructura Tecnológica. Sesión 12: Niveles de confiabilidad Infraestructura Tecnológica Sesión 12: Niveles de confiabilidad Contextualización La confianza es un factor determinante y muy importante, con ésta se pueden dar o rechazar peticiones de negocio, amistad

Más detalles

Consultas con combinaciones

Consultas con combinaciones UNIDAD 1.- PARTE 2 MANIPULACIÓN AVANZADA DE DATOS CON SQL. BASES DE DATOS PARA APLICACIONES Xochitl Clemente Parra Armando Méndez Morales Consultas con combinaciones Usando combinaciones (joins), se pueden

Más detalles

Instalación de OPUS PLANET en red

Instalación de OPUS PLANET en red TITULO: en red INFORMACIÓN GENERAL: Versiones: Resumen: Referencias a otras notas técnicas: Palabras clave: OPUS PLANET Implementar OPUS PLANET en red, realizado cambios a la configuración de SQL server

Más detalles

Guía de uso del Cloud Datacenter de acens

Guía de uso del Cloud Datacenter de acens guíasdeuso Guía de uso del Cloud Datacenter de Calle San Rafael, 14 28108 Alcobendas (Madrid) 902 90 10 20 www..com Introducción Un Data Center o centro de datos físico es un espacio utilizado para alojar

Más detalles

El Éxito del ICFES frente al reto de la Flexibilidad. Ingrid Picón Directora de Tecnología e Información ICFES

El Éxito del ICFES frente al reto de la Flexibilidad. Ingrid Picón Directora de Tecnología e Información ICFES El Éxito del ICFES frente al reto de la Flexibilidad Ingrid Picón Directora de Tecnología e Información ICFES Acerca del ICFES Entidad especializada en ofrecer servicios de evaluación de la educación en

Más detalles

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS

TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 1 1 BASES DE DATOS DISTRIBUIDAS TEMA 3 PROFESOR: M.C. ALEJANDRO GUTIÉRREZ DÍAZ 2 3. PROCESAMIENTO DE CONSULTAS DISTRIBUIDAS 3.1 Metodología del procesamiento de consultas distribuidas 3.2 Estrategias de

Más detalles

CAPITULO I El Problema

CAPITULO I El Problema CAPITULO I El Problema 1. CAPITULO I EL PROBLEMA. 1.1. PLANTEAMIENTO DEL PROBLEMA. Desde su nacimiento la Facultad de Administración, Finanzas e Informática dispone del departamento de la biblioteca, con

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

CONCLUISIONES Y RECOMENDACIONES

CONCLUISIONES Y RECOMENDACIONES CONCLUISIONES Y RECOMENDACIONES CONTENIDO 7.1 Verificación de Hipótesis 7.2 Conclusiones 7.3 Recomendaciones Mónica Cecilia Gallegos Varela - 145 - VERIFICACIÓN DE HIPÓTESIS La hipótesis planteada al inicio

Más detalles

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas

Capítulo I. Definición del problema y objetivos de la tesis. En la actualidad Internet se ha convertido en una herramienta necesaria para todas Capítulo I Definición del problema y objetivos de la tesis 1.1 Introducción En la actualidad Internet se ha convertido en una herramienta necesaria para todas las personas ya que nos permite realizar diferentes

Más detalles

ArquitecturaTécnica de TRAVEL OPEN APPS. Breve definición técnica de la plataforma Travel Open Apps

ArquitecturaTécnica de TRAVEL OPEN APPS. Breve definición técnica de la plataforma Travel Open Apps ArquitecturaTécnica de TRAVEL OPEN APPS Breve definición técnica de la plataforma Travel Open Apps Contenido 1. CONTENIDO GLOBAL DEL PROYECTO... 1 a. CRS + CHANNEL MANAGER... 1 b. MANAGEMENT SYSTEM...

Más detalles

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación II MODELOS y HERRAMIENTAS UML 1 1 Modelado de casos de uso (I) Un caso de uso es una técnica de modelado usada para describir lo que debería hacer

Más detalles

En este capítulo se describe la forma de cómo se implementó el sistema de video

En este capítulo se describe la forma de cómo se implementó el sistema de video En este capítulo se describe la forma de cómo se implementó el sistema de video por medio de una cámara web y un servomecanismo que permitiera al usuario ver un experimento en el mismo instante en que

Más detalles

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN

INTRANET DE UNA EMPRESA RESUMEN DEL PROYECTO. PALABRAS CLAVE: Aplicación cliente-servidor, Intranet, Área reservada, Red INTRODUCCIÓN INTRANET DE UNA EMPRESA Autor: Burgos González, Sergio. Director: Zaforas de Cabo, Juan. Entidad colaboradora: Colegio de Ingenieros del ICAI. RESUMEN DEL PROYECTO El proyecto consiste en el desarrollo

Más detalles

Introducción a la Firma Electrónica en MIDAS

Introducción a la Firma Electrónica en MIDAS Introducción a la Firma Electrónica en MIDAS Firma Digital Introducción. El Módulo para la Integración de Documentos y Acceso a los Sistemas(MIDAS) emplea la firma digital como método de aseguramiento

Más detalles

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas: SISTEMAS DISTRIBUIDOS DE REDES 1. SISTEMAS DISTRIBUIDOS Introducción y generalidades La computación desde sus inicios ha sufrido muchos cambios, desde los grandes equipos que permitían realizar tareas

Más detalles

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá

Gestor de Contenidos CMS. Prof: Ing. Henrry Servitá Gestor de Contenidos CMS Que es un CMS? CMS son las siglas de Content Management System, que se traduce directamente al español como Sistema Gestor de Contenidos. Como su propio nombre indica, es un sistema

Más detalles

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o

C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o C a p í t u l o 3 : T r a b a j o r e l a c i o n a d o Capítulo 3 Trabajo relacionado Este capítulo describe una serie de proyectos enfocados a la generación automática de servidores OAI-PMH. Se describen

Más detalles

Bases de datos en Excel

Bases de datos en Excel Universidad Complutense de Madrid CURSOS DE FORMACIÓN EN INFORMÁTICA Bases de datos en Excel Hojas de cálculo Tema 5 Bases de datos en Excel Hasta ahora hemos usado Excel básicamente para realizar cálculos

Más detalles

Configuracion Escritorio Remoto Windows 2003

Configuracion Escritorio Remoto Windows 2003 Configuracion Escritorio Remoto Windows 2003 Instalar y configurar servicio de Terminal Server en Windows 2003 Fecha Lunes, 25 diciembre a las 17:04:14 Tema Windows (Sistema Operativo) Os explicamos cómo

Más detalles

(Soluciones ERPContable) Versión 3.0.n. Manual de instalación

(Soluciones ERPContable) Versión 3.0.n. Manual de instalación Soluciones ERPContable Versión 3.0.n Manual de instalación (Soluciones ERPContable) Servidor Mono-puesto 1 El Siguiente Instructivo tiene como propósito guiarle en los procesos de instalación de la aplicación

Más detalles

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual Introducción Algunas de las personas que trabajan con SGBD relacionales parecen preguntarse porqué deberían preocuparse del diseño de las bases de datos que utilizan. Después de todo, la mayoría de los

Más detalles

Capitulo VI. Conclusiones.

Capitulo VI. Conclusiones. Capitulo VI. Conclusiones. VI.I. Conclusiones. Finalmente como conclusiones tenemos que resaltar el uso de varias tecnologías aparte de Java, como lo son el uso de la librería O reilly para pasar archivos

Más detalles

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos

Infraestructura Tecnológica. Sesión 2: Mejoras adicionales al servidor de archivos Infraestructura Tecnológica Sesión 2: Mejoras adicionales al servidor de archivos Contextualización Los servidores como cualquier equipo de cómputo pueden contar con varias mejoras con las que se pueden

Más detalles

Redes de área local: Aplicaciones y servicios WINDOWS

Redes de área local: Aplicaciones y servicios WINDOWS Redes de área local: Aplicaciones y servicios WINDOWS 5. Servidor DHCP 1 Índice Definición de Servidor DHCP... 3 Instalación del Servidor DHCP... 5 Configuración del Servidor DHCP... 8 2 Definición de

Más detalles

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS

H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS H E R R A M I E N T A S D E A N Á L I S I S D E D A T O S HERRAMIENTAS DE ANÁLISIS DE DATOS Una situación que se nos plantea algunas veces es la de resolver un problema hacia atrás, esto es, encontrar

Más detalles

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA

MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA MANUAL DE USUARIO SISTEMA DE ALMACEN DIF SONORA DICIEMBRE 2007. El Sistema de Almacén fue desarrollado con la finalidad de facilitar a los usuarios el proceso de entradas y salidas del almacén mediante

Más detalles

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA

SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA SERVIDOR WEB PARA ACCESO EN TIEMPO REAL A INFORMACIÓN METEOROLÓGICA DISTRIBUIDA E. SÁEZ, M. ORTIZ, F. QUILES, C. MORENO, L. GÓMEZ Área de Arquitectura y Tecnología de Computadores. Departamento de Arquitectura

Más detalles

Título: Implementación de un servicio de acceso a Internet por correo electrónico. Navegación total.

Título: Implementación de un servicio de acceso a Internet por correo electrónico. Navegación total. INFO 2002 Título: Implementación de un servicio de acceso a Internet por correo electrónico. Navegación total. Autor: Ing. Alfredo Batista Rodríguez. Ing. Emilio Joel Macias. Correo electrónico: alfredo@biomundi.inf.cu

Más detalles

1. DML. Las subconsultas

1. DML. Las subconsultas 1.1 Introducción 1. DML. Las subconsultas Una subconsulta es una consulta que aparece dentro de otra consulta o subconsulta en la lista de selección, en la cláusula WHERE o HAVING, originalmente no se

Más detalles

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

Redes de área local: Aplicaciones y servicios WINDOWS

Redes de área local: Aplicaciones y servicios WINDOWS Redes de área local: Aplicaciones y servicios WINDOWS 4. Servidor DNS 1 Índice Definición de Servidor DNS... 3 Instalación del Servidor DNS... 5 Configuración del Servidor DNS... 8 2 Definición de Servidor

Más detalles

SBConta.NET Manual de instalación. SBSS Consulting, S.A. 08010 Barcelona Telf. 93.268-0356, fax 93-268-0070 E-Mail: sbss@sbss.es, web www.sbss.

SBConta.NET Manual de instalación. SBSS Consulting, S.A. 08010 Barcelona Telf. 93.268-0356, fax 93-268-0070 E-Mail: sbss@sbss.es, web www.sbss. SBConta.NET Manual de instalación SBSS Consulting, S.A. 08010 Barcelona Telf. 93.268-0356, fax 93-268-0070 E-Mail: sbss@sbss.es, web www.sbss.es SBConta.NET C o n t e n i d o i Contenido 1. Introducción.

Más detalles

Historia de revisiones

Historia de revisiones Herbert Game Documentación Técnica Versión 1.4 Historia de revisiones Fecha Versión Descripción Autor 6/11/2011 1.0 Primer versión de la Documentación Técnica Hernán Albano 06/11/2011 1.1 Revisión del

Más detalles

Un primer acercamiento a la CMDB.

Un primer acercamiento a la CMDB. Un Versión primer 1.2 acercamiento a la CMDB. 20/07/2005 Un primer acercamiento a la CMDB. Versión 1.1 1.2 18/02/05 20/02/05 Fecha Jose Autores Carlos Manuel García Viejo García Lobato http://ars.viejolobato.com

Más detalles

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS

REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS REDES DE ÁREA LOCAL. APLICACIONES Y SERVICIOS EN WINDOWS Servicio DNS - 1 - Servicio DNS...- 3 - Definición... - 3 - Instalación... - 5 - Configuración del Servidor DNS...- 10 - - 2 - Servicio DNS Definición

Más detalles

Copyright 2011 - bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler

Copyright 2011 - bizagi. Gestión de Cambios Documento de Construcción Bizagi Process Modeler Copyright 2011 - bizagi Gestión de Cambios Bizagi Process Modeler Tabla de Contenido Gestión de Cambios... 4 Descripción... 4 Principales factores en la Construcción del Proceso... 5 Modelo de Datos...

Más detalles

Solución: Descargar e instalarse el componente desde la página Web de Microsoft:

Solución: Descargar e instalarse el componente desde la página Web de Microsoft: Introducción Con este manual se pretende facilitar la instalación de los nuevos Programas de Gestión. En él se describe paso a paso lo que tiene hacer con una breve descripción y las imágenes de las pantallas

Más detalles

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014

RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 RESUMEN INFORMATIVO PROGRAMACIÓN DIDÁCTICA CURSO 2013/2014 FAMILIA PROFESIONAL: INFORMATICA Y COMUNICACIONES MATERIA: 28. DESARROLLO WEB EN ENTORNO SERVIDOR CURSO: 2º DE CFGS DESARROLLO DE APLICACIONES

Más detalles

ENCUENTA - CONTABILIDAD Net. Definiciones generales

ENCUENTA - CONTABILIDAD Net. Definiciones generales ENCUENTA - CONTABILIDAD Net Definiciones generales 2013 ENCUENTA - CONTABILIDAD Net Definiciones generales Contenido 1 GENERALIDADES... 3 2 DISTRIBUCIÓN GENERAL DE LOS ELEMENTOS DEL SISTEMA... 3 3 REQUERIMIENTOS...

Más detalles

e-mailing Solution La forma más efectiva de llegar a sus clientes.

e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution La forma más efectiva de llegar a sus clientes. e-mailing Solution Es muy grato para nosotros presentarles e-mailing Solution, nuestra solución de e-mail Marketing para su empresa. E-Mailing

Más detalles

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA

INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA INSTITUTO TECNOLÓGICO DE COLIMA LIC. EN INFORMÁTICA TERMINAL SERVER TUTOR: JORGE CASTELLANOS MORFIN 19/02/2012 VILLA DE ALVARES, COLIMA Indice Introducción... 3 Objetivo... 3 Lista de Materiales... 3 Procedimiento...

Más detalles

GedicoPDA: software de preventa

GedicoPDA: software de preventa GedicoPDA: software de preventa GedicoPDA es un sistema integrado para la toma de pedidos de preventa y gestión de cobros diseñado para trabajar con ruteros de clientes. La aplicación PDA está perfectamente

Más detalles

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora

Plataforma e-ducativa Aragonesa. Manual de Administración. Bitácora Plataforma e-ducativa Aragonesa Manual de Administración Bitácora ÍNDICE Acceso a la administración de la Bitácora...3 Interfaz Gráfica...3 Publicaciones...4 Cómo Agregar una Publicación...4 Cómo Modificar

Más detalles