TRABALHO FINAL DE CURSO - INESC-ID
TRABALHO FINAL DE CURSO - INESC-ID
TRABALHO FINAL DE CURSO - INESC-ID
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