04.01.2014 Views

TRABALHO FINAL DE CURSO - INESC-ID

TRABALHO FINAL DE CURSO - INESC-ID

TRABALHO FINAL DE CURSO - INESC-ID

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

MobileREVS 15-10-2006<br />

parser existente [Knudsen02, Ghosh03]. A análise de parsers existentes encontra-se<br />

descrita mais à frente nesta secção.<br />

Considerações de performance<br />

O parsing de XML é uma tarefa que, tradicionalmente, consome bastantes<br />

recursos de processamento e memória. Conforme foi discutido na Secção 2.2.1, os<br />

telemóveis são dispositivos de processamento lento e com memória escassa. Além<br />

disso, alguns telemóveis limitam o tamanho máximo dos M<strong>ID</strong>lets, tornando-se<br />

importante minimizar o espaço ocupado pelos mesmos.<br />

Pretende-se, portanto, que o parser utilizado seja simultaneamente eficiente e<br />

compacto, ocupando a menor quantidade de espaço possível em memória.<br />

Técnicas e parsers existentes<br />

As técnicas de parsing de XML estão ligadas com os três tipos fundamentais de<br />

parsers. Os aspectos que diferenciam a sua escolha são: (1) o modo como se pretende<br />

que a aplicação se comporte no parsing dos documentos; e (2) o tipo de documentos<br />

que se pretende manipular.<br />

1. Um model parser interpreta todo um documento XML e cria uma<br />

representação do mesmo em memória;<br />

2. Um push parser interpreta sequencialmente um documento XML. À medida<br />

que várias partes são encontradas o parser informa um listener object;<br />

3. Um pull parser interpreta pequenas porções do documento de cada vez. A<br />

interpretação é guiada pela aplicação, que requer repetidamente o pedaço<br />

seguinte.<br />

Ao criar uma representação de um documento XML inteiro em memória, o<br />

model parser é o que utiliza mais memória em execução. Claramente, esta solução não<br />

se adequa ao desenvolvimento de aplicações para telemóveis pelas restrições referidas<br />

anteriormente.<br />

A grande diferença entre os restantes parsers, push e pull, reside no ponto de<br />

controlo da tarefa de parsing. No push parser o controlo está a cargo do parser, que<br />

informa a aplicação sempre que tem nova informação; no pull parser o controlo é da<br />

aplicação, que requer explicitamente as partes seguintes do documento.<br />

Desta maneira é possível verificar que o pull parser é o tipo de parser mais<br />

adequado para os M<strong>ID</strong>lets. Ao permitir que a aplicação detenha o controlo da tarefa de<br />

parsing do XML, esta pode ser desenvolvida de maneira a manter apenas em memória a<br />

parte com que está a lidar no momento. Quando mais nada tiver a fazer com essa parte<br />

pode libertá-la da memória e passar à seguinte.<br />

Actualmente existem alguns parsers Java específicos para dispositivos de<br />

recursos limitados, como é o caso dos telemóveis. A Tabela 1 resume as principais<br />

características de cada um deles.<br />

Luis Costa, Nuno Santos 47

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!