1 |
[en] A COLLABORATIVE MODEL FOR EVENT SCHEDULING USING COROUTINES / [pt] UM MODELO DE ESCALONAMENTO COLABORATIVO DE EVENTOS BASEADO EM CORROTINASREINALDO XAVIER DE MELLO 04 April 2006 (has links)
[pt] Sistemas orientados a eventos estão se tornando cada vez
mais presentes em diversos domínios de aplicação. Sistemas
gráficos interativos e sistemas distribuídos são exemplos
clássicos de cenários favoráveis ao emprego do paradigma de
programação orientada a eventos. Atualmente, novos cenários
estão surgindo, tais como os ambientes de programação para
telefones celulares e, apesar dessa crescente presença em
sistemas computacionais, o paradigma de orientação a
eventos ainda apresenta uma série de desafios, tais como a
elaboração de mecanismos eficientes para o despacho de
eventos e o gerenciamento concorrente da execução desses
tratadores, otimizando o uso dos recursos computacionais
disponíveis.
Este trabalho apresenta um modelo para o desenvolvimento de
escalonadores de eventos em ambientes de programação
orientados a eventos. É feito um estudo dos principais
modelos de escalonamento colaborativo dos eventos,
utilizando corrotinas em conjunto com outros padrões de
projeto estudados. Defende-se um modelo onde o escalonador
é responsável por encapsular a complexidade do
gerenciamento de múltiplas linhas de execução
colaborativas, procurando otimizar o uso de CPU durante
chamadas de métodos bloqueantes.
O uso de corrotinas permite o fácil gerenciamento dessas
múltiplas linhas de execução, através da definição de
mecanismos de abstração de controle, que permitem o
encapsulamento do contexto de execução e a suspensão e
retomada do processamento de forma transparente ao
escalonador e às próprias linhas de execução. O fato de ser
um modelo de concorrência colaborativa evita problemas com
o controle de acessos concorrentes ao estado compartilhado
pelas várias linhas de execução gerenciadas pelo
escalonador.
O modelo é aplicado em dois cenários distintos: uma
ferramenta de programação para telefones celulares, que são
inerentemente orientados a eventos de processamento
assíncrono e apresentam pouco poder de processamento e
fortes restrições no uso da memória disponível; e um
middleware CORBA escrito em Lua, onde a comunicação entre
os objetos distribuídos é toda baseada no modelo de chamada
remota de métodos. / [en] Event oriented systems are becoming present on many domains
of applications. Distributed systems and graphical
interactive systems are classical examples of environments
that adapt well to the concept of event oriented
programming. There are also emerging scenarios like
cellphone runtime environments. Despite the growing
presence on the computational systems, some challenges
still remain, like efficient method dispatch models and the
management of concurrent processing of the event handlers.
This work propose a model for an event scheduler using
collaborative routines. We introduce a study on some
mainstream scheduler models and propose a model where the
scheduler holds the responsibility to encapsulate the
complexity of managing multiple lines of execution,
minimizing the CPU time wasted with blocking methods. The
coroutine model allows the management of these multiple
lines of execution using a general control abstraction,
which allows seamless context switching during the multiple
suspending and resuming of the routine. Also, without
preemption, there is no overhead due to access control of
the shared resources. The proposed is tested on two
different scenarios: one programming framework designed to
be run mobile phones, a fully asynchronous environment with
low processing power and severe memory constraints; and a
CORBA middleware written in lua, where the communication
between distributed objects is based on the remote
procedure call modell.
|
2 |
[en] AN INFRASTRUCTURE FOR DISTRIBUTED EXECUTION OF SOFTWARE COMPONENTS / [pt] UMA INFRA-ESTRUTURA PARA A EXECUÇÃO DISTRIBUÍDA DE COMPONENTES DE SOFTWARECARLOS EDUARDO LARA AUGUSTO 04 March 2009 (has links)
[pt] Infra-estruturas de suporte a sistemas baseados em componentes de software
tipicamente incluem facilidades para instalação, execução e configuração
dinâmica das dependências dos componentes de um sistema. Tais facilidades
são especialmente importantes quando os componentes do sistema executam
em um ambiente distribuído.
Neste trabalho, investigamos alguns dos problemas que precisam ser tratados
por infra-estruturas de execução de sistemas distribuídos baseados em
componentes de software. Para realizar tal investigação, desenvolvemos um
conjunto de servi¸cos para o middleware OpenBus, com o intuito de prover
facilidades para a execução de aplicações distribuídas. Para ilustrar e avaliar
o uso dos serviços desenvolvidos, apresentamos alguns exemplos onde a
infra-estrutura é utilizada para executar cenários de teste de uma aplicação
distribuída. / [en] Support infrastructures for component-based software
systems usually include facilities for installation,
execution and dynamic configuration of the
system component`s dependencies. Such facilities are
specially important when those system components execute in
a distributed environment. In this work, we investigate
some of the problems that must be handled by
runtime infrastructures for distributed systems based on
software components. To perform such investigation, we
developed a set of services for the OpenBus middleware,
aiming to provide facilities for execution of distributed
applications. To illustrate and evaluate the use of the
developed services, we present some examples where the
infrastructure is used for executing test scenarios of a
distributed application.
|
3 |
[en] A MECHANISM OF COMPONENT SELECTION WITH THE NOTION OF RECONFIGURATION CONTRACTS / [pt] UM MECANISMO DE SELEÇÃO DE COMPONENTES PARA O MIDDLEWARE KALUANA USANDO A NOÇÃO DE CONTRATOS DE RECONFIGURAÇÃOALLAN ALVES VALERIANO 13 October 2011 (has links)
[pt] A computação móvel cria a necessidade de que as aplicações sejam
adaptáveis de acordo com o contexto do usuário. Demandas específicas do
usuário, assim como alterações no contexto computacional requerem que
aplicações móveis clientes devam ser capazes de se adaptar dinamicamente para
se adequar ao novo cenário de execução. Estas adaptações precisam ser
apropriadas e devem manter a qualidade de serviço evitando falhas ou degradação
do desempenho da aplicação. Este trabalho propõe uma extensão do middleware
de componentes Kaluana, que provê um mecanismo de seleção de componentes
para aplicações adaptáveis a partir de contratos de reconfiguração. Esta seleção é
feita com a noção de equivalência entre suas as interfaces públicas e considera as
restrições de execução dos componentes candidatos a serem usados na adaptação
de acordo com o contexto computacional do dispositivo para a avaliação dos
componentes candidatos a instanciação. Esta seleção visa manter a
compatibilidade dos novos componentes com os componentes já implantados bem
como com o contexto de execução, ou seja, o estado corrente dos recursos no
dispositivo. Com a noção de equivalência entre as interfaces de especificação de
componentes, a aplicação tem a possibilidade de selecionar componentes através
da interface do serviço requisitado sem a necessidade de conhecer seu nome ou
alguma característica específica, evitando assim que uma amarração seja criada
com uma determinada implementação. / [en] Mobile computing creates the need for applications to be adaptable
according to the user s context. Specific user demands as well as changes in the
computational context the mobile applications require clients to be able to adapt
dynamically to suit the new scenario of execution. These adjustments should be
appropriate and should maintain the quality of service avoiding failures or
preventing degradation of application performance. This thesis proposes an
extension of Kaluana middleware which provides a mechanism for selection of
components for adaptive applications based on the notion of reconfigurations
contracts. This selection is done also based on the notion of equivalence between
their public interfaces and should consider the execution restrictions of the
candidate components to be used in the adaptation in accord to the device s
execution context to be used to evaluate the candidate components to the
instantiation. This selection aims to maintain the compatibility of new
components with the components already used as well as the execution context,
i.e. the current status of the device s resources. Due to the notion of equivalence
between the interface specifications of components, the application should be able
to request a component through the interface of the requested service, avoiding the
need to know the component s name or any other specific feature that creates a tie
with the given implementation.
|
4 |
[en] SOFTWARE COMPONENTS WITH SUPPORT FOR DATA STREAMS / [pt] COMPONENTES DE SOFTWARE COM SUPORTE A FLUXO DE DADOSVICTOR SA FREIRE FUSCO 18 January 2013 (has links)
[pt] O desenvolvimento baseado em componentes de um tópico que tem
atrasado bastante atençco nos últimos anos. Esta técnica permite a construção
de sistemas de software complexos de forma rápida e estruturada. Diversos
modelos de componentes já foram propostos pela indústria e pela academia.
Dentro destes, aqueles que oferecem suporte da comunicação distribuída
geralmente interagem através de Chamadas Remotas de Procedimentos.
Dos modelos pesquisados, apenas o CORBA Component Model possui uma
especificação em andamento para o suporte da comunicação através de
fluxos de dados. Esse suporte se mostra de grande relevância em sistemas que
precisam lidar com dados de sensores e com transmissão de áudio e vídeo.
O objetivo principal deste trabalho de apresentar uma arquitetura que permita
a implementação de aplicações com suporte ao fluxo de dados no middleware Software Component System (SCS). Para tal, o modelo de componentes do
SCS foi estendido para oferecer portas de fluxos de dados. Como avaliação,
este trabalho apresenta alguns resultados experimentais de desempenho e
escalabilidade, assim como uma aplicação que exercita as necessidades do
executor de fluxos de algoritmos do CSBase, um framework utilizado no
desenvolvimento de sistemas para computação em grade. / [en] Component-based software development is a topic that has attracted
attention in recent years. This technique allows the construction of complex
software systems in a quick and structured way. Several component models
have been proposed by the industry and the academy. The majority of
these component models adopt Remote Procedure Calls as their basic
communication mechanism. The CORBA Component Model is the only
one from the surveyed models that has a work in progress to support
communication over data streams. This support proves to be of great
importance in systems that must deal with data from sensors and systems
that deal with audio and video transmission. The main goal of this work is
to propose an architecture that enables the middleware Software Component
System (SCS) to support applications that require data streaming. To this
end, the SCS component model was extended to support stream ports. As
evaluation, this work presents some experimental results of performance and
scalability, as well as an application that exercises the needs of the CSBase s
algorithm
ow executor, a framework used to build systems for grid computing.
|
5 |
[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.
|
6 |
[en] A TOOL FOR REBUILDING THE SEQUENCE OF INTERACTIONS BETWEEN COMPONENTS OF A DISTRIBUTED SYSTEM / [pt] UMA FERRAMENTA PARA RECONSTRUÇÃO DA SEQUÊNCIA DE INTERAÇÕES ENTRE COMPONENTES DE UM SISTEMA DISTRIBUÍDOPAULO ROBERTO FRANCA DE SOUZA 11 October 2011 (has links)
[pt] Sistemas distribuídos frequentemente apresentam um comportamento
em tempo de execução diferente do esperado pelo programador. A análise
estática, somente, não suficiente para a compreensão do comportamento e
para o diagnóstico de problemas nesses sistemas, em razão da sua natureza
nao determinística, reflexo de características inerentes como concorrência,
latência na comunicação e falha parcial. Sendo assim, torna-se necessário
um melhor entendimento das interações entre os diferentes componentes de
software que formam o sistema, para que o desenvolvedor possa ter uma melhor
visão do comportamento do sistema durante sua execução. Neste trabalho,
apresentamos uma ferramenta que faz a reconstrução das interações entre os
componentes de uma aplicação distribuída, oferecendo uma visão das linhas
de execução distribuídas e permitindo o acompanhamento das sequências de
chamadas remotas e a análise das relações de causalidade. Essa ferramenta
também faz a persistência do histórico dessas interações ao longo do tempo,
correlacionando-as a arquitetura do sistema e aos dados de desempenho. Assim,
a ferramenta proposta auxilia o desenvolvedor a melhor compreender cenários
que envolvem comportamentos indevido do sistema e a restringir o escopo da
análise do erro, facilitando a busca de uma solução. / [en] Distributed systems often present a runtime behavior different than what
is expected by the programmer. Static analysis is not enough to understand
the runtime behavior and to diagnoses errors. This difficulty is caused by
the non-deterministic nature of distributed systems, because of their inherent
characteristics, such as concurrency, communication latency and partial failure.
Therefore, it’s necessary a better view of the interactions between the system’s
software components in order to understand its runtime behavior. In this work
we present a tool that rebuilds the interactions among distributed components,
presents a view of distributed threads and remote call sequences, and allows
the analysis of causality relationships. Our tool also stores the interactions
over time and correlates them to the system architecture and to performance
data. The proposed tool helps the developer to better understand scenarios
involving an unexpected behavior of the system and to restrict the scope of
error analysis, making easier the search for a solution.
|
7 |
[en] MOBILITY MANAGEMENT AND DISCONNECTION HANDLING BASED ON SIP / [pt] GERENCIAMENTO DE MOBILIDADE E TRATAMENTO DE DESCONEXÃO BASEADO EM SIPGUSTAVO LUIZ BASTOS BAPTISTA 11 September 2009 (has links)
[pt] Os avanços nas tecnologias de redes de computadores, telecomunicações,
e dispositivos móveis portáteis têm gerado uma demanda por aplicações e serviços
que sejam apropriados para ambientes com conectividade intermitente e
mobilidade dos dispositivos. Uma questão central para a viabilização de tais
aplicações em ambientes como estes são as possíveis soluções para o
Gerenciamento de Mobilidade, isto é, a manutenção automática da conectividade
entre componentes de um sistema em cenários nos quais os dispositivos mudam
de endereço IP dinamicamente, à medida que se reconectam a diferentes domínios
de rede. Partindo de uma investigação inicial das principais soluções existentes,
este trabalho apresenta a implementação de uma solução na camada de aplicação
baseada no protocolo SIP. Em seguida, apresenta a adaptação de um sistema
publish/subscribe existente para fazer com que o mesmo utilize a solução
implementada, com o objetivo de prover suporte à mobilidade e à desconexão dos
produtores e consumidores de eventos, bem como para a travessia de firewalls e
NATs, permitindo que o sistema publish/subscribe possa ser usado na Internet, e
não somente em redes locais. O modelo publish/subscribe foi escolhido como
estudo de caso, pois oferece interações assíncronas e anônimas que se adéquam
muito bem aos requisitos de um cenário de mobilidade. A adaptação deste sistema
partiu da investigação de alguns dos principais requisitos que um sistema pub/sub
deve atender para tratar mobilidade e desconexão de dispositivos. O referido
sistema foi testado para diferentes cenários, e seu desempenho foi avaliado para
diferentes configurações, e comparado ao do sistema publish/subscribe
convencional. / [en] Advances in computer networks, telecommunications, and portable mobile
devices have increased the demand for applications and services that are suitable
for environments with intermittent connectivity and mobility of devices. A central
question for the viability of such applications on environments like these are the
possible solutions for Mobility Management, i.e., the automatic maintenance of
the connectivity between system components in scenarios where the devices
change their IP addresses dynamically as they reconnect to different network
domains. Starting from an initial investigation of the main solutions for Mobility
Management, this dissertation presents the development of a solution on the
application layer based on the SIP protocol. Then, it presents the adaptation of an
existing publish/subscribe system to make it use the developed Mobility
Management solution, in order to provide support for the mobility and
disconnection of event producers and consumers, and also NAT and firewall
traversal, enabling the system to be used on the Internet, and not only on local
networks. The publish/subscribe model has been chosen as a case study for the
implemented solution, because it provides asynchronous and anonymous
interactions that are very well suited to the requirements of a mobility scenario.
The adaptation of the publish/subscribe system started from an investigation of
the main requirements a system like this should meet in order to support mobility
and disconnection of devices. The referred system has been tested for different
scenarios, and its performance has been evaluated for different configurations, and
it has been compared to the conventional publish/subscribe system.
|
8 |
[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.
|
9 |
[en] GINGA-NCL FOR PORTABLE DEVICES / [pt] GINGA-NCL PARA DISPOSITIVOS PORTÁTEISVITOR MEDINA CRUZ 12 November 2008 (has links)
[pt] O advento da TV Digital traz muitas vantagens, como a
melhora da
imagem, do som e o suporte à interatividade. Um sistema de
TV Digital
especifica técnicas de codificação e transmissão de
conteúdos televisivos a
serem transmitidos das emissoras para os dispositivos
receptores dos
telespectadores. Um elemento importante definido por tais
sistemas é o
middleware. No contexto da TV Digital, o middleware oferece
uma linguagem de
programação a ser usada na criação das aplicações
interativas. O middleware
especificado pelo Sistema Brasileiro de TV Digital (SBTVD),
denominado Ginga,
é composto por dois ambientes: um declarativo, o Ginga-NCL,
e outro
imperativo, o Ginga-J. Apenas o uso do Ginga-NCL é
obrigatório nos dispositivos
portáteis. Dentre as vantagens do Ginga-NCL, ressalta-se o
fato da sua
linguagem, a NCL, apresentar um conjunto de características
que são
adequadas para a criação de conteúdo televisivo interativo.
É importante,
entretanto, realizar uma implementação de referência do
Ginga-NCL que sirva
como prova de conceito da especificação, ou seja, que
mostre a sua viabilidade
de uso na prática. Este trabalho apresenta a primeira
implementação de
referência do Ginga-NCL para dispositivos portáteis,
baseada na sua
implementação de referência para os terminais fixos. Entre
as plataformas
estudadas, a do sistema operacional Symbian foi escolhida
para a realização da
implementação proposta, por apresentar as maiores
vantagens. Os problemas
encontrados durante o desenvolvimento da implementação
proposta são
apresentados juntamente com as soluções dadas. Ao final,
testes sistêmicos
foram usados na identificação e correção de erros da
implementação resultante
deste trabalho. / [en] The advent of the Digital TV brings many advantages, such
as image and
sound improvement and interactivity support. A Digital TV
system defines
codification and transmission techniques for content to be
transmitted from
broadcasters to receiver devices belonging to viewers. An
important element
defined for such systems is the middleware. In the Digital
TV context, the
middleware provides a programming language to be used on
the creation of
interactive applications. The middleware specified by the
Sistema Brasileiro de
TV Digital (SBTVD), known as Ginga, is composed by two
environments: one
declarative, the Ginga-NCL, and another imperative, the
Ginga-J. Only Ginga-
NCL is mandatory in portable devices. Among the advantages
of Ginga-NCL,
stands out the fact of its language, the NCL, has a set of
characteristics that are
suitable for creation of interactive television content.
However, it is important to
make a Ginga-NCL reference implementation that can be used
as proof of
concept of the specification, which shows its use viability
in practice. This work
presents the first Ginga-NCL reference implementation for
portable devices,
based upon its reference implementation for fixed
terminals. Among the studied
platforms, the one provided by Symbian operating system was
chosen to carry
out the proposed implementation, since it has the greatest
benefits. The
problems found during the development of the proposed
implementation are
presented together with the solutions given. At the end,
systemic tests were used
on the identification and correction of errors of the
implementation resulted from
this work.
|
10 |
[en] MONITORING THE EXECUTION ENVIRONMENT OF DISTRIBUTED SOFTWARE COMPONENTS / [pt] MONITORANDO O AMBIENTE DE EXECUÇÃO DE COMPONENTES DE SOFTWARE DISTRIBUIDOSEDUARDO FONSECA DE ANDREA 06 October 2009 (has links)
[pt] Sistemas de componentes têm como característica possibilitar a construção de aplicações através da composição de artefatos de software disponíveis. Interações podem ocorrer entre diversos componentes que podem estar distribuídos em diversas máquinas. À medida que aplicações distribuídas aumentam de tamanho, as interações existentes entre os diversos nós que a compõem vão se tornando mais complexas. Assim, torna-se importante para essas aplicações a existência de uma forma de monitorar as interações entre os componentes, com o intuito de identificar falhas e gargalos de processamento e comunicação no sistema. Este trabalho apresenta uma arquitetura capaz de oferecer mecanismos extensíveis para coleta de informações do ambiente de execução desses sistemas, e das interações realizadas entre os seus componentes. São implementadas formas de publicação dessas informações obtidas e testes comparativos para quantificar como a arquitetura desenvolvida onera o desempenho da aplicação. / [en] Component-based systems are characterized by the construction of applications through the composition of available software artifacts. Interactions may occur between different components that can be distributed through several machines. As distributed applications increase in size, the interactions between the various nodes that comprise them become more complex. Therefore it is important for distributed component systems to monitor the interactions between components in order to identify failures and bottlenecks in processing and communication. This dissertation presents an architecture capable of offering extensible mechanisms for monitoring the execution environment of distributed components, and the interactions between their components. It also presents a flexible mechanism for publication of the collected information, and some comparative test to measure the performance penalty imposed by the infrastructure to the application.
|
Page generated in 0.0451 seconds