Ir para o conteúdo
Set Up XMLA HTTP Access for SQL Server

Set Up XMLA HTTP Access for SQL Server

Neste artigo, mostrarei como configurar um servidor SQL que fornece serviços de análise e acesso HTTP XMLA ao banco de dados Adventure Works. No final, mostrarei um aplicativo básico Silverlight que usa essa configuração e Infragistics' Silverlight PivotGrid para visualizar os dados.

13min read

SQL Server Analysis Service 2008

Vamos começar com a instalação do SQL Server. A instalação é muito simples. Você só precisa seguir as instruções na tela e tudo deve ficar bem. Existem apenas alguns pontos-chave que exigirão atenção (o texto em itálico) e direi quais são enquanto descrevo como a configuração deve ser.

A implantação começa com a instalação do .NET Framework e as atualizações do instalador que seu computador pode não ter. Em seguida, os arquivos de suporte são instalados.

Depois que eles forem concluídos, você será solicitado a inserir a chave do produto e concordar com os termos da licença. Em seguida, você verá as opções de seleção de recursos. Precisamos apenas de alguns agora para dar suporte ao cenário básico deste tutorial, mas talvez você queira instalar mais ou todos eles se planeja desenvolver aplicativos mais avançados ou deseja combinar essa instalação com outros serviços. O menor conjunto de recursos que você deve instalar é este: Serviços de mecanismo de banco de dados, pesquisa de texto completo, Analysis Services, Business Intelligence Development Studio, Ferramentas de Gerenciamento Básicas e Completas.

O BI Development Studio é necessário, pois é a maneira mais fácil de implantar o pacote de banco de dados de exemplo do Adventure Works. As ferramentas de gerenciamento são necessárias para poder verificar a instalação do servidor e dos bancos de dados de amostra e também você pode querer manipular os dados, os bancos de dados e as configurações do servidor SQL.

Quando estiver pronto com os recursos, você precisará escolher se deseja uma instância padrão ou nomeada para o SQL Server. Se você não planeja ter mais de uma instância, o padrão é bom.

Em seguida, você será questionado sobre as configurações da conta de usuário. Você pode selecionar com segurança o usuário NT AUTHORITY\NETWORK SERVICE para todos os serviços e adicionar o usuário atual para ter permissões administrativas sempre que solicitado (configuração do mecanismo de banco de dados e do Analysis Services). Observe que o usuário que você adicionar para o provisionamento de análise terá que ser aquele que executará o aplicativo Web, portanto, se você quiser que alguma outra conta atenda a essa função de administrador, precisará criá-la antes de adicioná-la aqui ou adicioná-la posteriormente à função de administrador no Management Studio (será discutido posteriormente neste artigo).

Depois de passar a seleção do usuário, a escolha de Relatório de Erros e Uso e as regras de instalação forem verificadas, você verá um resumo e pressionará Instalar. Quando o processo de instalação estiver concluído, você terá apenas um outro problema a considerar se usar o Windows 7 – o software tem um problema conhecido e você deve instalar o SP1 antes de poder usar o servidor SQL.

Para verificar se a instalação foi bem-sucedida, vá para o menu Iniciar e localize o SQL Management Studio. Abra-o e tente se conectar à instância local do Analysis Server que você acabou de instalar. Se você não cometer nenhum erro, estamos prontos para ir.

XMLA HTTP Access

Depois de instalarmos o SQL Server com o Analysis Services, podemos continuar com o acesso HTTP XMLA. Precisamos de um servidor web e, para o propósito deste tutorial, usaremos o IIS 7. A maneira mais fácil de instalar o IIS é iniciar o módulo Adicionar/Remover Componentes do Windows de Adicionar/Remover Programas ou Ativar ou desativar recursos do Windows em Programas se você estiver usando o Windows Vista ou 7.

Os recursos que precisamos instalar estão localizados na pasta Serviços de Informações da Internet. Você pode facilmente usar apenas alguns dos sub-recursos, mas instalar tudo o livrará de problemas se quiser fazer aplicativos avançados que podem depender de um recurso específico do IIS. Os recursos obrigatórios para o nosso caso são as Ferramentas de Gerenciamento da Web, Extensibilidade do .NET, ASP.NET, Extensões ISAPI, Autenticação Básica e Autenticação do Windows. No entanto, acabei de instalar tudo.

Quando você pressionar OK, o IIS será instalado e iniciado.

Para configurar o IIS, precisamos iniciar o Console do Gerenciador do IIS. Você pode clicar com o botão direito do mouse em Meu Computador, pressionar Gerenciar e procurar Serviços de Informações da Internet ou apenas iniciar o InetMgr.exe no menu Iniciar Executar.

Iniciamos a configuração do IIS criando um pool de aplicativos para nosso aplicativo. Clique com o botão direito do mouse nos pools de aplicativos e pressione Adicionar pool de aplicativos.

Na janela que se abriu, dê um nome ao pool de aplicativos.

Press OK.

Agora precisaremos copiar alguns arquivos que serão a base do site que fornece o acesso HTTP XMLA. Eles estão localizados em <onde quer que você tenha instalado o SQL Server >\OLAP\bin\isapi. No meu caso, essa pasta é: C: \ Arquivos de programas \ Microsoft SQL Server \ MSAS10. ASQL\OLAP\bin\isapi. Copie todos os arquivos dessa pasta e cole-os em uma nova na raiz do Site Padrão. Você pode ir para essa pasta clicando com o botão direito do mouse no nome do site no gerenciador de configuração e pressionando Explorar. Crie uma nova pasta chamada olap e cole os arquivos copiados lá. Você também precisa garantir que o usuário que executa o serviço IIS tenha permissão para ler os arquivos na pasta. Verifique isso acessando a seção Segurança das Propriedades na pasta pai (a raiz da web). Se as permissões não estiverem corretas, você receberá uma mensagem de erro ao apontar o navegador para esse site, informando que os arquivos podem não ser encontrados ou não há acesso aos arquivos que você está procurando.

O arquivo dll que copiamos é o mecanismo que fornece o XMLA e o ini é o arquivo que aponta o mecanismo para o servidor SQL. Se você instalou o SQL em uma máquina diferente da máquina IIS, precisará modificar esse arquivo de acordo.

Depois de criar a pasta olap, vá para o gerenciador do IIS novamente, expanda o Site Padrão e localize a pasta olap abaixo dele. Talvez seja necessário pressionar atualizar para que ele apareça. Quando isso acontecer, clique com o botão direito do mouse e pressione Converter em aplicativo.

Na janela recém-aberta, altere o pool de aplicativos para olap.

Depois de fazer isso, há apenas três etapas que você precisa seguir para concluir esta seção do processo. A primeira delas é adicionar um manipulador para *.dll ao site. Selecione a pasta olap e, nas Configurações do IIS, pressione Mapeamentos do Manipulador.

No lado direito da tela, você encontrará um link Adicionar mapa de script. Pressione-o. No caminho da solicitação, digite *.dll. Em seguida, para o executável, forneça o caminho para o arquivo msmdpump.dll na pasta olap e nomeie-o como olap.

Ao pressionar o botão OK, você será solicitado a adicionar uma extensão ISAPI e precisará pressionar Sim.

Agora, a segunda etapa é ir para a configuração de autenticação do IIS na pasta olap. Por padrão, apenas a autenticação anônima está habilitada. Para os fins deste tutorial, usaremos apenas anônimos, mas lembre-se de que existem mecanismos de autenticação mais avançados disponíveis. Agora clique com o botão direito do mouse na autenticação anônima e clique em editar. Na caixa que se abre, clique no botão Definir e insira as credenciais da conta de usuário que você adicionou como Conta provisória de análise na etapa de instalação do SQL. Pode ser o usuário com o qual você está conectado no momento ou outro, se você tiver criado um usuário especialmente dedicado para o trabalho. Esse é o usuário que criará todas as conexões com o serviço de Análise SQL.

Se você ainda não adicionou a função administrativa no SQL Analysis Service, conforme mencionado anteriormente, poderá adicionar permissões de acesso para o usuário padrão que inicia o aplicativo olap e não se preocupar em criar um usuário de serviço especial. Para fazer isso, você precisará deixar o usuário padrão (IUSR) na página Autenticação e aguardar até instalarmos o banco de dados do Adventure Works.  Haverá um parágrafo instruindo você sobre como conceder as permissões necessárias.

A última etapa é ir para as configurações globais do IIS (não as configurações da pasta olap) e selecionar as restrições ISAPI e SGI. Você verá que a restrição que fomos solicitados a criar para a dll msmdpump não tem nome. Precisamos clicar duas vezes nele e depois nomeá-lo olap.

Para verificar se nos saímos bem, precisamos apontar um navegador para http://localhost/olap/msmdpump.dll e observar o resultado. O Firefox mostrará algo semelhante a isto:

Adventure Works 2008

Agora que configuramos o acesso XMLA ao servidor SQL, precisamos de dados para poder acessar a partir de nossa demonstração. Um conjunto muito popular de dados de exemplo é o pacote Adventure Works, e vamos instalar exatamente isso agora.

Os arquivos de que você precisa estão localizados aqui: http://codeplex.com/MSFTDBProdSamples/Release/ProjectReleases.aspx

Depois de baixá-los, inicie a instalação e aceite o contrato de licença.

A próxima etapa é selecionar onde instalar os exemplos. Depois de selecionar a Instância de Instalação do SQL Server, você pode deixar todo o resto com os padrões. Pressione Instalar.

Após a conclusão do processo, você terá um banco de dados do Analysis Services instalado. Agora você precisa configurar o banco de dados do Analysis Services. Para fazer isso, vá para C:\Program Files\Microsoft SQL Server\100\Tools\Samples\AdventureWorks 2008 Analysis Services Project. Dependendo da versão do SQL Server, você precisa da pasta enterprise (para versões enterprise ou developer) ou da pasta standard. Há um arquivo de Works.sln de aventura neles e você deve abri-lo. Observe que você precisa estar com direitos de usuário elevados ao fazer isso.

Quando o projeto é aberto com o Business Intelligence Development Studio, você só precisa clicar com o botão direito do mouse na solução e pressionar Implantar. Isso conclui a instalação do banco de dados de exemplo.

Se você não alterou o usuário padrão que inicia o aplicativo olap no IIS ou selecionou uma conta diferente da conta de provisionamento (aquela que você escolheu quando instalou o SQL Server), será necessário conceder as permissões corretas neste momento. Para fazer isso, abra o SQL Management Studio e conecte-se ao banco de dados de análise. Vá para o banco de dados Adventure Works DW e clique com o botão direito do mouse na pasta Funções. Selecione a nova função, dê um nome a ela e defina o nível de acesso que você deseja fornecer por meio do XMLA HTTP Access.

Depois de selecionar as permissões para essa função, clique em Associação e adicione o usuário que você deseja conectar ao serviço de Análise. No caso padrão, o usuário que executa o aplicativo olap no IIS é chamado de IUSR. Adicioná-lo deve ser suficiente se você não o tiver alterado na seção Autenticação descrita anteriormente neste tutorial.

Infragistics PivotGrid demo

Antes de começarmos a criar nosso aplicativo básico com o Infragistics PivotGrid, precisamos ter certeza de que o aplicativo Silverlight será capaz de se comunicar com a interface XMLA que criamos (o problema entre domínios). Isso é garantido pela chamada política de acesso do cliente. Você pode ler mais sobre as restrições de acesso à segurança de rede em Silverlight aqui: http://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx

A solução para o problema entre domínios é simplesmente criar um arquivo de texto chamado clientaccesspolicy.xml na raiz do servidor web. Observe que esta não é a pasta onde está o mecanismo XMLA, mas a pasta / (raiz) de todo o servidor Web. Exemplo de seu conteúdo é o seguinte:

<?xml version="1.0" encoding="utf-8"?>
<access-policy>
  <cross-domain-access>
    <policy>
      <allow-from http-request-headers="*">
        <domain uri="http://*"/>
      </allow-from>
      <grant-to>
        <resource path="/" include-subpaths="true"/>
      </grant-to>
    </policy>
  </cross-domain-access>
</access-policy>

Finalmente, quando tivermos dados e meios para acessá-los, podemos começar a construir nossa demonstração Infragistics PivotGrid.

Crie um projeto Silverlight. Nem mesmo crie um projeto ASP host, apenas Silverlight. Antes de mostrar o código, você precisa adicionar três referências de assembly.

Infragistics.Silverlight.DataVisualization.Olap.Preview.v10.1
Infragistics.Silverlight.DataVisualization.Olap.Xmla.Preview.v10.1
Infragistics.Silverlight.DataVisualization.PivotGrid.Preview.v10.1
Infragistics.Silverlight.DataVisualization.v10.1
Infragistics.Silverlight.DataVisualization.XamWebTree.Preview.v10.1

If you don’t already have them you can download the CTP version from this address: http://pt-br.infragistics.com/dotnet/netadvantage/silverlight/data-visualization.aspx#Downloads Look for the Betas section and “NetAdvantage for Silverlight Data Visualization CTP (November 2009)”. The downloaded file is a zip and you can find the assemblies under the NetAdvantage_DataVisualization_2010.1\Bin folder.

Quando tivermos feito isso, devemos adicionar as referências de namespace em nosso XAML.

xmlns:igPivot="clr-namespace:Infragistics.Silverlight.Controls;assembly=Infragistics.Silverlight.DataVisualization.PivotGrid.Preview.v10.1"
xmlns:Olap="clr-namespace:Infragistics.Olap;assembly=Infragistics.Silverlight.DataVisualization.Olap.Preview.v10.1"
       xmlns:Xmla="clr-namespace:Infragistics.Olap.Xmla;assembly=Infragistics.Silverlight.DataVisualization.Olap.Xmla.Preview.v10.1"

Finalmente, estamos prontos para codificar o corpo do nosso exemplo.

  <StackPanel x:Name="LayoutRoot" Orientation="Horizontal" >
   
        <StackPanel.DataContext>
            <Olap:OlapViewModelCreator>
                <Xmla:XmlaConnectionSettings
ServerUrl="http://localhost/olap/msmdpump.dll"
CatalogName="Adventure Works DW" />
            </Olap:OlapViewModelCreator>
        </StackPanel.DataContext>
 
        <igPivot:XamWebPivotGrid x:Name="pivotGrid"
                                 ViewModel="{Binding ViewModel}"
                                 LayoutData="{Binding ViewModel.Result}" />
 
        <igPivot:XamWebPivotDataSelector Grid.Column="1" ViewModel="{Binding ViewModel}" />
   
    </StackPanel>

Precisamos adicionar uma linha ao construtor para carregar os dados assim que o aplicativo for carregado. Estou usando a expressão lambda apenas para tornar o código mais curto.

    this.Loaded += (sender, e) => { pivotGrid.ViewModel.LoadCubesAsync(); };

As quatro partes principais deste código são as seguintes:

1. Especificamos as configurações de conexão no DataContext de nosso LayoutRoot.

2. O controle principal do PivotGrid. Seu ViewModel e LayoutData são extraídos do DataContext.

3. Um PivotDataSelector nos permite escolher quais dados o PivotGrid deve exibir.

4. O método LoadCubes carrega dados do servidor que especificamos nas configurações de conexão.

Tudo o que resta agora é testar nossa criação. Pressione F5, selecione um cubo para começar, arraste e solte colunas, linhas, medidas e filtros e brinque com o PivotGrid 🙂

Espero que você tenha achado este artigo útil e tenha gostado de lê-lo. Se você tiver alguma dúvida ou apenas quiser deixar comentários, sinta-se à vontade para perguntar ou dar feedback. Boa sorte com suas experiências no PivotGrid e tenha um ótimo dia!

Solicite uma demonstração