Documente Academic
Documente Profesional
Documente Cultură
So Carlos
Agosto/2004
II
III
T398ae
IV
Agradecimentos
VI
Abstract
VII
Resumo
Esse trabalho descreve um ambiente para especificao de aplicaes
multimdia distribuda com detalhamento da Qualidade de Servio (Quality of Service
QoS) exigida.
A descrio da aplicao feita de forma hierrquica, nos nveis de
usurio, aplicao e recursos, acrescentando os parmetros de QoS exigidos e as regras
de adaptao a serem aplicadas para o monitoramento/ (re)negociao da Qualidade de
Servio.
Essas regras e parmetros de QoS sero responsveis para a ativao da
adaptao do sistema de forma a garantir a sua execuo em conformidade com a
Qualidade de Servio negociada na especificao.
Aps a fase de especificao do sistema multimdia distribudo, o
ambiente gera a documentao em uma linguagem de especificao de sistema com
detalhamento da QoS e suas formas de adaptao/ (re)negociao.
Essa documentao alimenta o emulador Nist Net, permitindo que os
resultados possam ser analisados mediante a verificao do comportamento do sistema
multimdia via sistema emulado.
VIII
Sumrio
Lista de Figuras..............................................................................................................XI
Lista de Tabelas............................................................................................................ XII
1 - Introduo ...................................................................................................................1
2 - Qualidade de Servio ..................................................................................................5
2.1 - Definio ..............................................................................................................5
2.2 - Mapeamento de QoS...........................................................................................7
2.2.1 - QoS de Usurio..............................................................................................8
2.2.2 - QoS de Aplicao ..........................................................................................8
2.2.3 - QoS de Sistema (Software e Hardware) ........................................................9
2.2.4 - QoS de Rede ................................................................................................12
2.3 - Abordagem ........................................................................................................14
3 - Linguagens de Especificao de Qualidade de Servio para Aplicaes Multimdia
Distribudas ....................................................................................................................17
3.1 - Particionamento das Linguagens de Especificao de QoS em Camadas...19
3.2 - Particionamento das Linguagens de Especificao de QoS em Paradigmas
.....................................................................................................................................20
3.2.1 - Paradigma baseado em script.......................................................................20
3.2.2 - Paradigma baseado em parmetro ...............................................................21
3.2.3 - Paradigma orientado a processo ..................................................................22
3.2.4 - Paradigma baseado em controle lgico .......................................................22
3.2.5 - Paradigma baseado em markup ...................................................................23
3.2.6 - Paradigma orientado a aspecto ....................................................................23
3.2.7 - Paradigma orientado a objeto ......................................................................24
3.3 - Critrios para Avaliao das Linguagens de Especificao de QoS ............25
4 - Linguagem de Marcao para Especificar QoS Hierarquicamente ......................28
4.1 - Modelo de Aplicao.........................................................................................30
4.2 - Sintaxe HQML para Especificao de QoS da Camada de Usurio ...........33
4.3 - Sintaxe HQML para Especificao de QoS da Camada de Aplicao ........34
4.4 - Sintaxe HQML para Especificao de QoS da Camada de Recursos .........36
5 - Ambiente para Especificao de Aplicaes Multimdia com Suporte de Qualidade
de Servio........................................................................................................................39
5.1 - Viso Geral da Arquitetura .............................................................................40
5.2 - Editor Visual de QoS Hierrquico ..................................................................42
5.3 - ConfigG: Gramtica Especial de Relao de Smbolo Limitada .................45
5.4 - Gerador de HQML ...........................................................................................47
IX
Lista de Figuras
FIGURA 1: MODELO CONCEITUAL DE QOS. ........................................................................7
FIGURA 2: REQUISITOS DE ARMAZENAMENTO PARA ALGUMAS MDIAS. ...........................12
FIGURA 3: ESQUEMA FUNCIONAL DO CONTROLE DA QUALIDADE DE SERVIO.................15
FIGURA 4: CONFIGURAO DA APLICAO PARA APLICAO DE VOD............................31
FIGURA 5: ORGANIZAO HIERRQUICA DO HQML. ......................................................32
FIGURA 6: EXEMPLO DE ESPECIFICAES HQML NA CAMADA DE USURIO. .................34
FIGURA 7: EXEMPLO DE ESPECIFICAES HQML NA CAMADA DE APLICAO. .............36
FIGURA 8: EXEMPLO DE ESPECIFICAES HQML NA CAMADA DE RECURSO..................38
FIGURA 9: ARQUITETURA DO AMBIENTE PARA ESPECIFICAO DE APLICAES
MULTIMDIA COM SUPORTE DE QOS........................................................................41
FIGURA 10: EDITOR VISUAL DE QOS HIERRQUICO. .......................................................43
FIGURA 11: CAIXA DE DILOGO REFERENTE AO SOFTWARE DO CLIENTE..........................44
FIGURA 12: CAIXA DE DILOGO REFERENTE AO HARDWARE DO CLIENTE. .......................45
FIGURA 13: EXEMPLOS DE GRAFOS DE CONFIGURAES INCORRETOS............................46
FIGURA 14: ESTRUTURA DA APLICAO DE VDEO SOB DEMANDA. ...............................49
FIGURA 15: INTERFACE GRFICA PARCIAL DO EMULADOR NIST NET (XNISTNET)..........53
FIGURA 16: INTERFACE GRFICA PARCIAL DO EMULADOR NIST NET (XNISTNET)..........53
FIGURA 17: INTERFACE GRFICA PARCIAL DO EMULADOR NIST NET (XNISTNET)..........54
FIGURA 18: CAIXA DE DILOGOS REFERENTE A CLASSE DE APLICAO E A QUALIDADE DE
SERVIO EXIGIDOS NA CAMADA DE USURIO...........................................................57
FIGURA 19: DESCRIO DE UMA APLICAO DE VDEO SOB DEMANDA NO EDITOR VISUAL
DE QOS HIERRQUICO. ............................................................................................58
FIGURA 20: (A) HARDWARE DO SERVIDOR, (B) SOFTWARE DO SERVIDOR, (C) HARDWARE
DO CLIENTE E (D) SOFTWARE DO CLIENTE...............................................................59
FIGURA 21: IMAGENS COM APLICAO DE FILTROS. (A) IMAGEM ORIGINAL. (B) IMAGEM
COM APLICAO DO FILTRO QSCALE 15 AB 64. (C) IMAGEM COM APLICAO DO
FILTRO QSCALE 30 AB 32..........................................................................................64
XI
Lista de Tabelas
TABELA 1: TAXA DE BITS DE ALGUMAS APLICAES DE UDIO E VDEO..........................11
TABELA 2: QOS PARA AS TRS CAMADAS: USURIO, APLICAO E RECURSO................19
TABELA 3: COMPARAO DA CAMADA DE APLICAO DAS LINGUAGENS DE
ESPECIFICAO DE QOS...........................................................................................26
TABELA 4: COMPARAO ENTRE DIFERENTES LINGUAGENS DE ESPECIFICAO DE QOS.
.................................................................................................................................27
TABELA 5: VALORES DOS PARMETROS E OS RESPECTIVOS FILTROS APLICADOS. ............62
XII
1 - Introduo
O termo multimdia definido em [1] usado para se referir a mltiplos
tipos de mdia, tecnologias, sistemas e aplicaes que manipulam vrias mdias. Ainda
em [1] sistema multimdia definido como um sistema capaz de manipular pelo menos
um tipo de mdia contnua na forma digital, ou mdia esttica.
J sistemas multimdia distribudo so sistemas que lidam com mdias
contnuas e as processam de maneira distribuda, isto , o sistema formado por
elementos que se interagem a fim de fornecer determinado servio de maneira
satisfatria, como vdeo sob demanda e teleconferncia.
As infra-estruturas que suportam os sistemas multimdia distribudos
oferecem servios com reservas de recursos ou garantias que o desempenho no seja
prejudicado em virtude de variao nas condies do ambiente.
Num sistema multimdia distribudo os servios requisitados para a infraestrutura do ambiente devem ser tratados de forma global. A aplicao requisita os
recursos que esto disponveis no momento da execuo, de forma a garantir a melhor
qualidade possvel. Esses recursos dependem do meio de acesso da aplicao (PDA,
desktop, celular, etc.), da rede de comunicao (Ethernet, ATM, wireless, etc.) e dos
sistemas de processamento da mdia (codificador, decodificador, prefetcher, etc.). Podese utilizar alguns parmetros mnimos na requisio de tais servios, como a exigncia
de uma dada qualidade na transmisso, recepo e execuo da mdia, de forma que tais
Captulo 1 Introduo
servios sejam oferecidos pela infra-estrutura para atender esta requisio mais
abrangente.
nesse contexto que surge a Qualidade de Servio como o conjunto de
caractersticas de um sistema necessrio para atingir uma determinada funcionalidade
por meio da aferio de parmetros pr-definidos antes de iniciar a execuo da
aplicao, sendo que a aplicao possui capacidade de renegociao durante sua
execuo.
As requisies dos servios necessitam que os recursos e os prprios
servios oferecidos estejam em conformidade para que a infra-estrutura possa atender o
que foi determinado na aplicao com a Qualidade de Servio desejada pelo usurio.
Portanto, a QoS torna-se imprescindvel nesse contexto, pois ela delimita os padres
mnimos exigidos para os requisitos do usurio, bem como evidencia se o servio foi
bem sucedido ou no.
A descrio da QoS em uma aplicao multimdia pode ser feita numa
linguagem de especificao de Qualidade de Servio. Tais linguagens so responsveis
por aproximar o desenvolvedor da aplicao aos recursos do sistema, sem preocuparse com a complexidade da implementao. Alm disso, facilita o entendimento dos
meios envolvidos nas transmisses de dados das aplicaes multimdia distribudas.
As linguagens de especificao, tanto as de especificao de sistemas,
como as de especificao de QoS, surgiram devido s diferenas existentes entre os
sistemas operacionais, as redes de comunicao, as preferncias dos usurios, as
aplicaes e, ainda, ao dinamismo no uso dos recursos de um sistema. Enquanto as
linguagens de especificao de sistemas agregam caractersticas capazes de descrever o
sistema multimdia distribudo como um todo, desde os requisitos fsicos do sistema at
parmetros de QoS, as linguagens de especificao de QoS descrevem somente
parmetros ligados a QoS.
O objetivo desse trabalho construir um ambiente para especificao de
aplicaes multimdia distribuda com detalhamento da Qualidade de Servio exigida, a
Captulo 1 Introduo
Captulo 1 Introduo
2 - Qualidade de Servio
2.1 - Definio
requisito que uma classe de aplicaes possui. Isso exige que uma srie de parmetros
esteja dentro de uma faixa de valores bem definidos, para o seu perfeito funcionamento.
Alm dessas definies, vrias outras podem ser encontradas na
literatura. Uma definio mais geral de QoS para aplicaes que se comunicam em
tempo real dada por Vogel et al. [8], descreve Qualidade de Servio como a
representao do conjunto daquelas caractersticas qualitativas e quantitativas de um
sistema multimdia distribudo necessrias para obter funcionalidades requeridas pela
aplicao. Funcionalidades incluem a apresentao de dados multimdia para o usurio,
bem como sua satisfao.
Outras definies de QoS incluem: um conjunto de parmetros que
define as propriedades dos streams1 [9]; uma descrio quantitativa de quais servios
oferecidos pelo sistema satisfaz as necessidades da aplicao expressa como um
conjunto de pares de parmetros [10].
1
pixels por 480 pixels com taxa de 30 quadros por segundo. Alm disso, parmetros
como tamanho do frame do vdeo, taxa de frame do vdeo, resoluo de udio/imagem e
regras de adaptao so parmetros relevantes nessa camada. Ainda deve ser ressaltado
que parmetros como atraso e variao do atraso, normalmente tratados como
parmetros de rede, podem ser analisados nessa camada, haja vista a necessidade da
aplicao de ter garantias quanto aos valores desses parmetros. Esses parmetros so
mapeados para a Camada de Recurso a fim de serem alocados recursos fsicos
necessrios para a garantia de que os valores dos parmetros sero alcanados no nvel
da aplicao.
Por exemplo, se uma imagem tem 480 linhas, 600 pixels em cada linha e
uma profundidade de pixel de 24 bits, necessrio 864.000 bytes para represent-la.
Para uma nica imagem no preciso dimensionar o tempo de
armazenamento, porm se h um tempo limite para a transmisso de cada imagem, a
largura de banda pode ser calculada baseado no armazenamento da mdia. Por exemplo,
se a imagem de 864.000 bytes deve ser transmitida com um tempo de 2 segundos, ento
a largura de banda necessria de 3.456 Mbits/s. Em muitas aplicaes, imagens podem
ser mostradas em sincronia com uma mdia contnua, como o udio. Neste caso, a
transmisso de imagens impe restries de tempo e largura de banda.
Tanto o udio quanto o vdeo so mdias contnuas. Para calcular a taxa
de bits transmitidas em um segundo por um arquivo de udio deve-se basear na taxa de
amostras e nmero de bits por amostra. A taxa de bits para arquivos de vdeo pode ser
calculada da mesma forma que no udio, porm normalmente calculada a partir da
quantidade de dados em cada imagem (quadro ou frame) vezes o nmero de quadros por
segundo. O nmero resultante desse clculo especifica tanto a taxa de bits necessitada
pelo canal de transmisso quanto a taxa de transferncia do dispositivo de
armazenamento.
A Tabela 1 [14] apresenta os requisitos de largura de banda de mdias
contnuas (udio e vdeo) de diferentes qualidades. J a Figura 2 [14] mostra os
requisitos de armazenamento para mdias estticas e mdias contnuas de diferentes
duraes. Obviamente que os dados expostos na Figura 2 dependem de fatores como
tamanho da imagem e as representaes de cores e no so consideradas mdias
comprimidas.
10
Aplicaes
CD-udio
DAT
1.536
Telefone Digital
64
Televiso-Qualidade do Vdeo
216.000
VHS-Qualidade do Vdeo
54.000
HDTV
864.000
Tabela 1: Taxa de bits de algumas aplicaes de udio e vdeo. [Willrich, 2004]
11
13
que a de erros de bit, porque uma perda de pacote pode afetar a decodificao de uma
imagem, por exemplo. Quando tcnicas de compresso so utilizadas a taxa de erro de
bits deve ser pequena, pois um erro de bit pode causar um erro de descompactao de
muitos bits. Tcnicas de encobrimento de erros podem ser empregadas para aumentar a
qualidade de udio e vdeo.
2.3 - Abordagem
14
Handoff: Em sistemas mveis celulares, o processo de transferir uma chamada em andamento de uma
clula transmissora e receptora com uma freqncia definida para uma outra clula transmissora e
receptora usando uma freqncia diferente [21].
15
Aps a escolha dos valores dos parmetros de QoS pela aplicao e sua
posterior traduo em parmetros que o sistema possa compreender, deve-se
efetivamente iniciar a negociao com os elementos do sistema envolvidos para
verificar se possvel prover a qualidade desejada.
Se a negociao com os elementos do sistema for bem sucedida,
preciso que os recursos necessrios para que se garantam a QoS sejam reservados ao
longo do caminho da comunicao. Durante a comunicao deve-se monitorar tambm
a QoS e, caso seja violada, tomar as providncias necessrias. Alm disso, ao longo da
comunicao a aplicao deve poder renegociar parmetros de QoS.
Como a QoS garantida s aplicaes por meio de reserva de recursos
ao longo da rede, como largura de banda, buffers nos roteadores, ciclos de CPU, entre
outros, torna-se importante que no haja desperdcio de recursos, pois deste modo,
pode-se atender a mais usurios simultaneamente. Esta racionalidade no uso dos
recursos tambm importante devido ao fato de que o usurio estar eventualmente
pagando pela sua utilizao e, portanto, deve-se procurar minimizar os custos.
Embora existam muitas solues para a utilizao de QoS em sistemas
multimdia distribudos, os desenvolvedores de aplicao ainda no conseguiram criar
aplicaes multimdia com QoS embutida, especialmente para aplicaes Web [22]. A
razo est situada no fato de que no existe uma linguagem de especificao de QoS
universal. Mesmo existindo as mais diversas linguagens de especificao de QoS, elas
ainda esto muito ligadas com uma linguagem de programao especfica ou no podem
ser estendidas para alcanar rapidamente os novos servios de QoS. Dessa forma,
necessrio que haja uma anlise das linguagens de especificao de QoS e das
necessidades do desenvolvedor da aplicao, a fim de que todos os requisitos do usurio
possam ser expressos na especificao de QoS. O captulo a seguir apresenta uma
anlise comparativa das linguagens de especificao de QoS.
16
requisitado pelo usurio, porm no como a requisio deve ser executada pela
aplicao;
17
compilao para poder mapear a especificao de QoS para dar suporte a polticas e a
mecanismos do sistema.
Devido s diferenas existentes entre os sistemas operacionais, as redes
de comunicao, as preferncias dos usurios, as aplicaes e, ainda, ao dinamismo no
uso dos recursos de um sistema, torna-se imprescindvel especificar propriamente as
necessidades e polticas de adaptao da QoS para a entrega e o processamento
multimdia.
Para satisfazer essa tarefa complexa, muitas linguagens de especificao
de QoS surgiram para suprir essas necessidades. Com tantas especificaes de QoS
existentes, que passam por vrias camadas de QoS e paradigmas de linguagens, h uma
forte necessidade de categoriz-las e organiz-las para que se obtenha um amplo e
criterioso entendimento sobre esta importante rea.
A metodologia para analisar o conjunto de linguagens de especificao
de QoS pode empregar a diviso e conquista, como estudado por Jin e Nahrstedt [23],
em que foi particionado o conjunto em paradigmas de acordo com as propriedades
especficas e avaliada cada paradigma separadamente, assim como foram estudadas as
relaes entre esses paradigmas.
A QoS em sistemas multimdia deve ser assegurada no somente na
camada de rede, mas tambm nos sistemas finais, como por exemplo os sistemas
operacionais e dispositivos perifricos. Por essa razo, a especificao de QoS foi
introduzida para sistemas finais e aplicaes [24]. Baseado nesse desenvolvimento, as
linguagens de especificao de QoS podem ser divididas primeiramente em camadas de
acordo com o sistema final a que elas pertencem [25], [26], e ento em paradigmas
baseados em suas propriedades.
18
Parmetros/Questes de QoS
- Qualidade de mdia percebida (excelente, bom,
regular, ruim)
- Tamanho da janela (grande, mdia, pequena)
- Preo do modelo (taxa de flat, carga por
transmisso de bytes)
- Variao de preo (alta, mdia, baixa)
- Atributos de QoS especficos aplicao
(tamanho do frame do vdeo, taxa de frame do
vdeo, resoluo de udio/imagem, sincronizao
inter/intrastream)
- Regras de adaptao
- Questes quantitativas (vazo, atraso, jitter,
tamanho da memria, tempo de requisio do
recurso)
- Questes qualitativas (escalonamento do Sistema
Operacional, estilo da reserva do recurso,
mecanismos de deteco/recuperao de perda)
- Regras de adaptao
19
20
Daemon: processo executado em segundo plano que realiza operaes em perodos predefinidos ou em
resposta a determinados eventos.
21
sistemticas.
Usando
linguagens
de
programao
tradicionais,
as
24
sua capacidade de especificar uma grande variedade de servios, seus recursos exigidos
e suas regras de adaptao correspondentes.
25
uma linguagem para permitir a especificao de novas dimenses de QoS alm das que
j foram desenvolvidas, atravs da incluso de novas classes.
fcil de ser desenvolvido, etc., facilitando o seu reuso por um outro desenvolvedor.
Expressividade
Declarativa
Independncia
Extensibilidade
Reusabilidade
Adaptabilidade
SafeTcl
Fraco
Regular
Bom
Fraco
Fraco
Bom
QoS-A
Bom
Bom
Bom
Bom
Fraco
Fraco
QuAL
Bom
Fraco
Fraco
Bom
Fraco
Bom
Regular
Bom
Bom
Regular
Fraco
Bom
HQML
Bom
Bom
Bom
Bom
Fraco
Bom
QDL
Bom
Bom
Bom
Bom
Fraco
Bom
QML
Regular
Bom
Bom
Bom
Bom
Bom
XqoS
Bom
Bom
Regular
Bom
Fraco
Bom
Fuzzy Control
Integrao
Linguagens
QoS na
QoS na
QoS na
de
Camada
Camada
Camada
Mapeamento
Independente
com
Checagem de
Automtico
de Linguagem
Aplicao
Consistncia
Gerao de
Especificao
Especificao
de
de
de
de QoS
Usurio
Aplicao
Recurso
Index
Sim
No
No
No
No
No
No
No
SafeTcl
No
Sim
No
No
No
No
No
No
QoS-A
No
Sim
No
No
No
No
No
No
QuAL
No
Sim
Sim
No
No
No
No
No
QDL
No
Sim
Sim
No
Sim
No
No
No
QML
No
Sim
No
No
Sim
No
No
No
RSL
No
No
Sim
No
Sim
No
No
No
TAOML
No
No
Sim
Sim
Sim
Sim
No
No
HQML
Sim
Sim
Sim
Sim
Sim
Sim
Sim
Sim
XQoS
Sim
Sim
Sim
No
Sim
No
No
No
Web
Automtica
27
Linguagem
de
Marcao
para
Especificar
QoS
Hierarquicamente
O XML (eXtensible Markup Language) [32] uma linguagem de
especificao, usada por aplicaes Web multimdia distribudas num formato universal
para documentos estruturados e dados na Web e tambm extensvel. XML por si s no
diz ao desenvolvedor da aplicao como especificar requisitos de QoS para sua
aplicao, precisa definir um conjunto mnimo de tags apropriadas para permitir que os
desenvolvedores expressem suas polticas e requisitos de QoS, baseado na sintaxe
XML. Os desenvolvedores tambm podem definir suas prprias tags especficas para
um servio.
Na prtica XML um padro para troca de informaes entre diversas
plataformas, que apenas possibilita a descrio de dados em um arquivo de formato
texto. Vrias linguagens de especificao de sistemas so derivadas de XML, o que
possibilita ao XML ser considerado uma poderosa ferramenta para a publicao de
informaes. XML considerada uma linguagem-me [40] das linguagens de
especificao, pois a partir dele possvel serem desenvolvidas novas linguagens.
O XML foi escolhido para ser o modelo do HQML porque existe uma
facilidade comum e natural entre as necessidades do XML de criar novos modelos bem
sucedidos e os requisitos de especificao de QoS de aplicaes multimdia para Web.
28
de documento [2] possa ser usado para checar alguns erros nos arquivos baseados em
XML, ele no contm nada especfico sobre especificaes de QoS. Por exemplo, devese ter certeza que no h deadlock nas especificaes das configuraes da aplicao
para uma aplicao multimdia distribuda;
ser consistentes. Se, por exemplo, um codificador MPEGII estiver conectado com um
decodificador H261, ou um player de baixa qualidade estiver conectado com um
servidor de vdeo de alto desempenho, a aplicao no funcionar apropriadamente.
Tais problemas de inconsistncias podem ser solucionados por um
verificador da semntica da especificao completa. Um exemplo o QoSTalk [41], que
um ambiente visual que auxilia os desenvolvedores de aplicao a gerar os arquivos
HQML fcil e corretamente.
30
Para poder processar a entrada e gerar a sada, uma quantidade especfica de recursos
necessria.
As tarefas podem ser conectadas em um dgrafo acclico, que chamado
de configurao da aplicao. A configurao da aplicao o fluxograma sob o qual o
dado multimdia passa entre os provedores de servio e o usurio final. Como exemplo,
na aplicao de vdeo sob demanda, ilustrada na Figura 4, o dado lido do disco,
armazenado em buffers no remetente (servidor), transmitido pela rede e novamente
armazenado no buffer no receptor (cliente). Ento decodificado antes de ser
apresentado para o usurio. Os buffers so considerados componentes de aplicao ao
invs de memria de armazenamento, permitindo assim utilizar diferentes formas de
gerenciamento do buffer explicitamente.
31
32
definem
os
valores
para
cada
um
desses
parmetros.
As
tags
35
<QoSParameters>
<Delay>
<Min>
1
</Min>
<Max>
2
</Max>
</Delay>
<AdaptationRules>
<Rule>
<Name>
No sound
</Name>
<Order>
101
</Order>
</Rule>
</AdaptationRules>
<Jitter>
<Min>
0
</Min>
<Max>
1
</Max>
</Jitter>
<AdaptationRules>
<Rule>
<Name>
No video
</Name>
<Order>
201
</Order>
</Rule>
</AdaptationRules>
</QoSParameters>
37
<ServerGroup>
<Server>
<Name>
Server1
</Name>
<Category>
Servers
</Category>
<NodeLabel>
0
</NodeLabel>
<HardwareEnvironment>
Sun Ultra60
</HardwareEnvironment>
<SoftwareEnvironment>
Solaris
</SoftwareEnvironment>
<Memory>
512000 KB
</Memory>
<Disk>
40000 MB
</Disk>
<Bandwidth>
100 Mbits
</Bandwidth>
<AtomicComponent>
<Name>
Software Server
</Name>
<Category>
Clients
</Category>
<NodeLabel>
1
</NodeLabel>
<Memory>
256000KB
</Memory>
<Disk>
20000MB
</Disk>
<Bandwidth>
50 Mbits
</Bandwidth>
</AtomicComponent>
</Server>
</ServerGroup>
38
ser
mantida
no
sistema
(high,
average,
low,
any);
40
posteriormente pelo Executor HQML, que tem por finalidade ler o arquivo HQML,
entend-lo e passar esses parmetros para o sistema multimdia por meio de comandos
do Sistema Operacional.
42
44
46
MediaPlayer,
VoiceMailRecorder,
Prefetch,
ImageServer,
VisualTracker,
ImageDisplay,
MediaRecorder,
RemoteControl,
Transcoder,
48
ControlServer. Essa classe necessita dos parmetros de QoS e das regras de adaptao
para preencher a tabela que contm os comandos de filtragem do vdeo.
O estudo de caso ilustrando uma modelagem possvel por meio do
ambiente WSE uma aplicao de vdeo sob demanda composto por 3 componentes:
um cliente, um servidor e o proxy, como descrito na Figura 14, em que o cliente
requisita um vdeo ao servidor usando o proxy como mediador. O cliente requisita o
vdeo atravs do Mplayer [45], a implementao do proxy descrita a seguir e o
servidor utilizado o Apache [46].
49
homnima;
do vdeo;
Y ilustra o valor que pode ser colocado como opo para a alterao
vdeo;
performance da rede. Por operar no nvel de roteamento (nvel IP), o Nist Net pode
emular caractersticas crticas de performance fim a fim, tais como congestionamento,
perdas de pacotes e gargalos que limitam a largura de banda.
A emulao oferece assim mais vantagens que as duas situaes:
simulaes (um ambiente controlado que relativamente rpido e fcil de se montar) e
teste real (cdigo real em um ambiente real que evita todas as perguntas sobre a
fidelidade da representao). Ainda, a emulao pode minimizar o investimento
requerido para testar a rede por sua fcil instalao e uso.
A emulao de rede uma soluo intermediria, propiciando um
ambiente capaz de reproduzir situaes crticas e executando cdigo do prprio sistema.
Com este mtodo, possvel testar desde ambientes grandes e complexos, at ambientes
simples, utilizando uma pequena rede em um laboratrio, sendo que no necessrio
refazer o cdigo do sistema para o ambiente de execuo. Alm disso, o custo na
utilizao de um emulador muito baixo, uma vez que com o mesmo equipamento
possvel modelar uma variedade enorme de ambientes.
A implementao do Nist Net consiste em um mdulo de extenso para o
kernel do sistema operacional Linux e uma interface grfica para o usurio da aplicao.
Em uso, a ferramenta permite a um computador pessoal configurado como roteador,
emular numerosos cenrios de performances complexas, como limitaes de largura de
banda, atrasos, duplicao e perdas de pacotes de dados, dentre outros. A interface
grfica permite ao usurio monitorar e selecionar o trfego que passa atravs do
roteador, e aplicar efeitos selecionados de performance aos pacotes IP do fluxo de
informao. Em adio interface interativa, o Nist Net pode ser dirigido por traos de
medidas feitas a partir de condies de redes reais.
O Nist Net um pacote de emulao que executa na maioria dos PCs
equipados com Linux sendo de fcil instalao e de distribuio gratuita. Para interagir
com esse emulador, vrias ferramentas esto disponveis no pacote, tais como o Cnistnet
e o Xnistnet (a interface grfica). O primeiro prov uma interface de linhas de comando
que permite interao com o emulador atravs de argumentos como u (ativa o
emulador) e d (desativa o emulador). O segundo uma interface grfica, a qual
52
liga e desliga o
Carrega mudanas
emulador
realizadas
L as configuraes
Adiciona outra linha
correntes do
interface do usurio
emulador
Sai da interface do
usurio
53
Tamanho, em bytes, do
ltimo pacote recebido
Nmero de pacotes na
fila de espera
Nmero total de bytes
manipulado pelo par
origem/destino
55
demand (vdeo sob demanda) e para requisitos de Qualidade de Servio high (alta).
A figura 18 ilustra essas opes.
Figura 18: Caixa de dilogos referente a classe de aplicao e a Qualidade de Servio exigidos na
camada de usurio.
Figura 19: Descrio de uma aplicao de vdeo sob demanda no Editor Visual de QoS
Hierrquico.
(a)
(b)
(c)
(d)
Figura 20: (a) Hardware do Servidor, (b) Software do Servidor, (c) Hardware do Cliente e (d)
Software do Cliente.
Parmetro
Perda
Largura de Banda
Delay
Jitter
Faixa de Valores
10 20%
20 24%
25 30%
31 35%
36 acima
10 50 Mbits
50 100 Mbits
100 acima
0 10000 ms
0 10000 ms
Filtro
qscale 8 ab 96
qscale 10 ab 96
qscale 15 ab 64
qscale 30 ab 32
inaceitvel
qscale 5 ab 96
qscale 30 ab 32
inaceitvel
Ignorado
Ignorado
- qscale 30 ab 32 = 674KB.
Pode ser percebido que a diminuio do nmero de quadros contribui
para que o vdeo continuasse a sua reproduo, porm, isso inversamente proporcional
a qualidade do vdeo, pois, ao diminuir o nmero de quadros com a aplicao dos
filtros, a qualidade caiu causando deformaes na imagem e aumento de rudos no
udio. Os valores dos tamanhos do vdeo aps a aplicao dos filtros variou de,
aproximadamente, 64% a 21% em relao ao tamanho original, respectivamente qscale
8 ab 96 e qscale 30 ab 32.
O mesmo acontece quando ocorre a aplicao de filtros para conter os
problemas com relao a largura de banda. Neste caso, os tamanhos finais do vdeo aps
a aplicao dos filtros foram:
- qscale 5 ab 96 = 2790KB;
- qscale 30 ab 32 = 674KB.
Esses tamanhos correspondem a, aproximadamente, 89% e 21% do
tamanho original, sendo este ltimo filtro considerado o que deixa o vdeo pior, porm
ainda com a possibilidade de se ter vdeo e udio, mesmo com uma degradao dos
mesmos.
Existe ainda a possibilidade de aplicao de filtros que diminuam ainda
mais o nmero de quadros do vdeo, acarretando em arquivos com pouco mais de 5% do
tamanho original, porm estes no foram considerados na Tabela 5 por tirarem o vdeo
ou o udio completamente.
63
(a)
(b)
(c)
Figura 21: Imagens com aplicao de filtros. (a) Imagem original. (b) Imagem com aplicao do
filtro qscale 15 ab 64. (c) Imagem com aplicao do filtro qscale 30 ab 32.
64
66
Referncias Bibliogrficas
[1] Lu, G. Communication and Computing for Distributed Multimedia Systems.
Artech House, 1996.
[2] Gu, X.; Nahrstedt, K.; Yuan, W.; Wichadakul, D.; Xu, D. An XML-based QoS
Enabling Language for the Web, Journal of Visual Language and Computing (Special
Issue on Multimedia Languages for the Web), Publicao Acadmica, 2001.
[5] Hansen, G. Quality of Service (QoS), Objects Services and Consulting, Inc,
Janeiro de 1997. Disponvel em http://www.objs.com/survey/QoS.htm. Acessado em 22
de julho de 2004.
67
Referncias Bibliogrficas
[8] Vogel, L.; Kerherve, B.; Bochmann, G.; Gecse, J. Distributed Multimedia and QoS:
A Survey, IEEE Multimedia, p. 10-19, 1995.
em:
http://www.ietf.org/proceedings/98aug/I-D/draft-ietf-diffserv-
68
Referncias Bibliogrficas
[15] Gopal, P. M.; Wong, J. W.; Majithia, J. C., Analysis of Playout Strategis for
Voice Transmission using Packet Switching Techniques, Preformance Evaluation, vol.
4, pp. 11-18, 1984.
[16] Hehmann, D.; Salmony, M.; Stuttgen, H., Transport Services for Multimedia
Applications on Broadband Networks, Computer Communications, vol. 13, n 4, pp.
197-203, 1990.
[17] ITU ITU-T Study Group 12 Workshop on QoS and user-perceived transmission
quality in evolving networks. ITU Telecommunication Standardization Sector, 2001.
2000.
Disponvel
em:
http://hyperphysics.phy-
2000.
Disponvel
em:
http://hyperphysics.phy-
[20] Goulart, C. C.; Nogueira, J. M. S.; Neufeld, G. A Scheme for Dynamic QoS
Renegotiation at Intermediate Nodes. Em Wanderley Lopes de Souza and Rogrio
Drummond, editores, Anais do 15o. Simpsio Brasileiro de Redes de Computadores
(SBRC '97), pages 383-398, So Carlos, SP, 1997. UFSCar.
[21]
Federal
Standart
1037C:
Glossary
of
Telecommunications
Terms,
69
Referncias Bibliogrficas
[24] Nahrstedt, K.; Smith, J. M. The QoS Broker. IEEE Multimedia Magazine,
2(1):5367, 1995.
[26] Nishio, N.; Tokuda, H. Simplified Method for Session Coordination Using Multilevel QoS Specification and Translation. Em Fifth International Workshop on Quality
of Service (IWQoS97), Nova Iorque, EUA, 1997.
[27] Roscoe, T.; Bowen, G. Script-driven Packet Marking for Quality of Service
Support in Legacy Applications. In Proceedings of SPIE Conference on Multimedia
Computing and Networking 2000, San Jose, CA, 2000.
[28] Levy , J. Y.; Ousterhout, J. K.; Welch, B. B.. The Safe-Tcl Security Model.
Relatrio Tcnico TR-97-60, Sun Microsystems Laboratories, 1997.
70
Referncias Bibliogrficas
[32]
World
Wide
Web
Consortium.
eXtensible
Markup
Language.
[33] Exposito, E.; Gineste, M.; Peyrichou, R.; Senac, P.; Diaz, M. XqoS: XML-Based
QoS Specification Language. 2002.
[34] Mendhekar, A.; Maeda, C.; Lopes, C. V.; Loingtier, J.; Irwin, J.; Kiczales, G.;
Lamping, J. Aspect-Oriented Programming. In Proceedings of the European
Conference on Object-Oriented Programming (ECOOP), Finlndia, Springer-Verlag
LNCS 1241, 1997.
[35] Zinky, J. A.; Loyall, J. P.; Schantz, R. E.; Bakken, D. E. Specifying and
Measuring Quality of Service in Distributed Object Systems. In Proceedings of
ISORC98, Kyoto, Japo, 1998.
[36] Bakken, D. E.; Zinky, J. A.; Schantz, R. D. Architectural Support for Quality of
Service for CORBA Objects. Theory and Practice of Object Systems, 1997.
[37] Schantz, R. E.; Zinky, J. A.; Karr, D. A.; Vanegas, R.; Loyall, J. P.; Bakken, D. E.;
Anderson, K. R. QoS Aspect Languages and Their Runtime Integration. Lecture
Notes in Computer Science, Springer - Verlag, 1511, 1998.
71
Referncias Bibliogrficas
[41] Gu, X.; Wichadakul, D.; Nahrstedt, K.. Visual Quality of Service Programming
Environment for Ubiquitous Multimedia Services, em Proceedings of IEEE
International Conference on Multimedia and Expo 2001 (ICME2001), Tkio, Japo,
2001.
[42] Kon, F.; Campbell, R.; Mickunas, M. D.; Nahrstedt K.; Ballesteros, F. J. 2K: A
Distributed Operating System for Dynamic Heterogeneous Environments. 9th IEEE
International Symposium on High Performance Distributed Computing. Pittsburgh,
2000.
[43] Ferrucci, F.; Pacini, G.; Satta, G. Symbol-Relation Grammars: A Formalism for
Graphical Languages. Information and Computation, 131, 1996.
Referncias Bibliogrficas
[50] Carson, M.; Santay, Darrin. Nist Net A Linux-based Network Emulation Tool.
National Institute of Standarts and Technology, 2002.
[51] Gu, X.; Xu, D.; Wichadakul, D.; Nahrstedt, K. QoSTalk: A Visual Quality of
Service Programming Environment, Illinois Computer Affiliates Program (ICAP)
Workshop, 2000.
73
74
server.removeConnection(this);
}
} catch (Exception e) { e.printStackTrace(); }
}
//=============================================================
===
public boolean isActive() {
return !sserver.isClosed();
}
//=============================================================
===
public void setFilter(String filter) throws java.io.IOException {
if ( server2filter != null && filter2client != null ) {
server2filter.interrupt();
filter2client.interrupt();
filteris.close();
filteros.close();
filtererr.close();
process.destroy();
} else
server2client.interrupt();
process = Runtime.getRuntime().exec(filter);
filteros = process.getOutputStream();
filteris = process.getInputStream();
filtererr = process.getErrorStream();
server2filter = new ProxyTunnel(1, "1", serveris, filteros);
filter2client = new ProxyTunnel(1, "2", filteris, os);
server2client = server2filter;
//consumir err
new ProxyTunnel(1, "3", filtererr, new ByteArrayOutputStream(1024));
}
//=============================================================
===
public String toString() {
return s.getInetAddress().getHostAddress();
}
//=============================================================
===
}
Classe ProxyTunnel
package proxy;
76
import java.net.Socket;
import java.io.InputStream;
import java.io.OutputStream;
public class ProxyTunnel extends Thread {
//---------------------------------------------------------------------------private Socket proxy;
private OutputStream clientos;
private InputStream proxyis;
private boolean adapt = false;
private String name;
private int timeToSleep;
//---------------------------------------------------------------------------public ProxyTunnel(int timeToSleep, String name, InputStream proxyis, OutputStream
os) {
this.timeToSleep = timeToSleep;
this.name = name;
this.proxyis = proxyis;
this.clientos = os;
this.start();
}
//---------------------------------------------------------------------------public void run() {
try {
byte bb[] = new byte[65536];
while (true) {
int iii = proxyis.read(bb);
if (iii < 0)
throw new Exception("Server acabou!");
clientos.write(bb, 0, iii);
System.out.println(name + " > enviou (" + iii + ")");
clientos.flush();
Thread.sleep(timeToSleep);
}
} catch (InterruptedException e) {
System.out.println("Parei " + name);
} catch (Exception e) {
e.printStackTrace();
if ( !this.isInterrupted() ) {
try{ clientos.close(); } catch (Exception e1) { e.printStackTrace(); }
try{ proxyis.close(); } catch (Exception e1) { e.printStackTrace(); }
}
} finally {
}
}
//---------------------------------------------------------------------------}
77
Classe Server
package proxy;
import java.net.*;
//import java.io.*;
import java.util.Vector;
import java.util.Enumeration;
public class Server {
//=============================================================
===
private Vector connections = new Vector();
//=============================================================
===
public static void main(String args[]) {
try {
if (args.length != 1) {
System.out.println("Usage: Server port");
return;
}
Server server = new Server();
ServerSocket ss = new ServerSocket(Integer.parseInt(args[0]));
System.out.println("Server activated at port " + ss.getLocalPort());
ControlServer cs = new ControlServer(ss.getLocalPort()+1, server);
while (true) {
try {
server.addConnection( new Connection( ss.accept(), server ) );
} catch (Exception e) { e.printStackTrace(); }
}
} catch (Exception e) { e.printStackTrace(); }
}
//=============================================================
===
public Vector getConnections() {
return connections;
}
//---------------------------------------------------------------------------public void addConnection(Connection connection) {
connections.add(connection);
}
//---------------------------------------------------------------------------public void removeConnection(Connection connection) {
connections.remove(connection);
78
}
//=============================================================
===
}
Classe ControlServer
package proxy;
import java.net.ServerSocket;
import java.net.Socket;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Vector;
import java.util.Enumeration;
public class ControlServer extends Thread {
//=============================================================
===
private ServerSocket ss;
private Server server;
//=============================================================
===
public ControlServer( int port, Server server ) throws java.io.IOException {
this.server = server;
this.ss = new ServerSocket(port);
System.out.println("Control Server activated at port " + ss.getLocalPort());
this.start();
}
//=============================================================
===
public void run() {
while(true) {
try {
Socket s = ss.accept();
System.out.println("Controller connected.");
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
while (true) {
System.out.println("receber commando");
String command = ois.readUTF();
if (command.equals("getConnections")) {
System.out.println("getConnections");
Vector v = new Vector();
79
Enumeration e = server.getConnections().elements();
while (e.hasMoreElements())
v.add(e.nextElement().toString());
oos.writeObject(v);
} else if (command.equals("setFilter")) {
System.out.println("setFilter");
int index = ois.readInt();
String filter = ois.readUTF();
Connection c = (Connection) server.getConnections().elementAt(index);
c.setFilter(filter);
} else if (command.equals("exit")) {
break;
}
}
} catch (Exception e) { e.printStackTrace(); }
}
}
//=============================================================
===
}
Classe Controller
package proxy;
import java.net.Socket;
import java.io.*;
import java.util.Vector;
public class Controller {
//=============================================================
===
public static void main(String[] args) {
if (args.length != 2) {
System.out.println("Usage: Controller serverAddress serverPort");
return;
}
try {
Socket s = new Socket(args[0], Integer.parseInt(args[1]));
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
ObjectInputStream ois = new ObjectInputStream(s.getInputStream());
BufferedReader br = new BufferedReader( new InputStreamReader(System.in) );
while(true) {
System.out.print("Command (h for help): ");
String command = br.readLine();
if (command.equals("h")) {
80
83
void jbRefresh_actionPerformed(ActionEvent e) {
try {
int sel = jlConnections.getSelectedIndex();
oos.writeUTF("getConnections");
oos.flush();
Vector connections = (Vector) ois.readObject();
jlConnections.setListData(connections);
jlConnections.setSelectedIndex(sel);
} catch(Exception error) {
error.printStackTrace();
}
}
void jbExit_actionPerformed(ActionEvent e) {
try {
oos.writeUTF("exit");
oos.flush();
this.dispose();
} catch(Exception error) {
error.printStackTrace();
}
}
void jbFilter_actionPerformed(ActionEvent e) {
if (jlConnections.getSelectedIndex()<0)
JOptionPane.showMessageDialog(null, "You may choose a connection in the list.",
"Alert", JOptionPane.PLAIN_MESSAGE);
else {
try{
oos.writeUTF("setFilter");
oos.writeInt(jlConnections.getSelectedIndex());
oos.writeUTF(jcbFilter.getSelectedItem().toString());
oos.flush();
} catch(Exception error) {
error.printStackTrace();
}
}
}
}
class ListUpdater implements Runnable {
ControllerGUI adaptee;
public ListUpdater(ControllerGUI adaptee) {
this.adaptee = adaptee;
Thread thread = new Thread(this);
thread.setDaemon(true);
84
thread.start();
}
public void run() {
while (true) {
try { Thread.sleep(1000); } catch (Exception e) {}
adaptee.jbRefresh_actionPerformed(null);
}
}
}
class ControllerGUI_jbRefresh_actionAdapter implements
java.awt.event.ActionListener {
ControllerGUI adaptee;
ControllerGUI_jbRefresh_actionAdapter(ControllerGUI adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jbRefresh_actionPerformed(e);
}
}
class ControllerGUI_jbExit_actionAdapter implements java.awt.event.ActionListener {
ControllerGUI adaptee;
ControllerGUI_jbExit_actionAdapter(ControllerGUI adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jbExit_actionPerformed(e);
}
}
class ControllerGUI_jbFilter_actionAdapter implements java.awt.event.ActionListener
{
ControllerGUI adaptee;
ControllerGUI_jbFilter_actionAdapter(ControllerGUI adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.jbFilter_actionPerformed(e);
}
}
85
86
R59. mhl(C1, CC0) [27, 28, 29, 30 ,31 ,32] {mhl(C1, CC2)}
R60. mul(C1, CC0) [27, 28, 29, 30 ,31 ,32] {mul(C1, CC2)}
R61. fl(D1, GC0) [34] {fl(D1, GC2), fl(D1, GC3)}
R62. mhl(D1, GC0) [34] {mhl(D1, GC2), mhl(D1, GC3)}
R63. mul(D1, GC0) [34] {mul(D1, GC2), mul(D1, GC3)}
R64. fl(D1, GC0) [35, 36, 37, 43] {fl(D1, D2)}
R65. mhl(D1, GC0) [35, 36, 37, 43] {mhl(D1, D2)}
R66. mul(D1, GC0) [35, 36, 37, 43] {mul(D1, D2)}
R67. fl(D1, GC0) [38, 39, 40, 41, 42] {fl(D1, GC2)}
R68. mhl(D1, GC0) [38, 39, 40, 41, 42] {mhl(D1, GC2)}
R69. mul(D1, GC0) [38, 39, 40, 41, 42] {mul(D1, GC2)}
R70. fl(GC0, D1) [34] {fl(GC2, D1), fl(GC3, D1)}
R71. mul(GC0, D1) [34] {mul(GC2, D1), mul(GC3, D1)}
R72. mhl(GC0, D1) [34] {mhl(GC2, D1), mhl(GC3, D1)}
R73. fl(GC0, D1) [35, 36, 37] {fl(GC2, D1)}
R74. mhl(GC0, D1) [35, 36, 37] {mhl(GC2, D1)}
R75. mul(GC0, D1) [35, 36, 37] {mul(GC2, D1)}
R76. fl(GC0, D1) [38, 39, 40, 41, 42, 43] {fl(D2, D1)}
R77. mhl(GC0, D1) [38, 39, 40, 41, 42, 43] {mhl(D2, D1)}
R78. mul(GC0, D1) [38, 39, 40, 41, 42, 43] {mul(D2, D1)}
R79. fl(GC0, GWC1) [34] {fl(GC2, GWC1), fl(GC3, GWC1)}
R80. mul(GC0, GWC1) [34] {mul(GC2, GWC1), mul(GC3, GWC1)}
R81. mhl(GC0, GWC1) [34] {mhl(GC2, GWC1), mhl(GC3, GWC1)}
R82. fl(GC0, GWC1) [35, 36, 37] {fl(GC2, GWC1)}
92
94
95
</Memory>
<Disk>
80000 MB
</Disk>
<Bandwidth>
100 Mbits
</Bandwidth>
<AtomicComponent>
<Name>
Software Server
</Name>
<Category>
Server
</Category>
<NodeLabel>
0
</NodeLabel>
<Memory>
256000KB
</Memory>
<Disk>
40000MB
</Disk>
<Bandwidth>
100Mbits
</Bandwidth>
</AtomicComponent>
</Server>
</ServerGroup>
<ClientGroup>
<Client>
<Name>
Hardware Client
</Name>
<Category>
Client
</Category>
<NodeLabel>
1
</NodeLabel>
<HardwareEnvironment>
PC PentiumIII
</HardwareEnvironment>
<SoftwareEnvironment>
Windows 2000
</SoftwareEnvironment>
<Memory>
512000KB
96
</Memory>
<Disk>
50000MB
</Disk>
<Bandwidth>
100Mbits
</Bandwidth>
<AtomicComponent>
<Name>
Software Client
</Name>
<Category>
Client
</Category>
<NodeLabel>
1
</NodeLabel>
<Memory>
256000KB
</Memory>
<Disk>
20000MB
</Disk>
<Bandwidth>
100Mbits
</Bandwidth>
<QoSParameters>
<Delay>
<Min>
0
</Min>
<Max>
1
</Max>
</Delay>
<AdaptationRules>
<Rule>
<Name>
Rule1
</Name>
<Order>
101
</Order>
</Rule>
<Rule>
<Name>
Rule2
</Name>
97
<Order>
102
</Order>
</Rule>
</AdaptationRules>
<Jitter>
<Min>
0
</Min>
<Max>
1
</Max>
</Jitter>
<AdaptationRules>
<Rule>
<Name>
Rule1
</Name>
<Order>
201
</Order>
</Rule>
<Rule>
<Name>
Rule3
</Name>
<Order>
202
</Order>
</Rule>
</AdaptationRules>
<Loss>
<Min>
0
</Min>
<Max>
1
</Max>
</Loss>
<AdaptationRules>
<Rule>
<Name>
Rule4
</Name>
<Order>
301
</Order>
</Rule>
98
<Rule>
<Name>
Rule6
</Name>
<Order>
302
</Order>
</Rule>
</AdaptationRules>
</QoSParameters>
</AtomicComponent>
</Client>
</ClientGroup>
</HQML>
99
Apndice D Tabela 6
100