Dissertacao - 2006 - Cristiane Moreira Da Silva
Dissertacao - 2006 - Cristiane Moreira Da Silva
Dissertacao - 2006 - Cristiane Moreira Da Silva
DEZEMBRO / 2006
INSTITUTO NACIONAL DE TELECOMUNICAÇÕES – INATEL
MESTRADO EM TELECOMUNICAÇÕES
2006
2
CRISTIANE MOREIRA DA SILVA
Membros da Banca
3
DEDICATÓRIA
A Deus por estar sempre presente em minha vida me dando forças e me fazendo enxergar
oportunidades para que eu possa ir cada vez mais adiante.
Ao meu orientador professor Dr. Antônio Marcos Alberti pelo apoio e por acreditar e confiar
em minha escolha.
Ao meu co-orientador professor Dr. Anilton Salles Garcia pelo incentivo e pelo apoio moral
e técnico que foram essenciais para a conclusão desta pesquisa.
Aos amigos Mara Rúbia, Lara Mendonça e Willian Hisatugu pela amizade, companheirismo
e pelo apoio.
A Robélia, Aline e a todos os funcionários do INATEL que com uma enorme boa vontade,
facilitaram todas as etapas necessárias para tornar possível minha manutenção no Mestrado.
À querida amiga Susiléa Abreu dos Santos Lima pelo grande apoio e por todos os momentos
engraçados e divertidos, porém bastante produtivos, durante nossa fase de pesquisa.
A amiga Carina Darós pelo apoio necessário para que eu pudesse me dedicar às pesquisas
em um dos momentos mais complicados de meu mestrado.
A minha filha Camila por ser o meu maior incentivo para estar sempre em busca do
crescimento pessoal e profissional.
A todos que direta ou indiretamente contribuíram para a realização de mais esta vitória em
minha vida.
5
SUMÁRIO
LISTA DE FIGURAS...................................................................................................................................................9
RESUMO ....................................................................................................................................................................11
ABSTRACT................................................................................................................................................................12
LISTA DE ACRÔNIMOS..........................................................................................................................................13
1. INTRODUÇÃO ......................................................................................................................................................16
3. A ARQUITETURA CORBA.................................................................................................................................37
6
3.5.3 Limitações ...............................................................................................................................................54
3.6 USO DE FT-CORBA NO CENÁRIO DE EMPRESAS VIRTUAIS ...........................................................................55
7
5.5.1 Integração do Sistema de Busca e Seleção ....................................................................................106
5.5.1.1 Pontos Fracos do Sistema de Busca e Seleção de Parceiros e Soluções Propostas ......................... 106
5.5.1.2 Definição dos Grupos de Tolerância a Falhas ........................................................................................... 108
5.5.1.3 Definição do Domínio de Tolerância a Falhas ........................................................................................... 109
5.5.1.4 Fase de Inserção de uma Empresa na Organização Virtual ................................................................... 112
5.5.1.5 Fase de Anúncio e Resposta ao Anúncio................................................................................................... 113
5.5.1.6 Configuração do Sistema .............................................................................................................................. 116
5.5.2 O Framework da Aplicação ................................................................................................................116
5.5.2.1 Comunicação entre Agentes ........................................................................................................................ 120
5.5.3 Sumário das Melhorias Introduzidas .................................................................................................120
5.5.4 Quadro Comparativo ...........................................................................................................................123
5.5.5 Confiabilidade, Interoperabilidade e Escalabilidade da Plataforma Proposta ............................123
8
LISTA DE FIGURAS
FIGURA 2.1: TIPOS DE REDES DE EMPRESAS..............................................................................................................25
FIGURA 2.2: FORMAÇÃO DE EMPRESAS VIRTUAIS A PARTIR DE UMA ORGANIZAÇÃO VIRTUAL. ................................27
FIGURA 2.3: FASES DO CICLO DE VIDA DE UMA EMPRESA VIRTUAL. ..........................................................................28
FIGURA 2.4: EVOLUÇÃO DA SIGLA CIM. ......................................................................................................................30
FIGURA 3.1: ARQUITETURA OMA................................................................................................................................40
FIGURA 3.2: IDL PROVÊ INDEPENDÊNCIA DE LINGUAGEM DE PROGRAMAÇÃO ENTRE OS OBJETOS. .........................43
FIGURA 3.3: PROCESSO DE GERAÇÃO DE STUBS E SKELETONS A PARTIR DE UMA INTERFACE IDL.........................44
FIGURA 3.4: CHAMADA DE ACESSO REMOTO – TRANSPARÊNCIA DE LOCALIZAÇÃO...................................................47
FIGURA 3.5: ARQUITETURA CORBA...........................................................................................................................49
FIGURA 3.6: COMPONENTES DA ARQUITETURA FT-CORBA.....................................................................................53
FIGURA 4.1: ESTRUTURA GERAL DE SMAS MÓVEIS. ................................................................................................65
FIGURA 4.2: TIPOS DE MIGRAÇÃO. .............................................................................................................................66
FIGURA 5.1: CENÁRIO REPRESENTANDO O CLUSTER E AS ENTIDADES PRESENTES NO SISTEMA DE BUSCA E
SELEÇÃO.............................................................................................................................................................79
FIGURA 5.2: FASES PRINCIPAIS DO PROCESSO DE BUSCA E SELEÇÃO. ....................................................................83
FIGURA 5.3: CENÁRIO PARA SELEÇÃO DE EMPRESAS VIRTUAIS. ..............................................................................84
FIGURA 5.4: CENÁRIO DE UMA ORGANIZAÇÃO VIRTUAL.............................................................................................86
FIGURA 5.5: DOMÍNIO DE TOLERÂNCIA A FALHAS........................................................................................................91
FIGURA 5.6: CENÁRIO DE UMA EMPRESA VIRTUAL.....................................................................................................93
FIGURA 5.7: DOMÍNIO DE TOLERÂNCIA A FALHAS LOCAL. ...........................................................................................95
FIGURA 5.8: CRASH DA RÉPLICA DF3. .......................................................................................................................96
9
LISTA DE TABELAS
TABELA 5.1: REGISTRO DE DBP PARTICIONADO EM QUATRO EMPRESAS. .............................................................101
TABELA 5.2: QUADRO COMPARATIVO DO USO DO SISTEMA DE BUSCA E SELEÇÃO DE PARCEIROS EM TRÊS
DIFERENTES PLATAFORMAS..............................................................................................................................123
10
RESUMO
Uma Empresa Virtual é uma aliança temporária de empresas que se reúnem para partilhar
habilidades ou recursos e suas competências principais, visando melhor responder a
oportunidades de negócios, e cuja cooperação é provida através de redes de computadores. Nesta
dissertação, é apresentada uma proposta de integração de duas plataformas que atuam no
contexto das Empresas Virtuais: a Plataforma de Busca e Seleção de Parceiros, desenvolvida
explorando os benefícios do paradigma de agentes móveis, o que garante maior agilidade e
eficiência no processo de busca e seleção de parceiros para a formação de Empresas Virtuais, e a
Plataforma FT-SALE, cuja proposta é adequar as técnicas de tolerância a falhas, baseadas nas
especificações FT-CORBA, aos ambientes de Empresas Virtuais. Assim, a principal vantagem
desta união é utilização das técnicas de tolerância a falhas na melhoria da confiabilidade do
processo de busca e seleção de parceiros. Além disso, a inserção de um Sistema Multi-Agentes
Móveis (SMAM) no contexto da Plataforma FT-SALE abre outras oportunidades que podem
ser exploradas em trabalhos futuros. Portanto, a principal motivação para este trabalho foi propor
melhorias para o processo de detecção de falhas e o gerenciamento de controle de grupo
(membership) na Plataforma de Busca e Seleção de Parceiros, fornecendo uma maior
confiabilidade na formação das Empresas Virtuais e na comunicação entre objetos. Assim sendo,
esta dissertação apresenta e discute as principais tecnologias por de trás dessas plataformas, bem
como propõe uma nova plataforma chamada de Plataforma FT-SALE/SMAM. Por fim, são
fornecidas algumas diretrizes para a implementação da plataforma proposta.
11
ABSTRACT
12
LISTA DE ACRÔNIMOS
BP Business Process
EA Enterprise Activities
EV Empresa Virtual
13
GSeq Gateway Seqüenciador
IA Inteligência Artificial
IP Internet Protocol
ON Oportunidade de Negócio
OV Organização Virtual
14
RMI Remote Method Invocation (Sun)
TI Tecnologia de Informação
15
1. INTRODUÇÃO
Nas últimas décadas, com o advento da Internet, observa-se uma tendência natural das
empresas na busca de uma rápida integração, e uma busca constante por melhor desempenho
neste espaço virtual. A união temporária de empresas, de forma a colaborar na obtenção de um
produto final, leva à formação das chamadas Empresas Virtuais (EVs). Estas empresas
normalmente são formadas por núcleos originalmente independentes, mas que se unem em busca
de um objetivo comum, e trocam informação de modo a coordenar as suas ações.
Empresas Virtuais podem ser definidas como sendo uma aliança temporária entre
empresas que se dispõem a compartilhar técnicas, ou negócios afins, e pesquisas, de maneira a
melhor reagir às oportunidades de negócios, e cuja cooperação é mantida por uma rede de
computadores, onde cada empresa é um nó da rede. Neste cenário, os mecanismos de
comunicação, para se mostrarem eficientes, devem estar sobre uma infra-estrutura robusta que
garanta segurança, desempenho e alta confiabilidade, principalmente no estabelecimento de
transações entre as empresas e da empresa com o cliente.
16
Entretanto, conectar-se em rede significa sujeitar, mesmo que sob condições
específicas e com algum tipo de controle, a exposição dos sistemas da organização a possíveis
falhas provenientes destas redes, tais como: problemas relativos a atrasos, falhas de comunicação,
problemas com o meio de transmissão, falhas de terminais e demais problemas existentes em
redes de telecomunicações.
Tais falhas, se não forem devidamente tratadas, podem tornar o sistema vulnerável.
Portanto, podem gerar ameaças à integridade e confiabilidade dos dados e serviços oferecidos
pela empresa, além de gerar prejuízos e comprometer a produção do produto final. Este fato pode
resultar em conseqüências desastrosas, tais como altos prejuízos financeiros e uma perda
incalculável da confiança dos clientes e parceiros, visto que, dependendo da gravidade destas
falhas, as mesmas podem ocasionar uma perda parcial, ou até mesmo completa, dos dados desta
organização.
Esta dissertação tem por objetivo principal apresentar uma proposta visando inserir
tolerância a falhas na Plataforma de Busca e Seleção de Parceiros para Empresas Virtuais,
proposta por [Schmidt03], utilizando como base as especificações de CORBA tolerantes à falhas
(FT-CORBA). Para o desenvolvimento desta proposta foram utilizados como ponto de partida o
Sistema Multi-Agentes Móveis, base da Plataforma de Busca e Seleção de Parceiros,
juntamente com a Plataforma FT-SALE [Lima01b], que insere técnicas de tolerância a falhas
em ambientes de Empresas Virtuais através da inclusão de soluções que visam adaptar as
especificações FT-CORBA ao uso em ambientes de larga escala.
Assim sendo, um outro objetivo desta dissertação é propor uma nova plataforma
baseada em Agentes Móveis e técnicas de tolerância a falhas em CORBA. Ou seja, esta
plataforma deve permitir a execução do Sistema de Busca e Seleção de Parceiros, proposto em
[Schmidt03], e superar as limitações de tolerância a falhas existentes neste sistema,
principalmente devido a existência de um único Gerenciador de Grupo. A proposta se dá
através da inserção de um Sistema Multi-Agentes Móveis à Plataforma FT-SALE, dando
origem a uma nova plataforma chamada Plataforma FT-SALE/SMAM. Além disso, este
trabalho apresenta e discute alguns dos principais aspectos das tecnologias que dão suporte a
essas plataformas, bem como fornece diretrizes para a implementação da plataforma proposta.
Baseado nas definições expostas acima, a formação de uma Empresa Virtual pode ser
considerada uma forma de aumentar a eficiência das empresas e de manter estas competitivas no
mercado atual. Entretanto, estas empresas devem possuir uma infra-estrutura de suporte que
permita seu funcionamento em redes de larga escala e a comunicação entre sistemas
heterogêneos. Visando contornar alguns problemas encontrados nos sistemas de Empresas
Virtuais, tais como falhas, e garantir assim a confiabilidade do sistema, principalmente na fase de
criação, alguns trabalhos foram desenvolvidos no meio acadêmico. Neste trabalho, técnicas de
Tolerância a Falhas baseadas nas definições de Tolerância a Falhas do CORBA (FT-CORBA)
serão integradas ao uso de agentes móveis, os quais minimizam as diferenças causadas por seus
sistemas legados e cooperam na resolução das tarefas. Esta união busca prover confiabilidade,
19
flexibilidade e interoperabilidade ao sistema de uma EV. A seguir são apresentados trabalhos
relacionados ao tratamento de falhas e ao uso de agentes móveis em sistemas de EVs:
Uma outra base para a arquitetura proposta nesta dissertação é o sistema de Busca e
Seleção de parceiros para a formação de uma Empresa Virtual, proposto por Ricardo Schmidt em
[Schmidt03]. Este trabalho define uma abordagem para auxiliar a Fase de Criação de EVs
baseada em uma arquitetura híbrida de agentes. São explorados os benefícios do paradigma de
agentes móveis para garantir uma maior agilidade na apresentação das oportunidades de negócios
ao grupo de empresas e uma maior eficiência na formação e análise das possíveis empresas
virtuais. O modelo proposto foi adequado aos sistemas de larga escala, como a Internet, através
de requisitos de interoperabilidade, escalabilidade e portabilidade considerados durante sua
concepção. O trabalho incorporou ainda, aspectos de segurança para a comunicação dos agentes
móveis, fortalecendo o processo de construção de confiança na formação de EVs. Para a
validação do modelo, foi implementado um protótipo que simula uma Organização Virtual
existente onde, dada uma tarefa a ser realizada, efetua-se a busca e seleção de parceiros mais
adequados à composição de uma EV, permitindo inclusive a qualquer membro atuar como um
coordenador deste processo dentro do grupo [Schmidt03]. Outros trabalhos relacionados à
criação de Empresas Virtuais são apresentados em [Schmidt03].
20
confiança SPKI/SDSI, considerando sistemas distribuídos e de larga escala. O esquema é
composto por um protocolo de autenticação mútua para as plataformas envolvidas, por um
autenticador de agentes móveis e por um mecanismo para geração de domínios de proteção.
Devido à flexibilidade dos mecanismos de delegação de certificados SPKI/SDSI adotados, o
esquema proposto forneceu um controle descentralizado de autorização e de autenticação. Foi
feita ainda, uma integração do protótipo a uma aplicação de Busca e Seleção de parceiros para a
formação de Empresas Virtuais baseada em agentes móveis, o que possibilitou analisar a
viabilidade do esquema de segurança proposto para aplicações na Internet.
21
Finalmente, em [Macedo01] também foi desenvolvida uma plataforma computacional,
denominada ForEV (Formação de Empresas Virtuais), que incluiu as metodologias de
negociação reportadas no trabalho em questão.
Outros trabalhos relativos a este assunto são citados nas referências bibliográficas dos
trabalhos mencionadas acima.
Este trabalho está organizado em seis capítulos. Neste Capítulo 1, foram apresentados as
justificativas e os objetivos do trabalho. Em seguida, no Capítulo 2, apresentam-se várias
definições e conceitos relativos as Empresas Virtuais, e ainda uma breve descrição do problema
de Busca e Seleção de parceiros para a formação destas empresas. Ou seja, são apresentadas
algumas definições que envolvem o conceito de Empresas Virtuais e Organizações Virtuais. São
apresentados também os principais conceitos de integração de empresas, modelos de empresas e
justificativas para a necessidade de suporte a tolerância a falhas em Empresas Virtuais. Busca-se
neste capítulo definir vários termos e apresentar os conceitos relevantes ao melhor entendimento
do restante do trabalho.
22
No Capítulo 5 são apresentadas as plataformas: Plataforma de Busca e Seleção de
Parceiros e Plataforma FT-SALE. Uma vez apresentadas estas plataformas, é descrita, de
forma detalhada, a plataforma proposta, ou seja, a Plataforma FT-SALE/SMAM.
23
2. EMPRESAS VIRTUAIS
2.1 Introdução
Para Davidow e Malone, o termo Empresa Virtual relaciona-se primeiramente, com a arte
da organização, no sentido institucional, onde: “O observador externo vê uma estrutura quase
sem contornos, com linhas de divisão, constantemente mutáveis, entre empresa, fornecedor e
cliente”. Por outro lado, há referências onde o termo é comparado ao emprego de recursos
computacionais, que de uma maneira geral significa que todas as características de um objeto
estão presentes, menos o objeto em si.
Somando-se essas duas definições tem-se um objeto que possui todas as características de
uma empresa, sem ser uma empresa com registro legal.
Segundo [Byrne93]:
24
“... cooperação entre empresas para a realização de missões, nas quais desiste-se da
formação de novas instalações ou da formalização contratual através de Joint Ventures
ou Consórcios ou mesmo da compra de novas filiais”.
Segundo [Arnold95]:
Uma definição para o termo Empresa Virtual, formada da combinação entre várias
definições encontradas, é apresentada em [Camarinha99]:
“Uma empresa virtual é uma aliança temporária de empresas que se reúnem para
partilhar habilidades ou recursos e suas competências principais, visando melhor
responder a oportunidades de negócios, e cuja cooperação é provida por redes de
computadores”,
Uma EV corresponde a uma rede de empresas que se manifestam de três tipos, a saber:
- Rede estratégica: orientada para o mercado, servindo para a obtenção de certas metas.
É formada com a direção de uma empresa ao centro, a qual controla todas as atividades, como
por exemplo, montadoras de automóveis.
25
- Rede linear: adapta-se de acordo com a cadeia de valores. A operação linear desde o
fornecedor de matéria-prima passando pelo produtor até o cliente é apropriada para conseguir o
aumento da eficiência no processo de logística.
De acordo com [Toffler80], a história humana pode ser dividida em quatro grandes eras,
caracterizadas pelos nômades, pela agricultura, pela indústria e agora pela informação. As
civilizações correspondentes a cada período reproduzem determinadas características da forma de
organização:
Uma rede é um tipo de organização que se origina como um projeto básico para a
construção de um grupo social. No contexto de empresas, redes significam cooperações estáveis
ou dinâmicas, com a finalidade de explorar oportunidades de mercado. A formação de grupos
dentro destas redes possui características semelhantes aos antigos grupos nômades, onde
determinadas especialidades (competências) para a caça precisavam ser agrupadas.
Desta maneira, uma rede baseada em empresas, apoiada pela informação e baseada em
competências, transforma-se nos grupos de caça da era da informação. Neste sentido, uma
Organização Virtual (OV) pode ser definida como “uma rede estável de empresas, destinada a
formação de EVs, interligadas de acordo com suas competências essenciais e estratégias de
mercado e suportada pela utilização da tecnologia de informação” [Netage96].
26
Em outras palavras, uma Organização Virtual pode ser vista como uma plataforma
estável, onde empresas trocam informações a respeito de oportunidades de mercado e
conseqüentemente utilizam-se dessa cooperação para a formação rápida de uma EV, uma vez que
uma estrutura organizacional já está presente.
A Figura 2.2 ilustra o cenário de uma OV da qual faz parte um grupo de 11 empresas (E1,
E2, E3, E4, E5, E6, E7, E8, E9, E10 e E11), sendo que as empresas E3, E6, E7, E8 e E11
constituem uma Empresa Virtual (EV-1).
Um modelo para a construção desta plataforma (OV) pode ser observado no projeto
Virtuelle Fabrik da Universidade de St. Gallen – Suíça, disponível em [Katzy97a]. Este modelo
contém quatro fases principais para a formação de rede estável de cooperação:
27
3. Construção: fundação da rede como uma organização, juntamente com a
definição de papéis e regras para o processo de coordenação. Nesta fase existe
ainda a transferência de know-how para a difusão das competências existentes
na rede.
A iniciativa para a formação de uma rede estável pode ter diferentes origens, dentre as
quais ressaltam-se os projetos de pesquisas financiados por instituições governamentais.
Um modelo de ciclo de vida foi proposto pelo “Agile Manufacturing Enterprise Forum”
(AMEF), no qual foram estabelecidas as fases desde a criação até a dissolução de uma EV
[Goranson95]. Cada fase envolve decisões que são suportadas por diferentes métodos e
ferramentas, e por um sistema de métricas. No entanto, esta proposta pode ser considerada
genérica, servindo como modelo para a formação de EVs independentemente se as empresas
estão em uma organização ou não. A Figura 2.3 ilustra as 4 fases do ciclo de vida de uma
Empresa Virtual.
Evolução
• Negociação do contrato,
• Compartilhamento de informações,
• Gerenciamento de pedidos,
Fase de Operação – Evoluções são necessárias durante a operação de uma EV, como, por
exemplo, quando é necessário adicionar e/ou substituir um parceiro. Isto deve acontecer durante
eventos excepcionais, como incapacidade do parceiro, necessidade de crescimento das propostas,
etc. Funcionalidades similares às especificadas na criação são necessárias nesta fase.
29
2.2.2 Integração de Empresa
Desta maneira, surgiu então o conceito de “Arquitetura”, com a qual uma empresa
poderia representar o seu funcionamento sobre diferentes perspectivas, representadas por recursos
humanos, estrutura organizacional, informação e processos de manufatura. Nesta época, as
metodologias ainda enfatizavam a utilização de recursos da Tecnologia da Informação (TI), o
que mais uma vez decepcionou as empresas que utilizaram o conceito de Arquitetura sobre esta
perspectiva [Rozenfeld96], uma vez que continuava a dificuldade de integração de sistemas.
Um conceito que surgiu na década de 80 e vem sendo pesquisado até os dias de hoje é o
“Computer Integrated Manufacturing” (CIM). Como Rozenfeld mostra, este conceito muda o
foco de atenção para se ajustar às necessidades das empresas, em busca de melhor desempenho
[Rozenfeld96]. Na sigla, o foco saiu da letra “C” para letra “I”, ou seja, a utilização do
computador, da Tecnologia da Informação, passou a ser uma das visões, na qual uma empresa é
observada. O termo Integração assumiu assim o papel central para a melhora de desempenho de
uma empresa. A Figura 2.4, extraída de [Rentes96], mostra a evolução da sigla.
Segundo [Rentes96], a visão holística de uma empresa equivale a se ter uma “imagem
única”, sintética, de todos os elementos da empresa, tais como estratégias, atividades,
informações, recursos e organização, assim como suas inter-relações.
30
Ressaltada a importância da utilização dos conceitos sobre integração de empresas (IE),
é necessário apresentar os mecanismos que viabilizam os objetivos difundidos por esta área do
conhecimento. Entre os principais mecanismos podem ser citados [Williams95]:
31
A última dimensão é a de Suporte Metodológico que oferece, como o próprio nome diz,
suporte metodológico, ferramental e de conhecimento para a aplicação dos métodos de
integração. Esta dimensão contém instrumentos para o estabelecimento da Visão de Processos de
Negócios e para o processo de condução dos métodos de intervenção.
o Definição das Ações de Integração. Cada fase pode ser vista como uma
classe de técnicas de intervenção que pode ser encontrada na literatura.
32
o Desenvolvimento/Reengenharia, Gerenciamento de Custos, Seleção ou
Desenvolvimento de Soluções, Seleção de Tecnologias.
Como visto anteriormente, uma empresa virtual pode ser definida como uma aliança
temporária de empresas que, apoiadas por redes de computadores, se reúnem de forma a compartilhar
recursos e suas competências principais, com a finalidade de atender a oportunidades de negócios.
Entretanto, esta união de empresas deve ser feita de forma confiável e ágil, para poder atender
a dinâmica imposta no mercado atual. As competências principais das empresas que formarem a
parceria devem estar relacionadas à modalidade de serviço exigida em uma nova Oportunidade de
Negócio (ON), não somente em termos de recursos tecnológicos ou de habilidades e serviços, mas
também em termos de prazos e custos necessários, para que a mesma possa concluir sua parte da
tarefa. Neste caso pode-se excluir a participação de empresas que não se encaixam nestas condições.
Dada uma nova Oportunidade de Negócio, deve-se dar inicio á primeira fase da Empresa
Virtual, ou seja, a fase de Criação. O processo de Busca e Seleção de parceiros é realizado
durante a fase de criação da Empresa Virtual, visto que é necessário encontrar aqueles que serão
os responsáveis por atender esta oportunidade. Outro momento que as atividades de busca e
33
seleção são necessárias é quando a EV já está na sua fase de operação e surge a necessidade de
substituição de um ou mais membros [Schmidt03].
3) Controle de alterações.
34
comunicação, pode causar sérios prejuízos. Estas falhas devem ser devidamente tratadas. Desta
forma, as aplicações de uma empresa precisam dispor de técnicas de tolerância a falhas, as quais
tornarão possível a continuação de um serviço, mesmo na presença de falhas [Batalha01].
Soluções para falhas em ambiente de empresas virtuais são vistos com maiores detalhes no
Capítulo 5.
[Rozenfeld96] define o modelo de empresa como sendo uma ferramenta que viabiliza e
suporta diversas atividades de implantação de novas tecnologias, filosofias e métodos na
manufatura. Ele deve servir de suporte para:
36
3. A ARQUITETURA CORBA
3.1 Introdução
Um software voltado para aplicações distribuídas heterogêneas deve lidar com quase
todos os problemas normalmente encontrados na programação de sistemas distribuídos, tais
como: falha de algum dos sistemas na rede; o particionamento da rede; problemas ligados ao
controle de uso e ao compartilhamento de recursos na rede; e também com a segurança.
O nível de dificuldade que surge com esta situação aumenta significativamente quando
aumenta o número de diferentes plataformas na composição da rede. Observa-se que a
heterogeneidade, neste contexto, não se refere tão somente ao hardware de computação e aos
sistemas operacionais.
37
De maneira geral, duas regras devem ser observadas no projeto de aplicações para
sistemas distribuídos heterogêneos: empregar modelos e abstrações independentes de plataforma;
e esconder ao máximo as complexidades de baixo nível sem que se sacrifique demais o nível de
desempenho.
Entre as diversas tecnologias existentes no mercado, para este fim, pode-se citar:
1
Partes dos softwares responsáveis pela intercomunicação entre os vários objetos distribuídos em uma rede.
38
3.2 Grupo de Gerenciamento de Objetos – OMG
A OMG (Object Management Group) é uma fundação, sem fins lucrativos, formada no
final dos anos 80, pela união de várias companhias interessadas em desenvolver um ambiente
com a capacidade de manipular a heterogeneidade e a distribuição das aplicações modernas.
Segundo [Montez97], os quatro elementos principais que compõem a OMA podem ser
definidos da seguinte forma:
39
distribuídos através do nome), serviço de transações (permitem descobrir objetos
distribuídos através de propriedades), serviços para gerenciamento de ciclo de vida
de objetos remotos, segurança, transações, notificação de eventos, entre outros.
Serviços de Objetos
41
podem criar referências a objetos, nem podem acessar ou modificar o conteúdo
de uma referência a objeto.
Vale lembrar que os termos cliente e servidor, tal qual apresentado anteriormente, são
significativos somente no contexto de um pedido em particular, pois a aplicação que é cliente
para um pedido pode também ser o servidor para um outro pedido qualquer, e vice versa.
Para que se possa emitir chamadas para operações em um objeto distribuído, o cliente
precisa conhecer a interface que é oferecida pelo objeto. Para descrever interfaces, ou seja,
especificar um “contrato” entre os objetos clientes e servidores, padronizando suas ofertas e usos
42
de serviços, o CORBA utiliza a Linguagem de Definição de Interfaces (em inglês, Interface
Definition Language ou IDL), a qual é puramente declarativa2 baseada em C++, garantindo
desta forma a interação entre objetos distintos de linguagem, sistema operacional e localização.
Uma interface de um objeto define as operações que ele suporta e o tipo de dados que podem ser
passados de/para essas operações.
Mapeamentos de linguagens especificam como a IDL pode ser traduzida para diferentes
linguagens de programação, definindo que facilidades da linguagem de programação precisam
ser empregadas para que se possa viabilizar a construção IDL para as aplicações [Teixeira00].
Atualmente uma interface definida em IDL está associada a seu mapeamento específico,
descrito no Modelo de Objetos CORBA, para as linguagens: C, C++, Java, Smalltalk, ADA e
COBOL [Filho00].
ORB
2
A IDL não é uma linguagem de programação, de modo que, evidentemente, os objetos e as aplicações não podem
ser implementados em IDL [Teixeira00].
43
3.3.3 Stubs e Skeletons
Skeletons da
Interfacee A
Compilador
Definição da de IDL para a
Interface A em
Linguagem do
IDL
Servidor Stubs da
Interface A
Figura 3.3: Processo de geração de Stubs e Skeletons a partir de uma interface IDL.
O stub e o skeleton são criados a partir da compilação da interface IDL do Cliente e do Objeto, respectivamente.
Quando um Cliente emite uma solicitação, ele só precisa dizer ao stub para qual Objeto ela é destinada, não devendo
importar se o Objeto está situado a nível local ou não, garantindo desta forma a transparência nos sistemas distribuídos
[Souza98].
Os stubs são também conhecidos como proxies por possuírem a capacidade de localizar
o objeto destino e, junto com o ORB, empacotar a mensagem, possibilitando seu envio pela rede,
caso necessário. Os skeletons, por sua vez, recebem solicitações do ORB, e têm a função de, a
partir desta solicitação, desempacotar a mensagem e entregá-la à implementação do Objeto,
podendo ainda fazer o processo inverso, caso haja resposta.
Uma vez que as Empresas Virtuais se encaixam no perfil de redes de larga escala e
heterogêneas, a busca de uma infra-estrutura de integração para os sistemas distribuídos que
forma a EV é um passo fundamental. A arquitetura CORBA provê um ambiente de suporte ao
desenvolvimento de novos sistemas e/ou um ambiente para a integração de aplicações, no qual
novos sistemas podem ser construídos através da composição de funcionalidades prontas em
sistemas (ou subsistemas) já existentes [Teixeira00].
45
O protocolo IIOP emprega um formato de mensagem chamado GIOP (General Inter-
ORB Protocol), que define um conjunto de primitivas de comunicação, independentes das
camadas de transporte e de rede, e que permite a comunicação entre ORBs.
O código para um servidor inclui: (i) o código que implementa os objetos que ele contém
(seus tipos), (ii) uma função principal (main (), em C++) que inicializa o servidor e,
normalmente, cria um conjunto inicial de objetos. Os objetos em um servidor podem ser todos do
mesmo tipo, ou de diferentes tipos ou ainda objetos não-CORBA, sem qualquer dificuldade e
sem a exigência de se empregar código especial. Na Figura 3.4 a seguir, extraída de
[Reverbel06], é possível se visualizar a chamada remota a um objeto CORBA do servidor da
Máquina Y, feita pelo cliente da Máquina X. Observa-se ainda, que um servidor não pode ser
invocado pelos clientes, somente seus objetos CORBA podem.
3
Threads (Linhas de execução) fornecidas pelo próprio Sistema Operacional (conhecidas como KLT, pois são em nível de
Kernel) ou implementadas por bibliotecas de uma determinada linguagem (conhecidas como ULT, pois são em nível de usuário).
Um thread é uma maneira de um processo dividir a si mesmo em duas ou mais linhas de tarefas simultâneas. Um uso comum
dado aos threads é, por exemplo, ter uma thread para prestar atenção a um ambiente, enquanto outras threads fazem outros
cálculos [Wikipedia - http://pt.wikipedia.org/wiki/Thread ].
46
Máquina X Máquina Y
O cliente simplesmente chama um método sobre uma referência a objeto. O ORB se encarrega de mandar uma mensagem
de requisição, esperar a mensagem de resposta e retornar os resultados para o cliente. Desta forma, para o cliente o
procedimento parece uma chamada de método normal [Reverbel06].
47
- tipo blocking (bloqueante): tipo mais comum (default). Caracteriza-se bloqueante pelo
fato de o cliente ficar bloqueado, no aguardo de uma resposta após a execução do código do
objeto alvo.
- tipo non-blocking (não bloqueante): neste caso, permite-se que o chamador execute
em paralelo com o pedido emitido, podendo receber resposta em uma oportunidade posterior.
• O repositório de interfaces;
• O repositório de implementações, e
O fluxo de pedidos da Figura 3.5 segue os seguintes passos: (i) a aplicação cliente envia pedidos através de stubs estáticos
ou através da interface DII, direcionando os pedidos para o núcleo do ORB do Cliente. (ii) os pedidos são direcionados,
pelo núcleo do ORB do cliente, para o núcleo do ORB do servidor. (iii) o núcleo do ORB do servidor envia o pedido para o
adaptador de objetos do servidor, que é responsável pela criação do objeto alvo. (iv) o adaptador de objetos do servidor
transfere o pedido para o servente que estiver implementando o objeto alvo (não mostrado na figura). (v) o servente atende
ao pedido, e retorna a resposta para o cliente [Teixeira00].
49
• Disponibilidade (availability) – probabilidade de o sistema estar disponível
(em pleno funcionamento) num dado momento requerido.
50
• Facilitar a administração de grupos de objetos;
Para uma melhor compreensão das técnicas de tolerância a falhas, são listados a seguir
alguns conceitos básicos de tolerância a falhas no FT-CORBA.
4
O checkpoint é um determinado ponto no qual o estado atual de uma parte do sistema que está no arquivo log é verificado e
copiado no arquivo log das demais partes, permitindo a constante atualização das partes do sistema, mantendo-se assim
consistente [Mendonça02].
5
O logging é o mecanismo pelo qual as requisições feitas pelo usuário, a uma parte do sistema que está distribuído em algum
meio físico, são gravadas em um arquivo log, para que em caso de falha, uma outra parte do sistema que assumir o lugar do
anterior, seja capaz de obter o estado corrente e assim dar continuidade ao processo [Mendonça02].
6
A IOGR (Interoperable Object Group Reference) é utilizada para referenciar objetos replicados. Trata-se da representação
alfanumérica de todos os membros de um grupo de objetos, a partir do qual os clientes podem localizar dentro de um determinado
domínio de tolerância a falhas, o objeto de interesse.
51
passam a formar um grupo de objetos, passando, portanto, a terem uma
referência única (IOGR), simplificando desta forma o mecanismo de
replicação e contribuindo para tornar as invocações e as falhas totalmente
transparentes ao usuário.
52
Cada domínio possui um conjunto de componentes definidos na infra-estrutura de
tolerância a falhas FT-CORBA, que atuam exclusivamente dentro deste domínio. Entre eles
encontra-se o Gerenciador de Replicação, o Notificador de Falhas e o Detector de Falhas.
A Figura 3.6 representa dois terminais de um domínio de tolerância a falhas, o Host 2 e o Host 3, sendo monitorados
pelos componentes de tolerância a falhas do domínio. Observa-se a presença dos Detectores de Falhas de Objetos
(DFO), dos Detectores de Falhas de Processos (DFP), dos Detectores de Falhas de Host (DFH), do Notificador (NF)
e do Analisador de Falhas (AF), do Gerenciador de Replicação (GR) e dos Consumers (Csms), que se registram no
notificador para receber informações de eventos de falhas. As setas tracejadas indicam monitoração, e as setas contínuas
indicam eventos de falhas que estão sendo reportados.
53
Entre suas principais funções pode-se destacar o gerenciamento da criação de
grupos e a criação de objetos de um grupo [Mendonça02].
3.5.3 Limitações
54
requisitadas pelos clientes sejam imprecisas, caso tenha ocorrido, durante o
processamento, erros que possam ter danificado os dados;
55
é fundamental na implementação de replicações ativas em sistemas distribuídos. A tolerância a
falhas em redes de larga escala envolve complexidades adicionais tanto na comunicação, como
na gestão dos componentes do sistema distribuído.
7
RT-CORBA é a extensão do CORBA para tratar de sistemas em tempo real.
8
CORBAsec é a extensão do CORBA para tratar de sistemas seguros.
56
4. SISTEMAS DE AGENTES MÓVEIS
4.1 Introdução
No mundo real é visível a presença de múltiplos agentes, visto que, a todo o momento,
as pessoas necessitam planejar as suas ações considerando potenciais ações dos outros membros
da sociedade, os quais podem influenciar de alguma forma a sua própria atividade.
57
Este capítulo aborda alguns conceitos básicos de Sistemas Multi-Agentes e Sistemas
Multi-Agentes Móveis, objetivando uma melhor compreensão do sistema de busca e seleção de
parceiros para a formação de uma empresa virtual [Schmidt03], o qual é a base da plataforma
proposta neste trabalho. São abordados, neste capítulo, alguns aspectos sobre a interoperabilidade
entre agentes. São apresentados ainda, os agentes que compõem o sistema de busca e seleção. Por
último, alguns métodos de tolerância a falhas aplicados a sistemas de agentes móveis são
brevemente descritos.
Estes sistemas visam, entre outras coisas: resolver problemas cujo tamanho ou
complexidade são tão grandes, que se torna impossível resolvê-los através do uso de processos
simples; facilitar o desenvolvimento e a manutenção dos sistemas; reduzir custos e limitação de
recursos e melhorar questões de adaptabilidade, eficiência, velocidade e confiança nos sistemas.
Uma das principais razões que despertou a necessidade de se distribuir inteligência foi o
crescimento da complexidade dos sistemas computacionais, como, por exemplo: aplicações de
larga escala (como as das Empresas Virtuais), as quais necessitam interligar múltiplos sistemas,
quase sempre heterogêneos e normalmente distribuídos geograficamente.
4.3 Agentes
A principio, ainda não existe uma definição universalmente aceita para o termo “agente”.
No seu sentido mais restrito, o termo pode ser aplicado a toda uma gama de entidades, incluindo
os sistemas de software [Gomes00].
Existem na literatura muitas definições publicadas para o termo agente, porém torna-se
inconveniente uma definição fechada, visto que a mesma pode limitar o campo de estudo. Desta
forma, é apresentada neste trabalho uma definição dada por [Wooldridge99], a qual possui a
vantagem de ser genérica o bastante para permitir uma ampla gama de estudos e ainda descreve
propriedades nas quais podem ser identificadas definições de agente comumente encontradas na
literatura [Gomes00].
9
Alguns problemas devem ser mantidos distribuídos, por questões de controle da privacidade dos dados, por
exemplo, organizações independentes mantêm os dados privativamente, por razões competitivas [Gomes00].
59
As propriedades do agente definem qual é a classificação do agente, ou seja, um agente
inteligente, reativo, capaz de aprender, etc. Estas propriedades correspondem as características de
um sistema, que são resultados diretos de sua arquitetura ou dos seus níveis de operação.
Segundo [Fleischhauer98], entende-se por arquitetura a porção do sistema que fornece e gerência
os recursos primitivos de um agente.
Ainda de acordo com [Fleischhauer98], para que o sistema seja considerado agente, é
recomendável que o mesmo apresente algumas propriedades, tais como:
• Operações sem Conexão – O agente móvel pode executar tarefas mesmo com
a conexão fechada. Quando se faz necessário a transferência de agentes,
aguarda-se até que a conexão seja restabelecida;
62
agentes móveis. Ele também suporta serviços que estão relacionados com o próprio AAM,
serviços que dizem respeito ao ambiente onde o AAM está implementado, e serviços para
suportar o acesso a outros Sistemas de Agentes Móveis”.
63
4.6 Sistemas Multi-Agentes Móveis (SMAs Móveis)
Como visto anteriormente, agentes móveis podem ser definidos como agentes de software
que possuem a habilidade de se mover entre os diversos terminais em uma rede. De acordo com a
aplicação em execução, os agentes móveis são capazes de migrarem para o terminal onde os
dados de interesse da aplicação se encontram armazenados, selecionarem informações de que o
usuário necessita e retornam com os resultados para o terminal inicial.
Existem alguns cenários, onde o agente é projetado apenas para transferir os dados
encontrados, deixando a tarefa de seleção das informações para outros agentes, e ainda alguns
cenários nos quais os agentes móveis são projetados para trocar mensagens com os agentes que
efetivamente transferem, processam ou retornam as informações para os usuários. As
funcionalidades básicas de agentes móveis estão relacionadas aos requisitos das aplicações onde
estes serão utilizados.
Portanto, para que ocorra a execução de agentes móveis em uma rede é necessário que
exista uma infra-estrutura de rede necessária à mobilidade dos agentes, o servidor de agentes e o
contexto de execução dos agentes fornecido pelo servidor. A Figura 4.1, extraída de [Gomes00]
ilustra a estrutura geral necessária para a execução de agentes móveis sobre uma rede de
comunicações.
64
Host A Host B
Agente
Servidor de Agentes Mòvel Servidor de Agentes
Contexto Contexto
Agente
Estacionário
Plataforma Plataforma
Rede
65
novo contexto do agente. Independente do tipo de migração, o agente tem sua
execução reiniciada sem perda dos valores de seus atributos internos.
66
• Execução Assíncrona e Autônoma – Ao invés de manter uma conexão
permanente entre duas aplicações, o uso de agentes móveis permite que a conexão
seja estabelecida somente para enviar o agente móvel, e posteriormente para
retornar o agente com os resultados encontrados. Desta forma, não é exigida a
sincronização entre a conexão e o processamento das tarefas. De acordo com
[Lobato05], isto é possível porque, após a transferência, os agentes móveis
tornam-se independentes da máquina original e operam de maneira assíncrona.
67
para a garantia da confiabilidade, tais como: restrições de acesso aos recursos das máquinas ou
autenticação para garantir a confiabilidade do código, visto que não é sempre que se pode confiar
em códigos provenientes de outras máquinas. Desta forma, torna-se possível impedir que um
código malicioso provoque danos aos terminais destinatários de agentes móveis [Gomes00].
Como visto, o ambiente no qual residem os agentes móveis é quase sempre heterogêneo.
E mais, os agentes durante o seu ciclo de vida migram constantemente de terminal. De acordo
com [Schmidt03], nestas redes, freqüentemente, as plataformas para agentes móveis são
diferentes, fato que gera o problema de heterogeneidade, e por conseqüência, a não
interoperabilidade.
De acordo com [Schmidt03], “a padronização MAF atinge três pontos importantes: (i)
gerenciamento de agentes: criação, desativação, encerramento, entre outros eventos; (ii)
transferência de agentes: infra-estruturas comuns para permitir o livre deslocamento; e, (iii)
nomes de agentes e de sistemas de agentes: uso de sintaxe e semântica padrão para a
identificação de agentes”.
A comunicação entre os agentes é uma questão ainda não abordada pela MAF. Entretanto,
é uma das questões bastante discutidas na arquitetura CORBA, um padrão também estabelecido
pela OMG. Assim, a comunidade de agentes móveis enxerga a comunicação entre agentes como
sendo, na maior parte do tempo, a troca de objetos ou de referências para objetos e requisições de
serviços.
A visão de interoperabilidade entre agentes móveis não deve ser considerada como sendo
apenas um problema de diferentes sistemas e plataformas possíveis de serem visitadas. Deve-se
abordar ainda o lado da comunicação entre estes agentes. Questões como a interação entre
agentes em plataformas diferentes, ou entre agentes e fontes de informações ainda precisam ser
respondidas. Esta interação inclui a troca de mensagens, a localização das fontes de informações,
a sua identificação e avaliações de relevância de informações. Uma última questão ainda, de
acordo com [Schmidt03], “é a falta de abordagens declarativas para agentes móveis, onde o
agente simplesmente especificaria a tarefa que deve ser realizada, deixando os detalhes de como
fazer para quem recebe o pedido”.
69
4.6.4. Linguagem de Comunicação de Agentes
Para lidar com estas questões, utiliza-se uma linguagem formal de comunicação de
agentes chamada ACL (Agent Communication Language). Em português se utiliza o termo LCA,
que significa Linguagem de Comunicação de Agentes. As linguagens mais populares são
FIPA-ACL, da FIPA, e KQML (Knowledge Query and Manipulation Language), da ARPA.
Na próxima seção é feita uma breve apresentação da linguagem KQML, que é utilizada
pelo sistema de busca e seleção de parceiros em empresa virtuais, conforme será visto no
70
próximo capítulo. A linguagem FIPA-ACL é mais recente que a KQML, porém é similar e
possui o mesmo objetivo.
4.6.4.1 KQML
A linguagem KQML, cuja tradução de acordo com [Schimdt03] seria algo como
Linguagem para Manipulação e Consulta de Conhecimento, foi projetada para suportar a
comunicação entre agentes. A linguagem KQML é hoje considerada como a proposta padrão
mais utilizada como linguagem de comunicação entre agentes [Loss03].
Um ambiente onde os agentes se comunicam através da KQML pode ser enriquecido com
agentes “facilitadores”, que fornecem aos demais agentes, funções adicionais para trabalhar em
forma de rede, como: funções de associação de endereços físicos com nomes simbólicos,
registros de agentes e ou outros serviços oferecidos e/ou requisitados pelo agente, melhoria nos
serviços de comunicação, como por exemplo, encaminhamento e difusão [Loss03].
4.6.5. Ontologia
Para que agentes possam trocar informações é necessário não somente um formato
comum e uma linguagem de comunicação, mas também um modelo comum do mundo, ou seja, é
necessário que os agentes estejam de acordo com uma ontologia comum.
71
Entende-se por ontologia uma especificação explicita de uma conceitualização. Por
conceitualização entende-se uma visão simplificada e abstrata do mundo, onde se representam
formalmente os objetos, conceitos e outras entidades que existem em alguma área de interesse, e
relações entre elas [Macedo01]. Desta forma, a ontologia fornece um vocabulário de
representação para um domínio específico e, ainda, um conjunto de definições e axiomas que
restringem o significado dos termos nesse vocabulário, permitindo uma interpretação consistente
dos dados existentes no vocabulário.
Portanto, uma comunicação ideal entre os agentes se dá com a união de uma linguagem de
comunicação comum, um conteúdo de linguagem comum e uma ontologia partilhada, pois desta
maneira os agentes conseguem se comunicar na mesma forma, na mesma sintaxe e com o mesmo
entendimento do mundo.
Como visto anteriormente, um agente móvel pode ser definido como um programa
autônomo de computador que viaja através de uma rede de computadores heterogêneos.
10
Uma mesma expressão tem o mesmo significado para qualquer agente [Macedo01].
11
Um conceito é designado pela mesma expressão em qualquer agente [Macedo01].
72
computador onde ocorre a execução. Nos demais defeitos, o ambiente de execução
entra em colapso, direta ou indiretamente, podendo levar a perda total do agente.
Os agentes móveis podem ser executados em pequenas redes, ou em grandes redes, tal
como a Internet. As grandes redes são ambientes propícios a atrasos, falhas de comunicação e
demais problemas existentes em redes de computadores. Desta forma, torna-se necessário à
adoção de técnicas de tolerância a falhas que permitam, por exemplo, informar ao proprietário de
um agente criado, se o mesmo foi perdido ou se a execução do agente está atrasada devido a
problemas no meio de comunicação, evitando desta forma problemas como: i) execuções
simultâneas do mesmo agente e ii) situação bloqueante. No primeiro caso, diante da hipótese
de que o agente tenha se perdido, o proprietário recria o agente lançando-o novamente na rede, o
que implicará em execuções simultâneas do mesmo agente em determinados terminais, caso o
mesmo não tenha sido perdido, possivelmente encontrando-se atrasado. No segundo caso, o
proprietário fica aguardando pelo término da execução do seu agente, mas se este foi perdido,
ocorrerá uma espera infinita (situação de bloqueio).
Nesta seção são apresentadas, de forma sucinta, três técnicas de tolerância a falhas
aplicadas em sistemas de agentes móveis. São elas [Fioreze03]:
73
armazenadas, de forma segura, pelo computador A, antes do início da execução do
agente. Caso o computador A falhe, estas informações podem ser recuperadas após
a restauração do mesmo, permitindo que o agente continue sua execução. Porém,
esta técnica é bloqueante, visto que o dono do agente fica no aguardo do final da
execução que não ocorrerá até que o computador A seja recuperado.
74
Uma cooperação pode ser de vários tipos e ser realizada em vários níveis, de acordo com
as capacidades das entidades envolvidas. A cooperação está fortemente ligada à aplicação
específica, pois a sua base de trabalho implica na procura coletiva de um objetivo comum (a
resolução de um problema naquele domínio). A forma como a cooperação se desenrola depende,
obviamente, de como o problema a resolver é decomposto e distribuído.
Uma Empresa Virtual se encaixa no perfil dos SMAs, pois pode ser considerada como um
nó na federação, que mantém sua autonomia local nos dados e define um conjunto de esquemas
exportáveis pelo qual os dados são disponibilizados a outros nós específicos. Além disso, todo nó
pode importar dados de outros nós através dos seus esquemas importáveis, tendo acesso aos
dados deles de acordo com as permissões de acesso predefinidas. Como conseqüência desta
facilidade geral de interação, a aproximação permite não só uma cooperação, mas também
suporta a coordenação dos nós federados (grupo de empresas envolvidas) para realizar uma
tarefa, enquanto são preservadas a autonomia local e independência de cada nó [Rabelo00].
75
oportunidades de negócios ao grupo de empresas e uma maior eficiência na formação e análise
das possíveis empresas virtuais a serem constituídas [Schmidt03].
76
5. PLATAFORMAS PARA EMPRESAS VIRTUAIS
5.1 Introdução
Este capítulo tem por objetivo apresentar a Plataforma FT-SALE/SMAM. Ou seja, este
capítulo apresenta o modelo conceitual para o processo de inserção de técnicas de tolerância a
falhas no ambiente de uma Empresa Virtual formada sob um Sistema de Multi-Agentes Móveis
(SMAM). O modelo proposto segue as especificações gerais dos serviços de tolerância a falhas
do CORBA (FT-CORBA), com a introdução de algumas funções que visam adaptar a
plataforma proposta ao ambiente de agentes híbridos.
Para melhor compreensão da plataforma proposta, são apresentadas duas plataformas que
atuam no contexto das Empresas Virtuais: a Plataforma de Busca e Seleção de Parceiros
[Schmidt03], desenvolvida baseada no paradigma de agentes móveis, que garantem maior
agilidade e eficiência no processo de busca e seleção de parceiros para a formação destas
empresas, e a Plataforma FT-SALE [Lima01a], cuja proposta é adequar as técnicas de
tolerância a falhas, baseadas nas especificações FT-CORBA, aos ambientes de Empresas
Virtuais.
A abordagem que está sendo proposta neste trabalho tem como intuito superar as
limitações técnicas de tolerância a falhas existentes na Plataforma de Busca e Seleção de
Parceiros, que se devem principalmente ao fato da existência de um único Gerenciador de
Grupo. Portanto, a principal vantagem da união destas plataformas é a utilização das técnicas de
tolerância a falhas na melhoria da confiabilidade do processo de busca e seleção de parceiros.
Além disto, a inserção de um Sistema Multi-Agentes Móveis no contexto da Plataforma FT-
SALE abre outras oportunidades que podem ser exploradas em trabalhos futuros.
77
5.2 Plataforma de Busca e Seleção de Parceiros em Empresas Virtuais
5.2.1 Componentes
Nesta seção é feita uma breve apresentação dos agentes e demais entidades componentes
do sistema de busca e seleção de parceiros para formação de EVs originalmente proposto em
[Schmidt03], o qual será base para a plataforma proposta neste trabalho. São apresentadas, de
forma sucinta, as definições das funções e o comportamento de cada agente durante o processo de
busca e seleção.
O Sistema de Busca e Seleção de Parceiros está sob uma plataforma híbrida, a qual
combina agentes estacionários e móveis. Os agentes estacionários possuem as funções de
coordenadores do processo de busca e seleção e representantes das empresas de uma
Organização Virtual (OV) (atividades que exigem um nível de segurança das informações que os
agentes móveis não podem fornecer). Já os agentes móveis são utilizados para explorar sua
habilidade de deslocamento pela rede, quer para buscar/levar informação, quer para interagir
localmente com outros agentes/sistemas.
12
O papel de cada agente existente no sistema de Busca e Seleção é descrito em detalhes em [Schmidt03], assim como o papel
do Broker humano.
78
• Agentes móveis – Deslocam-se entre as empresas e a cada empresa “visitada”
coletam e armazenam informações, podendo, inclusive, analisá-las localmente e
solicitar reavaliação dos dados recebidos.
• Agentes Móveis Broker (AM) – Criados pelo agente Broker para auxiliar no
processo que o Agente Broker está coordenando. Carregam informações sobre a
ON em questão e obtém dados nos locais por onde passam com a finalidade de
auxiliar na escolha das empresas com capacidade para integrar a EV. Assim como
seu criador, é um agente temporário. A tarefa a ser desempenhada pelo agente
móvel é modelada como uma missão, obtida em uma biblioteca de missões. Este
agente pode ter diferentes missões:
80
o Agente Negociador – Quando fazendo uso das informações obtidas
vai-se em busca de melhores resultados que aqueles fornecidos
inicialmente.
Entre os agentes apresentados acima, o que requer mais atenção para a proposta deste
trabalho é o Agente Gerenciador de Grupo, responsável pelo controle de membership. Este agente
cria um ponto de vulnerabilidade no sistema, visto que todo o controle de grupo é feito em um
único ponto do sistema, o que não é aconselhável, pois um único ponto de controle torna o
sistema susceptível à falhas.
O Sistema de Busca e Seleção de Parceiros para Empresas Virtuais possui uma arquitetura
híbrida composta por agentes estacionários e agentes móveis, e, ainda, sob a perspectiva do
fluxo de controle, passa por uma etapa de interação com um agente humano (Broker humano)
responsável por analisar informações de considerável importância para a formação da Empresa
Virtual. O agente humano toma as decisões relevantes que não podem ser deixadas para o
sistema decidir por si só.
81
formada, pois há uma tarefa a ser realizada, provendo informações para que a empresa possa
decidir em candidatar-se ou não [Schmidt03].
Assim que for criado por um especialista de uma Empresa X qualquer, o Agente
Empresa deve efetuar o registro da empresa X junto ao Gerenciador do Grupo, possibilitando
aos demais participantes tomar conhecimento da existência da empresa X.
Após a fase de Anúncio, são emitidas as Respostas ao Anúncio. Estas respostas servem
para definir a relação das empresas interessadas em participar da EV. De posse desta relação,
parte-se para a fase de Busca de Informações referentes às empresas interessadas. Esta procura é
feita com o levantamento de dados das empresas, principalmente dados referentes à sua
capacidade de produção, como disponibilidade, prazo de entrega dos produtos e ainda, dados de
custo. O principal objetivo da fase de Busca de Informações é determinar quais são as empresas
responsáveis por quais tarefas.
Segundo [Schmidt03] “uma tarefa a ser atendida é composta por várias “subtarefas” a
serem distribuídas entre os participantes da EV. Assim, uma empresa pode assumir a realização
de mais de uma destas subtarefas e, para isso, as informações presentes em Dados da Tarefa
visam especificar quais itens o candidato pretende realizar. Conforme uma subtarefa tenha
vários interessados em realizá-la, os “vencedores” são determinados com base nas informações
coletadas junto aos candidatos. Isto possibilitará a escolha da empresa que melhor atenda a
requisitos como qualidade, prazo ou custo”.
82
A Figura 5.2 ilustra as fases principais do processo de Busca e Seleção.
A proposta feita em [Schmidt03] é automatizar parte deste processo, fazendo com que as
decisões tomadas pelo responsável, o Broker, sejam auxiliadas por dados coletados e pré-
processados por agentes móveis e estacionários. Por exemplo, a formação de grupos possíveis
entre as empresas candidatas a uma dada tarefa.
83
interoperabilidade13, conforme discutido no capítulo anterior. Para a troca de mensagens entre os
agentes, são usadas as linguagens de comunicações KQML e XML.
Os agentes móveis terão como função deslocar-se pelas empresas em busca de informações de Evs. Após obter as
informações necessárias, o agente móvel deve retornar para o Broker trazendo consigo as alternativas de empresas virtuais,
classificadas a partir de indicadores de desempenho previamente definidos para avaliá-las.
13
São considerados aspectos de segurança e ainda, a possibilidade que vários Brokers existam no sistema, cada um coordenando
um processo de formação de EV.
84
1. Dada uma nova ON, o Agente Empresa (AE) determina a criação de um Agente
Broker;
10. As empresas selecionadas são notificadas, pelo broker, sobre o resultado final. Isto
é feito através do envio de uma mensagem que corresponde ao acordo de negócio.
85
5.2.3 Componentes de uma Organização Virtual
Em uma Organização Virtual (OV), o termo Empresa Virtual (EV) refere-se a todo grupo
de empresas físicas (E) que se unem com a finalidade de executar um serviço e ou um produto
final. Vale a pena lembrar, que estas empresas estão conectadas através de uma rede de
computadores, quase sempre com arquiteturas e sistemas heterogêneos.
Como exemplo de uma OV, temos o Grupo de Empresas da figura, onde existem 3 Evs. A EV-1 é composta pelas
empresas E10, E9, E11 e E12; a EV-2 é composta pelas empresas E1, E4, E5 e E7; e a EV-3 é composta pelas empresas
E1, E2, E3 e E6, onde cada uma possui o seu próprio Broker. Existem ainda as empresas E8 e E13 que, embora façam
parte da Organização Virtual, não se encaixam no perfil das necessidades das Nos que originaram as Evs existentes no
exemplo. Neste caso, estas empresas não participam da composição da EV-1, nem da EV-2 e nem mesmo da EV-3.
86
Com base no modelo proposto em [Schmidt03], cabe notar que cada EV possui um
Broker (elemento de organização) responsável por decidir sobre a composição da empresa virtual
que melhor se adapta às necessidades de uma nova ON. Desta forma, várias empresas virtuais
podem ser criadas dentro de uma OV, dividindo a carga de processamento entre os diversos
Brokers existentes.
No caso de existir mais de um Broker para o mesmo grupo, torna-se necessário que cada
empresa adquira informações sobre os outros membros do grupo. E ainda, quando acontece a
inclusão de uma nova empresa, esta precisa buscar informações sobre os membros do grupo e em
seguida as informações sobre a nova empresa devem ser incluídas na relação de participantes do
grupo. Quando ocorre uma exclusão de uma empresa já existente, as informações referentes a
esta empresa devem ser excluídas da relação de participantes do grupo.
Entretanto, como visto no Capítulo 2, uma das principais características de uma Empresa
Virtual é a localização geográfica das empresas que a compõem, que muitas vezes são diferentes
e ou até mesmo distantes. Por este motivo, a comunicação entre estas empresas se dá através de
uma rede de larga escala, em ambientes como a Internet. Todavia, isto torna difícil o
estabelecimento de um único domínio para gerenciar um grupo de objetos.
87
5.2.4 Considerações Sobre a Implementação do Modelo de Busca e Seleção
No entanto, visando dar ainda maior “realismo” ao sistema de Busca e Seleção, foi
sugerida a integração deste a um sistema maior que cobre outras fases do ciclo de vida de uma
EV, tais como a Configuração e Operação/Evolução. O sistema escolhido para tal foi o SC2
(Supply Chain Smart Coordination) [Rabelo02], por tratar de um Sistema Multi-Agente
implementado na plataforma Massyve. O sistema de Busca e Seleção pode ser visto, então, como
um módulo/componente “agentificado” do SC2 para uma função que até então não era suportada.
O sistema SC2 foi implantado em cada um dos “nós”/empresas, podendo interagir com seus
módulos internos, com módulos de uma dada plataforma para EV e com os sistemas legados de
cada empresa.
88
responsável pela interação com sistemas legados, ou seja, ele trata das questões particulares a
cada plataforma onde está situado, realizando comunicação com agentes Aglets nos casos de
requisição e fornecimento de informações. Porém, este fato ocasionou um problema de
interoperabilidade entre agentes criados em plataformas distintas e ainda, de agentes com
sistemas legados, visto que a plataforma Massyve está escrita em C/C++, enquanto que Aglets
está escrita em Java.
89
SALE é feita uma adaptação às especificações FT-CORBA, sem modificações nas interfaces do
padrão CORBA, utilizando como base a solução dada pelo GrouPac 2.014 [Laurindo01] para a
implantação de técnicas de tolerância a falhas em redes de larga escala, juntamente com a
plataforma SALE [Rabelo01], cuja arquitetura integra serviços com diferentes tipos de garantia
(desempenho, confiabilidade e segurança), se tornando adequado para Empresas Virtuais.
14
Sistema que fornece suporte a grupo e tolerância a falhas na arquitetura CORBA.
90
Figura 5.5: Domínio de tolerância a falhas.
A figura ilustra 2 domínios de tolerância a falhas, os quais possuem grupos de objetos replicados. Cada domínio é
composto por várias máquinas (hosts), nas quais se localizam os objetos. Nos domínios 1 e 2, estão localizados três hosts,
sendo que cada um destes hosts possuem objetos pertencentes a um ou mais grupos. Como exemplo, temos que no domínio
1 o host 1 possui um objeto do grupo A, o host 2 e 3 possuem objetos dos grupos A e B e o host 7 possui objetos dos
grupos B e D, sendo que estes pertencem a grupos de diferentes domínios. Portanto, pode-se considerar que o host 7
pertence aos dois domínios de tolerância à faltas.
15
Não confundir com o controle de grupo das Empresas Virtuais.
91
• Membership Estático – Neste caso, os membros do grupo são conhecidos
previamente, em tempo de compilação.
Para prover flexibilidade, os SCG trabalham com membership dinâmico. Existem três
razões pelas quais o conjunto de membros de um grupo pode mudar. São elas:
92
O modelo FT-SALE utiliza como base para a identificação de grupos dentro do cenário
de uma EV as especificações de grupos de domínio do GrouPac.
Para cada DBP, um membro (nó) da Empresa Virtual é eleito como “disparador” do
negócio (coordenador) e os outros como seus fornecedores. A Figura 5.6, extraída de [Lima01b],
ilustra o conceito de um DBP, onde a empresa 2 (nó 2) atua como coordenadora (EV
coordinator), e as empresas 1, 3 e 4 (nós 1, 3 e 4) como seus fornecedores diretos.
Cada empresa é responsável por alguns BPs, os quais representam o valor agregado de
cada empresa na cadeia de produção e as suas respectivas Atividades da Empresa (Enterprise
Activities – Eas). Assim como na plataforma FT-SALE [Lima01a], cada BP é constituído por
uma ou mais operações de manufatura “de baixo nível”, as quais são representadas pelas Eas.
Na Figura 5.6, a empresa 1 (fornecedora) executa 3 BPs (BP1-2, BP1-3 e BP1-4), deve enviar, dentro de certo prazo, o
resultado para a empresa 2 de forma que o BP1-1 seja processado, mantendo assim a cadeia de produção em andamento.
93
Nas especificações de grupo do GrouPac são caracterizados dois tipos de grupos de
domínio:
Por natureza, cada BP é constituído por vários (sub) BPs interdependentes, distribuídos
em várias empresas. Considerando cada empresa um domínio de tolerância a falhas, os BPs
podem ser caracterizados como grupos interdomínios.
As Eas, por sua vez, são atividades próprias de cada empresa que podem ou não estar
envolvidas como o DBP em questão. As Eas não estão distribuídas em diferentes domínios
(empresas), podendo ser caracterizadas como grupos intradomínios [Lima01a].
16
Um detector de falhas é, de maneira simplificada, um módulo do SCG responsável pela monitoração do comportamento dos
membros do grupo. A detecção de falhas é baseada normalmente na associação de cada membro de um grupo a um detector
específico (seu detector). Cada um destes detectores de falhas monitora os membros, ou um subconjunto dos membros, de um
grupo e mantém uma lista de processos suspeitos (membros sob suspeita) [Bessani02].
94
Neste trabalho, foi descartada a hipótese da utilização de apenas um detector de falhas. A Figura
5.7, extraída de [Lima01b], ilustra o processo de Gerência de Falhas no SALE.
O Notificador de Falhas é responsável por enviar a mensagem de falha para o Sistema Gerenciador de Replicação (SGR).
Com isso, o SGR pode atualizar as IOGRs .
A Figura 5.8, extraída de [Lima01b], ilustra uma falha em um dos detectores que
compõem o grupo de detectores do domínio.
95
Figura 5.8: Crash 17 da réplica DF3.
Uma possível falha (crash) no detector DF3 é detectada pelo objeto detector de falhas DF4, o qual envia uma mensagem
“suspeite de DF3” para o objeto detector de falha primário (DF1). O DF1, por sua vez, ativa o protocolo de membership
difundindo uma mensagem de commit para detectar quem ainda continua no grupo. Em seguida, os detectores ativos
enviam uma mensagem de confirmação (ACK ) respondendo ao DF1 que então, com base nos ACKs recebidos cria uma
nova lista. Caso DF1 falhe, o detector escolhido para substituí-lo segue a ordem estabelecida por um Anel Virtual, no qual
cada membro monitora o parceiro imediatamente anterior da seqüência (ver Figura 5.9).
17
A falha por crash ocorre quando um determinado componente não responde a uma requisição e a mais nenhuma requisição
subseqüente.
18
O protocolo clássico de validação atômica em duas fases (em inglês, two-phase commit - 2PC) [Gray78] é a melhor solução até
hoje proposta. Infelizmente, em presença de falhas, a solução é bloqueante. Um protocolo de acordo é considerado não-
bloqueante quando ele permite a tomada de decisão pelos processos corretos, mesmo na ocorrência de falhas. Os protocolos de
validação atômica em três fases (em inglês, three-phase commit - 3PC) ([Keider95], [Guerraoui95]) são não bloqueantes
[Greve01].
96
Figura 5.9: Anel Virtual formado pelos detectores de falhas.
Representação da lógica de substituição que forma o Anel Virtual dos detectores de falhas (DF1, DF2, DF3 e DF4). Caso
ocorra uma falha no detector DF1, por exemplo, o mesmo será substituído pelo detector DF2 que é o próximo detector na
seqüência de substituição imposta pelo Anel Virtual. Em nível de host, os responsáveis pela detecção de falhas são o grupo
de detectores (DF1, DF2, DF3 e DF4). Quando ocorre a falha em um host, todos os processos e objetos deste host são
considerados falhos.
O detector DF2 suspeita do host H2 e avisa ao DF1 (primário) sobre esta suspeita. A partir daí é iniciado o protocolo para
se alcançar o consenso sobre a falha ou não de H2; O DF1 solicita aos outros detectores (DF2 e DF3) para que o próximo
intervalo de monitoração (T(s)), informe sobre o status (vivo ou faltoso) do host H2. Então, cada detector informa ao DF1
sobre o status de H2 e finalmente, o detector de falha primário computa os resultados e decide sobre o status de H2. Então,
97
o DF1 informa ao notificador de falha (NF) que, por sua vez, informa ao SGR, para que este gere uma nova IOGR,
removendo H2 da lista. A nova IOGR é enviada ao grupo de detectores para que estes atualizem suas listas de processos
monitorados [Lima01b].
O serviço de nomes do FT-SALE é dividido em dois níveis: SN-L e SN-G, os quais são
responsáveis, respectivamente, por: (i) gerenciar todas as IOGRs (IORs) dos objetos da
aplicação de um domínio de tolerância a falhas, possuindo em seu contexto de nomes, uma cópia
da IOGR do SN-G; e (ii) gerenciar a IOGR de cada SN-L, possuindo cópias atualizadas das
IOGRs dos SN-L de todos os domínios registrados.
98
A cada substituição do SN-L primário por um backup, é feito um registro em um banco de
dados. A estatística de falhas no SN-L pode ser obtida através do número de registros de falhas
do SN-L da empresa.
A figura ilustra uma alteração dos membros do SN-G de uma das empresas. Com esta alteração, uma nova IOGR será
registrada. Neste caso, o SDF da empresa coordenadora manda a informação para o SGR (passo 1); o SGR por sua vez, se
encarrega de enviar a nova IOGR para os SN-Ls de cada empresa membro (passo 2).
A Figura 5.12 ilustra a alteração de membros da IOGR em uma empresa virtual no caso
de uma falha em algum objeto ou host, que fazem parte do grupo ao qual a IOGR pertence.
99
Figura 5.12: Mudança de membros no SN-L da empresa.
A figura ilustra uma mudança de membros no SN-L da empresa ª Neste caso, o SGR da própria empresa se encarrega de
enviar a nova IOGR para a réplica do SN-G mais próxima (passo 1) e esta se encarrega de difundir a alteração para todas
as outras réplicas SN-G da Empresa Virtual (passo 2).
Definidos os grupos que compõem a Empresa Virtual, torna-se necessário definir a forma
de comunicação entre os componentes destes grupos. Como visto, as Eas formam grupos
intradomínios e os BPs formam os grupos interdomínios.
Para fazer a comunicação entre as Eas pertencentes a uma mesma Empresa, basta que o
cliente obtenha a IOGR desejada no SN-L da própria empresa, para então fazer a ligação. Para
fazer a comunicação entre as Eas pertencentes à Empresas diferentes, as seguintes etapas são
necessárias:
100
• Por fim, deve acessar o SN-L da empresa desejada para obter a IOGR para a
ligação requerida.
Todas as IOGRs dos BPs de um determinado DPB devem ter o mesmo nome registrado
no SN-L de cada empresa. Se um novo BP for introduzido em outra empresa (em uma Empresa
D, por exemplo), este BP terá uma IOGR gerada pelo SGR e deverá, também, ser registrado no
SN-L desta empresa com o mesmo nome (“AACS”) definido para o DBP, como mostra a Tabela
5.1, extraída de [Lima01a].
A Figura 5.13 ilustra um exemplo de comunicação entre BPs. O DBP desta figura é
distribuído entre três Empresas (A, B e C), e é formado por um conjunto de BPs (BP1-2, BP1-3,
BP1-4), respectivamente.
101
Figura 5.13: Comunicação de Grupo no FT-SALE.
A figura ilustra uma comunicação entre BPs, a qual segue os seguintes passos: i) um cliente (Host A3) obtém a IOGR de
um grupo (seta 1), no SN-L da Empresa A; ii) o mecanismo de interceptação de mensagem no cliente verifica se um
grupo é interdomínio ou não; iii) caso o grupo não seja interdomínio, é feita a invocação direta para o grupo (intradomínio);
iv) caso o grupo seja interdomínio (um DPB), o interceptor do cliente desvia a requisição, incluindo o nome do grupo, para
uma das réplicas do Gseq (seta 2); v) as réplicas, então, executam um protocolo para difusão da requisição segundo a
ordem definida pelo parâmetro OrderingType 19 (seta 3); vi) as réplicas do Gseq entram em contato com o SN-L (seta 4),
enviando o nome do DBP e obtendo a IOGR do BP da Empresa a qual pertence; vii) as réplicas do Gseq enviam a
requisição para BP do domínio (seta 5).
A principal função do grupo Gseq é servir de ponte para a difusão de uma mensagem
entre os diferentes subgrupos de um grupo interdomínio [Lung01].
19
OrderingType: determina o tipo de ordenação a ser utilizada pelos Gateways seqüenciadores, se Unreliable,
Reliable, Causal ou Total.
102
5.4 Aspectos Relativos à Implementação da Plataforma FT-SALE e Plataforma de
Busca e Seleção de Parceiros
Como base nas definições apresentadas acima, vê-se que as plataformas utilizadas como
suporte a plataforma proposta trazem vantagens para aplicações distribuídas em larga escala,
como as de uma Empresa Virtual. A seguir são apresentadas as implementações realizadas em
cada uma destas plataformas. O objetivo é analisar a utilização das mesmas em um cenário real.
Visando cobrir outras fases do ciclo de vida de uma EV, tais como a Configuração e
Operação/Evolução, este sistema foi integrado a uma plataforma maior chamada SC2 (Supply
Chain Smart Coordination) [Rabelo02] e passou a ser visto como um módulo/componente
“agentificado” do SC2 para uma função que até então não era suportada. O CORBA foi utilizado
como middleware, para garantir a interoperabilidade entre os agentes, provendo a facilidade de
comunicação em sistemas heterogêneos. As mensagens de aplicação trocadas entre as entidades
do sistema seguem o formato KQML, estabelecendo assim, uma padronização e atribuindo um
significado ao ato da comunicação. Na representação da mensagem no formato KQML foi usada
a linguagem XML, ou seja, as mensagens que seguem o formato KQML foram “empacotadas”
103
em mensagens XML. Um exemplo da dinâmica do sistema é apresentada em [Schmidt03, página
81].
104
5.5 Arquitetura Proposta: FT-SALE/SMAM
O padrão CORBA (Common Object Request Broker Architecture) [OMG 03] foi
escolhido para compor a camada de middleware da plataforma proposta, pois é utilizado em
aplicações distribuídas orientadas a objetos, que seguem conceitos de sistemas abertos e que
definem padrões para ambientes heterogêneos. O padrão CORBA tem por finalidade fornecer
funcionalidades para a interoperabilidade e a portabilidade, como, por exemplo, a transparência
de localização, e a heterogeneidade de plataforma e de linguagens de programação. Desta forma,
torna possível a comunicação entre as aplicações, independente de localização ou de quem as
projetou [Schmidt03]. Esta escolha se deu em razão da grande aceitação desta especificação, por
105
ser o padrão utilizado tanto na Plataforma FT-SALE [Lima01a], quanto na Plataforma de
Busca e Seleção de Parceiros [Schmidt03].
Como visto na Seção 5.2.2, durante o processo de formação de uma EV, o Agente
Empresa (AE) solicita ao Gerenciador de Grupo a relação das empresas registradas, podendo
então verificar quais devem ser consultadas, e repassando ao Agente Broker (BR). Um primeiro
problema está na vulnerabilidade do sistema nesta fase devido a presença de apenas um
Gerenciador de Grupos. Supondo que o mesmo falhe, e que o broker não consiga adquirir a
lista dos membros da OV, não haveria possibilidade de identificação dos candidatos em potencial
para a produção da nova ON. E mais, não seria possível distribuir o pedido entre as empresas que
se encaixam no perfil desejado. Conseqüentemente, este problema comprometeria todos os
passos seguintes do processo de busca e seleção de parceiros.
20
É importante ressaltar que a utilização do middleware CORBA não obriga que os agentes móveis sejam necessariamente
objetos CORBA.
106
Além disto, o Agente Móvel (AM) tem como função deslocar-se para as empresas (pré-
selecionadas) do cluster em busca de informação para a formação da empresa virtual. Para isso é
necessário que o AM saiba a localização de cada empresa na rede para as quais pretende migrar.
Este “endereço” é fornecido pelo serviço de nomes do CORBA (CossNaming) [OMG97],
quando o agente solicita a referência da empresa. Através da interface CORBA, o AM se
comunica com o AE representante da empresa visitada, pedindo as informações desejadas, as
quais são retiradas do banco de dados local da empresa visitada e repassadas ao AM.
Desta forma, o Gerenciador de Grupos pode ser eliminado do sistema, e sua função de
fornecer ao broker a lista de membros da OV, pode ser realizada pelo SN-L, através da IOGR
que pode ser acessada pelo broker diretamente. Assim, se ocorrer uma falha no SN-L, o mesmo
pode ser imediatamente substituído por uma de suas réplicas mais próximas, o que evitaria a
ocorrência do primeiro problema citado anteriormente. Isto é possível, porque o broker poderia
solicitar uma cópia da IOGR ao SN-L substituto, possibilitando assim que broker identificasse
os candidatos em potencial para a produção da nova ON.
107
Com relação ao segundo problema, a plataforma proposta provê serviço de tolerância a
falhas para o serviço de nomes do CORBA, através do uso de técnicas de replicação. Portanto,
em caso de falha no serviço de nomes CORBA, ocorre a substituição imediata do SNL ou do
SNG, possibilitando ao AM acessar a IOGR que informa a localização de cada empresa na rede
para as quais pretende migrar.
Como visto, uma tarefa é composta por várias “subtarefas” a serem distribuídas entre os
participantes da EV, e uma empresa pode assumir a realização de mais de uma destas subtarefas.
Para toda tarefa, um membro (nó) da Empresa Virtual é eleito como “disparador” do
negócio (coordenador) e os outros como seus fornecedores. O coordenador é a empresa
possuidora do Broker responsável pela ON em questão.
108
As Eas, por sua vez, são atividades próprias de cada empresa que podem ou não estar
envolvidas como a subtarefa em questão. As Eas não estão distribuídas em diferentes domínios
(empresas) podendo ser caracterizadas como grupos intradomínios [Lima01a].
Inicialmente, deve-se definir o domínio de tolerância a falhas, para que em seguida seja
associado um conjunto de propriedades de tolerância a falhas a cada grupo de objetos, tornando
possível definir propriedades que se aplicam ao grupo todo ou a um tipo específico de objetos
dentro do grupo.
Desta forma, o modelo proposto irá tratar, entre todas as falhas possíveis em uma SMAM,
falhas no host, ou seja, falhas nos espaços físicos onde os componentes se hospedam e ainda
possibilitam a execução de componentes de computação (locais) e falhas nos “objetos” agentes.
Assim como no FT-SALE, no modelo proposto, cada empresa possuirá sua própria infra-
estrutura para tolerância a falhas (domínio de tolerância a falhas local), composta pelos
componentes SRL (Serviço de Recuperação e Logging), SDF (Serviço de Detecção de Falhas),
SGR (Serviço de Gerenciamento de Replicação), SN-L (Serviço de Nomes Local), SN-G
(Serviço de Nomes Global) e Gseq (Gateway Seqüenciador). As funções de cada componente da
estrutura de tolerância a falhas foram apresentadas anteriormente.
Como visto, um domínio de tolerância a falhas é composto por várias máquinas e grupos
de objetos. Atuando exclusivamente dentro de cada domínio encontram-se um Gerenciador de
Replicação, um Notificador de Falhas e um Detector de falhas, componentes definidos na infra-
estrutura do FT-CORBA.
109
Depois de definido o domínio, com sua infra-estrutura de tolerância a falhas, é
estabelecido o monitoramento das falhas nos hosts.
110
SGR
Serviços do Group Pac:
SLR - Serviço de Lagging e Recuperação
SLR Processo;
SDF - Serviço de Detecção de Falha SDF Domínio de
SGR - Serviço de Gerenciamento de Replicação TF G lobal Objetos dos grupos A1 e
SN-L - Serviço de Nome Local (Replicado) B1 respectivamente
SN-G - Serviço de Nome Global (Replicado) SN-G Gseq
Gseq - Gateway Sequenciador
Grupo B2
Grupo A2 SDF
Host 2.4
Host 3.4
Grupo A1 SGR Host 2.3
Host 3.3 SN-L Grupo B1 Host 2.5
Host 3.5
2
Host 3.1 Host 2.1
SN-L
SGR SN-L Domínio de
Host 3.2 S ub g Host 2.2 TF Local B
rupo Su bgru
P1 po P2
Host 3.6 Host 2.6
SDF
Domínio de Host 3.7 Host 2.7
TF Local A SLR
Ao ingressar em uma OV, uma empresa passa a ser considerada um novo domínio de
tolerância a falhas no qual deve ser implementada a infra-estrutura para tolerância a falhas,
constituída pelos elementos SLR, SGR, SN-L, SNG e Gseq, definidos anteriormente. O SN-L
contém as IOGRs e as IORs do domínio ao qual pertence.
112
Após a configuração dos elementos necessários para a constituição deste novo domínio, o SN-L primário cria a IOGR da
nova empresa e se registra no SN-G mais próximo, que por sua vez se encarrega de difundir a informação para todas as
réplicas do SN-G existentes na OV. Com a atualização do SN-G das demais empresas membro da OV, todas as empresas
que constituem a OV tomam conhecimento da inserção da nova empresa no grupo.
Como visto na Seção 5.2.2, a primeira fase após a identificação de uma nova ON é a fase
do Anúncio, a qual consiste em comunicar às empresas componentes da OV, que há uma tarefa a
ser realizada e, portanto, uma EV precisa ser formada, provendo informações para que a empresa
possa decidir em candidatar-se ou não [Schmidt03]. No Sistema de Busca e Seleção proposto por
[Schmidt03] as fases de registro, anúncio e resposta ao anúncio seguem os passos ilustrados no
diagrama da Figura 5.17.
113
Figura 5.17: Diagrama de Sequência: 1ª fase de anúncio e o envio de respostas no Sistema de
Busca e Seleção de Parceiros. Extraído de [Schmidt03].
O diagrama possui os seguintes passos: 1º) Os agentes Empresa A e B efetuam registro junto ao Gerenciador de Grupo
(registrar); 2º) O agente Empresa A inicia um processo de brokerage e solicita a lista de membros do grupo ao
Gerenciador de Grupo (obter_lista_grupo); 3º) O Gerenciador de Grupo envia lista de membros para o agente Empresas A
(enviar lista); 4º) Após receber a lista, o agente Empresa A efetua uma pré-seleção das empresas que se encaixam no perfil
procurado e então cria um agente Broker (<<criar>>); 5º) O agente Empresas A repassa ao Broker criado, as informações
sobre a ON e a relação das empresas que serão consultadas (enviar lista); 6º) De posse das informações enviadas no 5º
passo, o agente Broker cria um Agente Móvel Broker para auxiliá-lo na escolha das empresas com capacidade para integrar
a EV (<<criar>>); 7º) O agente Broker monta o itinerário a ser percorrido usando a relação das possíveis empresas
candidatas e repassa ao Agente Móvel Broker juntamente com o anúncio resumido (enviar itinerário + anúncio
resumido); 8º) O Agente Móvel Broker migra até o sistema de agentes de cada empresa candidata e entrega o anúncio a
cada uma das empresas (mover para empresa) + (entregar anúncio); 9º) Após ter recebido o anúncio, o sistema da
empresa visitada cria uma interface onde apresentará os dados recebidos, possibilitando ao responsável da empresa avaliar
o que está sendo proposto e então decidir pela participação da empresa na seleção (analisa anúncio); 10º) Caso esteja de
acordo com o perfil da ON e opte por participar da EV, a empresa em questão envia resposta a candidatura ao agente
Broker (resposta candidatura); 11º) O agente Broker monta a relação dos candidatos e acrescenta a empresas a esta
relação (monta relação de candidatos); 12º) caso a empresa não responda ao anúncio a mesma é eliminada do processo
(<<eliminar>>).
114
Depois da fase de anúncio surge a fase de Resposta ao Anúncio. É nesta que são
realizados registros das respostas aos anúncios, enviadas pelas empresas ao Broker. A fase de
resposta ao anúncio ajuda a manter o controle de envio de mensagens, permitindo inclusive,
através de auditorias, detectar o não recebimento de alguma mensagem por uma determinada
empresa. As empresas que responderam aos anúncios são cadastradas em listas. Tais listas são
usadas ao final da etapa do anúncio completo para saber quais empresas serão consultadas no
levantamento de dados [Schmidt03].
O diagrama de seqüência apresentado na Figura 5.18 ilustra os passos para a primeira fase
do Anúncio e o envio de respostas ao Anúncio Resumido na plataforma FT/SALE-SMAM.
Considera-se no diagrama concluída a fase de registro da empresa de forma semelhante a
apresentada no diagrama da Figura 5.16.
Figura 5.18: Diagrama de Sequência: a busca pela lista de membros do grupo de empresas
pertencentes a OV, 1ª fase de anúncio e o envio de respostas.
115
Comparando os diagramas das Figuras 5.17 e 5.18 é possível observar que diferentemente
do Sistema de Busca e Seleção de Parceiros, proposto em [Schmidt03], ao iniciar o processo de
Brokerage, na plataforma FT-SALE/SMAM, a empresa não mais solicita a lista de empresas
participantes do grupo ao Gerenciador de Grupos e sim ao SNL local, o qual possui armazenada
uma cópia da IOGR do SN-G. Esta cópia contém informações sobre todas as empresas membro
do grupo de empresas da OV. Os demais processos, assim como o processo de anúncio
permanece como proposto em [Schmidt03]. Esta modificação elimina a vulnerabilidade existente
neste sistema, pois substitui a existência de um único Gerenciador de Grupos por réplicas do
SN-L e do SN-G, distribuídas pela Organização Virtual, permitindo que em caso de falha do SN-
L primário, o mesmo seja substituído imediatamente por uma de suas réplicas atualizadas.
21
O mesmo que arcabouço ou skeleton.
116
empresa virtual (Broker) nas várias fases da execução de um processo de Busca e Seleção de
parceiros.
Deve-se destacar aqui a existência de dois elementos que são de suma importância e
servem de base para o funcionamento do sistema: o banco de dados, que tem por finalidade
armazenar todas as informações que são intercambiadas entre os sistemas multi-agente das
empresas e a ferramenta de workflow, que gerencia as mensagens, em formato XML, trocadas
entre os parceiros.
117
Figura 5.19: Framework da plataforma FT-SALE/SMAM.
• Sistema SC2 – O SC2 (Supply Chain Smart Coordination) é um sistema que cobre
varias fases do ciclo de vida de uma empresa virtual, tais como a Configuração e
Operação/Evolução [Schmidt03]. É constituído a partir de um Sistema Multi-Agente
de suporte à decisão, implementado na plataforma Massyve, que visa assistir o gestor
da empresa virtual na monitoração da execução de um “processo de negócios”
[Rabelo01a]. Este sistema é composto por vários módulos, sendo o Sistema de Busca
e Seleção de Parceiros um destes módulos. Os serviços de aplicação do SC2 são
suportados pela plataforma FT/SALE-SMAM no que se refere à comunicação. O
sistema SC2 é implantado em cada um dos “nós”/empresas e pode interagir com seus
módulos internos, com módulos de uma dada plataforma (suite) para EV e com os
sistemas legados de cada empresa [Schmidt03].
118
• Ferramenta de Workflow – É responsável por gerenciar as mensagens, em formato
XML, trocadas entre os parceiros. As informações são trocadas através do workflow
backbone disponibilizado. A Figura 5.20 ilustra a comunicação entre agentes através
dos mecanismos de workflow.
119
5.5.2.1 Comunicação entre Agentes
A existência do agente Broker não é alterada. Portanto, após a formação de uma EV, o
mesmo poderá manter o controle sobre seus membros através dos módulos de aplicação (sistema
workflow).
Nesta seção, é feito um sumário sobre as melhorias introduzidas pela Plataforma FT-
SALE/SMAM no aspecto tolerância a falhas. Também são resumidas as principais contribuições
desta dissertação, bem como maiores esclarecimentos sobre a finalidade da plataforma proposta.
120
Como visto, a agilidade no processo de busca e seleção de parceiros em EVs é
fundamental para atender às necessidades dos clientes, e ainda, para que a empresa possa atingir
suas metas de prazo de entrega e aumentar sua competitividade no mercado.
• Automatizar parte deste processo, fazendo com que as decisões tomadas pelo
responsável, o Broker, sejam auxiliadas por dados coletados e pré-processados
por agentes móveis e estacionários.
122
5.5.4 Quadro Comparativo
Nesta seção, é feita uma comparação entre as três plataformas discutidas neste trabalho. A
Tabela 5.2 compara as três plataformas, com relação ao problema de busca e seleção de parceiros
para a formação da EV. O quadro apresenta as vantagens obtidas na plataforma proposta.
Tabela 5.2: Quadro Comparativo do uso do Sistema de Busca e Seleção de Parceiros em três
diferentes plataformas.
123
Entretanto, nada se pode afirmar em relação a escalabilidade da plataforma, visto que a
comunicação se dá baseada em grupos de objetos. Sabe-se que estes grupos estão sujeitos a
sofrerem acréscimos, não somente no número de objetos pertencentes ao mesmo, mas também
pode haver um aumento na quantidade de grupos componentes do sistema, como por exemplo,
com a entrada de mais organizações no grupo de empresas de uma OV.
Por este motivo, a escalabilidade pode vir a ser um problema, pois, a pesar da plataforma
FT-SALE/SMAM ser estruturada com base na plataforma FT-SALE, que por sua vez é uma
plataforma apropriada para o uso em redes de larga escala, não podemos garantir a escalabilidade
perante um aumento considerável de objetos e grupos de objetos. Ou seja, o sistema pode
funcionar muito bem enquanto os grupos possuem poucos elementos e existe um número
razoável de grupos, mas não se sabe e nada se pode afirmar sob a confiabilidade do sistema no
caso de milhares de objetos e milhares de grupos. Ainda não é possível responder perguntas
como: O que aconteceria se os grupos tivessem milhares de componentes? O que aconteceria se
houvessem milhares de grupos? A resposta a estas perguntas depende da implementação total do
sistema e, portanto, estão fora do escopo deste trabalho.
124
6. CONSIDERAÇÕES FINAIS
A cooperação com as Empresas Virtuais (EV) é uma solução encontrada por muitas
organizações, para vencer desafios trazidos com a nova economia, as novas formas de comércio,
os escritórios remotos, os novos padrões monetários e o aparecimento da Internet, entre outros. A
EV tornou-se uma forma de cooperação que permite que empresas distribuam tarefas a fim de
atender a uma Oportunidade de Negócios (ON). Entretanto, estas empresas possuem estruturas
diversas, com propriedades heterogêneas. Portanto, são necessárias ferramentas que cubram tais
aspectos.
Uma empresa que integra uma OV deve se registrar no Gerenciador de Grupos. Quando
uma empresa deseja se retirar de uma OV, ela também deve informar o Gerenciador de Grupos.
Por fim, o Gerenciador de Grupos mantém uma lista atualizada das empresas membro de uma
125
OV. Fica claro, portanto, a importância do Gerenciador de Grupos no Sistema de Busca e Seleção
de Parceiros.
Outra situação possível envolve o agente móvel, que tem como função deslocar-se para as
empresas em busca de informação para a formação da EV. Para isso é necessário que este agente
saiba a localização de cada empresa na rede para as quais pretende migrar. Para resolver este
problema, o Sistema de Busca e Seleção de Parceiros utiliza o serviço de nomes do CORBA, que
não é tolerante a falhas. Se este serviço falhar, todos os objetos e grupos de objetos ficariam
inacessíveis. Isto implica que não haveria possibilidade de uma recuperação imediata da lista dos
membros do grupo. Desta forma, não haveria como um agente móvel saber a localização de cada
empresa na rede para as quais pretende migrar.
126
plataforma SALE, cuja arquitetura integra serviços com diferentes tipos de garantia
(desempenho, confiabilidade e segurança), se tornando adequado para Empresas Virtuais.
A dissertação também apresentou e discutiu alguns dos aspectos mais importantes por de
trás da Plataforma FT-SALE e da Plataforma de Busca e Seleção de Parceiros na Formação
de Empresas Virtuais, detalhando os elementos, funcionalidades e tecnologias utilizadas nestas
plataformas. Além disto, foi feita a apresentação e discussão do papel da arquitetura CORBA e
dos Sistemas de Multi-Agentes nestas plataformas. O suporte a tolerância a falhas foi discutido
nestas tecnologias e plataformas. Também foram fornecidas algumas diretrizes para a
implementação da plataforma proposta.
A extensão a outras fases da Empresa Virtual, que não a fase de criação, é um aspecto a
ser considerado. A arquitetura FT-SALE/SMAM parece permitir a realização desta extensão,
podendo dar suporte também a fase de operação/evolução de uma Empresa Virtual, visto que a
mesma oferece um conjunto de serviços de infra-estrutura para permitir uma adequada execução
de serviços no nível de aplicação.
128
Virtuais. Tais serviços incluiriam processos genéricos de criação de ontologias específicas para o
ambiente de Empresas Virtuais e outros ambientes, além de serviços de tradução para ontologias
já pré-existentes. A possibilidade de um agente ser capaz de avaliar atributos não numéricos,
baseado em conceitos comuns, tornaria mais fácil a eliminação da necessidade da existência do
Broker humano no processo de Busca e Seleção, o que seria de grande ajuda para a medida do
desempenho do sistema e a comprovação dos benefícios da utilização de agentes móveis, visto
que a necessidade de especialistas humanos na tomada de decisões dentro do processo de
formação de uma EV prejudica estas análises.
129
REFERÊNCIAS BIBLIOGRÁFICAS
[Byrne93]
Byrne, J. A.; Bradt, R.; Port, O. “The Virtual Corportation”. Business
Week, p. 41. 1993.
130
[Davidow92] Davidow, W. H.; Malone, M. S. “The Virtual Corporation:
Structuring and revitalizing the corporation for the 21st century”.
(HarperBusiness), New York, 1992.
[Fraga01b] Lung, Lau C.; Fraga, Joni S.; Padilha, Ricardo; Souza, Luciana;
“Adaptando as Especificações FTCORBA para Redes de Larga
Escala”, XIX Simpósio Brasileiro de Redes de Computadores –
SBRC’2001, SBC, Florianópolis – SC. 2001.
131
ftp://ftp.omg.org/pub/docs/formal/01-09-29.pdf.
[Goranson95]
Goranson, T. Agile Virtual Enterprise: Best Agile Practice Reference
Base. Working Draft, Janeiro, 1995 11p.
[Green97] Green, S., Hurst, L., Nangle, B., Cunningham, P., Somers, F., Evans,
R., “Software Agents: A Review”, Relatório técnico TCD-CS-1997-06,
1997.
132
[Katzy97a] Katzy, B. R.“Optmierung der Wertschöpfungskette”, Seminário da
Universidade de St. Gallen, Fevereiro, Suíça. 1997a
[Lima01b] Lima, Susiléa Abreu dos Santos. “Uma Proposta para Inserir
Tolerância a Falhas em Ambientes de Empresas Virtuais”.
133
Dissertação de Mestrado. UFV, Vitória – ES, 2003.
134
Qualificação de Doutorado, DAS, UFSC, Julho de 1997.
http://www.omg.org/cgi-bin/doc?formal/02/05/08
135
[Rentes96] Rentes, A. F.; Souza, F. B.; Campeão, P.; Suga, R. A. “Uma Proposta
de uma Metodologia de Integração de Empresas”. Congreso Latino
Americano de Administracion – XXXI Asamblea Anual CLADEA,
Santiago, Chile, 1996.
[Russell02]
Russell, Stuart J. and Norvig, P. “Artificial Intelligence: A Modern
Approach”. Prentice Hall, 2nd Edition, 2002.
[Teixeira00] Teixeira, José Helvécio; Moraes, Luís Felipe M. de; Teixeira, Suzana
Ramos “Uma Abordagem para o Desenvolvimento de Aplicações
Distribuídas em CORBA usando C++ e ORBIX” Relatório Técnico –
136
COPPE/UFRJ –2000. Disponível em:
http://www.ravel.ufrj.br/arquivosPublicacoes/helvecio_rel_corba.pdf
[Wangham03a] Wangham, Michelle Silva; Fraga, Joni da Silva; Santin, Altair Olivo;
“Usando Certificados SPKI/SDSI para geração de domínios de
execução de Agentes Móveis”, LCMI-DAS, UFSC, Florianópolis,
2003.
[Wangham03b] Wangham, Michelle Silva; Fraga, Joni da Silva; Santin, Altair Olivo;
“Mecanismos de Segurança para Plataformas de Agentes Móveis,
baseados em Redes de Confiança SPKI/SDSI”. Simpósio Brasileiro
de Redes de Computadores (SBRC), Natal, 2003.
[Williams95]
Williams, T.J.; Bernus, P.; Nemes, L. “The Concept of Enterprise
Integration”, Anais do IFIP TC5 Working Conference on Models and
Methodologies for Enterprise Integration, Australia, 1995. p.8-19.
137