O processamento de algumas queries nos SBDMs pode, como já foi referido, requerer a localização de algumas estações. Deste modo, devem existir mecanismos que permitam a gestão da localização das estações. Como forma de solucionar o problema da localização dos utilizadores [Wolfson et al. 1999] consideram um tipo de deslocação diferente para os utilizadores. Os utilizadores têm, segundo estes autores, permissão para efectuar deslocações, mas devem para isso seguir rotas previamente definidas. Contudo, mesmo quando os utilizadores seguem essas rotas, existe alguma incerteza acerca da localização exacta do utilizador. Com as rotas predefinidas, consegue-se saber qual a região na qual o utilizador se encontra, mas não a sua localização exacta. De referir, que estes autores apresentam ainda nesse trabalho algumas funções de densidade que pretendem determinar a localização de cada uma das estações. Assim, devem existir mecanismos que permitam a gestão da localização das estações. Podem ser usadas diversas estratégias para a localização de estações. Contudo esta procura acarreta alguns custos adicionais que, como tal, devem ser tomados em consideração aquando da fase de optimização das queries. Além disto, quando se faz referência a um dada estação pode-se pretender aceder: (1) à sua localização; ou (2) aos dados armazenados localmente. Todavia, só é possível aceder aos dados armazenados numa estação móvel quando se conhece concretamente a sua localização, não sendo assim possível o uso de informação incerta.
Em [Kottkamp & Zukunft 1998] é apresentado um esquema de optimização de queries que, para além dos custos de localização e factores internos (como a estrutura dos dados e metadados), tem em conta factores externos à base de dados que podem influenciar o desempenho do processamento do sistema. Dentro destes factores, devem-se realçar os seguintes:
− Hardware. Para além do tempo e da velocidade de acesso ao disco, consideram-se ainda as limitações de memória e de energia.
− Arquitectura. Como se trata de uma arquitectura distribuída deve ter-se em conta a replicação e a partição dos dados.
− Comunicações sem fios. É importante que se tenham em conta as características e limitações que este tipo de comunicações possui.
− Mobilidade. Neste tipo de ambientes os utilizadores possuem alguma mobilidade, podendo não se conhecer a sua localização exacta. Contudo, podem existir queries cujo processamento obrigue a essa localização.
− Preferências de utilizador. Como as estações móveis possuem à partida menos recursos do que as estações fixas, o sistema pode dar preferência ao processamento de queries dos utilizadores móveis, para que estes consigam obter uma performance idêntica à dos utilizadores fixos.
Uma nova tarefa que este modelo de optimização possui é a de ser capaz de encontrar a estação que deve executar a query. Isto porque as características dos SBDMs não permitem que se defina à priori quais as estações que vão executar as queries. Assim, durante o processo de optimização, é necessário que se determine qual ou quais as estações que irão executar cada uma das diferentes fases do processamento de queries. Dadas as características destes ambientes, esta decisão deve ser flexível e revista sempre que seja necessário.
[Kottkamp & Zukunft 1998] dividem o processamento de queries móveis em três fases: tradução, optimização e execução. É possível que cada uma destas fases seja executada em diferentes estações. Todavia, existem estações que não são capazes de executar algumas destas fases. Durante a fase de optimização é determinado um plano considerado óptimo. Para tal usa-se informação do sistema que no momento está a executar essa fase. Essa informação deve ser passada às estações que executem as restantes fases. Para evitar que haja uma grande troca de
mensagens entre a estação que processa a fase de optimização e a estação que processa a fase de execução, neste modelo propõe-se que essas duas fases sejam executadas pela mesma estação.
Na Figura 20 encontram-se esquematizadas três possíveis estratégias de processamento de uma query num ambiente móvel. A estratégia apresentada no caso é a que deve ser seguida quando os recursos são escassos e a query deve ser enviada para o servidor. Neste caso, é o servidor que deverá efectuar quer a fase de tradução quer as fases de optimização e de execução, para que os recursos da estação móvel sejam poupados. Quando a estação possui recursos suficientes para o processamento dessas operações, podemos utilizar duas estratégias: a fase de tradução pode ser iniciada na estação móvel e se se concluir que o processamento vai consumir recursos que a estação não possui, então esta fase é abortada e a query é enviada para o servidor, que efectua também as fases de optimização e execução – ver situação da Figura 20. Por outro lado, se da análise da fase de tradução se se concluir que a estação móvel possui recursos para prosseguir o processamento da query, então a estação móvel realiza as restantes fases do processamento, esta estratégia corresponde ao caso da referida figura. A estação móvel também pode recorrer ao uso do Caso quando a estação se encontra desconectada e se pretende executar uma query.
Servidor Estação Móvel Servidor Estação Móvel Resultado da Query Recursos Suficientes Recursos Limitados Query 1 2 3 Tradução Optimização/Execução
Figura 20 – Estratégias de Processamento Queries Possíveis.
A avaliação de custos e de recursos requeridos para a execução de queries, também são tidos em conta no plano de optimização de uma query. Os principais factores usados no esquema de optimização apresentado são o uso de CPU e o número de acessos ao disco, bem como consumos de energia, memória disponível e velocidade de CPU. Em [Kottkamp & Zukunft 1998] apresentam-se algumas fórmulas para o cálculo destes custos.