4 questões de middleware

Download 4 Questões de Middleware

Post on 07-Jan-2017

214 views

Category:

Documents

0 download

Embed Size (px)

TRANSCRIPT

Questes de Middleware 38

4 Questes de Middleware

Durante o planejamento da aplicao proposta, questes relacionadas sua

propriedade colaborativa, edio de quadros de uma apresentao e ao acesso a

informaes de contexto, tiveram que ser resolvidas para facilitar o

desenvolvimento da mesma. O principal objetivo foi escolher ou desenvolver

componentes independentes que pudessem ser re-utilizados em quaisquer outros

projetos.

4.1. Colaborao

A colaborao entre os usurios da aplicao proposta envolve detalhes de

nvel de rede como: a maneira como a conexo ser realizada; o envio e

recebimento de mensagens; e o tratamento de possveis falhas durante a

comunicao. Esses detalhes requerem um grande esforo por parte dos

desenvolvedores de uma aplicao colaborativa, j que ao invs de estarem

concentrados no desenvolvimento da aplicao em si, os desenvolvedores perdem

um tempo razovel no desenvolvimento desta comunicao.

A escolha de um middleware que encapsule as funcionalidades da

comunicao uma forma natural de facilitar o desenvolvimento de uma

aplicao colaborativa. Outras vantagens so a confiabilidade do middleware, que

pode ter sido utilizado em outros projetos com sucesso e a agilidade no processo

de desenvolvimento da aplicao, visto que todas as funcionalidades necessrias

comunicao estaro contidas no middleware.

4.1.1. Motivao da Escolha do ConferenceXP

O ConferenceXP [ConferenceXP, 2006] foi escolhido como middleware de

colaborao da aplicao proposta devido a facilidade de desenvolver aplicaes

colaborativas com o mesmo. Desenvolvedores podem criar aplicaes

DBDPUC-Rio - Certificao Digital N 0511032/CA

Questes de Middleware 39

colaborativas ou adaptar aplicaes j existentes utilizando as APIs e o conjunto

de classes bsicas do ConferenceXP. Este middleware facilita a tarefa dos

desenvolvedores, pois trata questes relacionadas comunicao de aplicaoes

que devem colaborar entre si. A Figura 12 exibe a arquitetura de uma aplicao

colaborativa que utiliza o ConferenceXP, dividindo a mesma em dois nveis: nvel

de rede, onde o ConferenceXP realiza a comunicao; e o nvel de aplicao, onde

so realizadas as funcionalidades principais da aplicao.

Figura 12 Aplicao colaborativa utilizando o ConferenceXP

O ConferenceXP foi desenvolvido para a plataforma .NET Framework

[NET, 2007], na linguagem C# [C#, 2007], mesma linguagem de

desenvolvimento da aplicao proposta, o que facilita a integrao e o

aprendizado do mesmo. Este middleware emprega uma arquitetura peer-to-peer

ao utilizar multicast, no havendo necessidade de um servidor que receba e

repasse todas as mensagens, o que facilita a implantao de qualquer aplicao. O

uso de multicast ao invs de unicast garante um menor consumo de recursos de

rede, como visto na Figura 13 [Multicast, 2007].

DBDPUC-Rio - Certificao Digital N 0511032/CA

Questes de Middleware

Figura 13 - Diferenas ente o

O Classroom Presenter (vide seo

desenvolvido utilizando o middleware

eficincia e confiabilidade no desenvolvimento de aplicaes colaborativas.

4.1.2. Arquitetura do ConferenceXP

O ConferenceXP dividido em quatro camadas lgicas: Network Transport,

ConferenceAPI, ConfereceXP Capability e Confer

14 ilustra esta arquitetura do ConferenceXP.

Figura 14 - A arquitetura do ConferenceXP [ConferenceXP, 2006]

Diferenas ente o unicast e o multicast [Multicast, 2007]

O Classroom Presenter (vide seo Classroom Presenter2.1) foi

middleware ConferenceXP, o que comprova sua

no desenvolvimento de aplicaes colaborativas.

Arquitetura do ConferenceXP

O ConferenceXP dividido em quatro camadas lgicas: Network Transport,

ConferenceAPI, ConfereceXP Capability e ConferenceXP Application. A Figura

ilustra esta arquitetura do ConferenceXP.

A arquitetura do ConferenceXP [ConferenceXP, 2006]

40

[Multicast, 2007]

) foi

nferenceXP, o que comprova sua

O ConferenceXP dividido em quatro camadas lgicas: Network Transport,

Figura

A arquitetura do ConferenceXP [ConferenceXP, 2006]

DBDPUC-Rio - Certificao Digital N 0511032/CA

Questes de Middleware 41

A camada Network Transport oferece uma implementao do protocolo

RTP (Real-Time Transport Protocol) [RTP, 2007], baseado na implementao dos

Windows Sockets. Este protocolo um padro da IETF (Internet Engineering

Task Force) [IETF, 2007] para transmisso de udio e vdeo em redes peer-to-

peer, e foi desenvolvido para ambientes onde necessrio um baixo nvel de

latncia. Para prevenir perda de dados, o ConferenceXP implementa algoritmos

FEC (Forward Error Correction).

Na camada ConferenceAPI, os desenvolvedores podem criar aplicaes

colaborativas ou capabilities, sem se preocupar com aspectos de rede. A classe

CapabilityBase encapsula a funcionalidade requerida de outras partes da camada

de conferncia e serve como base para criao de novas capabilities, que so

componentes que oferecem funcionalidades s aplicaes do ConferenceXP. Com

a API RTDocument, aplicaes e capabilities utilizam um protocolo para

transferncia de documentos e inks.

Na camada ConferenceXP Capability, originalmente existem duas

capabilities: a de apresentao (Presentation), que oferece suporte

apresentaes PowerPoint e ao uso de ink, e a de udio e vdeo, utilizada para

conferncias. Nesta camada esto as capabilities customizadas desenvolvidas para

aplicaes colaborativas, que junto com a camada ConferenceXP Application,

oferecem interfaces aos usurios.

4.1.3. Limitaes e o .NET Compact Framework

Para entender melhor as limitaes do ConferenceXP, necessrio primeiro

distinguir as diferenas entre o .NET Framework e o .NET Compact Framework

[CFNET, 2007a]. O .NET Compact Framework (.NET CF) um subconjunto do

.NET Framework que oferece interoperabilidade com o sistema operacional

Windows Mobile de um handheld como um palmtop ou um smartphone [CFNET,

2007b]. Ao comparar as duas plataformas de desenvolvimento, a arquitetura do

.NET CF bastante limitada, e no possui diversas funcionalidades, como o

suporte nativo a serializao de objetos. Este recurso essencial para aplicativos

de colaborao, onde objetos so enviados e recebidos atravs da rede [CFNET,

2007c].

DBDPUC-Rio - Certificao Digital N 0511032/CA

Questes de Middleware 42

Outra limitao o tratamento dado coleta de ink. O ConferenceXP utiliza

um componente desenvolvido para tablet pcs, chamado Microsof.Ink. Este

componente utilizado no desenvolvimento de aplicaes que utilizem a caneta

do tablet pc para captura de desenhos e reconhecimento de textos. O

Microsoft.Ink restrito ao .NET Framework, e, portanto, no pode ser utilizado

em uma aplicao que deva executar em dispositivos mais limitados como

palmtops.

Estas limitaes do .NET CF em relao ao .NET Framework refletem as

limitaes do ConferenceXP, que no foi desenvolvido para ser utilizado em

dispositivos que utilizam o .NET CF.

4.1.4. Adaptaes Necessrias

O ConferenceXP faz uso de vrios mtodos e classes que s existem no

.NET Framework, no possuindo iguais correspondentes no .NET CF. Logo, uma

srie de adaptaes foi necessria para que fosse possvel sua utilizao em ambas

as plataformas, atendendo assim os requisitos da aplicao proposta.

importante notar que todas as aplicaes desenvolvidas para o .NET CF

que utilizem somente as funcionalidades do prprio framework, ou seja, no

utilizem funcionalidades nativas dos dispositivos portteis utilizados, podem ser

executadas no .NET Framework. Assim, o trabalho de adaptao do

ConferenceXP foi realizado da seguinte maneira: a partir do cdigo-fonte das

APIs, foram realizadas alteraes para compilao e execuo no .NET CF.

Algumas classes tiveram que ser implementadas para preservar as funcionalidades

originais do middleware, como: DicitonaryBase, classe abstrata que serve como

base para colees de pares chave/valor; e SynchronizedQueue, implementao de

uma fila sincronizada. Vrias alteraes em mtodos utilizados no cdigo destas

APIs tambm foram necessrias durante o trabalho de adaptao.

Tambm foram utilizadas as bibliotecas do OpenNETCF [OpenNETCF,

2007], para funcionalidades como o acesso a arquivos e configurao e mtodos

de reflexo. O OpenNETCF um projeto apoiado pela Microsoft, e tem como

objetivo desenvolver funcionalidades que no existem no .NET CF.

DBDPUC-Rio - Certificao Digital N 0511032/CA

Questes de Middleware 43

4.1.4.1. Serializao de Objetos

Como o .NET CF no possui suporte nativo a serializao de objetos, foi

utilizado um projeto independente chamado CompactFormatter

[CompactFormatter, 2007], que um formatador genrico para o .NET CF capaz

de serializar a maioria dos objetos utilizando reflexo, permitindo redefinir os

algoritmos de serializao se necessrio. A interface disponibilizada por este

componente bastante similar do BinaryFormatter e do SOAPFormatter,

formatadores utilizados comumente no .NET Framework. vlido mencionar

qu