none
Melhoria de Performance RRS feed

  • Pergunta

  • Bom dia a todos,

     

    Preciso fazer uma melhoria na performance de consumo do web service.

     

    Eu implementei a seguinte solução:

    Ao invés de retornar a string original, em que na maioria das vezes retorno xml, eu faço um processo de compactação da string dentro do web service e retorno a string compactada. Obtendo assim por exemplo uma melhoria de 13Mb para 700Kb.

    E depois no Client eu faço o processo de descompactação, voltando assim ao tamanho original.

     

    Alguém tem uma outra idéia para fazer uma melhoria de performance?

     

    obrigado,

    Vinicius

     

     

     

     

     

     

    terça-feira, 2 de outubro de 2007 14:20

Todas as Respostas

  • Um bom começo seria reduzir o tamanho do XML. :-)

     

    Se você tem um web service que retorna um XML de 13Mb então você tem um sério problema. Web services não são a melhor alternativa para trocas maciças de dados. O que você está tentando fazer? Talvez haja outro protocolo mais apropriado.

    terça-feira, 2 de outubro de 2007 14:55
  •  

    Igor,

     

    O Web Service vai fazer uma consulta no banco e retornar um Xml para a aplicação client. 

    O obejtivo principal é atualizar uma base dados, ou seja, a partir de uma determinada data recuperar os dados de uma base principal e atualizar a base de dados nos clients.

     

    Espero ter sido claro,

     

    Att;

    Vinicius Dias Medeiros

     

     

     

     

     

     

    terça-feira, 2 de outubro de 2007 16:58
  • Foi o que eu imaginei - sincronização de dados.

     

    Vinícius, nesse cenário web service é provavelmente uma das piores escolhas possíveis. Se a base de dados for SQL Server, você terá uma performance muito maior usando o recurso de replicação.

    terça-feira, 2 de outubro de 2007 17:16
  • Igor,

    Estou usando Sql Server.

    Vou pesquisar a respeito de replicação conforme sua indicação.

    Mas o que acontece é o seguinte, as bases de dados client são mais de mil. Ou seja, teria q fazer um processo de replicação para todas estas a partir de uma principal.

     

     

    terça-feira, 2 de outubro de 2007 17:44
  • Sem problemas. Com o SQL Server Express 2005 nos clientes esse processo é relativamente tranquilo.

     

    UPDATE: Veja mais detalhes sobre replicação em http://msdn2.microsoft.com/en-us/library/ms165700.aspx

    terça-feira, 2 de outubro de 2007 17:48
  • Igor,

    Esqueci de mencionar.

    Na aplicação Web estou usando o servidor Sql Server 2000 e nos clients estou usando MSDE.

     

    É possível fazer um processo de replicação usando essas bases(Sql Server 2000 para MSDE) e também se é possível fazer esses processo através de uma aplicação Web, ou seja, o client ter a possibilidade de fazer essa atualização através dessa aplicação?

     

    Obrigado,

    Vinícius

     

    quarta-feira, 3 de outubro de 2007 17:45
  •  Vinicius Medeiros wrote:

    Igor,

    Esqueci de mencionar.

    Na aplicação Web estou usando o servidor Sql Server 2000 e nos clients estou usando MSDE.

     

    É possível fazer um processo de replicação usando essas bases(Sql Server 2000 para MSDE)

     

    Sem problemas.

     

     Vinicius Medeiros wrote:

    é possível fazer esses processo através de uma aplicação Web, ou seja, o client ter a possibilidade de fazer essa atualização através dessa aplicação?

     

    Mais ou menos. O SQL Server usa um protocolo proprietário para replicação de dados. Isso implicaria em abrir uma outra porta no firewall do servidor Web. Se a sua aplicação estiver hospedada num provedor, isso pode (ou não) ser um problema.

     

    A vantagem do SQL Server 2005 é que ele oferece suporte à replicação sobre HTTPS (http://technet.microsoft.com/en-us/library/ms151763.aspx).

    quarta-feira, 3 de outubro de 2007 18:10