terça-feira, 18 de maio de 2010

Pesquisa em Múltiplas Listas Sharepoint

O presente post surge no seguimento do post Pesquisa em listas Sharepoint 2007 e pretende explorar a pesquisa em múltiplas listas Sharepoint 2007 com o objectivo de testar quatro métodos de pesquisa: ciclos Foreach, SPQuery, SPSiteDataQuery e CrossListQueryInfo.

O cenário de teste baseia-se na pesquisa em quatro listas existentes em quatro sites diferentes. Foram executados dois testes, o primeiro com 100 itens e o segundo com 400 itens em cada lista. Os métodos utilizados para os testes foram os seguintes:

  • Pesquisa com Foreach: pesquisa utilizando um ciclo Foreach sobre object model do Sharepoint 2007 em que se percorrem as quatro listas dos quatro sites onde se quer pesquisar.
  • Pesquisa com SPQuery: pesquisa utilizando o objecto SPQuery que permite executar a pesquisa numa lista. Neste teste é necessário percorrer os quatro sites e em cada um executar uma pesquisa através deste objecto.
  • Pesquisa com SPSiteDataQuery: pesquisa utilizando o objecto SPSiteDataQuery que permite pesquisar sobre várias listas em simultâneo. Neste teste é configurado para efectuar a pesquisa nas quatro listas pretendidas em simultâneo.
  • Pesquisa com CrossListQueryInfo: pesquisa utilizando o objecto CrossListQueryInfo que permite executar pesquisas em várias listas em simultâneo, tirando partido de um mecanismo de cache denominado de CrossListQueryCache. Permite ainda fazer aundience target dos resultados das pesquisas. Neste teste é configurado para efectuar a pesquisa nas quatro listas pretendidas em simultâneo.

Foreach

O gráfico apresenta os resultados dos testes com o método de ciclos Foreach. Da análise do gráfico nota-se um aumento significativo do tempo de pesquisa, mas mais do que este aumento é de reter que a pesquisa com mais itens oscilou entre os 1,4 segundos e os 1,6 segundos que se revelam tempos inaceitáveis para um sistema.

SPQuery

A figura acima apresenta os resultados para o teste ao método SPQuery. É de notar o decréscimo dos tempos médios de pesquisa (comparando com o método anterior) que diminuíram cerca de 80% para o teste com listas de 400 itens e 50% para o de 100 itens. Esta melhoria de resultados deve-se, em grande parte, à diminuição do número de acessos à base de dados para executar as pesquisas.

SPSiteDataQuery

Em cima apresentam-se os resultados para o teste ao método de SPSiteDataQuery. Mais uma vez é de notar o decréscimo do tempo médio de pesquisa em relação ao método anterior. Este decréscimo não se deve apenas a uma diminuição do número de acesso à base de dados para pesquisar os itens como também na diminuição do número de SPWeb que é necessário percorrer/abrir. Este método permite executar a pesquisa de uma só vez na base de dados logo o decréscimo de tempo é natural.

CrossListQueryInfo

O resultado do método de pesquisa com o objecto CrossListQueryInfo é semelhante ao anterior, o que revela que a cache utilizada por este método não traz mais-valias em relação aos tempos de pesquisa, nas condições e com os requisitos com que este teste foi efectuado.

Comparação

Nos gráficos acima podemos comparar os resultados médios dos testes efectuados. A utilização do método Foreach revela ser uma pior opção uma vez que não só os tempos de pesquisa tendem a aumentar com o número de itens, como estes tempos são de uma ordem de grandeza que leva a aplicação a ter uma péssima performance. Fazendo a comparação com os resultados do post anterior é de notar que este método parece ser mais afectado pelo número de itens da lista do que pelo número de listas que tem de percorrer. Isto porque em 4 listas de 100 itens tem resultados semelhantes ao cenário em que existem 400 itens numa só lista.

A utilização do método de SPQuery apresenta resultados aceitáveis em ambos os testes, o que indica que a sua utilização pode ser útil no caso em que se necessita de consultar listas especificas dispersas pela colecção de sites.

O método de pesquisa com SPSiteDataQuery apresenta resultados praticamente idênticos ao método de CrossListqueryInfo em que ambos revelam uma melhoria de resultados entre 20% e 30% em relação ao método de SPQuery.

Assim concluo que os últimos dois métodos testados são os ideais para executar pesquisas sobre múltiplas listas Sharepoint. Sendo que, na minha opinião, o método de CrossListQueryInfo deve ser utilizado quando existe a preocupação de efectuar audience targeting e o objecto SPSiteDataQuery deve ser utilizado quando não existem tais requisitos.

O método de pesquisa com SPQuery apresenta bons resultados, o que permite que a sua utilização não degrade a performance do sistema. Recomendo a utilização deste método aquando a necessidade de pesquisar em várias listas dispersas pela colecção de sites, isto porque os métodos de SPSiteDataQuery e CrossListQueryIno apenas possibilitam a pesquisa em toda a colecção de sites, ou em listas cujos sites tenham uma relação hierárquica entre si.

Assim concluo esta (mini-)série de artigos de análise dos tempos de pesquisa dos diferentes métodos disponibilizados pelo Sharepoint 2007. Quero frisar que os resultados e conclusões que obtive estão abertas a discussão, não são verdades irrefutáveis .

quarta-feira, 17 de março de 2010

Projecto Nana.pt


A Simple Solutions desenvolveu recentemente o seu primeiro produto - www.nana.pt.

Pais e escola de mãos dadas, para bem dos seus filhos!

Melhore a relação entre os pais e a escola, comunicando diariamente o que está a ser feito na sala de aula. O projecto divide-se em duas componentes distintas: a gestão de conteúdos, que permite a criação de um site institucional, e a área reservada, constituída por módulos essenciais para o registo do comportamento e evolução do aluno.

Vantagens do Nana.pt quando comparado com um projecto à medida

  • O custo inicial de um projecto de desenvolvimento à medida, com características semelhante ao Nana.pt, é demasiado elevado para um infantário o poder rentabilizar.
  • O produto está em constante evolução, de acordo com os pedidos mais frequentes das Escolas. Sem pagar mais por isso.
  • O novo site pode estar online em dois dias, dependendo apenas da selecção de conteúdos por parte da Escola.
  • A área reservada já está pronta a utilizar e foca os pontos mais importantes na comunicação entre os Professores e os Encarregados de Educação.
  • O serviço tem um custo anual de 350€ + IVA.

    Site institucional (Gestão de conteúdos):

    Um sistema de gestão de conteúdos permite a criação de páginas de html, de acordo com um número predefinido de templates. Não obriga a conhecimentos técnicos da linguagem associada à criação de páginas de html, assemelhando-se a um simples processador de texto. Estrutura típica do site institucional de um infantário:

  • Apresentação da escola
  • Contactos
  • Plano educativo
  • Regulamento
  • Plano anual de actividades
  • Ementas
  • Newsletter (com envio automático)

    Área reservada:

    Esta zona apenas está acessível através de palavra-chave, estando disponíveis as seguintes funcionalidades:

  • Relatório diário de actividades (por turma)
  • Registo de desenvolvimento (por aluno)
  • Registo de Avaliação (por aluno)
  • Sistema de Mensagens Internas (possibilita a troca de mensagens entre o professor e o encarregado de educação)

  • Saiba mais em www.nana.pt