11 |
[en] COMPONENT-BASED GROUPWARE DEVELOPMENT BASED ON THE 3C COLLABORATION MODEL / [pt] DESENVOLVIMENTO DE GROUPWARE COMPONENTIZADO COM BASE NO MODELO 3C DE COLABORAÇÃOMARCO AURELIO GEROSA 12 July 2006 (has links)
[pt] Groupware é evolutivo e é difícil de construir e de
manter, e acaba tendo um
código desorganizado e difícil de evoluir. Nesta tese é
proposta uma abordagem
de desenvolvimento de groupware baseado em componentes
concebidos em
função do modelo 3C de colaboração. No modelo 3C, a
colaboração é analisada a
partir da comunicação, coordenação e cooperação. Na
abordagem proposta, partese
das necessidades de colaboração do grupo, analisadas com
base no modelo, e
componentes de software também organizados em função do
modelo são
utilizados para compor a solução. Como estudo de caso, a
abordagem é aplicada
no desenvolvimento da nova versão do ambiente AulaNet,
cujo código padece dos
problemas mencionados anteriormente. Neste estudo de caso,
são desenvolvidos
component kits para instanciar os serviços de comunicação
do ambiente. Os
componentes possibilitam compor, recompor e customizar os
serviços de modo a
refletir alterações na dinâmica de colaboração. / [en] Groupware is evolutionary and difficult to develop and
maintain. Thus, its
code becomes unstructured and difficult to evolve. In this
thesis, a groupware
development approach based on components organized
according to the 3C
collaboration model is proposed. In this model,
collaboration is analyzed based on
communication, coordination and cooperation. Collaboration
necessities of the
group, analyzed based on the 3C model, are mapped to
software components, also
organized according to the model, in order to compose the
system. The proposed
approach is applied as a case study to the development of
the new version of the
AulaNet environment. The environment´s code currently
suffers the mentioned
problems. In order to instantiate the communication
services of the environment,
for the case study, 3C based component kits were
developed. The components
allow the composition, re-composition and customization of
the services in order
to reflect collaboration dynamics changes.
|
12 |
[en] A STUDY OF TCHINIQUES FOR THE ADAPTATION OF SOFTWARE COMPONENTS IN JAVA / [pt] UM ESTUDO DE TÉCNICAS PARA ADAPTAÇÃO DE COMPONENTES DE SFTWARE EM JAVAEDUARDO PILLA PORTILHO 19 February 2016 (has links)
[pt] Sistemas de Software fatalmente necessitam passar por modificações ao longo de sua existência para que sejam efetuadas tanto correções de erros quanto alterações evolutivas que contemplem novos requisitos. Processos de manutenção desse tipo normalmente exigem que os sistemas sejam interrompidos por algum período de tempo, que varia de acordo com a complexidade da modificação e com a tecnologia utilizada. Essa interrupção pode ser inaceitável no caso de aplicações que exijam um alto grau de disponibilidade. Nesse caso, qualquer tipo de alteração precisa ser feita de maneira dinâmica, sem interromper a aplicação. No caso de sistemas distribuídos, essa dificuldade é significantemente agravada em decorrência do número naturalmente maior de usuários atendidos e da própria distribuição de seus módulos. A implementação de mecanismos que permitem substituir ou introduzir novas funcionalidades em aplicações de maneira dinâmica foge de escopo da maioria das aplicações, por se tratar de um desenvolvimento de elevada complexidade. Acreditamos que a crescente demanda por mecanismo deste tipo justifica que eles sejam oferecidos sob a forma de serviços pela camada de middleware. Neste trabalho, avaliamos a implementação de mecanismos de adaptação dinâmica em um sistema de componentes desenvolvido em Java. Estes mecanismos devem permitir efetuar alterações nas aplicações de maneira simples e estruturada, sem que seja necessário interromper o seu funcionamento. Posteriormente, comparamos a solução obtida com uma solução similar implementada com a linguagem Lua para avaliar as vantagens e desvantagens apresentadas por dois tipos de linguagem para sistemas dinamicamente adaptáveis. Avaliamos também o desempenho da solução, comparando o tempo de execução de aplicação desenvolvidas sobre ela com similares desenvolvidas sem ela, medindo assim a sobrecarga de desempenho imposto pela solução proposta. / [en] Software systems will inevitably need to suffler modifications during its existence, in order to receive both error corrections and evolutionary changes that address new requirements. This kind of maintenance processes typically involves the interruption of the systems for an amount of time that varies with the complexity of the change and with the used technology. This interruption may be unacceptable in the case of applications that demand a high degree of availability. In this case, any modification must be made dynamically, without interrupting the application. In the case of distributed systems, this difficulty is significantly increased due to the typical greater number of users and to the distribution of their modules. Replacement or addition of features dynamically in applications developed with the major middleware platforms , such as CORBA or RMI, is a fairly complex process, which requires both the replaced modules and those that interact with the implementation of dynamic adaptation mechanisms that circumvent these limitations of dynamic adaptation mechanisms that circumvent these limitations is beynd of the scope of most applications, due to its highly complex nature. We believe that the increasing demand for such mechanisms justifies that they should be offered as services on the middleware layer. In this dissertation we evaluete the implementation of dynamic adaptation mechanisms in a component system developed using the Java programming language. These mechanisms should allow changing applications in simple and structured way, without the need to interrupt its operation. We compare the developed solution with a similar solution developed using the Lua proramming Language, in order to evaluate the advantages and disadvantages presented by this two types of languages in the implementation of dynamically adaptable sustems. We also evaluate the performance of the proposed.
|
13 |
[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.
|
14 |
[en] SUPPORT FOR ARCHITECTURAL EVOLUTION IN COMPONENT-BASED DISTRIBUTED SYSTEMS / [pt] SUPORTE À EVOLUÇÃO ARQUITETURAL DE SISTEMAS DISTRIBUÍDOS BASEADOS EM COMPONENTES DE SOFTWAREAIRTON JOSE ARAUJO LIBORIO 13 January 2015 (has links)
[pt] A natureza de certos sistemas de software determina que estes tenham de executar de maneira ininterrupta. Por outro lado, diversos sistemas de software são constantemente sujeitos a mudanças, por questões que incluem, mas não se limitam a, infraestrutura, correções de falhas, adição de funcionalidades e mudanças na lógica de domínio. Evolução dinâmica de software consiste em alterar aplicações durante a sua execução sem interrompê-las, mantendo-as disponíveis mesmo durante a aplicação destas modificações. Sistemas distribuídos baseados em componentes permitem decompor o software em entidades claramente separadas. Nesses casos, a evolução pode ser resumida a remoção, adição e modificação de tais entidades, e se tais atividades podem ser exercidas enquanto a aplicação está em execução, tem-se evolução dinâmica de software. Através disso, neste trabalho foi criada uma abordagem em que é possível se manipular arquiteturas distribuídas desenvolvidas sobre o middleware SCS de maneira a se minimizar a interrupção de partes do sistema enquanto certas adaptações são implantadas. Aplicamos o mecanismo em um sistema distribuído já consolidado, o CAS, que consiste em uma infraestrutura de gravação extensível com suporte a captura e acesso automáticos de mídias distribuídas. / [en] The nature of some software systems determine that they run without interruption. Furthermore, many software systems are constantly subject to change for reasons that include, but are not limited to, infrastructure changes, bug fixes, addition of functionalities, and changes in the domain logic. Dynamic software evolution consists into changing application during execution without stopping them, keeping them available even when applying these modifications. Component-based distributed systems allows decomposing software into clearly separated entities. In such cases, evolution can be summarized to removal, addition and modification of such entities, and if such activities can be performed while the application is executing, dynamic adaptation is achieved. In this work, we ve investigated an approach that aims to allow manipulation of distributed software architectures developed over the SCS middleware, in order to minimize system disruption while certain adaptations are deployed. The mechanism was tested in an already consolidated distributed system, the CAS, which consists of an extensible recording infrastructure that supports automatic capture and access of distributed medias.
|
15 |
[en] ARCHITECTURE FOR COORDINATION AND COMPOSITION OF SOFTWARE / [pt] UMA ARQUITETURA PARA A COORDENAÇÃO E A COMPOSIÇÃO DE ARTEFATOS DE SOFTWAREGUSTAVO ROBICHEZ DE CARVALHO 16 October 2003 (has links)
[pt] A engenharia de software baseada em componentes é uma
abordagem que prevê a reutilização de artefatos de software
na geração de um conjunto de aplicações. Ao desenvolver
aplicações com esta abordagem, é preciso reunir ou compor
componentes de software já existentes. Após compor estas
unidades, é necessário coordenar as interdependências
estabelecidas entre elas para adequar a aplicação em
desenvolvimento à resolução do problema. Esta dissertação
propõe uma arquitetura de software que separa e estrutura
os conceitos de coordenação, composição e componentes de
software em camadas arquiteturais. A partir desta
estrutura, espera-se que modificações específicas em
construções de uma camada tenham o mínimo de influência
sobre as demais. ACCA (Arquitetura para a Coordenação e a
Composição de Artefatos de Software) deve ser entendida
como uma estrutura conceitual utilizada para
organizar o desenvolvimento de software baseado em
componentes. Além disto, são apresentados um framework para
ilustrar a realização da camada de composição de ACCA, o
processo de reificação de ACCA e um processo de
desenvolvimento de software utilizando a abordagem proposta. / [en] Component Based Software Engineering is an approach for
reusing software artifacts when developing applications. In
order to develop solutions using this approach, it is
necessary to compose software using components that have
already been developed. After putting those pieces
together, we need to coordinate the interdependencies
established among those compositions to fulfill the
requirements, needed to resolve a problem. This
dissertation proposes a software architecture that
separates and structures the concepts of coordination,
composition and software components in different
architectural layers. Using this approach, we expect that
specific modifications in layer constructions have the
minimum impact on the others layers. ACCA (Architecture for
Coordination and Composition of software Artifacts) must be
understood as a conceptual structure that is used to
organize component based software development. It also
presents a composition framework, the reification process
for ACCA and a software development process organized using
this approach.
|
16 |
[en] LINDAX.: A LANGUAGE FOR DESCRIBING ADAPTABLE COMMUNICATION SYSTEMS / [pt] LINDAX: UMA LINGUAGEM DE DESCRIÇÃO DE SISTEMAS DE COMUNICAÇÃO ADAPTÁVEISANTONIO TADEU AZEVEDO GOMES 25 August 2005 (has links)
[pt] No cenário atual do setor de telecomunicações, percebe-se
uma tendência
crescente em direção ao uso de sistemas de comunicação que
permitam a criação
rápida e de baixo custo de serviços. Na busca por
arquiteturas de rede que
respondam a essa tendência, vários grupos têm centrado seus
esforços em
pesquisas na área de redes programáveis. O surgimento da
tecnologia de
processamento de rede no mercado de equipamentos de
telecomunicações abriu
ainda maior espaço para pesquisas nessa área. Nesse
contexto, é imprescindível
que os processos de criação de serviços sejam bem
estruturados e, o quanto
possível, sistemáticos. Esta tese, inserida em um projeto
desenvolvido no
Laboratório TeleMídia da PUC-Rio, adota uma abordagem de
criação de serviços
em que técnicas de Arquitetura de Software e de
Desenvolvimento Baseado em
Componentes são aplicadas consistentemente e de modo
ubíquo, desde
especificações de alto nível de serviços até a
implementação de software básico
em unidades programáveis de processamento de rede. Os
objetivos principais são
expressar a adaptabilidade de múltiplos aspectos nesses
serviços e,
simultaneamente, reduzir a sobrecarga cognitiva em
projetistas e programadores,
decorrente dessa multiplicidade de aspectos. Para isso, foi
desenvolvida uma
linguagem de especificação baseada em XML, chamada Lindax,
que permite
descrever arquiteturalmente diversos aspectos de sistemas
de comunicação - por
meio de um arcabouço sintático único para DSLs - e
restrições de adaptação em
cada aspecto particular - por meio de estruturas de estilos
arquiteturais.
Complementando o trabalho, um conjunto de ferramentas de
manipulação de
descrições arquiteturais em LindaX é definido. Essas
ferramentas permitem o
refinamento para diferentes linguagens formais ou a síntese
de configurações e
mecanismos de controle de adaptações para diversas
plataformas. / [en] It is increasingly noticeable, in the current
telecommunications market, a
trend towards using communication systems that allow rapid
and cheap
deployment of new services. In pursuit of network
architectures that keep up with
such trend, significant research has been carried out on
programmable networks.
This field is set to gain further impetus from developments
in network
processor-based equipment. In this context, it is crucial
that service creation
processes be well structured and, as far as possible,
systematic. This thesis, which
is part of an ongoing project at the TeleMídia Laboratory,
PUC-Rio, adopts a
service creation approach in which techniques from Software
Architecture and
Component-Based Software Development are uniformly and
ubiquitously applied
at all levels of a communication system, ranging from high-
level service
specifications to low-level software implementation running
in network
processors. The main aim is to express adaptibility in
cross-cutting service aspects
and, meanwhile, cut down on the cognitive overhead usually
imposed upon
designers and programmers due to such multiplicity of
concerns. For the sake of
the aforementioned aim, an XML-based specification
language, called LindaX,
has been developed. Such language allows various system
aspects to be
architecturally described - by means of a single syntactic
framework for DSLs -
as well as adaptable in a constrained way - through style
structures.
Complementing the work, a toolset for handling LindaX
architecture descriptions
has been defined, which allows their refinement to
different formal languages or
their synthesis onto system configurations and adaptation
controlling mechanisms
for diverse platforms.
|
17 |
[en] A FRAMEWORK FOR DYNAMIC ADAPTATION OF DISTRIBUTED COMPONENT-BASED SYSTEMS / [pt] UM FRAMEWORK PARA ADAPTAÇÃO DINÂMICA DE SISTEMAS BASEADOS EM COMPONENTES DISTRIBUÍDOSRENATO FIGUEIRO MAIA 04 August 2004 (has links)
[pt] A adaptação dinâmica de aplicações distribuídas tem se
tornado um recurso cada vez mais essencial na construção de
sistemas de computação. Isso é justificado especialmente
pelo avanço da tecnologia, que tem permitido a automação de
tarefas complexas em domínios de aplicação cada vez menos
tolerantes à suspensão de serviços. Nesta dissertação é
proposto o LuaOrb Adaptation Framework, que utiliza os
recursos da linguagem Lua na adaptação dinâmica de sistemas
baseados em componentes do Modelo de Componentes de CORBA
(CCM - CORBA Component Model ). Através desse framework é
possível utilizar as abstrações de papéis e protocolos para
realizar adaptações criando novas interações entre os
componentes do sistema, assim como reconfigurar
dinamicamente os componentes CCM. Devido a limitações do
modelo CCM, é proposta uma adaptação desse modelo para a
linguagem Lua, de onde surge o conceito de contêiner
dinâmico, que permite a construção de componentes
dinamicamente adaptáveis através de alterações na estrutura
e implementação desses componentes. O contêiner dinâmico
permite que essas alterações sejam feitas em níveis
diferentes, ou seja, no nível de uma única instância ou
implementação de componente, assim como em todas as
instâncias de um determinado componente. / [en] Dynamic adaptation of distributed applications has become
an essential feature in development of computer systems,
mainly justified by nowadays technology, which enables
complex tasks to be performed by computers in application
domains less suited for service interruption. This
dissertation proposes the LuaOrb Adaptation Framework,
which uses features of the programming language Lua to
dynamically adapt systems based on the CORBA Component
Model (CCM). This framework uses abstractions like
roles and protocols to adapt systems by creating new
interactions between systems components, as well as
provides features for dynamic reconfigurations of CCM
components. Due to limitations of CCM, an adaptation of this
model to Lua concepts is proposed, resulting in the
definition of dynamic containers, which enable development
of dynamically adaptable components by changes on component
structure and implementation. Dynamic containers allows
adaptations to be done on different levels, namely on the
level of a single component instance or implementation, as
well as on all instances of a given component.
|
18 |
[en] FLEXIBLE COMPOSITION FOR C PLUS PLUS 11 / [pt] COMPOSIÇÃO FLEXIVEL EM C MAIS MAIS 11MAXIMILIEN PHILIPPE M A DE BAYSER 01 February 2017 (has links)
[pt] Injeção de dependências, uma forma de inversão de controle, é uma forma de estruturar a configuração e composição de componentes de software que traz vários benefícios como um acoplamento reduzido entre componentes. No entanto, um framework genérico de injeção de dependências requer instrospecção em tempo de execução, o que explica por que injeção de dependências é popular em Java mas praticamente inexistente em C Mais Mais. Neste trabalho apresentamos um sistema de introspecção para C Mais Mais 11 e mostramos como ele pode ser usado para melhorar uma implementação de Service Component Architecture (SCA) para C Mais Mais. Usamos vários novas funcionalidades de C Mais Mais 11 como perfect forwarding, variadic templates e lvalue references para melhorar a usabilidade da API de reflexão e minimizar o overhead de execução. / [en] Dependency injection, a form of inversion of control, is a way of structuring the configuration and composition of software components that brings many benefits such as a loose coupling of components. However, a generic dependency injection framework requires runtime type introspection and this is why dependency injection is popular in Java and almost non-existent in C plus plus. In this work we present a introspection system for C plus plus 11 and show how to use it to improve an implementation of the Service Component Architecture (SCA) for C plus plus. It uses several features of C plus plus 11 such as perfect forwarding, variadic templates and lvalue references to improve usability and minimize overhead.
|
Page generated in 0.0339 seconds