UNIVERSIDADE
FEDERAL
DE
SANTA
CATARINA
PROGRAMA
DE
POS-GRADUAÇÃO
EM
ENGENHARIA
ELETRICAPROGRAMAÇÃO
DE
APLICAÇÕES
COM
REQUISI'I*OS
TEIVIP-ORAIS
EM
SISTEMAS
ABERTOS
:O
MODELO
DE
0E.I;E'I'OSREFLEXIVO
TEMPO-REAL
DISTRIEIIIÍDO
DISSERTAÇÃO
SUBMETIDA
À
UNIVERSIDADE
FEDERAL DE
SANTA
CATARINA
PARA
A
OBTENÇÃO
DO GRAU
DE
MESTRE
EM
ENGENHARIA
PROGRAMAÇÃO
DE APLIÇAÇOES
COM» REQUISITOS
TEMPORAIS
EM
SISTEMAS
ABERTOS
;O
MODELO
DE OBJETOS
REFLEXIVO
TEMPO-REAL
DISTRIBUIDO
FRANK
SIQUEIRAESTA
DISSERTAÇÃO
POIJULGADA
PARA
A OBTENÇÃO
DO
TITULO DE
MESTRE
EM
ENGENHARIA,
r _
ESPECIALIDADE
ENGENHARIA
ELETRICA,AREA
DE
CONCENTRAÇÃO
“SISTEMASDE
CONTROLE
EAUTOMAÇÃO
INDUSTRIAL”,E
APROVADA
EM
SUA
FORMA
FINALPELO
CURSO
DE PÓS-GRADUAÇÃO.
BANCA
EXAMINADORA
Pro _ V 1 da Sil
agaí
/
OrientadorH
Prof. Enio
Valmor
Kassick; Dr.Coordenador do Curso de Pós-Graduação
em
Engenharia Elétrica/T
- ›/L
Pro .J aSilva Fraga, r '
A
`
Orientador
WE vc¿z
Prof. Jean-M Ie Farines,
Prof. Orlando G. Loques FI O, Ph.D.
Universidade Federal Fluminense
fia¬`/\z-~f»_z¡õ
./¬/
fz./ͻProf.
Raimundo
J. ‹£l`AfàújóI<izÍz/eai),PED.
Resumo
Este trabalho apresenta
um
modelo para aplicações distribuidascom
restrições tempo- realem
sistemas abertos.O
Modelo
Reflexivo Tempo-Real(RTR)
utiliza o paradigma dereflexão computacional segundo a abordagem de meta-objetos, que provê a separação entre funcionalidade e gerenciamento na programação de aplicações. Conseqüentemente, o
modelo
RTR
possui dois niveis :um
nível-base que trata da funcionalidade do sistema, eum
nivel-meta que lida
com
escalonamento, restrições temporais e de sincronização, assimcomo
tratamento de exceções.
O
Modelo
RTR
é implementadoem
sistemas distribuidos abertos utilizando 0 padrãoCORBA,
e tratando as restrições de tempo localmente a partir da especificação deum
timeoutno cliente e do deadline associado no servidor. Desta forma, o modelo garante
um
tratamentoadequado para aplicações tempo-real do tipo melhor esforço
em
ambientes distribuídos abertos. ‹.
Descreveremos o
mapeamento
e a implementação deum
protótipo doModelo
RTR
Distribuído sobre 0 sistema o eracional Solaris.
As
caracteristicas .rinci ais P domodelo
proposto são ilustradas
em
um
exemplo de aplicação de multimídia distribuída.O
Abstract
This work presents a model for distributed applications with real-time constraints in
open systems.
The
Real-Time Reflective(RTR) Model
adopts the reflective paradigmaccording to the meta-object approach, which provides the separation
among
functionalityand
management when
programming applications. Consequently, theRTR
model hastwo
levels 1 a base-level which deals with system functionality, and a meta-level which
manages
scheduling, time and synchronization constraints, as well as exception handling. z A
_
The
RTR
model is implemented in open distributed systems using theCÚRBA
standard, and dealing with timing constraints locally, specifying timeouts in the client and the
associated deadlines in the server. Then, the model ensures an adequate treatment-
of
best- effort real-time applications in open distributed systems.Finally,
we
will describe the mapping and implementation of a prototype of theRTR
DistributedModel
on the Solaris operating system.The
main characteristicsof the proposed model areshown
in an example of a distributed multimedia application. `j,; _ ;
\ ~
Índice
1.INTRODUÇÃO
1 1.1 OBJETIVOSDO TRABALHO
1.2ESTRUTURA DA
DISSERTAÇÃO2.
ANÁLISE
DO CONTEXTO DO TRABALHO
_A3 4
6
2.1
AMBIENTES ABERTOS
EO
PROCESSAMENTO
EM
TEMPO-REAL
' 2.1.1 CARACTERÍSTICAS DE SISTEMAS DISTRIBUÍDOS ABERTOS2.1.2 PRINCIPAIS PROPOSTAS E EXPERIÊNCIAS PARA
PROGRAMAÇÃO EM
SISTEMASABERTOS
2.1.2.1SPML
2.1.2.2DCE
eOO-DCE
2.1.2.3ODP
eANSA
2.1.2.4ORB
eCORBA
` 2.1.3 SISTEMAS TEMPO-REAL O 2.1.4 TEMPO-REALEM
SISTEMAS ABERTOS2.1.4.1
Modem
de Objetos Tempo-RealANSA
2.1.4.2
CORBA
em
Sistemas Operacionais Tempo-Real `2.2
PROPOSTA
DEABORDAGEM
DO
PROBLEMA
2.2.1
ADOÇÃO
DEUM
MODELO
DE OBJETOS DISTRIBUIDOS 2.2.2REFLEXÃO COMPUTACIONAL
`
2.2.2.1 Open
C++
2.2.2.2ABCL
2.2.2.3
DRO
eDROL
2.2.3 INOORPORÃÇÃO DE ASPECTOS RELACIONADOS À DISTRIBUIÇÃO 2.3
SUMÁRIO
6 7 8 9 ll 13 15 19 21 22 24 25 25 27 29 29 30 31 323.
O
MODELO
DE
PROGRAMAÇÃO
REFLEXIVO
TEMPO-REAL
333.1 CARACTERISTICAS
DO
MODELO
333.1.1 UTILIZAÇÃO
DA
REFLEXÃOCOMPUTAÇIONAL
NO
MODELO
33 3.1.2 INTERAÇÕES ENTRE OS OBJETOSDO
MODELO
343.1.3 CARACTERIZAÇÃO DE
MÉTODOS SEGUNDO
SEUCOMPORTAMENTO
TEMPORAL
35 3.1.4TRATAMENTO
DE EXCEÇÕES 3 5 3.1.5 META-OBJETOS ADICIONAISDO
MODELO
363.1.6 DINÂMICA
DO
MODELO
373.2 DEFINIÇÃO
DA
ESTRUTURA Dos OBJETOS
DO
MODELO
38`
3.2.1 ESTRUTURA
DO
OBJETO-BASE 383.2.2 ESTRUTURA
DO
META-OBJETO GERENCIADOR 393.3
SUMÁRIO
434.OMODELO
RTR
DISTRIBUIDO
ff O_O _ Í.Mm
Ç44
4.1
INTRODUÇÃO DA
NOÇÃO
DETEMPO
No
MODELO
454.1.1
CHAMADAS
EM
OBJETOS-BASE 45 4.1.2 ANÁLISEDA
CONSISTÊNCIA DEESTADO
NA COMUNICAÇÃO
474.1.2.1 Abordagens Utilizadas para Solucionar O Problema de Inconsistência de Estado48
4.1.2.2 Manutenção da Consistência de Estado no Modelo
RTR
Distribuído 494.2
ESTRUTURAÇÃO
DO
MODELO
SOBRE
O
CORBA
514.2.1 UTILIZAÇÃO
DO
CORBA
PARACOMUNICAÇÃO
No
MODELO
RTR
DISTRIBUIDO 53 4.2.2 META-OBJETOS DECOMUNICAÇÃO
53 4.3COMPORTAMENTO
DA
COMUNICAÇÃO
NO
MODELO
RTR
DISTRIBUÍDO 554.3.1
COMPORTAMENTO
DEUM
OBJETODO
MODELO
INTERAGINDOCOMO
CLIENTE 55 4.3.2COMPORTAMENTO
DEUM
OBJETODO
MODELO
INTERAGINDOCOMO
SERVIDOR 56 4.3.3 DESCRIÇÃODO PROTOCOLO
PARACHAMADA
DEMÉTODOS
TEMPO-REAL 574.4 ASPECTOS
RELATIVOS
AO ESCALONAMENTO
594.4.1 ESTUDO DE CASOS DE
ESCALONAMENTO
. 61 '4.4.1.1 Caso 1 : Método Chamado Pertence ao
Mesmo
Objeto 624.4.1.2 Caso 2 2 Objeto Chamador e Objeto Chamado no
Mesmo
Nó
624.4.1.3 Caso 3 :-Objeto Chamador e Objeto Chamado
em
Nós Diferentes 65 4.4.2 OPERAÇÕES DEESCALONAMENTO
66.
MAPEAMENTO
DO
MODELO
SOBRE A
PLATAFORMA
DE
EXECUÇÃO
. és5.1
A
PLATAFORMA
DEEXECUÇÃO ADOTADA
685.1.1
ADEQUAÇÃO
DO
SOLARIS Aos PADRÕES INTERNACIONAIS 68 5.1.2 SOLARIS -ESÇALONAMENTO
DE PROCESSOS TEMPO-REAL 695 . 1 .3 SOLARIS - BLOQUEIO DE PÁGINAS DE
MEMÓRIA
E I/O ASSINÇRONO 71V 5.2
MODELO
DEEXECUÇÃO
SOBREO
SOLARIS 715.2.1
MAPEAMENTO
DOS ELEMENTOSDO
MODELO
SOERE O SOLARIS 72 5.2.2ESTRUTURA
INTERNA Dos OEIETOSTEMPO-REAL
72 5.2.3ESTRUTURA
DO
META-OEIETOESÇALONADOR
EDO META-OBJETO
RELOGIO. 775.2.4 ATRIEUIÇÃO DE PRIORIDADES A PROCESSOS 73 5.2.5 ATRIEUIÇÃO DE PRIORIDADES A IHIIEADS
u
S0
5.3
COMPORTAMENTO
DINÃMIÇO Dos OBJETOS
DO
MODELO
815.3.1
CEAMADAS
SINCRONAS DEMETODOS
. 815.3.2
ÇEAMADAS
ASSINCRONAS E SEMI-SINÇRONAS DEMETODOS
825.4
SUMÁRIO
33ç.
IMPLEMENTAÇÃO
DO
PROTÓTIPO
DO
MODELO
RTRÇ DISTRIBUIDO*
_ __ . . 84 6.1O
SUPORTE
DEPROGRAMAÇÃO
A 34
6.2 RESTRIÇÕES RELATIVAS
AO
MODELO
GLOBAL
856.3
IMPLEMENTAÇÃO
DEOBJETOS
TEMPO-REAL
366.3.1 OBJETOS CLIENTES,
METASTUBS
EMETADII
866.3.2 META~OBJETOS GERENCIADORES 88 6.3.3 META-OBJETO RELÓGIO 89 6.3.4 META~OBJETO
ESCALONADOR
89 6.4PROPOSTA DE FERRAMENTAS DE
AUXÍLIOÀ
PROGRAMAÇÃO
906.5
EXEMPLO
DEPROGRAMAÇÃO
UTILIZANDOO
MODELO
916.5.1 ESTRUTURA
DA SOLUÇÃO
93 6.5.2 IMPLEMENTAÇÃODO EXEMPLO
SOBRE OMODELO
RTR
DISTRIBUIDO 94 6.5.2.1A
Descrição de Interface do Sewidor 95 6.5.2.2 Descrição do Servidor de Mídia 95 6.5.2.3 Descrição dos Clientes de Mídia 986.5.2.4 Meta-Objetos de Comunicação 99
6.5.3 ANÁLISE Dos RESULTADOS OETIDOS Nos TESTES '
100 6.5.4 CONSIDERAÇÕES RELATIVAS
À
IMPLEMENTAÇÃO 1026.6
SUMÁRIO
7.
CONCLUSÕES
E
PERSPECTIVAS
7.1 ANÁLISE DOS
RESULTADOS
OBTIDOS _ 7.2RELAÇÃO
COM
OUTROS
PROJETOSEM
CURSO
7.3
PROPOSTAS
DECONTINUIDADE
DO
TRABALHO
E PERSPECTIVASFUTURAS
BIBIOGRAFIA
_Figuras
Figura 2.1 -Interfaces de Programação de Aplicação do
DCE
*12 Figura 2.2
-
O
Modelo
de Referência da ArquiteturaOMA
16 Figura 2.3-
A
ArquiteturaCORBA
17Figura 2.4
-
O
Modelo
de Objetos Tempo-RealANSA
22Figura 2.5
-
Implementações doCORBA
em
Sistemas Operacionais'Tempo-Real
24Figura 2.6
-
Reflexão
Computacional Segundo aAbordagem
de Meta-Obj etos 28Figura 3.1
-
Estrutura Geral e DinâmicatdoModelo
37Figura 4.1
-
Inconsistêncía naComunicação
entre Cliente e Servidor 47Figura 4.2
-
Estrutura doModelo
RTR
Distribuído 52Figura 4.3
-
Estrutura daComunicação
noModelo
RTR
Distribuído . 54Figura 4.4
-
Protocolo paraChamada
deMétodos
Tempo-RealJ
58Figura 4.5
~
Método
Chamado
Pertence aoMesmo
Objeto 62Figura 4.6
-
ObjetoChamador
e ObjetoChamado
noMesmo
Nó
_ 63Figura 4.7
-
ObjetoMais
Prioritário doMesmo Nó
Assume
Antes- do ObjetoChamado
63Figura 4.8
»
Método
do ObjetoChamador
Impedido de se Executar Antes do ObjetoChamado
64Figura 4.9
~
ObjetoChamador
e ObjetoChamado
em
Nós
Diferentes 65Figura 4.10 -
Método
do Obj etc;Chamador
Impedido de Executar Devido aChamada
Síncrona
U
66
Figura 5.1
-
Prioridades de Escalonamento para as Classes de Processos '69
Figura 5.2
~
Estrutura Interna deum
Objeto doModelo
73Figura 5.3
-
Prioridades de Escalonamento para as Classes de Processos » 79Figura 5.4
-
Prioridades de Escalonamento para as Threads de Objetos doModelo
81Figura 6.1
-
Desenvolvimento de Aplicações Distribuídas no Protótipo doModelo
RTR
91Figura 6.2
-
Exemplo
de Aplicação doModelo
92~
Listagens
Listagem 3.1
-
Descrição deum
Objeto-Base 38Listagem 3.2
-
Descrição deum
Método
no Objeto-Base g 38Listagem 3.3
-
Descrição deum
Meta-Objeto 40Listagem 4.1
-
Chamada
deMétodo
no Obj eto-Base '46
Listagem 4.2
Mecanismo
de Sincronização de Estado entre Cliente e Servidorem
Caso deT
imeout 51Listagem 6.1
- Os
Parâmetros Temporais 86Listagem 6.2 -
Método
de Invocaçãocom
Controle deT
imeout do Meta-Objeto MetaDII 87Listagem 6.3 -Interface
IDL
para o Servidor de Mídia ç 95Listagem 6.4
-
Descrição do (V)bjeto-Base Servidor de Mídia 96Listagem 6.5
-
Descrição do Meta-Objeto Servidor de Mídia -96
Listagem 6.6
~ Método
open_media do Meta-Objeto Servidor de Midi a 97Listagem 6.7
-
Abertura do Arquivo de Mídia no Cliente deImagem
MPEG
98Listagem 6.8
-
MetaStub para o Objeto Servidor de Mídia 99Ta
be
Ias
1
~
Introdução
A
proliferação de sistemas computacionaisem
nossa sociedade resultouem
suautilização nas mais diversas atividades e
campos
de atuação.A
interligação dos equipamentosem
redes de computadores veio logoem
seguida, permitindo o acesso a dados de forma maisampla
e imediata, otimizando ofluxo
de informação e facilitando a comunicação entre os diversos níveis organizacionais de empresas e instituições.Em
uma
etapa posterior, as várias redes locais se interligaram devido à necessidade detroca de infonnações
com
omundo
exterior. Surgiram então dificuldades relacionadas àconexão entre máquinas de fabricantes diferentes, protocolos de comunicação incompatíveis,
padrões de sinal diferentes a nivel de rede, entre outros.
Devido ao crescimento desordenado das redes,
com
fabricantes adotando padrõesdistintos, e devido ao alto investimento que já havia sido realizado neste tipo de equipamento,
os trabalhos de padronização não obtiveram 0 sucesso desejado. Passou a ser necessária a
convivência
com
as diferenças.A
partir destemomento
se intensificou a pesquisa nesta área,objetivando a obtenção de sistemas ~
nos quais máquinas diferentes possam não só se
comunicar,
mas
também
executar trabalho cooperativo.As
redes globais já sãouma
realidade acessível aum
grandenúmero
de pessoas.Com
o popularização da Intemet, a interligação entre equipamentos e a troca de informação entre
a
---
CAPÍTULO 1 - INTRODUÇÃOinterconexão de equipamentos garante apenas a possibilidade de comunicação entre
máquinas, não a cooperação entre estas necessária
em
aplicações mais complexas, diferentesda simples troca de mensagens eletrônicas e arquivos via rede.
Com
o surgimento de aplicaçõesem
rede de maior complexidade,como
aplicaçõesmultimídia envolvendo o processamento de dados, voz e vídeo
em
tempo-real, foramintroduzidos requisitos temporais que precisam ser considerados na construção e na execução destas aplicações.
Devemos
levarem
consideraçãotambém
o fato de o suporte adotado nasredes de computadores utilizadas atualmente não possibilitar a agilidade desejada por
aplicações nas quais há restrições quanto ao tempo no qual determinados dados
devem
estar disponíveis, ou nos casosem
que ofluxo
de dados é muito elevado,como
em
certasaplicações de multimídia.
Para
um
futuro próximo pode-se anteverum
crescimento ainda maior da interligação eintegração dos diversos equipamentos de comunicação, transmissão e reprodução de voz e de
imagem, dispositivos de segurança e de controle de equipamentos, que
em
sua maioria jápossuem algum poder de processamento. _
Como
pode ser observado, existeuma
crescente necessidade de coordenar demodo
flexivel os recursos computacionais, de
modo
a atender os novos requisitos relativos aoprocessamento de informação
em
sistemas computacionais globalmente distribuidos. Entre osrequisitos deste tipo de sistema, alérn do fato de administrar todo o
fluxo
de informação eexecutar todo o processamento relativo às atividades a eles impostas, estaria ainda a
necessidade de não tomá-los complexos demais ao ponto de limitar o acesso de pessoas
sem
formação específica para poder tirar proveito do conjunto máquina e soƒiware.
Todos estes aspectos tem sido objeto de intensa pesquisa e alvo de grandes
investimentos da indústria de informática.
No
entanto, o simples investimento no poder deprocessamento e na capacidade de transmissão das máquinas não garante necessariamente
que os requisitos temporais de sistemas tempo-real sejam satisfeitos.
A
integração de questões *de tempo-realem
sistemas abertos ainda não se encontradevidamente estabelecida.
O
tratamento de forma eficaz destas questões requer a adoção dearquiteturas e modelos de distribuição
bem
estruturados.A
complexidade das aplicações destinadas a este tipo de ambiente trás à tona a necessidade de técnicas de programaçãoL
`t
--_
CAPÍTULO 1 - INTRODUÇÃQpeculiaridades envolvidas ao abordar problemas relativos a distribuição, heterogeneidade do
ambiente e verificação dos requisitos temporais da aplicação.
Justifica-se então o estudo e a proposta de
um
modelo de programação destinado aaplicações tempo-real
em
sistemas abertos, que permita que os recursos do sistema sejamalocados considerando os requisitos temporais impostos pelo ambiente. Tais requisitos,
expressos na forma
de
restrições temporais impostas às atividades do sistema,devem
serverificados
em
tempo de execução, e procedimentos altemativos de tratamento de errosdevem
ser executados. nos casosem
que não for possível o cumprimento das restriçõestemporais. Este modelo de programação deve ser estruturado de
modo
a liberar 0 usuáriofinal de todo o trabalho relativo à administração de recursos compartilhados, distribuição
geográfica dos equipamentos, e conversão de dados
em
um
formato padrão, entre outros.\ ..
lí
1.1
Objetivos
do
Trabalho
.. ..¬
Neste trabalho será proposto
um
modelo de objetos distribuídos para sistemas abertos,que auxilie a programação de aplicações nas quais estejam envolvidas restrições temporais.
O
modelo
deve adequar-se aos padrões já propostos para sistemas de objetos distribuídos, e utilizar paradigmas de programação que facilitem o desenvolvimentode
aplicações¡tempo-real distribuídas. i
A
,z
Como
ponto de partida adotaremos o modelo de objetos tempo-real propostoem
[Fur95].
O
Modelo
Reflexivo Tempo-Real(RTR)
utiliza o paradigma de reflexãocomputacional para permitir o gerenciamento dos requisitos temporais da aplicação.
Aspectos relativos à distribuição serão introduzidos no modelo
RTR
através da adoçãodo padrão
CORBA
(Common
Object Request Broker Architecture), proposto pelaOMG
[OMG96]
e amplamente aceito e utilizado no meio acadêmico e na indústria de softwareem
geral.
Os
mecanismos de controle do comportamento temporal das aplicações existentes nomodelo
devem
ser modificados para sua adequação a sistemas abertos, através da inserção denovas construções temporais que considerem as especificidades presentes neste tipo de
sistema que afetam o comportamento das interações entre os objetos distribuídos.
Este trabalho envolve ainda o
mapeamento
do modelo 'reflexivo tempo-real distribuído--_
CAPÍTULO 1- INTRODUÇÃOe de
um
exemplo de aplicação de multimídia distribuídacom
requisitos temporais que demonstre a funcionalidade do modelo.O
modelo proposto deve ser adotado na elaboração deum
protótipo deum
ambientede suporte para programação de aplicações distribuídas baseado
em
Objetos ecom
características de
tempo
real e tolerância a falhas. Este trabalho se insere no contexto doprojeto
ASAP,
financiado pelo Protem-CC, do qualfazem
parte o Laboratório de Controle eMicrolnformática
(LCMI)
da Universidade Federal de Santa Catarina (UFSC), a UniversidadeFederal Fluminense (UFF), a Universidade Estadual de
Campinas
(Unicamp) e aUniversidade Federal do Ceará (UFC).
O
modelo distribuído aqui descritocompõe
acamada
de tempo-real do referido suporte de programação distribuída, que deve possuir ainda mecanismos de tolerância afaltas, ferramentas ara P es P ecifica ão Ç e validação de so íware, e .
uma
lin 811a 8em
deprogramação orientada a objetos que tire proveito de todas as características do sistema.
1.2
Estrutura
da
Dissertação
l
O
texto descrevendo o
modelo
reflexivo tempo-real distribuído proposto nesta dissertação será organizado da seguinte forma :~
No
capitulo 2 serão analisadas as caracteristicas do ambiente, os diversos sistemas emodelos existentes que se encontrem no
mesmo
contexto do modelo a ser proposto, osparadigmas de programação que serão adotados, e a fomia
como
o problema seráabordado; _
-
O
terceiro capítulo será apresentadoem
detalhes O modelo de programação adotado,abstraindo-se de aspectos relacionados à distribuição;
-
No
capítulo 4 serão descritos Os aspectos relativos à distribuição do modelo, asconseqüências do ponto de vista temporal, e a estruturação do modelo sobre o suporte
de comunicação; V
~
-
O
mapeamento
do modelo sobre a platafonna de execução será apresentado no quintocapítulo; _
«
V
--_-
CAPÍTULO 1- INTRODUÇÃO-
O
sexto capítulo descreve a implementação deum
protótipo do sistema, eum
exemplode aplicação implementado sobre esta plataforma de testes;
-
No
sétimo e último capítulo serão apresentadas as conclusões e perspectivas decontinuidade deste trabalho.
2
Análise
do
Contexto
do
Trabalho
Neste capítulo analisaremos cuidadosamente o contexto no qual se insere o trabalho a
ser desenvolvido, enaltecendo aspectos relativos à integração de características de tempo-real
em
sistemas distribuídos abertos. Serão descritos os principais requisitos presentes neste tipode sistema e apresentadas soluções propostas na literatura, basicamente suportes e
arquiteturas 'destinados a programação tempo-real
em
sistemas abertos.Em
seguida,introduziremos _a abordagem utilizada neste trabalho para integração dos aspectos de tempo-
real e sistemas abertos
em
mn
modelo de programação, ressaltando as características quediferenciam esta proposta das demais encontradas na literatura.
2.1
Ambientes
Abertos
e
o
Processamento
em
Tempo-Real
Este trabalho trata da programação de aplicações
com
restrições de tempo-real nocontexto de sistemas distribuídos abertos.
Em
seguida analisaremos as características de ambientes abertos, sistemas tempo-real,e a integração de características de
ambos
em
um
mesmo
ambiente.Ao
longo desta análise---
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHO2.1.1
Características
de Sistemas
Distribuídos
Abertos
Sistemas abertos são caracterizados pela heterogeneidade de seus componentes,
presente a nível de máquinas, de sistemas operacionais e de linguagens de programação. Para
possibilitar a interação
em
ambiente aberto são utilizados mecanismos de suporte eprotocolos de comunicação que tratam as diferenças na troca de dados entre os componentes do sistema.
Devido à complexidade envolvida na programação de aplicações distribuídas,
podem
ser encontradas na literatura diversas propostas de suportes e modelos- para facilitar aprogramação de aplicações
em
ambiente distribuído. Estes modelos e suportes incorporamabstrações que facilitam a decomposição da aplicação
em
componentes demenor
complexidade, e ferramentas que pemiitem a programação de aplicações de maneira
transparente
em
relação à distribuição.A
transparênciaem
relação ao ambientedistribuído pode ser dividida nos seguintespontos [Li94]:
'
'
-- transparência
em
relação a localização : permite que o programador abstraia-seem
relação à localização fisica do componente responsável por prover
um
detenninadoserviço; .
i
-
transparência no acesso 1 mascara as diferenças entre métodos de invocação deserviços e na representação de dados e mensagens de controle;
-
transparênciaem
relação a concorrência 1 mascara o paralelismo presente na execuçãode aplicações de maneira concorrente
em
diversos processadores;--
transparência de réplica : pennite que serviços implementados de maneira redundantesejam utilizados
sem
que o clientemodifique
a forma de invocação;~- transparência
em
caso de falha 1 fazcom
que a recuperação de serviçosem
caso defalha seja realizada
sem
prejudicar a evolução do sistema;J
-
transparênciaem
relação aos recursos : permite que os recursos do sistematenham
suaforma de representação
modificada sem
necessitar que a maneira de acessar estes 1recursos seja alterada;
-§-
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHO-
transparência na migração : mascara modificações na localização deum
serviçodentro do sistema distribuído; .
_
-
transparência de federação : permite que limites administrativos e tecnológicosexistentes no sistema sejam ignorados.
Usualmente,
em
suportes e modelos para programação distribuída, são adotadasbibliotecas ou ferramentas para geração de código que permitem a interação entre
componentes de software de
modo
transparente para o programador. Para a comunicação sãocomumente
utilizados mecanismos dechamada
remota de procedimentos (ou métodos, nocaso de
um
modelo de objetos).As
interações entre aplicações nestes sistemas sãoestruturadas na forma cliente-servidor.
Uma
série de esforços de padronizaçãotem
sido realizados para pennitir ainteroperabilidade
em
sistemas distribuídos abertos.Um
dos primeiros esforços depadronização efetuados partiu da
ISO
(International Standards Organisation), que propôs omodelo
de referênciaOSI
(Open Systems Interconnection) [Tan94].O
modelo de referênciaOSI
é composto por camadas nas quais são tratados os diversos problemas existentesem
sistemas abertos
em
níveisde
abstração diferentes, partindo do nível fisico, onde são definidos os padrões de sinais de transmissão nos cabos, e terminando no nivel de aplicação,onde a comunicação é tratada a nível de transmissão de arquivos,-mensagens, e outros serviços presentes a nível de usuário.
Devido à limitada aceitação do modelo de referência OSI-ISO, novas propostas de
padronização
vem
surgindo.Podemos
destacar o trabalho realizado pelaOSF
(Open SoftwareFoundation), pelo grupo de trabalho
ODP
(Open Distributed Processing) da ISO, peloconsórcio
ANSA
e pelaOMG
(ObjectManagement
Group).No
entanto, aspectosrelacionados ao processamento tempo-real não
têm
sido contemplados na maioria destestrabalhos.
2.1.2
Principais
Propostas
e Experiências para
Programação
em
.Sistemas Abertos
Em
seguida serão apresentados e analisados alguns modelos e suportes para---~_CAPiTULo
2 - ANÁLISE Do CoNrExro no TRABALHO 2.1.2.1SPML
Ao
longo das últimas décadas foram apresentadas inúmeras propostas de linguagensde programação destinadas a sistemas distribuídos. Estas linguagens, geralmente extensões de
linguagens de programação convencionais, c incorporam conceitos de concorrência,
comunicação e sincronismo, aliados a mecanismos de configuração.
De
fonna geral, a adoção de novas linguagens para programação distribuída dificultaoreaproveitamento de software já existente, além de
em
geral restringir a concepção desoftware a ambientes homogêneos de programação.
Com
o intuito de resolver estaslimitações passou a ser adotada
uma
outra abordagem, baseada na “programação
em
múltiplas linguagens' ou “programação mista”, que consisteem
pennitir que componentes de soƒiwaredesenvolvidos utilizando diferentes linguagens de programação convencionais e se
executando
em
um
ambiente heterogêneo sejam configurados demodo
acompor
uma
aplicação distribuída.
Os
problemas a serem sanados por suportes que permitam aprogramação
em
múltiplas linguagens consistem basicamenteem
lidarcom
a incompatibilidade entre linguagens diferentes ou entre implementações deuma mesma
linguagem, e
com
os problemas derivados das diferentes representações de dadosem
arquiteturas de máquinas distintas.
O
SPML
(Suporte para Programação Distribuídaem
Múltiplas Linguagens) [Bod92][Bod93] tem
como
propósito afastar o programador da aplicação da problemática daheterogeneidade de linguagens e demáquinas, sendo baseado
em
um
modelo
que apresentaabordagem diferenciada para programação
em
pequena eem
larga escala.O
SPML
aproveita a experiência obtida pelo grupo de pesquisaem
sistemasdistribuídos do
LCMI
daUFSC
com
o desenvolvimento do sistemaADES
(Ambiente deDesenvolvimento e Execução de Soƒíware Distribuído) [Fra89], utilizando
um
modelo
deprogramação bastante semelhante.
O
modelo é composto porum
conjunto de tarefas,entidades elementares de concorrência, que cooperam através da troca de mensagens.
Os
portos são as interfaces uni- ou bidirecionais, através das quais tarefas se
comunicam
viatransmissão síncrona ou assíncrona de mensagens tipadas.
A
comunicação e a sincronização entre tarefas são efetivadas através de operações de_--
CAPÍTULO 2 ¬- ANÁLISE DO CONTEXTO DO TRABALHObloqueante; envio sincrono (bloqueante), aguardando recepção; e envio síncrono, aguardando
resposta. H _ _
_
No
SPML
as tarefasdeuma
aplicaçãopodem
ser implementadosem
linguagensdiferentes.
O
suporte para programação é composto de três ferramentas principais, descritasbrevemente a seguir : _
_
-
uma
linguagem de descrição de interface demódulo (DIM)
pennite ao programadordescrever as interfaces dos componentes de software da aplicação.
O
compilador dalinguagem (o tradutor
DIM)
é responsável por, a partir das descrições de interface doscomponentes do sistema, gerar dados para configuração daiaplicação e_ rotinas de
interfaceamento (stubs) para comunicação e conversão (linearização) de dados utilizando
uma
representação de dados padrão, oXDR
(eXternalData
Representatíon).As
stubs são geradas na linguagem de programação utilizada pelocomponente correspondente (linguagem hospedeiro).
.
~
uma
linguagem de configuração de sistemas (LINCS) permite que a aplicação sejaestruturada `a partir da composição de componentes de software heterogêneos, `
baseando-se
em uma
descrição da aplicação distribuída.A
tradução desta descriçãopennite o carregamento, a instanciação e a interconexão de componentes.
- o suporte de tempo de execução (o Gerenciador de Estação) implementa as abstrações
de software definidas no modelo de programação distribuída.
A
unifonnidade dasinterfaces dos serviços de comunicação e de sincronismo fomecidos pelo suporte garante a total transparência na codificação da aplicação.
O
gerenciador implementauma
política de escalonamento “preemptivo” dirigido por eventos (event-dríven),sobreposta ao escalonamento do sistema operacional, baseada
em
prioridadesdinâmicas estabelecidas pelo programador da aplicação.
Com
estas ferramentas, oSPML
contorna problemas relacionados à incompatibilidadeentre linguagens e máquinas diferentes presente
em
um
ambiente distribuído e heterogêneo.O
SPML
foi implementadoem
uma
rede Ethernet composta por estações Sun, e foidesenvolvido suporte para geração de rotinas de interfaceamento nas linguagens C, Fortan e
Pascal.
A
adição de novas linguagens ao suporte é facilitadacom
a utilização deuma
----
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHO 2.1.2.2DCE
eOO-DCE
O DCE
(Distributed Computing Environment) [Ros92] [OSF92] trata-se deum
suporte para sistemas distribuídos bastante robusto, resultado de
um
trabalho de padronizaçãocoordenado pela
OSF
(Open Soƒiware Foundation),um
consórcio de empresas formadocom
o objetivo de propor padrões para sistemas abertos.. '
O DCE
temcomo
objetivo facilitar o convívioem
redes de computadores dediferentes tecnologias, tanto de hardware quanto de soƒiware, alem de fornecer serviços que
facilitam o trabalho cooperativo, distribuem eficientemente a carga do sistema, e facilitam o
acesso a dados de forma distribuída,
sem
que ocorra perda de segurança no que se refere aosdados e recursos do sistema, e
sem
que se perca a visão global e ordenada dos eventos queocorrem no sistema.
Os
componentes doDCE
trabalham conjuntamente para tornar possivelum
sistemaaberto
com
tais características, procurando minimizar o impacto na rede, tanto no que se refere à carga do sistemaem
termos de poder de processamento e comunicação, quanto navisão do usuário
comum,
que não deve ter sua interaçãocom
o sistema dificultada.As
aplicações construídas sobre oDCE
precisam interagir somentecom
osmecanismos de sofiware de alto nível disponíveis,
sem
se preocuparcom
a forma na qual acomunicação realmente ocorre a nível ñsico ou de rede, ou quanto à necessidade de
reordenação de dados na comunicação entre máquinas incompatíveis ouconversão entre tipos
de dados de linguagens de programação
com
formatos diferentes.O
DCE
adota para estruturação do ambiente distribuído o modelo cliente-servidor,com
utilização domecanismo
deRPC
(Remote Procedure Call) para comunicação.Um
componente de aplicação distribuída, necessitando ativar
um
procedimento remotamente einum
servidor,chama
uma
rotina stub local que, utilizando os protocolos de comunicação e deconversão de dados, ativará o respectivo procedimento no servidor, passando a este os
parâmetros da
chamada
e retomando os resultados ao cliente, que reassume então seu fluxode execução.
A
.sintaxe deuma
chamada RPC,
com
seus parâmetros de entrada e saída, torna-seconhecida de
um
cliente através deuma
descrição de interface realizada utilizando a--i
CAPÍTULO 2 - ANÁLISE no Cormzxro Do TRABALHOsemelhante aos da linguagem C.
A
compilação deum
arquivo de descrição de interface gerarotinas de stub de cliente e servidor, que
devem
ser incorporadas ao espaço de endereçamentodos respectivos componentes de aplicação para que seja possível a interação
com
'outroscomponentes distribuídos no sistema utilizando os mecanismos disponíveis no
DCE.
O
componente de software que utiliza oRPC
noDCE
para comunicação, através docódigo de stubs geradas automaticamente pelo compilador IDL, se baseia no serviço de
diretório para procura de
um
servidor compatívelcom
achamada
que está sendo executada.A
chamada
RPC
se utiliza de protocolos queiadministram aspectos. específicos de transporte ede rede, gerenciam conexões e,
em
alguns casos,podem
fornecer algum suporte paratratamento de falhas de servidores ou de serviços de rede.
_
O
DCE
comporta-secomo
uma
camada
de software que mascara as diferenças entrearquitetura de máquinas, entre sistemas operacionais e redes de computadores distintos.
O
DCE
pode ser vistocomo uma
camada
situada sobre 0 sistema operacional e oprotocolo detransporte, que fomece seus serviços às aplicações situadas
um
nível acima na hierarquia decamadas. `
A
Figura 2.1 mostra a formacomo
são estruturadas as interfaces de programação deaplicação do
DCE
sobre o sistema operacional e acamada
de transporte da rede decomunicação.
Os
serviços de Threads eRPC
são a base doDCE,
e são indispensáveisem
todos os sistemas onde oDCE
esteja instalado.Os
serviços de segurança, de diretório(CDS
- CellDirectory Service, o padrão X.500, e o
XDS
-X500
Directory Service) e 0 serviço detempo
distribuído
(DTS
- Distributed Time Service) são implementados utilizando ascamadas
deThreads e
RPC
doDCE.
~._.›. _ _- _. ~ ,_\-_‹.-1-nr-v,z_.-... , . .~-/ - -~»z'q7,~,¿¿,~= ' »Vi-,S ÇEYIÇO d¢..f;‹: :sf -S, ¢fY1Ç0.úd¢.z»z=
fiflçfisâ
;.~¿;¿,- .¿,;¡.›.,- -._._'.~.,f-_t‹›-;_ -=_;¬,-:fz '
, . - _ - '.z.~::z::›';z.-«'-if fi, :1=,.=‹',1==,\;1.'zz'~l‹fi~.‹ .í '~‹. -*›.
!`Í~"`¡` .:, i
_,
;.-;2_›'.;.‹'._~.-5"- -..~',,-,;¢'¬Í3'~': I.-.wtf-'^._f‹' ,, ›,'-'r7'âí'._-í.-Ç~II '_' "'TI-FS-_\«`:'z:-Jf=:'.í'›¡°.-. ' . -F ¬ ›\-›: z..‹ -.<-›..-¢z ‹;¬.-ri :.¬‹ zz- -=t › ~ -› _ V .- .. ~ ._z,.~-.<z›,-§-- « .f._ ,-‹.\_.. z -¿~_ '~-=' ›› ~› - f-= - =.~= '›..¬z -;V--.- :-:V ;,z,,‹.; _ . ‹.._‹--z. fl * W ~‹' " X V .ø ~. ›› /: "›:z=zzâ ;.›.s-1;é=.;s›`; z wiv*.»‹.z2':<ëàfi'êQfirzrffirznf «J "~=.r.-,:-,‹=z‹'~@¿-wi' -V - ,pera›
---
CAPÍTULO 2 - ANÁLISE Do CoNTExTo Do TRABALHOO
sistema de arquivos distribuído doDCE,
oDFS
(Distributed File Service), roda anível de aplicação, utilizando todos os serviços disponíveis no
DCE,
além de interagirdiretamente
com
o sistema operacional.O
fato de 0DFS
rodar a nível de aplicação e nãodentro do núcleo do sistema operacional,
como
noSun
NFS©,
evita sobrecarregar o núcleotomando-o ineficiente e inadequado a aplicações
tempo
real, além de evitar que os fabricantes de sistemas operacionais tenham que modificá-los para acomodar o DFS. Estaabordagem é mais condizente
com
as caracteristicas deum
sistema aberto, e a implementaçãodo
DFS
penniteum
convívio pacificocom
a versão do sistema de arquivos nativo do sistemahospedeiro.
V
O
OO-DCE
(Object OrientedDCE)
[Dil93] e'uma
extensão doDCE
para odesenvolvimento de aplicações distribuídas orientadas a objetos.
O
OO-DCE
é composto poruma
biblioteca defclasses de objetos que auxilia o programador no desenvolvimento deaplicações sobre o
DCE,
aliado aomapeamento
das definições de interfaces de componentesDCE,
descritasem
IDL, para classes de objetos clientes e servidores codificados nalinguagem C++. '
i
Outras formas de estender o
DCE
de forma a torná-lo maisnadequado à programaçãoorientada a objetos são propostas na literatura.
Uma
delas é oDC++
[Sch93], demodo
geralbastante semelhante ao
OO-DCE,
mas
que diferencia-se fundamentalmente por suportar amigração dinâmica de objetos. L
Apesar da distribuição e do tratamento de heterogeneidades de linguagem e máquinas
de forma transparente, o
DCE
não possui suporte algum destinado a aplicações tempo-real.A
integração da orientação de objetos aoDCE
não é totalmente satisfatória, pois a linguagem dedescrição de interface do
DCE
não possui 'mecanismos de herança, e os mecanismos deinvocação de objetos presentes no
OO-DCE
e noDC++
não são suficientemente completospara abranger os diferentes modelos de objetos existentes.
2.1.2.3
ODP
eANSA
FO
corpo de definição de padrões daISO
iniciouum
programacom
o objetivo deestabelecer
um
modelo de referência para processamento distribuidoem
sistemas abertos.O
___-
CAPÍTULO 2 - ANÁLISE no CoN'ri:xro no TRABALHOobjetivo permitir a interoperabilidade entre aplicações e o compartilhamento de informações
entre instituições. ~
O
modeloODP
é composto porum
conjunto composto por cinco níveis (apresentadoscomo
°linguagens”) que descrevem a estrutura de sistemas distribuídos sob diferentes pontos de vista : empreendimento, informação, computacional, engenharia e tecnologia.Com
estaestrutura
em
níveis oODP
objetiva fazer a conexão entre os requisitos do sistema e assoluções técnicas na forma de produtos industriais.
O
modeloANSA
(Advanced Network Systems Architecture) [Lin93] [LÍ93] éuma
implementação do
modelo
de referênciaODP.
O
modelo
ANSA
é divididoem
um
modelo
computacional,
um
modelo
de engenharia, eum
modelo
de execução de objetos.O
modelo
de engenharia
ANSA
provêum
ambiente para especificação de mecanismos de suporte àdistribuição de aplicações de acordo
com
o modelo computacional, sendo composto por :-
mecanismos que permitem a transparência do ponto de vista do programador(transparência de localização, acesso, concorrência, replicação, falha, recursos,
migração e federação); V
-
um
núcleo que encapsula as diferenças entre arquiteturas de processador e dispositivosde memória;
O
modelo de engenhariaANSA
pode ser vistocomo
um
conjunto formado peloscomponentes descritos a seguir :
-
cápsulas, compostas por objetos de aplicação, mecanismos de transparência eum
núcleo, queformam
um
nodo virtual na rede;-
threads, quemodelam
uma
atividade potencialmente concorrente dentro deuma
cápsula;
-
tarefas, que consistemem
processadores virtuais quefomecem
recursos necessáriospara execução de threads;
-
referências para interfaces, queem
posse deum
cliente(um
objeto) permitem acomunicação
com
um
servidor(um
outro objeto) através da interface denotada pelareferência; e
-i--
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHO-
um
°interpretador”, que consiste basicamenteem uma
parte do núcleo que interpretainvocações entre objetos
como
se estas fossem instruções deuma
máquina virtualdistribuída. ~
De
acordocom
o modelo de objetosANSA,
cada objeto deve possuiruma
ou maisinterfaces, que são os pontos de ativação dos serviços implementados pelo objeto.
As
requisições são enviadas a
uma
interface através de chamadas remotas de procedimento, e sãoexecutadas por
uma
tarefa ouum
grupo de tarefas associados a esta interface.As
tarefas sãoescalonadas pelo núcleo do sistema operacional de acordo
com
prioridades definidas durantea sua criação.
ANSAware
[Li94] consisteem
umaimplementação
do modelo computacional eum
exemplo do modelo de engenharia
AN
SA, organizada na fonna deum
suporte composto poruma
plataforma de execução, aplicações de gerenciamento de sistema e ferramentasde
auxílio à programação que pennitem a construção de sistemas
com
base nomodelo
de,referência
ODP.
Este suporte pennite que componentes heterogêneos de aplicaçõesdistribuídas interoperem.
2.1.2.4
ORB
eCORBA
VORB
(Object Request Broker) eCORBA
(Common
Object Request BrokerArchitecture) são propostas da
OMG
(ObjectManagement
Group),um
consórcio demais
de400 empresas, que busca promover a utilização do modelo de programação orientada a
objetos no desenvolvimento de software distribuido.
A
OMG
temcomo
objetivo proporcionarum
ambiente no qual seja possível odesenvolvimento de aplicações distribuídas
em
ambientes heterogêneos, utilizando objetoscomo
componentes, e de maneira transparenteem
relação à heterogeneidade e à distribuiçãodo ambiente, buscando simultaneamente incrementar a reutilização, a portabilidade e a
interoperabilidade.
Com
este propósito, aOMG
especificou a arquiteturaOMA
(ObjectManagement
Architecture),um
ambiente que temcomo
principal característica suportar aplicaçõescooperantes compostas por objetos distribuídos
[OMG92].
A
Figura 2.2 mostra oscomponentes do modelo de referência da arquitetura
OMA.
.---
CAPÍTULO 2 - ANÁLisi: DO CONTEXTO DO TRABALHOObjetos de Aplicação Facilidades
.~: -i -.<- .. _ _.,-.~_^,-vzr, :,›.\_.-;:.›,:1z'*íw-'(51.zç.:›zz:;:.-,:
-'1.›';›' t*'»1~í:; 2,z¬'rÉf,',‹';.ê,.f,:` ¬ F3*-, i-',-; ~'«z':-zé =;'~:'=¿,=z,z_.i-',;zzi‹ -;-.`.~":-‹.-`\'¬
~i\.z=.~*z`‹l:-¿fi›="«*\°š-'f~«^«,'-;fzâ z1›:~ffzf;¿f,z-z..:=št›`,;1-li /\,áfl.eíi'‹.‹z=-3»‹2éz1vàf§~;::fi::-é
‹ "f'-1'.f:~;zzii1-zz'z= ' '~1-íàí;/:>f¬ '
ORB
[Object Request Broker]
.i ›"‹š'‹;'.z_ :!*'!`=z'f-`Í.""~Í\ ,'›':'v`;'vI.-`;“›\\"Í.-'*.-'›`i». .,z,\'»-.`=,~'~'-.:f,
*M5$2›;š¡ëiig§«}=r§¬¢=?¿,eé ,¿~›››¿i›';;'‹:z_f«“,' zz`:f,rfâ:vã'z;=›1:«z;=\¡
*.-,\,~`z,:;¿z>ä‹~zI,t»<›z,,,e@â§=zâ;z.mu-\
Figura 2.2
-
O
Modelo
de Referência da ArquiteturaOMA
Os
objetos de aplicação são criados pelo usuário, particularizados conforme seusobjetivos.
As
facilidades são serviços de propósito geral, utilizadas pelas mais diversasaplicações.
E
os serviços de objetos são compostos por servidores (interfaces e os objetospropriamente ditos) que permitem a implementação e utilização de objetos
em
um
ambienteaberto.
O
ORB
(Object Request Broker) é O componente mais importante da arquiteturaproposta pela
OMG.
Ele permite que objetos façam e recebam requisições de métodostransparentemente
em
um
ambiente distribuído e heterogêneo.4
Uma
requisição de método originada porum
cliente é enviada auma
implementaçãode objeto (servidor) através do
ORB.
O ORB
é O elemento intermediário responsável porencontrar O objeto ao qual se destina a requisição, e enviar os parâmetros da requisição no
formato reconhecido por este.
O
ORB
também
faz o processo inverso, retomando osparâmetros de saída da requisição, se houver algum, para o cliente.
A
interfacecom
a qual o cliente tem contato é completamente independente de onde oobjeto está localizado, de qual linguagem de programação foi utilizada na sua
í--
CAPÍTULO 2 - ANÁLISE no CoNTExro no TRABALHOse executa, e de quaisquer outros aspectos relacionados à heterogeneidade do ambiente
distribuído no qual se encontram os objetos de
uma
detenninada aplicação.Qualquer suporte que faça a intermediação de requisições de métodos de objetos
em
um
ambiente distribuído éum
ORB.
QRBs
diferentespodem
adotar estilos de implementaçãodiferentes, resultando
em
serviços destinados a clientes e objetoscom
diferentes propriedadese qualidades.
O
CQRBA
[OMG96]
éuma
arquitetura específica deORB,
cujas interfaces ecomponentes foram padronizados pela
OMG.
Na
Figura 2.3 é apresentada a arquiteturaCORBA
e suas interfaces, através das quais ocorre a interação entre oORB
e os clientes e implementações de objetos.› iii "'”** fi 'GJ Cliente * Implementação do Objeto t il _. et .é iÍ`“'@‹“››.f nterface d I Es ueletos Es ueletos
In V oca ão Slubs ' IDLÍ Interface qIDL Digâmicos Adaptador
. . . C10
ÔRB
1f..r:.=z=z=:z=:z¬:.fssf;mtrz¬.;¬õ:.=:;-z'z:z¬.1.=_'fz- de Objetø I ` NúcleoORB
l . I(ORB
Core)_ Interface idêntica para todas as implementações de
ORB
Stubs e esqueletos específicos para cada tipo objeto
Podem
haver vários adaptadores de objetoInterface dependente do
ORB
'Figura 2.3
-
A
ArquiteturaCORBA
No
CORBA,
interfaces de objetos são descritasem uma
linguagemIDL
(InterfaceDefinition Language),
uma
linguagem puramente declarativacom
sintaxe semelhante ao C++. Através daIDL
são declarados os dados e métodos quepodem
ser acessadosexternamente contidos no objeto correspondente à interface que esta sendo descrita. '
Para fazer
uma
requisição 'deum
serviço aum
objeto, o cliente pode utilizar stubsgeradas na compilação da descrição de interface da implementação do objeto, ou,
í--_-
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHO(Dynamic
Invocation Interface). Para que isto seja possível, a interface do objeto deve seradicionada a uin depósito de interfaces (Interface Repository), permitindo o acesso
em
tempo
de execução à infonnação relativa aos serviços implementados pelo objeto e à forma de
acesso destes (métodos e parâmetros de chamada) . _
Um
cliente, para fazeruma
requisição, deve conheceruma
referência para o objetodestinatário da requisição, e especificar a operação que deseja executar juntamente
com
osparâmetros da chamada. 'A partir de então, o cliente pode
chamar
a rotina stubcorrespondente, ou construir a requisição dinamicamente através da DII.
O
receptor damensagem
não conhece qual dos métodos foi utilizado na requisição, pois todos os aspectosque os diferenciam são tratados internamente pelo
ORB.
-Realizada a requisição, o
ORB
localiza o código da implementação, transmite osparâmetros de
chamada
e transfere o controle para a implementação de objeto através deum
esqueleto IDL, específico à interface e ao adaptador de objeto utilizado.
Ao
executar o serviço solicitado, a implementação do objeto pode acessar serviçosprovidos pelo
ORB
através deum
adaptador de objeto.Podem
haver vários adaptadores deobjeto, e a implementação do objeto escolhe qual irá utilizar baseando-se no serviço que
deseja obter do
ORB.
O
padrãoCORBA
utilizaum
adaptador básico de objetos(BOA
-
BasicObject Adapter), que procura abranger serviços úteis para
um
grande conjunto de objetoscom
implementações convencionais.
ç
A
,interface doORB
é idêntica' para todas as 'implementações
CORBA,
'independentemente do adaptador de objetos utilizado. Através dela
podem
ser invocadaso
operações executadas pelo
ORB
úteis tanto para os clientes quanto para as implementaçõesde objeto.
A
interface de esqueletos dinâmicos (DSI-Dynamic
Skeleton Interface), acrescentadana versão 2.0 do
CORBA,
é utilizada para_interconexão deORBS. Quando
oBOA
recebeuma
invocação de
um
objeto para 0 qual não possui esqueletos, esta invocação passa, através dainterface DSI, para a interface DII de
um
outroORB
que possua esqueletos para o objeto, que fará a invocação.O
núcleoORB
basicamente provê mecanismos de comunicação para que seja possivelprocessar e executar as requisições de métodos remotos.
As
interfaces doCORBA
foram---
CAPÍTULO 2 - ANÁLISE Do CoNTr:xTo no TRABALHOestruturadas sobrepondo-se ao núcleo
ORB,
permitindo que as diferenças entre as diferentesimplementações de núcleo sejam mascaradas completamente. `
A
interoperabilidade entre objetos toma-se possível através da adoção do protocoloIIOP (Internet Inter-ORB Protocol), que trata-se de
um
protocolo padronizado pelaOMG
quepermite comunicação entre diferentes implementações de
ORBs
compatíveiscom
aespecificação
CORBA.
O
IIOP especializa o protocolo TCP/IP (Transport Control Protocol/Intenet Protocol), padrão de facto para comunicação
em
redes, demodo
a otimizá-lo paratransmissão dos tipos de dados utilizados pelo
CORBA.
V2.1.3.
Sistemas
Tempo-Real
Sistemas
com
características de tempo-real [Ram94] [Shi94] possuem atividades quedevem
ser executadas corretamente dentro de intervalos de tempo especificados, nãobastando apenas a correção lógica! do resultado de
uma
atividade do sistema para considerá-loválido,
mas
sendo necessáriatambém
a sua correção temporal. Neste tipo de sistema,um
resultado correto entregue fora do prazo especificado para ser apresentado tem omesmo
efeito de
um
resultado incorreto. ''
Para possibilitar a verificação de sua correção temporal, as atividades do sistema são
associadas a restrições temporais, especificadas na .fonna de parâmetros que
regem
ocomportamento temporal da atividade,
como
o período de ativação, o tempomáximo
deexecução, o intervalo
mínimo
entre ativações, e o prazomáximo
de conclusão da tarefa(deadline).
Em
determinados casos, a violação deuma
restrição temporal pode levar aum
prejuízo maior do que todo o beneficio conseguido
com
aquela atividade. Sistemascom
atividades deste tipo, chamadas falhas catastróficas, são denominados sistemas tempo-real
críticos (hard real-time systems).
Os
sistemas tempo-real não-críticos (soft real-time systems),ou do tipo melhor esforço, são aqueles que não possuem
nenhuma
atividade que possa causaruma
falha catastrófica [Fer94]. .A
previsibilidade do comportamentodo
sistema consiste no fator de maiorimportância na análise de sistemas tempo-real. Através do conhecimento prévio da carga
-í-
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHOveriñcação do cumprimento dasrestrições temporais impostas pelo ambiente, realizando
testes de escalonabilidade que considerem situações de sobrecarga. Garantido o
funcionamento do sistema sob a maior carga esperada, temos a garantia de que as restrições
temporais serão cumpridas
em
qualquer outra situação.No
entanto,em
alguns sistemas não existe a possibilidade de prevermos estaticamentea carga à qual este será submetido e
nem mesmo
delimitarmos os tempos de execução dealgumas atividades,
como
o tempo de acesso ao meio de comunicação, otempo
detransmissão de
uma
mensagem,
ou omáximo
tempo de espera pela liberação deum
recursocompartilhado.
N§§es
sistemas, ditos não-detenninistas, torna-se necessário adotaruma
4 I I
politica probabilista, garantindo
uma
taxa de erro aceitavel dentro da qualdevem
sercumpridas as restrições temporais impostas pelo ambiente [Oli95]. 'Í
Em
função da previsibilidade temporal do comportamento do sistema pode ser-Ç”
L
definido o mecanismo de escalonamento a ser adotado.
Os
processadores `p"‹¿iÍ`ciern ser alocadosestaticamente a tarefas nos casos
em
que a carga for conhecida previamente. Neste caso,testes de escalonabilidade
podem
ser executados para verificar o cumprimento das restriçõestemporais
em
tempo de projeto.Em
sistemas probabilistas, onde a carga e os temposenvolvidos na execução _das atividades do sistema não são conhecidos a_¿r¿r_íori, o
escalonamento de tarefas deve ser realizado
em
tempo
de execução. ` ” '_'
Um
suporte para tempo-real deve refletir o tipo de" sistema para o 'qual se destina.Em
um
suporte para sistemas hard deve haveruma
total previsibilidade do comportamento dosistema, permitindo que todas as restrições de
tempo
sejam examinadas previamente atravésde testes de escalonamento de atividades. Já
em
suportes para sistemas soft, são toleradasalgumas falhas
em
caso de sobrecarga, devendo inclusive ser adotadauma
política de melhoresforço (best-efibrt) para estabelecer o
fluxo
de execução das atividades do sistema.Em
sistemas distribuídos, usualmente são adotados mecanismos de solução doescalonamento
em
etapas, segundo os quais primeiramente é escolhido o processador no qualuma
determinada 'tarefa deve ser executada.Em
seguida, ocorre 0 escalonamento a nível---
CAPÍTULO 2 - ANÁLISE Do CoN'rEx*ro Do TRABALHO,_
2.1.4
Tempo-Real
em
Sistemas
Abertos»
O
tratamento de questões presentesem
sistemas tempo-real no contexto de sistemas abertos é dificultada devidoià existência de fatores conflitantes,mas
não inconciliáveis.De
forma a integrar 'características de tempo-real
em
sistemas distribuidos abertos,devemos
considerar os seguintes aspectos [Tak 92]~[Li 93] :
-
não existe a possibilidade de sincronização dos relógios locais dentro dos níveis degranularidade desejáveis, o que impede que
um
tempo global seja utilizado naverificação de restrições presentes
em
sistemas tempo-real;-
os tempos relativos à comunicação não são delimitados, o que implica na adoção demecanismos probabilistas para determinação do tempo gasto na interação entre os
componentes de
uma
aplicação distribuída; i-
a carga de cada máquina' nestes sistemas e dinâmica e imprevisível;com
isto, nãopodemos
impor garantias quanto à execução denenhuma
das atividades do sistemadentro do
tempo
desejado.Diante destas características, pressupõe-se que a verificação do cumprimento das
restrições temporais impostas às diversas atividades do sistema seja realizado
com
base norelógio local de cada componente da aplicação. `
Como
não existe total previsibilidade acerca do comportamento do sistema, toma-seimpossível garantir que as restrições temporais sejam satisfeitas. Isto conduz à adoção de
políticas de melhor esforço (best-effort) para o escalonamento das atividades do sistema,
com
o intuito de evitar que atividades sejam executadas fora de suas especificações temporais.
Caso alguma restrição temporal imposta pelo ambiente não seja ctunprida, deve haver
uma
notificação ao solicitante da atividade associada à restrição violada, e
um
procedimento detratamento de exceção previsto para tal, deve ser executado prontamente de
modo
a permitirarecuperação do erro ocorrido. '
Adicionalmente, é desejável que o programador disponha de mecanismos que
viabilizem a
mudança
de comportamento do sistema demodo
flexível, possibilitando porexemplo
a introdução de diferentes mecanismos de controle ou a modificação da política de--í
CAPÍTULO 2 - ANÁLISE DO CONTEXTO DO TRABALHOuma
aplicação específica ou ainda para melhorar odesempenho
obtido na execução deuma
aplicação.
Alguns modelos, suportes e arquiteturas apresentados na literatura tem
como
objetivoprincipal integrar aspectos de tempo-real
em
sistemas abertos.Em
seguida serão analisadasalgumas destas propostas. V
2.1.4.1
Modelo de
ObjetosTempo-Real
ANSA
O
modeloANSA
sofreu adaptações demodo
a considerar aspectos presentesem
sistemas tempo-real. Este processo resultou na especificação do modelo de objetos tempo-real
AN
SA
[Li93] [Li94b], que permite a alocação explícita de recursos, o escalonamento e acomunicação através da adoção de
um
modelo de tarefas e deum
modelo de comunicaçãoligeiramente modificados
em
relação ao modelo de objetosANSA
original para tratar asquestões referentes a processamento
em
tempo-real."
' '_ '
As
tarefas neste modelo incorporam a noção defilas de entrada (entry) associadas àsrespectivas interfaces.
As
requisições dirigidas à interface associada são dispostas na ñla deentrada segundo
uma
politica de escalonamento determinada na instanciação da fila. Estapolítica pode ser definida pelo sistema ou provida pela aplicação.
fila de
n
“fr
gfUP°_§1Ç_FatÇ_f.as_\
~
Figura 2.4 -.
O
Modelo
de ObjetosTempo-Real
ANSA
As
requisições contidasem uma
fila de entrada são atendidas por tarefas ou grupos detarefas, que por sua ¡vez são escalonadas pelo núcleo do sistema operacional..