161 |
Um ambiente para o desenvolvimento de aplicações de realidade virtual baseadas em aglomerados gráficos. / An environment for the development of virtual reality applications based on graphic clusters.Guimarães, Marcelo de Paiva 15 December 2004 (has links)
A busca por ambientes de alto desempenho e com baixo custo vem impulsionando as pesquisas relacionadas com aglomerados de computadores. Aliado a este fato está o aumento da necessidade e interesse pelas aplicações de Realidade Virtual. Isso motiva a pesquisa e o desenvolvimento de aglomerados de computadores, bibliotecas de desenvolvimento e de estratégias de desenvolvimento de aplicações de Realidade Virtual. Este trabalho apresenta um ambiente para o desenvolvimento de aplicações de Realidade Virtual baseadas em aglomerados gráficos, que são aglomerados de computadores específicos para a Realidade Virtual. O ambiente desenvolvido é voltado principalmente para a construção de aplicações de multiprojeção, como as executadas em CAVERNAs Digitais. Para testar o ambiente criado, foram desenvolvidas diversas aplicações. Além disso, são mostradas as pesquisas que estão sendo realizadas na área; uma revisão dos problemas relacionados ao uso de aglomerados gráficos; a Glass, que é a biblioteca desenvolvida neste projeto; e estratégias para o desenvolvimento das aplicações. / The search for high performance and low cost environments has stimulated the field of computer clusters. Allied to this fact is the increasing interest and the need for Virtual Reality applications. Together, they motivate the research and the development of computer clusters, libraries and of strategies for the development of Virtual Reality applications. This thesis presents an environment for the development of Virtual Reality applications, based on graphic clusters, which are computer clusters tailored for Virtual Reality. This environment was targeted at multi-projection applications, such as those executed in CAVEs (CAVE Automatic Virtual Environment). Several multi-projection applications were developed to test it. Moreover, this thesis presents an overview of the current state of the research in the area; a study of the problems related with the use of graphic clusters; Glass, a software library developed in this project; and strategies for the development of those applications.
|
162 |
Abordagem semântica aplicada ao gerenciamento de dados em redes de sensores sem fio. / Semantic approach to the management of data from the wireless sensor network.Paredes Aguilar, Jenny Crescencia 07 July 2008 (has links)
Nos últimos anos, o volume de dados e de informações disponíveis pelas RSSF cresceu consideravelmente por ser uma tecnologia que permite o desenvolvimento de aplicações em diversos tipos de ambientes (pervasivos, ubíquos, ambientes controlados e de difícil acesso), fazendo com que a preocupação em gerenciar esse conteúdo se tornasse maior. Dentre as propostas apresentadas, um grande número utiliza ontologias como forma de organizar e categorizar dados; existem duas questões chaves na gerência de dados nas redes de sensores sem fio: o armazenamento de dados e o processamento da consulta. O presente trabalho propõe uma abordagem semântica para o gerenciamento dos dados dinâmicos e estáticos da rede, oferecendo um serviço de metadados sobre as RSSF e suas aplicações; esta técnica baseia-se na construção de ontologias que permitem escalabilidade, incremento de eficiência das atividades do ambiente e reusabilidade. Verificou-se mediante testes realizados baseados em consultas sobre a ontologia que o modelo proposto é apropriado, e que a busca baseada em semântica resulta na obtenção de dados das RSSF de forma mais adequada, quanto comparada com as abordagens tradicionais. / In the recent years, the volume of data available from wireless sensor networks (WSN) has increased considerably. WSN is a technology that allows the development of applications in various types of environments (pervasives, Ubiquitous, controlled and with difficult access environment), doing that concern for content managing is greater. Among the proposals, many use ontologies as a way to organize and categorize data; there are two key issues in data management in WSN: data storage and query processing. The present work proposes a semantic approach to the management of dynamic and static data from the network, providing a metadata service on WSN and its applications; this technique is based on the construction of ontologies that allows scalability, enhancement of efficiency in the activities of the environment and reusability. It was verified by means of tests based on querys on the ontology that the proposed model is appropriate, and that the search based on semantics provided retrieval of data from WSN more adequately, as compared with traditional approaches.
|
163 |
Segurança em sistemas embarcados críticos - utilização de criptografia para comunicação segura / Security in critical embedded systems - using cryptography for securePigatto, Daniel Fernando 19 June 2012 (has links)
Este trabalho contempla o estudo de algoritmos criptográficos para assegurar a comunicação entre sistemas embarcados críticos tendo em vista o grande crescimento na utilização e disseminação desse tipo de sistema, bem como a alta necessidade em se assegurar as informações que são enviadas e recebidas. Um dos desafios a serem contemplados é o estudo e a avaliação do impacto no desempenho desses sistemas, levando em consideração limitações de recursos inerentes a esta plataforma e a criticidade da comunicação em sistemas de tempo real. Os experimentos realizados são de cunho prático por meio de um protótipo implementado em kits Gumstix Overo EVM. Os resultados avaliam os principais algoritmos de criptografia, provendo informações que podem auxiliar na escolha de uma solução criptográfica própria para ambientes embarcados / This research includes the study of cryptographic algorithms to ensure communication among critical embedded systems, considering the large growth of application and dissemination of this type of system, as well as the high necessity to ensure the security of information that is exchanged. One of the challenges to be addressed is the study and evaluation of the performance impact in these systems, considering resource constraints inherent to the platform and the criticality of the communication in real-time systems. The experiments are of practical lead through a prototype implemented in Gumstix Overo EVM kits. The results evaluate the main encryption algorithms, providing information that may help in choosing a cryptographic solution suitable for embedded environments
|
164 |
PAWEB - Uma plataforma para desenvolvimento de aplicativos web utilizando o modelo de atores / PAWEB - A platform for developing web applications using the actor model.Oliveira, Bruno Takahashi Carvalhas de 02 October 2012 (has links)
Existem várias linguagens e plataformas que permitem a programação baseada no modelo de atores, uma solução elegante para a programação concorrente proposta há algumas décadas. Segundo esse modelo, implementa-se o programa na forma de uma série de agentes que são executados em paralelo e se comunicam entre si somente por meio da troca de mensagens, sem a necessidade de memória compartilhada ou estruturas tradicionais de sincronização como semáforos e mutexes. Uma das áreas nas quais esse modelo seria particularmente adequado é a programação de aplicações web, isto é, aplicações cujas lógicas de negócios e de dados residem num servidor e que são acessadas pelo usuário por intermédio de um navegador. Porém, existem muitos obstáculos ao desenvolvimento de aplicações desse tipo, entre eles a falta de linguagens e ferramentas que permitam integrar tanto o servidor quanto o cliente (navegador) no modelo de atores, as dificuldades de conversões de dados que se fazem necessárias quando o servidor e o cliente são desenvolvidos em linguagens diferentes, e a necessidade de contornar as dificuldades inerentes aos detalhes do protocolo de comunicação (HTTP). O PAWEB é uma proposta de uma plataforma para o desenvolvimento e execução de aplicações web que fornece a infraestrutura necessária para que tanto o lado cliente quanto o lado servidor do aplicativo hospedado possam ser escritos numa mesma linguagem (Python), e possam criar e gerenciar atores que trocam mensagens entre si,tanto local quanto remotamente, de maneira transparente e sem a necessidade de implementar conversões de dados ou outros detalhes de baixo nível. / There are several programming languages and platforms that allow the development of systems based on the actor model, an elegant solution for concurrent programming proposed a few decades ago. According to this model, the program is implemented in the form of several agents that run concurrently and only communicate amongst themselves through the exchange of messages, without the need for shared memory or traditional synchronization structures such as semaphores and mutexes. One of the areas where this model would be particularly appropriate would be the development of web applications, that is, applications whose business and database logic reside on the server and are accessed by the user by means of a web browser. However, there are several obstacles to the development of this type of application, amongst them the lack of languages and tools that allow for the integration of both the server and the client (browser) into the actor model, data conversion difficulties arising from using different programming languages on the server and the client, and the need to circumvent the inherent difficulties posed by the details of the communications protocol (HTTP). PAWEB is a proposal for an application development and execution platform that supplies the infrastructure needed so that both the server and client sides of the hosted application can be written in the same language (Python) and so that they may create and manage actors that exchange messages with one another, both locally and remotely, in a transparent manner and without the need to implement data conversions or other low-level mechanisms.
|
165 |
Integração de bancos de dados heterogêneos utilizando grades computacionais. / Heterogeneous databases integration using grid computing.Kakugawa, Fernando Ryoji 18 November 2010 (has links)
Bancos de dados normalmente são projetados para atender a um domínio específico de uma aplicação, tornando o acesso aos dados limitado e uma tarefa árdua em relação à integração de bancos e compartilhamento de dados. Existem várias pesquisas no intuito de integrar dados, como a criação de softwares específicos para uma determinada aplicação e até soluções mais radicais como refazer todos os bancos de dados envolvidos, demonstrando que ainda existem questões em aberto e que a área está longe de atingir soluções definitivas. Este trabalho apresenta conceitos e estratégias para a integração de bancos de dados heterogêneos e a implementa na forma do DIGE, uma ferramenta para desenvolver sistemas de banco de dados integrando diferentes bancos de dados relacionais heterogêneos utilizando grades computacionais. O sistema criado permite o compartilhamento de acesso deixando os dados armazenados em seu local de origem, desta forma, usuários do sistema acessam os dados em outras instituições com a impressão de que os dados estão armazenados localmente. O programador da aplicação final pode acessar e manipular os dados de forma convencional utilizando a linguagem SQL sem se preocupar com a localização e o esquema de cada banco e o administrador do sistema pode adicionar ou remover bancos de forma facilitada sem a necessidade de solicitar alterações na aplicação final. / Databases are usually designed to support a specific application domain, thus making data-access and data-sharing a hard and arduous task when database integration is required. Therefore, research projects have been developed in order to integrate several and heterogeneous databases systems, such as specific-domain application tools or even more extreme solutions, as a complete database redefinition and redesign. Considering these open questions and with no definite answers, this work presents some concepts, strategies and an implementation for heterogeneous databases integration. In this implementation, the DIGE tool was developed to provide access to heterogeneous and geographically distributed databases, using Grid computing, which store locally its data, appearing to the user application, the data are stored locally. By this way, programmers can manipulate data using conventional SQL language with no concern about database location or its schema. Systems Administrators may also add or remove databases on the whole system without need to change the final user application.
|
166 |
Protocolo para a construção de overlays para distribuição de streamings em redes P2P. / Overlays building protocol to video distribution in P2P networks.Urschei, Flávio 23 October 2009 (has links)
O desenvolvimento da Internet motivou o surgimento de inúmeras aplicações que utilizam sua infra-estrutura. Dentre elas destacam-se as aplicações P2P para a transmissão de streamings de voz/vídeo. Essas aplicações exigem que determinados requisitos como largura de banda, latência, variação de atraso, escalabilidade, disponibilidade, entre outros, sejam satisfeitos para que possa haver qualidade no serviço provido (QoS Quality of Service). Satisfazer a todos esses requisitos torna-se um grande desafio quando é utilizada a infra-estrutura da Internet para transmissão. Deste modo, impulsionado pelo grande atrativo que existe no paradigma P2P, assim como todos os desafios por trás dessa abordagem, o objetivo principal deste trabalho é a proposta de um protocolo para a construção de overlays para a distribuição de streamings de vídeo em redes P2P. O protocolo proposto visa garantir que o overlay a ser empregado na distribuição de streamings seja construído, levando-se em consideração as características da rede física (nesse trabalho, a Internet) sob o mesmo. A idéia fundamental deste protocolo é organizar os pares de forma dinâmica, agrupando aqueles que estão mais próximos em termos de latência. O segundo objetivo a ser alcançado neste trabalho é a validação do protocolo por meio de experimentos (prova de conceito) realizados com o PlanetLab, de modo a validar os mecanismos propostos. / The Internet development has leveraged several kinds of application that depends on its infrastructure, such as P2P applications to voice/video streaming transmission. These applications have a plenty of requirements, such as bandwidth, latency, jitter, scalability, availability, and so on, that should be fulfilled in order to achieve the required level of Quality of Service (QoS). When it is used the Internet infrastructure to transmission, it is a great challenge fulfill all these requirements. In this manner, the main goal of this work is to propose a protocol to build an overlay to distribute video streaming in P2P networks, taking into account the network characteristics. The fundamental idea of this protocol is dynamically organize the peers, gathering these peers considering the latency between them. Another goal of this work is the protocol assessment by means of experiments (proof of concept) performed in PlanetLab, in order to verify the proposed mechanisms.
|
167 |
Um modelo de objetos e arquitetura para aplicações distribuídas de realidade virtual. / An object model and architecture for distributed virtual reality applications.Ferraz, Rodrigo Barroca Dias 15 January 2018 (has links)
Técnicas e ferramentas (middlewares para desenvolvimento de aplicações distribuídas são utilizadas no caso dos recursos de um único computador não serem suficientes, ou para atender requisitos de qualidade de serviço, ou mesmo para abranger uma maior quantidade de usuários. A Realidade Virtual é uma das áreas da computação a sua complexidade, se beneficia de tais técnicas e middlewares, seja para proporcionar ambientes mais imersivos e/ou possibilitar a interação de múltiplos usuários. A Realidade Virtual engloba uma ampla diversidade de aplicações, incluindo infraestruturas de alta imersão, jogos multi-jogadores, e simuladores de voo, e cada classe de aplicação têm demandas específicas de distribuição, como escalabilidade, ou requisitos de tempo-real, entre outros. Devido à complexidade e a essa diversidade de aplicações de realidade virtual, as alternativas de middlewares disponíveis atendem requisitos específicos de uma única classe, ou, as genéricas, não fornecem modelos de objetos, comunicação ou execução favoráveis às aplicações de realidade virtual. Esse trabalho tem o objetivo de propor um novo modelo de objetos e arquitetura de um middleware para desenvolvimento de aplicações distribuídas de realidade virtual suficientemente flexível para atender diversas classes de aplicações. O modelo de objetos proposto une os modelos publicador/assinante e requisição/ resposta em uma única entidade similar aos objetos do paradigma de programação orientada a objetos, que, além de empregar conceitos intuitivos para desenvolvedores, possibilita o desacoplamento lógico entre os processos, simplificando o projeto e a implementação das aplicações distribuídas. O principal diferencial desta abordagem é a possibilidade de distribuir a implementação de cada membro dos objetos em diferentes processos. / Techniques and middlewares for distributed application development are used in cases the resources available in a single computer are not enough for the demanded complexity, to meet the required quality of services, or even to cover a greater number of users. The Virtual Reality is one of the computer fields that, because of its complexity, benefits from such techniques and tools, either to provide more immersive virtual environments, or to enable multi-user interaction. The Virtual Reality covers a wide range of applications, including high immersion infrastructures, multiplayer games, and full mission flight simulators. Each application class has specifics distribution demands, such as high scalability, or real-time requirements. Because of complexity and the diversity of virtual reality applications, the distribution solutions available meet the specific requirements of a single class, or the generic ones do not provide object, communication, or execution favorable for virtual reality applications. This work proposes a new model of objects and architecture of a middleware for distributed virtual reality applications that is flexible enough to suit several classes of applications. The proposed object model joins the publisher/subscriber and request/response models to a single logic entity similar to the objects of the object-oriented programming paradigm. Besides being an intuitive concept for developers, this entity enable logical decoupling between processes, simplifying the design and implementation of distributed applications. The main feature of this approach is the possibility to distribute the implementation of each member of the objects in different processes.
|
168 |
Sec-SD: um modelo distribuído para descoberta segura de serviços em redes locaisLemos, Janaína Conceição Sutil 30 September 2011 (has links)
Submitted by Silvana Teresinha Dornelles Studzinski (sstudzinski) on 2015-07-06T19:27:00Z
No. of bitstreams: 1
JanainaConceicaoSutilLemos.pdf: 790058 bytes, checksum: 85e90c997855bb472d17380ce64d7c95 (MD5) / Made available in DSpace on 2015-07-06T19:27:00Z (GMT). No. of bitstreams: 1
JanainaConceicaoSutilLemos.pdf: 790058 bytes, checksum: 85e90c997855bb472d17380ce64d7c95 (MD5)
Previous issue date: 2011-09-30 / Nenhuma / Com a crescente popularização dos dispositivos móveis nos últimos anos, há uma necessidade cada vez maior de conectividade e de serviços nas redes de computadores. Nesse contexto, as tecnologias para descoberta de serviços simplificam a interação entre usuários e dispositivos, facilitando as tarefas administrativas, principalmente quando existe a necessidade de adicionar novos equipamentos. Devido a grande diversidade de ambientes onde essas tecnologias podem ser utilizadas, surge também a necessidade de tratar as questões relacionadas a segurança e ao mesmo tempo, preservar a facilidade de uso do sistema. Neste trabalho é apresentado um sistema para descoberta segura de serviços em redes locais com arquitetura descentralizada, o Sec-SD (Secure Service Discovery Protocol). Através do uso de mecanismos para criptografia e autenticação, o Sec-SD visa estabelecer uma relação de confiança entre as partes envolvidas na descoberta de serviços antes da divulgação de informações relacionadas a estas, prevenindo assim os ataques causados pelo anúncio de falsos serviços, bem como o acesso a serviços restritos por usuários ilegítimos, objetivando ser ao mesmo tempo seguro e de fácil uso para humanos. O presente sistema permite que uma entidade atue simultaneamente como cliente e provedor de serviços, sem a necessidade de utilizar diretórios para anunciar serviços e/ou realizar buscas pelos mesmos, fazendo ainda com que a existência de provedores redundantes para um mesmo serviço seja tratada de forma a ser transparente para os usuários. Para validação, é avaliado o tráfego gerado pelas mensagens do Sec-SD e além disso, foi desenvolvido um protótipo, que é utilizado para integrar funcionalidades para descoberta segura de serviços no LP2P (Local Peer-to-Peer Protocol), que é uma plataforma para compartilhamento de arquivos P2P para redes locais desenvolvida no Grupo de Redes de Computadores e Sistemas Distribuídos do PIPCA – UNISINOS. / Given the growing popularity of mobile devices in recent years, there is an increasing need for connectivity and services in computer networks. In this context, service discovery technologies aim to simplify the interaction between users and devices, facilitating administrative tasks, especially when there is a need to add new equipments. Due to the diversity of environments where these technologies can be used, there also the need to address security issues and, at the same time, to preserv the usability of the system. This work presents a system for secure service discovery on local networks with decentralized architecture, called Sec-SD – Secure Service Discovery Protocol. Sec-SD makes use of cryptography and authentication mechanisms in order to allow only valid users to obtain information about the available services. In this way, is possible to prevent several attacks caused by the advertisement of false services and by service access performed by illegitimate users, aiming to be at the same time secure and easy-of-use for humans. This model allows the same entity to act simultaneously as a client and a service provider, without the use of any directory to register services and/or search for available services. The existence of redundant service providers is also addressed by the model in order to be transparent for human users. For validation, the traffic generated by the Sec-SD messages is evaluated and a prototype is used to provide secure service discovery facilities into a P2P file sharing focused in Local Area Networks called LP2P (Local Peer-to-Peer Protocol), that was developed at PIPCA - UNISINOS.
|
169 |
SLAD@CLOUD: um sistema de acordo de nível de serviço para computação em nuvemSilva, Josimar Viana 07 August 2013 (has links)
Submitted by Maicon Juliano Schmidt (maicons) on 2015-07-08T17:52:56Z
No. of bitstreams: 1
Josimar Viana Silva.pdf: 3468744 bytes, checksum: ef783c7080497f21342c0d482ae53427 (MD5) / Made available in DSpace on 2015-07-08T17:52:56Z (GMT). No. of bitstreams: 1
Josimar Viana Silva.pdf: 3468744 bytes, checksum: ef783c7080497f21342c0d482ae53427 (MD5)
Previous issue date: 2013-08-07 / Nenhuma / Computação em nuvem tem se tornado mais popular. Porém, apesar das facilidades e vantagens oferecidas pela computação em nuvem, ainda há obstáculos à sua adoção por parte dos usuários e limitações na prestação dos serviços por parte dos provedores. Para que as nuvens computacionais possam ser utilizadas e ser cruciais para as operações de negócios dos usuários é essencial que estes recebam garantias dos fornecedores na entrega dos serviços. Normalmente, estas garantias são fornecidos através de SLAs (Service Level Agreements ou Acordos de Níveis de Serviço) entre os provedores e consumidores. Os atuais acordos de nível de serviço (SLAs) oferecidos por provedores de computação em nuvem são simples, estáticos e prédefinidos pelos provedores. Estes SLAs não apresentam dinamicidade na negociação e portanto não acompanham o comportamento elástico da nuvem. Serviços em nuvem estão sujeitos à flutuações de carga e violações de SLA são mais propensos a acontecer durante estas flutuações. A natureza destas flutuações são imprevisíveis e, portanto, um SLA estático para suportar essas condições não será eficiente. Neste sentido, o presente trabalho tem como objetivo apresentar um sistema de SLA para computação em nuvem, denominado SLAd@Cloud. Este sistema trata as complexidades inerentes as características da nuvem permitindo a negociação e renegociação dinâmica do SLA baseada nos requisitos de qualidade da aplicação e o monitoramento de métricas específicas e de forma ativa e integrada ao SLA para garantir a qualidade dos serviços prestados nas nuvens computacionais. O sistema trabalha com múltiplas métricas e utilizando um sistema de qualificação baseado na metodologia de comparação par a par de Saaty realiza a priorização de ações quando ocorrem violações de métricas específicas em função dos pesos destas métricas. A avaliação se deu através de implementação de um protótipo em Java que interagiu com o framework Cloudsim, provendo interface de definição e contratação do SLA e o gerenciamento do seu ciclo de vida, mesmo após sua contratação em diferentes modelos de nuvem. Os resultados demonstraram ganhos no tempo de execução, nos custos financeiros e na taxa de sucesso de cumprimento das tarefas, superando o modelo tradicional ou que não trabalha com múltiplas métricas. / Cloud computing has become more popular. However, though the facilities and advantages offered by cloud computing, there are still obstacles to its adoption by users and limitations in the provision of services by providers. For the cloud computing can be used and be crucial to business operations of the users it is essential that they receive guarantees from suppliers in the delivery of services. Usually, these guarantees are provided through SLAs (Service Level Agreements) between providers and consumers. The current service level agreements (SLAs) offered by cloud computing providers are simple, static and predefined by providers. These SLAs have no dynamic negotiation and does not follow the elastic behavior of the cloud. Cloud services are subject to fluctuations in load and SLA violations are more likely to happen during these fluctuations. The nature of these variations are unpredictable and therefore a static SLA to withstand these conditions will not be efficient. In this sense, this work aims to present a model SLA for cloud computing called SLAd@Cloud. This model treats the complexities inherent characteristics of the cloud allowing the dynamic negotiation and renegotiation of the SLA based on the quality requirements of the application and monitoring of specific metrics and an active and integrated into the SLA to ensure the quality of services provided in the cloud computing. The model works with multiple metrics and using a system of qualification based on the methodology of pairwise comparison of Saaty, it can perform the prioritization of actions to prevent violations of specific metrics depending on the weights of these metrics. The evaluation was made through implementation of a Java prototype that interacted with the framework Cloudsim, providing interface definition and SLA hiring and managing its life cycle, even after their employment in different cloud models. The results showed gains in runtime, the financial cost and success rate of completion of the tasks, overcoming the traditional model or the model does not work with multiple metrics.
|
170 |
Aplicações distribuídas em Windows 95 apoiadas por ferramenta de geração automática de stubs. / Distributed applications in Windows 95 supported by an automatic stub generation tool.Teixeira, Mario Antonio Meireles 01 July 1997 (has links)
Este trabalho apresenta uma ferramenta de apoio ao desenvolvimento de aplicações distribuídas, baseadas em RPCs, para o ambiente Windows 95. Discute, ainda, algumas aplicações construídas para validar o sistema, as quais seguem o paradigma cliente-servidor. É feita uma revisão bibliográfica dos assuntos mais relevantes relacionados ao tema e apresentados os detalhes de implementação da ferramenta. Esta foi implementada com técnicas de orientação a objetos, sendo composta por um Gerador Automático de Stubs e uma Biblioteca RPC, além de possibilitar a utilização de um Serviço de Binding. As aplicações construídas procuram explorar as potencialidades da ferramenta, sendo fornecidas também orientações gerais para o desenvolvimento de aplicações distribuídas no ambiente Windows 95. / This work presents a tool to support the development of RPC-based distributed applications in the Windows 95 environment. It also discusses some applications built to validate the system, which follow the client-server model. A theoretical review of the most relevant topics related to the field is done and the tools implementation details are presented. This tool was implemented with object-oriented techniques and comprises an automatic Stub Generator and an RPC Library, together with a Binding Service. The distributed applications that were built try to explore the tools full potential. General guidelines regarding the development of distributed applications for the Windows 95 environment are also provided.
|
Page generated in 0.0732 seconds