• Nenhum resultado encontrado

Extensões para Descritores de Distribuição CCM-tel

4.2 Um Mapeamento do Modelo CM-tel para CORBA

4.2.2 Extensões para Descritores de Distribuição CCM-tel

O mapeamento CCM-tel define novos elementos de extensão específicos da tecnologia escolhi- da para os descritores de distribuição CCM-tel, conforme descrito na Seção 3.5.2. A partir destes descritores de distribuição, os contêineres CCM-tel são distribuídos e configurados. O processo de distribuição compreende a fase de instalação, instanciação e posterior configuração do contêiner. A etapa de configuração permite ainda um outro nível de configuração da aplicação, que consiste em adaptar o contêiner para um determinado ambiente de execução pela especificação de políticas para determinados requisitos. O descritor de distribuição especifica em XML as políticas que determinam a forma como o contêiner irá gerenciar certos requisitos não-funcionais como, por exemplo, políticas de QoS para fluxos de mídia contínua. Estes elementos são atributos especificados em XML para incorporar os seguintes parâmetros:

• Parâmetros relacionados ao ORB. Estes parâmetros permitem especificar uma implementação de ORB, suprir parâmetros de inicialização do ORB (por exemplo, endereço de rede do serviço de nomes), definir políticas do POA e agregar interceptadores portáveis ao ORB.

• Parâmetros de instalação de applets Java. Especificam a classe que implementa o contêiner na forma de applet Java, as dimensões do painel ocupado pelo applet, localização do servi- dor HTTP e diretório neste servidor onde se encontram as classes necessárias à execução do contêiner (frameworks de componentes e agentes, serviços CORBA, etc.).

• Parâmetros relacionados às portas de fluxo contínuo. Especificam os dispositivos de captura, apresentação e difusão de mídia contínua. Por exemplo, pode-se especificar capturadores e apresentadores baseados em Java Media Framework (JMF) ou QuickTime, os parâmetros de qualidade de serviço para as portas de fluxo e o identificador de contrato com a rede1 que permite priorizar o tráfego de mídia contínua em redes DiffServ.

• Parâmetros de localização (URLs) de recursos. Especificam a localização de servidores de nomes e servidores HTTP capazes de suprir as classes necessárias à execução dos agentes móveis no contêiner.

O processo de geração do XML Schema para validação de documentos XML especificando a distribuição de contêineres CCM-tel estende a representação UML do XML Schema definido pelo modelo de distribuição CM-tel (Figura 3.39). A representação UML do XML Schema para descritores de distribuição CCM-tel é apresentada nas Figuras 4.3 e 4.4. Os elementos sombreados nestas figuras são as extensões dependentes de tecnologia. A partir deste diagrama UML foi gerado pela ferramenta

HyperModel o XML Schema correspondente.

Cabe ressaltar que um mecanismo flexível de distribuição, aliado à capacidade de manipular código ou agentes móveis, viabiliza a utilização de contêineres adaptáveis que permitem tanto a adição dos aspectos da tecnologia escolhida, como a adição estática ou dinâmica de suporte a novos aspectos não-funcionais a serem gerenciadas por ele. Esta característica proporciona uma maior fle- xibilidade às aplicações emergentes quanto a novos requisitos; por exemplo, a adequação a aspectos de qualidade de serviço impostos por ambientes com recursos limitados.

O exemplo a seguir ilustra uma especificação completa em XML para um descritor de distribuição CCM-tel, incorporando a declaração dos novos elementos aos anteriormente apresentados na Seção 3.5.2.

<?xml version="1.0" ?> <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="depl.xsd" class = "videoPlayerServer" file = "vp"> <HomeFinder

ORB_CTRL_MODEL : string SINGLE_THREAD_MODEL : string ThPolicies <<enumeration>> TRANSIENT : string PERSISTENT : string <<enumeration>> LSPolicies <<enumeration>> UnPolicies UNIQUE_ID : string MULTIPLE_ID : string IdPolicies <<enumeration>> USER_ID : string SYSTEM_ID : string <<enumeration>> RETAIN : string NON_RETAIN : string SrPolicies USE_ACTIVE_OBJECT_MAP_ONLY : string USE_DEFAULT_SERVANT : string ReqPolicies <<enumeration>> USE_SERVANT_MANAGER : string ActPolicies <<enumeration>> NON_IMPLICIT_ACTIVATION : string IMPLICIT_ACTIVATION : string

<<XSDAttribute>> thread : ThPolicies = ORB_CTR_MODEL <<XSDAttribute>> uniqueness : UnPolicies = UNIQUE_ID <<XSDAttribute>> lifespan : LsPolicies = TRANSIENT

<<XSDAttribute>> servantretention : SrPolicies = RETAIN

<<XSDAttribute>> requestprocessing : ReqPolicies = USE_ACTIVE_OBJECT_MAP_ONLY poapolicies

<<XSDAttribute>> idassignment : IdPolicies = USER_ID

<<XSDAttribute>> implicitactivation : ActPolicies = IMPLICIT_ACTIVATION

<<XSDattribute>> ORBSingletonClass : string <<XSDattribute>> ORBInitialHost : string <<XSDattribute>> ORBClass : string

<<XSDattribute>> ORBInitialPort : string

<<XSDattribute>> NameServiceURL : anyURI

PortableInterceptor <<XSDattribute>> class : string

<<XSDattribute>> class : string <<XSDattribute>> file : string

deployment

ORB NameService

Fig. 4.3: Representação em UML de XML Schema para a especificação de distribuição CCM-tel (parâmetros do ORB). HomeFinderName = "videoPlayerAgent"/> <!-- ORB --> <ORB org.omg.CORBA.ORBInitialHost = "formoso.p4.cenpra.gov.br" org.omg.CORBA.ORBInitialPort = "6688">

<PortableInterceptor class = "IQoS"/> </ORB>

<!-- Políticas do POA --> <poapolicies

thread = "ORB_CTRL_MODEL"/>

<!-- Localização do serviço de nomes --> <NameService

NameServiceURL = "http://www.dca.fee.unicamp.br:8080"/> <!-- Parâmetros relativos as portas de fluxo -->

<StreamPorts> <QoS

video_framerate = "25" video_colorDepth = "24" video_colorModel = "1"

8 : unsignedByte 16: unsignedByte SampleSizes <<enumeration>> <<enumeration>> NumChannels 1 : unsignedByte 2 : unsignedByte <<enumeration>> 2 : unsignedByte 0 : unsignedByte 1 : unsignedByte 3 : unsignedByte Quantisations

<<XSDfacet>> pattern : string = \d{2,4}X\d{2,4} VideoResolution <<XSDsimpleType>> <<enumeration>> 2 : unsignedByte 0 : unsignedByte 1 : unsignedByte ColorTypes 11025 : unsignedShort 8000 : unsignedShort 22050 : unsignedShort 44100 : unsignedShort <<enumeration>> SampleRates <<XSDattribute>> video_colorModel : ColorTypes = 0

<<XSDattribute>> video_resolution : VideoResolution = 160X120 <<XSDattribute>> audio_sampleRate : SampleRates = 8000 <<XSDattribute>> audio_sampleSize : SampleSizes = 8 <<XSDattribute>> audio _numChannels : NumChannels = 1 <<XSDattribute>> audio_quantisation = Quantisations = 1

QoS

<<XSDattribute>> video_framerate : unsignedByte = 10 <<XSDattribute>> video_colorDepth : unsignedByte = 24

<<XSDattribute>> sla_id : string

<<enumeration>> JMF : string QT : string PlayerTypes <<enumeration>> JMF : string RC : string CapturerTypes <<XSDattribute>> codebase : string

<<XSDattribute>> height : unsignedShort <<XSDattribute>> width : unsignedShort

StreamPorts

<<XSDattribute>> class : string <<XSDattribute>> file : string

deployment

0..n

<<XSDattribute>> name : string <<XSDattribute>> value : string

Parameter 0..1

<<XSDattribute>> HomeFinderName : string

Application HomeFinder 0..1 0..1 0..1 0..1

<<XSDAttribute>> Refletor : string MediaReflector

SLA HTML

<<XSDattribute>> urls : anyURI HTTPServers

<<XSDAttribute>> MediaAddress : string <<XSDAttribute>> MediaPort : unsignedShort

MediaCapturer MediaPlayer

<<XSDattribute>> PlayerFrame : string <<XSDattribute>> Player : PlayerTypes

<<XSDAttribute>> Capturer : CapturerType

Fig. 4.4: Representação em UML de XML Schema para a especificação de distribuição CCM-tel (demais parâmetros). video_resolution = "160X120" video_quality = "0.5" <SLA broquer = "DSBBroker"> sla_id = "qwerty"/> </StreamPorts>

<!-- Parâmetros especificos da aplicacao --> <Application>

<Parameter name = "RobotURL" value = "atria:8002"/> </Application>

</deployment>