1 |
[en] A STUDY ON ADAPTIVE MIDDLEWARE / [pt] UM ESTUDO SOBRE MIDDLEWARES ADAPTÁVEISLUIZ GUSTAVO COURI NOGARA 14 March 2007 (has links)
[pt] Middlewares têm sido utilizados para desenvolver
aplicações distribuídas em domínios muito diferentes.
Cada
um desses domínios possui pré-requisitos diversos
relacionados à comunicação entre as partes do ambiente
distribuído. Muitas vezes, os pré-requisitos de
diferentes
domínios são contraditórios, fazendo com que a
implementação de um middleware que os atenda em mais de
um
domínio de aplicação se torne muito complexa. Uma das
opções para resolver esse problema é criar o middleware
de
forma que ele possa ser adaptado de acordo com as
necessidades de cada aplicação. Neste trabalho,
estudamos
algumas das técnicas disponíveis para a construção de
middlewares adaptáveis, indo desde mudanças simples na
política de transmissão de dados entre os nós de um
sistema distribuído, até adaptações mais abrangentes na
implementação do sistema para permitir diferentes
contextos de execução. Como estudo de caso, propomos um
modelo de componentização para um middleware já
existente,
implementado em Lua, com a finalidade de capacitá-lo a
acomodar adaptações de sua implementação de uma forma
simples e estruturada. Também realizamos alguns
experimentos para avaliar a aplicabilidade e eficácia do
novo middleware desenvolvido. / [en] Middlewares have been used in order to develop distributed
applications
in a variety of domains. Each of these domains has
different requirements related to the communication among
parts of the distributed system.
Many times the requirements of different domains are
contradictory, turning
the implementation of a middleware are that fulfills them
in more than one the
application domain in into a very complex problem. One of
the options to
solve this issue is to create the middleware are in a way
that it can be adapted
accordingly to the needs of each application.
In this study we survey some of the available techniques
for the construction
of adaptive middleware, ranging from simple changes in the
transmission of
data between nodes in a distributed system to more
thorough adaptations
in a system in order to allow for diferent application
execution contexts.
As a case study we propose a component model for an
existing middleware,
implemented in Lua, with the goal of enabling the
middleware are to
accommodate adaptations in its implementation in a simple
and structured
manner. We also created experiments in order to evaluate
the applicability
and effectiveness of the middleware.
|
2 |
[en] FIREWALL/NAT TRAVERSAL SOLUTIONS USING CORBA / [pt] SOLUÇÕES PARA A TRAVESSIA DE FIREWALLS/NAT USANDO CORBAANTONIO CARLOS THEOPHILO COSTA JUNIOR 10 March 2006 (has links)
[pt] Aplicações que usam CORBA como plataforma de comunicação
geralmente possuem restrições ao serem executadas em
ambientes compostos por mais de um domínio administrativo.
Este fato é particularmente verdade quando as aplicações
precisam atravessar firewalls/NAT. Além do mais, não
existe atualmente uma solução padronizada e adotada por
todos os ORBs, obrigando as aplicações que utilizam este
enfatizar{middleware} a adotarem soluções proprietárias
que muitas vezes não são adequadas ao ambiente em que as
aplicações funcionam (e.g. impossibilidade de abertura de
portas no firewall). Este trabalho apresenta e avalia três
soluções para a travessia de firewall/NAT por aplicações
distribuídas que utilizam CORBA como camada de
comunicação, cada uma explorando as vantagens de uma
situação específica. Exemplos de tais situações são a
possibilidade de configuração do firewall ou a
possibilidade de abertura de conexões TCP para fora da
rede. / [en] Applications that use CORBA as the communication layer
often face some
restrictions for multi-domain deployment. This is
particularly true when
they have to face firewall/NAT traversal. Furthermore,
nowadays there is
no well-accepted unique or standardized solution adopted
by all ORBs,
compelling applications using this type of middleware to
use proprietary
solutions that sometimes do not address the environment
restrictions in
which they are deployed (e.g. impossibility to open
firewall ports). This
work presents and compares three solutions for
firewall/NAT traversal by
CORBA-based distributed applications, each one suitable
for a specific
situation and exploring its advantages. Examples of such
situations are the
possibility of open firewall ports or the possibility of
start a TCP connection
to the outside network.
|
3 |
[en] AN ARCHITECTURE FOR STRUCTURED DATA ACCESS SERVICES IN SCIENTIFIC APPLICATIONS / [pt] UMA ARQUITETURA DE SERVIÇOS DE ACESSO A DADOS ESTRUTURADOS EM APLICAÇÕES CIENTÍFICASRODRIGO CARNEIRO HENRIQUE 22 October 2009 (has links)
[pt] Aplicações científicas trabalham, tipicamente, com grandes volumes de dados que possuem uma representação complexa e própria da aplicação que os utiliza. Essas características representam um grande desafio para o compartilhamento de dados e serviços entre aplicações científicas. Este trabalho tem como objetivo principal definir uma arquitetura de serviços de software que permita um acesso flexível e eficiente a grandes volumes de dados disponibilizados por aplicações científicas. São apresentados estudos de caso para ilustrar a flexibilidade promovida pela arquitetura através de
experimentos com dados cuja representação é fortemente baseada em dados
reais utilizados por aplicações científicas desenvolvidas pelo Tecgraf/PUCRio.
Há, ainda, uma avaliação de diferentes técnicas de codificação de
dados realizada através de experimentos criados para medir o desempenho
alcançado na implementação da arquitetura. / [en] Scientific applications usually handle large amount of data that have a
proprietary and complex representation. This characteristics represent a
great challenge for sharing data between scientific applications. The main
goal of this work is to provide an architecture of software services that
allows a flexible and efficient access to large amount of data served by such
applications. Case estudies are presented to show the flexibility that we
can achieve with this architecture. These experiments are strongly based
in actual data used in scientific applications developed by Tecgraf/PUCRio.
We also present an evaluation of different techniques of data encoding
based on experiments conducted to measure the performance achieved by
an implementation of the proposed architecture.
|
4 |
[en] A STUDY ABOUT CONTRACTS IN SOFTWARE COMPONENT SYSTEMS / [pt] UM ESTUDO SOBRE CONTRATOS EM SISTEMAS DE COMPONENTES DE SOFTWARELUIZ MARQUES AFONSO 02 March 2009 (has links)
[pt] A programação por contratos é uma das técnicas voltadas para a melhoria da qualidade de software, sendo baseada no aumento do
formalismo da especificação das interfaces. No contexto de componentes de software distribuídos, o uso de contratos envolve alguns desafios que o diferenciam do seu uso mais tradicional. O objetivo deste trabalho é a avaliaação do uso de contratos no desenvolvimento de sistemas distribuídos baseados em componentes de software, identificando as abordagens existentes e
analisando as vantagens e desvantagens do seu uso. São também avaliadas características como robustez, desempenho, flexibilidade, facilidade de uso e limitações. Como estudo de caso, foi desenvolvido um subsistema de suporte a contratos
sobre um middleware CORBA implementado em Lua, servindo de base para experimentos realizados durante a pesquisa. / [en] Contract-based programming is one of the techniques used to
improve the
quality of software by enhancing the formalism of interface
specifications.
In the context of distributed software components, the use
of contracts
presents new challenges that make it di*erent from its
traditional use.
This work intends to evaluate the use of contracts in the
development of
component-based distributed systems, identifying the
current approaches
and analyzing its advantages and disadvantages. It also
covers topics like
robustness, performance, flexibility, ease of use and
limitations. As a case
study, a contract subsystem was developed over a CORBA
middleware using
Lua, serving as the basis for experiments in our study.
|
5 |
[en] GRIDFS: SERVER FOR GRIDS AND HETEROGENEOUS DISTRIBUTED ENVIRONMENTS / [pt] GRIDFS: UM SERVIDOR DE ARQUIVOS PARA GRADES E AMBIENTES DISTRIBUÍDOS HETEROGÊNEOSMARCELO NERY DOS SANTOS 30 October 2006 (has links)
[pt] A computação em grade permite o uso de recursos
computacionais distribuídos em várias redes para a
execução de tarefas que requerem um alto poder
computacional. Uma infra-estrutura para grades pode ser
utilizada para auxiliar na execução dessas tarefas e pode
coordenar o controle das atividades envolvidas na
execução, como a disponibilização dos arquivos de dados
para as tarefas em execução nos nós da grade. O GridFS é
um sistema para o compartilhamento de arquivos em grades e
ambientes distribuídos heterogêneos. Ao disponibilizar um
servidor em diversas máquinas, é possível construir uma
federação integrando os diversos sistemas de arquivos
locais e abrindo possibilidades de armazenamento na ordem
de terabytes. O sistema proposto foi modelado e
desenvolvido levando em consideração diversos aspectos
como escalabilidade, interoperabilidade e desempenho. O
GridFS agrega algumas características dos sistemas de
compartilhamento de arquivos atualmente em uso pela
comunidade, isto é, o sistema oferece uma API para acesso
remoto aos dados, disponibiliza a opção de cópia de
arquivos entre diferentes servidores e fornece algumas
funções especiais para os ambientes de computação em
grade, como uma estimativa do tempo de transferência entre
os diversos nós. Além de definir as características e os
aspectos de implementação do sistema, esta dissertação
apresenta alguns resultados experimentais para a
transferência de arquivos na rede e, como forma de
avaliação, discutimos a integração do GridFS ao emph
{framework} CSBase, utilizado no desenvolvimento de
sistemas para computação em grade. / [en] Grid computing allows the use of distributed networks
resources for tasks
requiring a high processing power. A Grid infra-structure
may help in the
execution of these tasks and is able to coordinate their
related activities,
possibly regarding the provision of data files for the
tasks executing in the
grid nodes.
GridFS is a system that enables data sharing in grid and
heterogeneous
distributed environments. By deploying servers over
several nodes, it is
possible to build a federated system integrating all local
file systems and
leveraging possibilities for tera-scale sized data
storage. The proposed
system was modeled and developed considering several
aspects such as
scalability, interoperability and performance.
GridFS combines some characteristics from diverse file
management systems,
that is, GridFS provides an API for remote data access,
copy operations
allowing file transfers between servers, and some special
features for
grid environments. Apart from defining system
characteristics and implementation
aspects, this dissertation shows some experimental results
about
the service scalability and performance, and, as an
evaluation, discusses the
integration of GridFS with CSBase, a framework used to
develop systems
for grid computing.
|
6 |
[en] A DYNAMIC INTEGRATION MODEL FOR SOFTWARE COMPONENT SYSTEMS / [pt] EXAMES VIRTUAIS UTILIZANDO UM ALGORITIMO DE RAY CASTING ACELERADORENATO FONTOURA DE GUSMAO CERQUEIRA 30 July 2002 (has links)
[pt] Diferentes sistemas de componentes de software, tais como CORBA, COM e JavaBeans, apresentam
diferentes modelos de objetos e sistemas de tipos. Essas diferenças dificultam a integração de componentes oriundos de sistemas distintos e, conseqüentemente, são uma barreira para o reuso desses
componentes.
Neste trabalho, defendemos a tese de que uma linguagem interpretada com um determinado conjunto de mecanismos reflexivos, aliada à compatibilidade estrutural de tipos, oferece um mecanismo
de composição adequado tanto para a conexão dinâmica de componentes, quanto para a interoperabilidade entre diferentes sistemas de componentes. Esse mecanismo de composição realiza em tempo
de execução as tarefas de conexão, adaptação, implementação e verificação de tipos de componentes,
e trata de uma maneira uniforme componentes de diferentes sistemas, permitindo que estes sejam
conectados de uma forma transparente.
O mecanismo de composição que propomos se baseia em um modelo que privilegia a flexibilidade
em tempo de execução. Esse modelo de composição é composto por dois elementos principais. O
primeiro elemento é um modelo de objetos que definimos com a finalidade de poder representar
componentes dos diferentes sistemas tratados neste trabalho. Assim, esse modelo de objetos faz o
papel de um modelo integrador, isto é, um modelo sob o qual objetos de diferentes sistemas podem
ser representados e interagir de forma transparente.
O segundo elemento de nosso modelo de composição é um padrão de projeto (design pattern) para
a implementação de bindings entre linguagens interpretadas e sistemas de componentes. Esse padrão
de projeto, chamado Dynamic Language Binding, não utiliza a técnica tradicional de stubs. Ao invés
disso, ele utiliza mecanismos de reflexividade e tipagem dinâmica para implementar tanto proxies
genéricos, que podem representar qualquer componente de um determinado sistema, quanto adaptadores genéricos, que permitem a implementação de componentes utilizando a própria linguagem de
composição.
Como instrumento de validação da nossa proposta, descrevemos uma implementação do modelo
de composição denominada LuaOrb. LuaOrb utiliza a linguagem interpretada Lua como linguagem
de composição dinâmica, e integra os sistemas CORBA, COM e Java. / [en] Different component systems, such as CORBA, COM, and Java,
have different object models and
type systems. Such differences make the interoperability
between components of distinct systems
more difficult, and thus are an obstacle for component
reuse.
In this dissertation, we argue that an interpreted
language with a specific set of reflexive mechanisms,
together with a type system with structural compatibility,
offers a composition mechanism
suitable for dynamic component connection and for
interoperability between different component
systems. This composition mechanism performs at runtime
the tasks of verifying types, connecting,
adapting and implementing components, and handles
components of different systems in a uniform
way, allowing them to be connected transparently.
The proposed composition mechanism is based on a model
that favors flexibility at runtime. This
composition model is composed of two major elements. The
first one is an object model, defined in
order to represent components of the different systems
addressed in this dissertation. Thus, this object
model performs the role of a unifying model, that is, a
model in which objects from different systems
can interact and be represented transparently.
The second element of our composition model is a design
pattern to implement bindings between
interpreted languages and component systems. This design
pattern, named Dynamic Language Binding,
does not use the traditional stubs technique. Instead of
this, it uses reflection and dynamic typing
to implement generic proxies, which can represent any
component of a specific system, and generic
adapters, which allow component implementations using the
composition language itself.
In order to validate our proposal, we describe the LuaOrb
system, which is an implementation
of our composition model. LuaOrb uses the interpreted
language Lua as its dynamic composition
language, and integrates the systems CORBA, COM and Java.
|
Page generated in 0.0429 seconds