ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF

Tamanho: px
Começar a partir da página:

Download "ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF"

Transcrição

1 ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF Daniel Strassburger <dstrassburger@gmail.com> Edemar Costa <edemar.costa@gmail.com> Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência da Computação Câmpus Canoas Av. Farroupilha, 8001 Bairro São José CEP Canoas - RS RESUMO 29 de Novembro de 2011 Este artigo propõe a comparação entre dois sistemas orientados a serviços, um deles utilizando o método de ASP. NET Web Services (ASMX) e o outro utilizando o Windows Communication Foundation (WCF). A comparação abordou quesitos fundamentais na comunicação orientada a serviços. São eles: transações, segurança, reúso, interoperabilidade e aplicabilidade. O objetivo é mostrar as vantagens da migração para a nova tecnologia WCF. Palavras-chave: Comparação, Web Services, WCF, ASMX, SOA. ABSTRACT Title: Comparative study between ASP.NET Web Services and WCF Web Services This paper proposes the comparison between two service oriented systems, one of them utilizing the ASP.NET Web Services (ASMX) method and the other utilizing the Windows Communication Foundation (WCF). The comparison treated fundamental questions in the oriented communication services: transactions, security, reuse, interoperability, applicability. The goal is to show the advantages of migration to new WCF technology. Key-words: Comparison, Web Services, WCF, ASMX, SOA. 1 INTRODUÇÃO A comunicação entre aplicações é um item cada vez mais discutido e implementado. Devido à quantidade de tecnologias e métodos difundidos nos dias de hoje, existe grande variedade de formas destinadas a realizar a comunicação entre sistemas. Com a evolução das linguagens, identifica-se alguns conceitos antigos sobre comunicação entre aplicações, como bibliotecas estáticas (.lib) ou dinâmicas (.dll), interoperação e intercâmbio de componentes binários utilizando o COM (Component Object Model). Cada conceito, com suas vantagens e defeitos. No entanto, na era da internet e dos sistemas web, não há necessidade de continuar utilizando alternativas legadas. Sendo assim, criou-se a orientação a serviços, conceito ao qual este método incorporou os benefícios das metodologias anteriores, aperfeiçoando seu desempenho. Claro, a orientação a serviços também apresenta desafios. A engenharia de software moderna é o refinamento contínuo dos níveis sempre crescentes de independência (LÖWY, 2010). O problema é qual e por que escolher tal solução. Com base neste dilema, este artigo abordará um comparativo entre duas soluções de interoperabilidade: uma utilizando clássicos Web Services e outra utilizando WCF Web Services com a linguagem ASP.NET e o Visual Studio 10. O item 2 deste artigo terá enfoque teórico sobre as metodologias e formas de resolver o problema, ao referir-se a serviços, serviços Web, WCF e arquitetura orientada a serviços. O item 3, apresentará a definição da solução proposta, e o item 4 mostrará a validação dos dados. Por fim, no item 6, será feita a conclusão, baseada nos resultados. 2 REFERENCIAL TEÓRICO Tratando-se de exposição e consumo de serviços, muitas soluções podem ser encontradas, como computação na nuvem (cloud computing), software como serviço (SaaS) e serviços web (Web Services). Cada uma destas soluções tem suas peculiaridades. No caso de computação na nuvem, o conceito é utilizar 1

2 recursos que estão fisicamente em outro lugar, longe do usuário. Já com SaaS, temos ferramentas prontas para serem utilizadas e não é necessário licenças de software e sim taxas, diluídas mas vitalícias. A terceira tecnologia é a disponibilização e consumo de Web Services, de forma que a comunicação entre sistemas seja mais rápida, ágil e segura. Os projetistas de software devem optar pela forma de comunicação mais adequada à empresa, visando a maximizar seus resultados e a atender seus requisitos. Principalmente, buscar a redução de custos desnecessários ao negócio, como, por exemplo, gastos com infraestrutura, aplicações comuns etc. Estima-se que até 90% dos custos de TI (tecnologia da informação) são relativos à manutenção em sistemas legados (PIGOSKI, 1996). Com o uso de Web Services, há a viabilidade de comunicação entre aquele que disponibiliza e o que consome o serviço, mas também auxilia a integração e interoperabilidade entre sistemas heterogêneos (tecnologias diferentes, plataformas distintas, sistemas legados etc.). Daí, a importância de utilizar os princípios de arquiteturas orientadas a serviços. 2.1 Histórico Tudo começou pela década de 1920, na Polônia, quando foi construído o primeiro computador eletromecânico, do tamanho de uma máquina de escrever. Na década de 1930, esse computador foi vendido aos alemães, sendo utilizado para criptografar a comunicação. Hoje ele é conhecido como a máquina Enigma. A Enigma não era um computador de propósitos gerais: ela apenas conseguia fazer o ciframento e decodificação (hoje chamamos isso de encriptação e decriptação) (LÖWY, 2007, p. 476). Todo o algoritmo e lógica eram representados por rotores, e se o usuário quisesse mudar este algoritmo teria que alterar a estrutura mecânica da máquina, trocar rotores, ordem, posição inicial e cabos. Segundo Löwy (2010), o algoritmo era dependente do problema para o qual foi programado e do projeto de hardware da máquina. Isso começou a mudar no final dos anos 1940 e início dos anos 1950, quando os primeiros computadores eletrônicos de propósitos gerais passaram a admitir o desenvolvimento de algoritmos. Agora as máquinas podiam executar códigos dirigidos para qualquer problema e não apenas a um problema especifico para diversos problemas. Durante a Segunda Guerra Mundial, foi usado com o objetivo de defesa. Ainda assim, os códigos gerados nessa época eram ligados diretamente ao hardware, não podendo ser executados em outros computadores. Mas isso não era problema, visto que existiam poucos computadores úteis no mundo todo. E, assim, as linguagens foram evoluindo. Na década de 1960 já existiam linguagens de mais alto nível, como Cobol e Fortran, que introduziram o conceito de compiladores: o desenvolvedor escreveria o programa de uma maneira, e o compilador geraria os códigos de que a máquina necessitava. O problema agora era que a linguagem não era completamente estrutural, pois havia recursos de salto (jump) e ir para (go to), que muitas vezes causavam efeitos desastrosos nos algoritmos que os usavam Linguagem estruturada Nos anos 1970, nasceram as linguagens estruturadas, propriamente ditas, como C e Pascal. Uma verdadeira revolução, no qual desassociaram o código gerado de seu formato e estrutura interna, introduzindo o conceito de funções e estruturas. Iniciaram-se também as pesquisas sobre Engenharia de Software, visando à redução de custos. Empresas começaram a tratar do reúso em suas aplicações. Em C, o reúso é feito através da utilização de funções. Mas, com variáveis globais, é comum ocorrerem alterações, o que pode danificar uma ou mais funções. O problema com o reúso baseado em função é que ele é dependente dos dados que manipula (LÖWY, 2007, p. 477) Orientação a objetos Na década de 1980, a solução para estes problemas foi proposta pela criação das linguagens orientadas a objetos, como Smalltalk, C++ e logo em seguida o Java. Agora, a função e os dados estão em um mesmo objeto, resolvendo o problema da linguagem estruturada. As funções se tornaram métodos, nos quais fica encapsulada a lógica da programação, enquanto os dados se tornaram atributos do objeto. Obviamente, a orientação de objetos não era perfeita. O reúso exercido por uma classe que ainda está em formato fonte fica restrito a determinada linguagem. Você não poderia ter um cliente de Smalltalk consumindo uma classe de C++ ou derivando dela (LÖWY, 2007, p. 477). 2

3 De acordo com Löwy (2007), a herança não é a melhor solução para o reúso, e em alguns casos provê mais problemas do que soluções. O desenvolvedor tem que estar familiarizado com a classe base da derivação, e isso produz uma dependência vertical devido à hierarquia de classe. Outro problema ocorria quando os objetos eram distribuídos entre processos ou computadores. Por exemplo, não era possível utilizar C++ comum para a invocação. A solução era criar processos host e utilizar uma tecnologia alternativa para chamadas remotas, como soquetes TCP (Transmission Control Protocol) para fazer chamadas a distância. Essas chamadas eram muito diferentes das chamadas originais da linguagem, consequentemente, não era possível beneficiar-se delas Orientação a componente Figura 1 Linguagem estruturada e orientada a objetos (SANTOS) 1. E mais uma vez a necessidade de evolução era iminente, exigindo melhor interoperabilidade entre sistemas. Em 1994, após um longo período de utilização das bibliotecas estáticas (.lib) e dinâmicas (.dll), foi criada, pela Microsoft, a tecnologia COM. A orientação a componente permite interoperação e intercâmbio de componentes binários (LÖWY, 2007, p. 477). Apesar de ser uma tecnologia inovadora, o COM não foi muito bem-sucedido, pois a maioria dos desenvolvedores tinha problemas graves com sua implementação. Ela era feia sem necessidade, porque era construída sobre um sistema operacional que não sabia de sua existência, e as linguagens usadas para escrever componentes COM eram orientadas a objeto, mas não a componentes (LÖWY, 2007, p. 478) Orientação a serviços Com este breve histórico de engenharia de software, é possível notar um padrão: novas tecnologias e métodos de desenvolvimento sempre incorporam os benefícios das antecessoras e aprimoram vários outros quesitos não abordados antes. Com outras palavras, dependência é ruim, mas é necessária. Um aplicativo absolutamente independente é inútil porque não adiciona nenhum valor (LÖWY, 2007, p. 479). Ciente das dificuldades das tecnologias antecessoras, a orientação a serviço surgiu como uma alternativa para os problemas encontrados na orientação a objeto e na orientação a componente. A ideia principal da orientação a serviço é a de que os desenvolvedores devem se preocupar com as regras de negócio e deixar que os quesitos segurança, escalabilidade e interoperabilidade, a linguagem faça por si. Toda a sequência de comunicação entre serviço e cliente é feita através de mensagens padronizadas. O serviço, por sua vez, envia um metadado também padronizado, que descreve o que o serviço pode fazer e como os clientes devem invocar as operações. 1 Figura obtida no site 3

4 2.2 O que são Serviços Web? A criação, a popularização e a evolução da internet trouxeram muita facilidade e comodidade aos usuários. No entanto, à medida que a rede foi crescendo, novas necessidades foram surgindo, como, por exemplo, a necessidade de integração dos sistemas computacionais de uma empresa. Esses sistemas implementam os processos de negócio e a troca de informações com fornecedores, clientes e sócios. O objetivo é sobreviver e obter sucesso no atual contexto da economia de mercado, que tem exigido que os serviços sejam disponibilizados via web. Foi neste contexto que surgiu a tecnologia de serviços web, a qual visa à integração de sistemas computacionais e de serviços, de forma que esta integração seja independente da localização geográfica destes sistemas e serviços, da plataforma sobre a qual os mesmos são executados, da linguagem de programação em que foram implementados etc. No final de 2000, ano do surgimento dos serviços web, as empresas Oracle, HP, Sun, IBM, BEA e Microsoft (maiores fornecedoras de software para TI do mundo) anunciaram a intenção de utilizar esses padrões em seus produtos. Desde então, esta tecnologia tem sido alvo de muitas pesquisas e investimentos a fim de que se possa especificar e padronizar protocolos para solucionar alguns dos problemas ainda existentes em sua arquitetura. O objetivo é ter uma infraestrutura confiável para o seu desenvolvimento e implantação, de modo que ela seja adotada de forma mais efetiva comercialmente. Nos últimos anos, a necessidade de conectar pessoas, informações e processos mudou a forma como o software vem sendo desenvolvido. Sistemas bem-sucedidos de TI exigem cada vez mais interoperabilidade entre plataformas e serviços flexíveis que possam evoluir facilmente com o tempo. Isso tem levado ao domínio de XML (Extensible Markup Language) como a linguagem universal para representar e transmitir dados estruturados que sejam independentes de linguagem de programação, plataforma de software e hardware. Criado sob a ampla aceitação de XML, os serviços da web são aplicativos que usam transportes, codificações e protocolos-padrão para troca de informações. Um serviço web é um sistema de software projetado para suportar interação máquina-máquina interoperáveis sobre uma rede (BOOTH et al., 2004). Com amplo suporte entre fornecedores e empresas, os serviços da web permitem que sistemas de computação em qualquer plataforma se comuniquem pelas intranets e extranets da empresa, e na internet, com suporte para segurança de ponta a ponta, serviços de mensagens confiáveis, transações distribuídas e muito mais. Utilizando serviços web, pode-se trocar dados com acoplamento fraco na forma de mensagens XML entre sistemas heterogêneos. O acesso remoto a dados e a lógica da aplicação são conceitos antigos, mas atuando com baixo acoplamento tonaram-se inovadores. Tentativas anteriores como o modelo de objetos componentes distribuídos (DCOM - Distributed Component Object Model), Internet Inter-ORB Protocol (IIOP) e Java Remote Method Invocation (RMI) requeriam forte integração entre o cliente e o servidor. Ao invés de usar o contrato baseado em XML, que é essencial para serviços da web, eles usavam os formatos de dados binários, específicos do sistema operacional e de sua implementação. Enquanto DCOM, IIOP e Java / RMI exigem uma tecnologia de determinado componente ou convenção no chamado de objetos, os serviços da web não. A única suposição feita entre o cliente e o servidor é que os destinatários vão entender as mensagens que recebem. Em outras palavras, o cliente e o servidor concordam com um contrato, neste caso, um contrato que é definido usando WSDL e XSL Schema Definition (XSD). Em seguida, o cliente e o servidor comunicam-se por mensagens, confirmando que honraram o contrato através de um transporte especifico, como o Hypertext Transfer Protocol (HTTP). Como resultado, temos programas escritos em qualquer linguagem e sendo executados em qualquer sistema operacional usando qualquer modelo componente e podendo utilizar o serviço web. Além disso, a flexibilidade de um formato de texto como XML permitirá a evolução da troca de mensagens de maneira fracamente acoplada. Esse fraco acoplamento é obrigatório em ambientes em que não seja possível a atualização simultânea de todas as partes na troca de mensagens. Os serviços da web baseiam-se em um conjunto central de padrões que descrevem a sintaxe e a semântica da comunicação por software: o XML fornece a sintaxe comum para a representação de dados; o protocolo Simple Object Access Protocol (SOAP) fornece a semântica para a troca de dados; o Web Services Description Language (WSDL) fornece um mecanismo para descrever as capacidades de um serviço da web. 4

5 Especificações adicionais, conhecidas de modo geral como arquitetura WS-*, definem a funcionalidade de detecção, os sistemas de eventos, os anexos, a segurança, os serviços de mensagens confiáveis, as transações e o gerenciamento dos serviços da web. Estas características dos serviços web se devem, em grande parte, ao fato de basearem-se em normas padrões, dentre as quais se destacam: XML, SOAP, WSDL e UDDI (Universal Description, Discovery and Integration). O acesso a um serviço web é semelhante a qualquer requisição feita através de uma URL (Uniform Resource Locator). A diferença está no conteúdo do que é enviado na requisição do cliente para o servidor. Os clientes enviam um documento XML, formatado de maneira especial, de acordo com as regras da especificação SOAP (CERAMI, 2002). 2.3 ASP.NET Web Services Dentre várias definições para Web Services encontradas, uma delas é; o Web Service é a lógica da aplicação disponível para outros programas, através de protocolos padrões da web e independente de qualquer plataforma. Sobre a lógica da aplicação, pode-se afirmar que o Web Service expõe alguma lógica ou código da aplicação, que podem ser cálculos ou operações ao banco de dados, por exemplo. Levando em conta que a maioria dos sites, hoje, são acessados via navegador, logo Web Services serão acessados por programas. Todo o conceito de Web Service é baseado em protocolos padrões da Web, como HTTP, XML, SOAP, WSDL e UDDI, que serão mostrados em detalhes, mais adiante, neste artigo. Um Web Service pode ser implementado por qualquer plataforma. Os padrões citados anteriormente não são proprietários, e são suportados pela maioria dos fabricantes e desenvolvedores de plataformas (BASIURA, 2001). Segundo Josuttis (2007), existem cinco padrões fundamentais para Web Services. Dois deles são padrões gerais que já existiam e foram usados no desenvolvimento dos Web Services: XML é usado para descrever modelos, formatos e tipos de dados, ou seja, é a linguagem sobre a qual são construídas todas as linguagens de Web Services. HTTP é o protocolo que irá transportar as mensagens geradas pelos Web Services. Os outros três padrões fundamentais são específicos para Web Services: WSDL é usado para definir interfaces de serviço. Ele irá descrever dois diferentes aspectos de um serviço: sua assinatura (nome e parâmetros) e detalhes de protocolo e localização. Este padrão descreve exatamente o que o Web Service faz e como invocá-lo. SOAP é o padrão que define o protocolo do Web Service. Enquanto HTTP é o protocolo usado pela internet, SOAP é o formato específico para a troca de dados via Web Service. UDDI é o padrão para gerenciamento do Web Service, ou seja, registra e encontra serviços WSDL O WSDL descreve o serviço na forma bottomup (de baixo para cima). Inicia com os tipos usados e termina com a localização (ou endereço) do serviço. Com isso, são formadas três camadas. A primeira camada descreve a interface do serviço. Esta interface pode consistir em uma ou mais operações com entrada ou saída de parâmetros que usam tipos específicos na primeira sessão do arquivo WSDL. Existem algumas diferenças entre a versão WSDL 1.1 e a 2.0, mas não é o objetivo abordar com detalhes cada diferença, e sim mostrar a evolução do protocolo. No WSDL 1.1, os parâmetros dos serviços são definidos nas sessões <message>, enquanto na versão WSDL 2.0 são definidos como qualquer outro tipo na seção <types> (JOSUTTIS, 2007). A segunda camada define o binding (ligação) do Web Service. Isto é, o protocolo e formato para o qual as operações do Web Service são fornecidas. A terceira camada define a localização física (endereço, URL) onde o Web Service está disponível. A figura 2 mostra as duas estruturas de WSDL 1.1 e WSDL

6 2.3.2 SOAP Figura 2 Estrutura do WSDL 1.1 e WSDL 2.0. As mensagens SOAP contêm um formato XML e o elemento root chamado <Envelope>. Ele pode conter um opcional <Header> e um elemento obrigatório <Body>. O elemento Body (corpo) contém o payload (carga útil), que pode ser uma requisição, uma resposta ou dados de falha. O elemento Header (cabeçalho) pode conter informações adicionais para ajudar a lidar com a infraestrutura de mensagens (como, por exemplo, dicas de roteamento e dicas de segurança) (JOSUTTIS, 2007). Abaixo é exemplificada uma requisição SOAP. Figura 3 Exemplo de requisição SOAP. A mensagem de resposta a esta requisição deve conter o formato mostrado na Figura UDDI Figura 4 Exemplo de resposta a requisição SOAP. Inicialmente, a UDDI era um termo mais amplo, Universal Description, Discovery and Integration Business Registry (resumindo, UDDI Business Registry ou ainda mais curto UBR). A ideia original era 6

7 introduzir as três funções de um mercado de trabalho: fornecedores que oferecem serviços, consumidores que precisam de serviços e corretores que agrupam esses serviços para publicá-los (JOSUTTIS, 2007). 2.4 O que é o WCF? Figura 5 UDDI - Fornecedores, consumidores e corretores. Segundo Löwy (2010), o Windows Communication Foundation é um kit de desenvolvimento de software (SDK) para desenvolvimento e distribuição no Windows. O WCF fornece um ambiente de execução dinâmico para seus serviços, isto é, efetua a compilação e interpreta os códigos dos aplicativos. Embora seja possível o desenvolvimento de serviços sem o WCF, na prática, esse desenvolvimento fica significativamente mais fácil com ele. Esta ferramenta, além de facilitar o desenvolvimento, traz vários benefícios, como mais segurança nos códigos, devido à estrutura bem formada, aos padrões de mercado empregados, aos gerenciamentos de estados, às métricas de desempenho e à fácil implementação. De fato, o WCF foi construído com os aspectos de SOA (Service Oriented Architecture) em mente. Cambiucci (2008) cita alguns. O design e a implementação de serviços são naturalmente desacoplados da lógica de negócios da aplicação. Essa característica é que permite a migração das aplicações atuais para um modelo de serviços. Serviços expõem funcionalidades para clientes remotos através de contratos explícitos de serviços e de dados. Serviços são executados de forma autônoma, não havendo impacto entre eles quando ocorre uma falha. Ou seja, o isolamento é uma condição obrigatória entre serviços, assim como as fronteiras de segurança. Serviços podem ser distribuídos através de diferentes protocolos, o que atende a uma série de cenários presentes no ambiente corporativo. A interoperabilidade é uma exigência. Serviços são agnósticos ao transporte, ou seja, podem ser expostos diretamente na web, via intranet, ou usado como um backend em ambientes corporativos. Resumindo, serviços são orientados a mensagens, possuem contratos de serviços e de dados, são multiprotocolos e multihosts, com aspectos de segurança, isolamento, políticas, monitoração, comportamentos etc. Todos esses aspectos são atendidos pelo modelo de programação do WCF. Ainda, através do ABC do WCF (onde Endpoint = Address + Binding + Contract) é possível uma grande flexibilidade na implantação e configuração de serviços em diversos ambientes de TI. Desde a versão 1.0 do.net Framework é possível implementar serviços web como os encontrados no mercado, com a diferença de que o desenvolvedor pode utilizar os recursos nativos do framework em sua construção. Entre estes recursos estão: autenticação, cache e gerenciamento de estado. A partir do.net Framework 3.0, a Microsoft unificou as várias tecnologias de programação para 7

8 sistemas distribuídos em um único modelo, visando a arquitetura orientada a serviços (SOA). Uma das principais características desta nova API (Application Programming Interface) é o fato do WCF ser totalmente desacoplado das regras de negócio que serão expostas pelo serviço. A tecnologia WCF tem muitas funcionalidades, que visam performance, segurança, disponibilidade, transações, sincronizações e tratamento de erros (LÖWY, 2007). 2.5 Arquitetura orientada a serviços Uma arquitetura orientada a serviços (SOA) é baseada em quatro abstrações principais: um frontend de aplicação, um serviço, um repositório de serviços e um barramento de serviços. O W3C conceitua SOA como um conjunto de componentes que podem ser invocados e ter suas descrições de interface publicadas e descobertas. As tecnologias RMI, DCOM, CORBA e DCE são exemplos de sistemas SOA (HAAS, BROWN, 2004). O frontend da aplicação é desacoplado dos serviços. Cada serviço tem um contrato, que define o que será feito e apresenta uma ou mais interfaces para implementar esse contrato. O repositório de serviços fornece um lar para os serviços, e o barramento de serviços fornece um mecanismo de padrão industrial para a conexão e interação com os serviços. Os arquitetos das empresas veem a SOA como um meio de ajudar os negócios a responder mais rapidamente e com melhor relação custo-benefício às condições do mercado, que estão em constate mudança. Durante o evento SOA & Business Processes Conference 2007, realizado em Redmond, EUA, a Microsoft apresentou para o mercado uma arquitetura de referência para projetos de SOA, como uma proposta para a organização de camadas e serviços, conforme é visto na figura 8. Figura 6 - Arquitetura de Referência SOA proposta pela Microsoft. Cambiucci (2009) descreve as principais camadas da arquitetura de referência SOA. Primeiro, percebe-se uma camada de aplicações compostas, que é destinada às interfaces de composição de serviços da solução. Aqui, as interfaces e aplicações combinam serviços e chamadas de processos da infraestrutura. Logo abaixo, temos a camada de composição de negócios ou processos, onde orquestrações e workflows podem consumir serviços ou tratar regras de negócio, de acordo com as necessidades da solução. Na sequência, aparece a camada de serviços atômicos ou de composição, que implementam as interfaces de serviços propriamente ditas. Baterias de Web Services ou serviços hospedados em servidores IIS (Internet Information Services) são exemplos para essa camada. Apoiando os serviços acima, encontramos os componentes de serviços, que podem ser componentes legados, exportando funcionalidades existentes de nossa infraestrutura. 8

9 Por último, a camada de integração ou legado (LoB - Line of Business Application), em que se encontram sistemas nativos, bancos de dados e soluções que podem ser exportadas, para outras áreas da empresa, por exemplo. Atendendo a todas as camadas, encontramos as bibliotecas comuns, necessárias para a manutenção, administração e operação da solução. Assim, vemos as camadas verticais do desenho, que implementam monitoração, autorização, segurança, controle de acesso, auditoria etc. São bibliotecas básicas, construídas ao longo do projeto ou fornecidas por alguma ferramenta de operação de serviços. Em muitos casos, barramentos de serviços oferecem essas funcionalidades de forma nativa, economizando algum tempo de desenvolvimento para o projeto. Um fator de sucesso em muitos projetos de SOA tem sido a adoção de uma arquitetura de referência, que posiciona corretamente as camadas e componentes da solução. Em muitos casos, essa estruturação garante o respeito de interfaces de forma padronizada, assim como a coesão e responsabilidades previstas para cada camada, fornecendo o mínimo de organização e facilidade de manutenção futura. 2.6 Justificativa Como visto nos itens acima, existe formas diferentes de obter resultados que resulta em uma aplicação SOA. Sendo o conceito de Web Services mais antigo, muitas aplicações já foram construídas neste modelo. Este artigo irá abordar vantagens e auxiliará em uma possível migração de Web Services para WCF, objetivando entender desde a sua estrutura de projeto até detalhes relacionados à sua execução. Cada uma das seções a seguir irá analisar e discutir essas mudanças, mostrando também alguns detalhes importantes que poderão apresentar um comportamento estranho durante a execução, caso não sejam identificados a tempo. 3 METODOLOGIA Com base nestas diferenças entre WCF e ASP.NET Web Services (ASMX), uma comparação de desempenho entre estes serviços é vital para a análise de custo-benefício em sua implementação. Isto ajudará muito em uma migração ou aquisição de investimentos para começar a utilizar tais tecnologias. Mas não apenas a performance foi comparada neste artigo. Foram realizados testes, abordando as principais características de cada tecnologia, como segurança, aplicabilidade, reúso e expansibilidade. Foi criado um ambiente de testes em que foram executados testes pontuais, analisando desempenho, segurança, escalabilidade e aplicabilidade. Além disso, foi realizada a análise de migração em um ambiente de produção que anteriormente utilizava ASP.NET Web Services e passou a utilizar o WCF. Foram reestruturadas as camadas da arquitetura com base em SOA. Neste ambiente foram apresentadas três aplicações de uma empresa de venda de computadores. Essas aplicações são: sistema de vendas, sistema de suporte e sistema financeiro. Inicialmente, o problema de comunicação entre esses sistemas era resolvido através do uso de ASP.NET Web Services e troca de arquivos. Foi desenvolvida uma camada para comunicação entre estas aplicações, utilizando o WCF e, assim, efetuados os testes nas duas formas de solução. O objetivo é mostrar todos os benefícios e detalhes de uma solução robusta e evolutiva, aplicando o WCF em um ambiente real de produção. 3.1 Ambiente Em todos os testes foi utilizado o mesmo ambiente. Um servidor com processador Intel Xeon X5680 (12M Cache, 3.33 GHz, 6.4), 12 GB de memória RAM, placa de rede 1 Gbps e o sistema operacional Windows Server 2008 R2. Os clientes serão quatro computadores com processadores Core 2 Duo 3.0 GHz, 2GB de memória RAM e placa de rede de 1 Gbps. A infraestrutura é detalhada na Figura 7. O servidor web responsável pela exposição dos serviços será o IIS

10 Servidor Cliente 1 Cliente 2 Cliente 3 Cliente 4 Switch 3.2 Performance de operações 1GB Ethernet Figura 7 Infraestrutura para realização dos testes. Inicialmente, foram desenvolvidas duas soluções em cada uma das tecnologias, WCF e ASP.NET Web Services. Estas soluções não terão nenhuma boa prática inclusa, apenas os requisitos mínimos para que se possa efetuar uma transação com sucesso. Cada uma das aplicações será formada por um processo de requisição e resposta, padrão das duas tecnologias. A requisição enviará um número inteiro e terá como resposta uma coleção de objetos criados no servidor. Esta coleção de objetos será padrão nas duas aplicações e pode ser conferida na Figura 8. Ordem[] GetOrdens(int NumOrderns); { Ordem[] ordens = new Ordem[numOrdens]; for (int i = 0; i < numordens; i++) { Ordem ordem = new Ordem(); OrdemLinha[] linhas = new OrdemLine[2]; linhas[0] = new OrdemLine(); linhas[0].itemid = 1; linhas[0].quantidade = 10; linhas[1] = new OrdemLine(); linhas[1].itemid = 2; linhas[1].quantitidade = 5; ordem.ordemitens = lines; ordem.clienteid = 100; ordem.endereco1 = " "; ordem.endereco2 = " "; ordem.cidade = " "; ordem.estado = " "; ordem.cep = " "; ordem.pais = "United States"; ordem.tipoenvio = "Courier"; ordem.cartaocreditotipo = "XYZ"; ordem.numerocartao = " "; ordem.validadecartao = DateTime.UtcNow; ordem.nomecartao = " "; ordens[i] = ordem; } return ordens; } Figura 8 Código que irá criar processamento no serviço. Com este cenário foi possível simular um ambiente de produção e realizar a contagem de transações que cada uma das aplicações pode oferecer por segundo. Nos testes executados, tanto no ASP.NET Web Services quanto no WCF, o servidor trabalhou com o processamento próximo a 100% de utilização. Este teste mostrou o poder de desempenho do WCF e do APS.NET Web Services. Contudo, uma 10

11 aplicação SOA requer análises em diversas variáveis, e isso será abordado nas próximas subseções. 3.3 Segurança Foi desenvolvido um estudo sobre segurança em que foram abordados quesitos básicos do ASP.NET Web Services e do WCF. Apesar de as duas formas poderem utilizar o protocolo HTTPS (Hypertext Transfer Protocol Secure), o WCF consegue ter mais recursos de segurança nativamente e, quando é desenvolvida uma aplicação SOA, é fundamental que este quesito seja relacionado. As principais funcionalidades fornecidas pelo WCF para o gerenciamento de autenticação e autorização de serviços, abordando as vantagens e desvantagens de cada modo, serão explanadas na validação de segurança. O ASP.NET Web Services provê a segurança apenas no nível do IIS, e o WCF já consegue embutir várias funcionalidades em seu código, visto que não é necessariamente publicado pelo IIS. O resultado esperado é um detalhamento dos quesitos de segurança de cada uma das tecnologias, tendo um pouco mais de segurança os serviços em WCF. E será validado na implementação da solução, acionando os principais requisitos de segurança. O ASMX pode confiar somente na segurança baseada no transporte, ou seja, ele somente será seguro se o serviço for exposto através de HTTPS. Só se pode abrir mão do HTTPS se for utilizada a segurança baseada na mensagem, que está disponível no ASMX, através do Web Services Enhancements (WSE). Muitas vezes se utiliza um SoapHeader com usuário e senha. Isso somente terá alguma segurança se utilizar HTTPS ou segurança em nível de mensagem. Do contrário, qualquer um que intercepte a requisição, conseguirá extrair o conteúdo da mensagem e seus respectivos headers. Como já era de se esperar, o WCF fornece ambos os níveis de segurança nativamente. São configurações que se realizam (de forma imperativa ou declarativa), e que o serviço utilizará para efetuar a autenticação e a autorização do cliente. Uma das grandes dificuldades encontradas ao utilizar-se o WCF é que, mesmo se ele for configurado para autenticar o cliente, será necessário utilizar um certificado para garantir a segurança. 3.4 Representação dos dados Foi feita uma análise das diferenças na representação de dados entre ASP.NET Web Services e WCF. Neste item será abordada a maneira como é padronizado o código. A análise detalhou algumas diferenças nas classes utilizadas por cada uma das tecnologias, identificando assim suas vantagens e desvantagens. 3.5 Camada de serviços Neste ambiente de aplicações utilizando a comunicação através de alguns ASP.NET Web Services e arquivos de importação, muito tempo e confiabilidade se perdem. Até mesmo o desenvolvimento de novas aplicações fica comprometido nesta estrutura. Foi criada uma camada de serviços WCF para esta organização de vendas de computadores, inicialmente para ligar apenas os três sistemas informados, vendas, suporte e financeiro. A camada de serviços é completamente independente das aplicações, e adequações foram feitas nas antigas aplicações para que as trocas de informações sejam suportadas Reuso Foi realizada uma análise na estrutura do código, visando o reúso: quanto é possível reutilizar os Web Services desenvolvidos em ASP.NET e quanto é possível reusar os serviços WCF. Esta análise exige um pouco mais de cuidado devido ao tempo necessário para confirmações Migração Com o desenvolvimento desta nova plataforma, analisamos quesitos importantes, como tempo de desenvolvimento, dificuldade da estrutura e compatibilidade. O objetivo é determinar a ocasião mais propícia para realizar uma migração de plataforma ou quando será necessário desenvolver novamente toda a estrutura de comunicação. 11

12 4 VALIDAÇÃO Os resultados obtidos com este trabalho serão abordados nas subseções a seguir. 4.1 Desempenho Com os testes de desempenho, foi identificada uma melhora de 12%, 13% e 52% para requisições de 1, 10 e 100 objetos respectivamente. Nesta seção, a comparação feita tem o objetivo de mensurar o desempenho dos serviços e nenhuma segurança foi utilizada. O WCF binding utilizado foi o BasicHttpBinding. Esta ligação padrão utiliza HTTP como protocolo de transporte. A hospedagem dos serviços foi feita no IIS 7.0, deixando exposto apenas um serviço. O binding utilizado foi o BasicHttpBinding, para o WCF Service e o protocolo HTTP para o ASP.NET Web Service. A figura abaixo ilustra as camadas de um serviço que utiliza este protocolo. Figura 9 Camadas utilizando o BasicHttpBinding. Todos os testes executados empregaram a mesma configuração de hardware apresentada na sessão 3.1. O número de processos-cliente usados no sistema cliente foi suficiente para assegurar que o processador do servidor fosse completamente saturado, ou seja, próximo a 100% de utilização. Os dados coletados e aqui apresentados refletem uma média de várias execuções convergentes, e todos os cuidados foram tomados para garantir sua sustentabilidade. Para criar uma quantidade significativa de requisições aos serviços, foi utilizada a ferramenta WCFStorm ( 12

13 Operações por segundo Figura 10 WCFStorm. Também foi aplicado um projeto open source para executar estes testes de carga. O projeto utilizado foi o WCF Load Test ( Foram levados em consideração os resultados das duas ferramentas. Testes unitários e, posteriormente, testes de carga foram criados para verificar a capacidade de resposta de cada uma das tecnologias. Os testes unitários realizam uma chamada simples ao serviço, que retornou uma coleção de objetos. Nos testes de carga foi criado um cenário onde foi simulado o aumento crescente de usuários até 200, aumentado 10 usuários a cada 10 segundos Throughput Nas comparações de taxa de transferência, quanto maior o valor alcançado, melhor será o resultado. Também será demostrado os resultados de tempo de resposta, neste caso, quanto menor o valor, mais rápido o serviço responde as chamadas. Foram utilizados gráficos de barras para exemplificar os resultados. Como é mostrado na figura 11, o WCF melhorou o desempenho sobre ASMX. No gráfico, três diferentes assinaturas foram utilizadas. Em cada caso, um inteiro é passado do cliente para o servidor, e uma coleção de objetos (1,10 ou 100) é retornado para o cliente. O WCF supera em 12%, 13% e 52% para 1, 10 ou 100 objetos em uma mensagem, respectivamente. 300 Throughput WCF ASMX 50 0 Mensagem com 1 obj Mensagem com 10 obj Mensagem com 100 obj Figura 11 Gráfico de throughput. 13

14 Segundos Tempo de resposta Cada operação leva um determinado tempo para obter o retorno. Como visto na figura 12, o WCF consegue responder a mais transações por segundo, consequentemente, sua taxa de tempo de resposta é mais rápida também. É possível verificar o tempo de resposta no gráfico abaixo Tempo de resposta WCF ASMX Mensagem com 1 obj Mensagem com 10 obj Mensagem com 100 obj Figura 12 Gráfico de tempo de resposta. Desta maneira, o WCF mostra larga vantagem no tempo de resposta de seus serviços expostos. Com estas duas vantagens extremamente importantes comprovadas nos testes, a comunicação através do WCF é uma forma segura, eficaz e rápida para transmitir os dados entre aplicações e clientes Memória Foi analisada a memória do servidor no momento dos testes de carga. Notou-se que a utilização de memória é mais elevada com o WCF. Isso se deve ao nível de complexidade das informações por ele processadas. A ferramenta utilizada para mensurar este recurso foi o Perfmon.exe nativo no Windows Server 2008 R2. Tabela 1 Utilização de memória em %. WCF ASMX Teste Teste Teste Verifica-se que, com aplicações WCF, a memória do servidor deve ser mais elevada para suportar melhor a tecnologia. 4.2 Camada de serviços O problema de comunicação entre aplicações consome boa parte no tempo de desenvolvimento de uma solução. Foi analisado um projeto em produção no qual aplicações comunicavam-se entre si através de Web Services e de exportação e importação de arquivos. A figura abaixo mostra como estava o ambiente originalmente. 14

15 Figura 13 Camada de serviços Foi implementada uma camada de serviços, interligando as aplicações envolvidas, proporcionando desta maneira uma forma centralizada de comunicação. Figura 14 Camada de serviços Assim, obteve-se uma padronização na comunicação entre as aplicações, provendo melhor controle e facilidade para o desenvolvimento, testes e correções, entre outros. O ganho de desempenho é notório, mas difícil de comparar, visto que nem todas as comunicações feitas anteriormente ocorriam através de serviços web e sim por transferência de arquivos ou até mesmo de forma manual. Todas as vantagens explicadas na seção anterior ficaram visíveis nesta implementação, mas não foi possível efetuar testes exatamente iguais, pois a lógica do sistema também mudou Reúso O reúso é um item difícil de mensurar, devido ao tempo que se leva para comprovar sua eficácia. Pelo fato do WCF prover uma interface com o contrato de seus serviços, os serviços ficam mais simples de interpretar, modificar e reutilizar. 4.3 Migração Os ASP.NET Web Services já existem há algum tempo e há muitas aplicações que ainda o utilizam. Esta seção ajudará a entender melhor as diferenças entre ASMX e o WCF, desde a sua estrutura de projeto até detalhes relacionados a sua execução Contratos O ASMX irá se basear nos métodos decorados com o atributo WebMethodAttribute para gerar o 15

16 documento WSDL. Para controlar a visibilidade dos métodos, é necessário adicionar ou remover este atributo. Qualquer tipo complexo referenciado nos métodos será automaticamente inserido na descrição do serviço sem nenhuma configuração extra. Já o WCF trabalha de forma bem diferente. Ele utiliza interfaces para determinar os contratos que o serviço apresenta. Essas interfaces são aquelas tradicionais, já utilizadas no dia a dia, mas decorada com um atributo chamado ServiceContractAttribute. Os métodos são descritos dentro das interfaces e expostos através do atributo OperationContractAttribute Serialização e Desserialização A serialização e a desserialização estão condicionadas ao serializador que cada tecnologia utiliza. O ASMX utiliza o XmlSerializer para transformar os objetos em XML e vice-versa. O XmlSerializer serializa todos os membros públicos (propriedades e campos), sem a necessidade de definir qualquer atributo. É possível controlar a forma como essa serialização será realizada utilizando vários atributos que existem neste mesmo namespace. O WCF, por outro lado, utiliza o serializador DataContractSerializer por padrão. Este serializador trabalha de forma semelhante ao XmlSerializer, com poucas diferenças. Entre essas diferenças está o tratamento do atributo SerializableAttribute, utilizado para manter a compatibilidade com objetos.net Remoting. Outra diferença é a capacidade que este serializador tem de manter membros definidos como private e protected. Este serializador ainda gera um XML mais simplificado, melhorando a interoperabilidade entre as plataformas. Se desejar utilizar o XmlSerializer, basta adicionar ao contrato o atributo XmlSerializerFormatAttribute Protocolo e hospedagem O ASMX só pode ser hospedado no IIS, utilizando o protocolo HTTP/HTTPS. O WCF tem uma arquitetura mais flexível e independente do protocolo, ou seja, ele pode ser executado em HTTP, HTTPS, TCP, MSMQ etc. O WCF também pode utilizar o IIS como host. Mas, além dele, é possível fazer uso de outras aplicações para expor um serviço, como um Windows Service, ou ainda, uma simples aplicação Windows/Console Implantação Assim como em qualquer aplicativo.net, basta mover os serviços para o IIS remoto e tudo já funciona. É necessário certificar-se de que tenha a mesma versão do.net Framework (isso inclui o service pack) instalada no servidor. É importante dizer que ambas tecnologias necessitam de um diretório virtual devidamente criado no IIS, com as permissões também configuradas Cliente Dentro do Visual Studio.NET você tem duas opções para referenciar um serviço: Add Web Reference e Add Service Reference. A primeira opção é utilizada para referenciar um serviço ASMX. A segunda é utilizada para referenciar um serviço WCF. Ao serem acionadas, essa opções criarão automaticamente o proxy, utilizando a API da tecnologia correspondente. 4.4 Segurança A segurança entre ASP.NET Web Services e WCF é fundamental em um ambiente orientado a serviços. Nesta sessão, são apresentadas duas soluções, ambas abordando as funcionalidades de cada uma das tecnologias. Por ser uma tecnologia recente, o WCF provê nativamente muitos recursos para trazer segurança a um serviço ASP.NET Web Service Web services criados com o ASP.NET podem dispor de segurança de autenticação e autorização oferecida por esta estrutura ou customizada. O ASP.NET opera em conjunto com o IIS para prover várias opções de autenticação e autorização. Também é possível criar opções de autenticação com o uso de SOAP Headers. Para isso, é necessário que o serviço tenha uma classe responsável pela verificação das credenciais. 16

17 A figura 15 apresenta um exemplo de utilização do SOAP Header com a instância Authentication. Esta classe irá coletar os dados para autenticação. Figura 15 Exemplo SOAP Header. O atributo Authentication é uma instância da classe AuthHeader, responsável por armazenar e decripitar os dados de autenticação, pois serão enviados criptografados por questões de segurança no transporte. Figura 16 Classe AuthHeader derivando a classe SoapHeader. O cliente irá enviar as credenciais criptografadas e invocar o serviço web. Veja a codificação. Figura 17 Cliente fazendo chamada ao serviço web. O serviço irá decripitar os dados de autenticação e verificar se o usuário possui direitos de acesso. O código abaixo mostra esta sequência WCF Figura 18 Serviços verificando credenciais e atendendo ao cliente. Apesar de serviços WCF não fugirem muito do padrão de segurança de aplicações convencionais, há algumas exceções, e uma delas é a forma de segurança que será aplicada à mensagem. Essa forma de segurança influencia na forma que a autenticação será realizada e como a mensagem será protegida durante a viagem. É importante dizer que se a transferência da mensagem entre o cliente e o serviço, ou entre o 17

18 serviço e o cliente não fosse protegida a autenticação e a autorização estariam completamente vulneráveis, permitindo vários tipos de ataque. Assim como outras configurações, a segurança também é uma característica do binding, podendo efetuar a configuração de forma declarativa ou imperativa. O WCF fornece cinco formas diferentes para tornar segura a transferência da mensagem. Cada uma dessas formas tem suas particularidades e influenciam em como a mensagem será protegida e em como a autenticação será realizada. Abaixo são detalhadas essas formas de segurança. None Como o próprio nome indica, nenhuma espécie de segurança é fornecida e toda a mensagem será trafegada sem criptografia. Transport Esta opção informa ao WCF que o transporte (TCP, IPC, MSMQ ou HTTPS) garantirá a segurança da mensagem, criptografando toda a comunicação. Além disso, fornece integridade, privacidade e autenticação mútua. Um dos pontos negativos deste modo é que a segurança só será garantida se for ponto a ponto. Ou seja, se houver intermediários entre o cliente e o serviço, não há garantia de que a mensagem chegará segura até o destino final. Message Com esta opção, toda a mensagem será criptografada, garantindo a autenticação e a proteção da mensagem (confidencialidade e integridade). Ao contrário da segurança baseada no transporte, a segurança em nível de mensagem garante a segurança end-to-end, independentemente do número de intermediários entre o cliente e o serviço. Isso permite, inclusive, que o serviço seja exposto sob um protocolo não seguro, como é o caso do HTTP. Outro grande benefício é que a segurança se baseia em padrões existentes no mercado, o que garantirá a interoperabilidade. Já um ponto negativo desta opção é a sobrecarga, pois todas as mensagens serão criptografadas e assinadas. Both Como o próprio nome diz, esta opção utiliza a segurança em nível de transporte e em nível de mensagem, ou seja, a mensagem será protegida e, além disso, será transferida por um transporte seguro. Apesar de maximizar a segurança, isso pode causar uma grande perda de performance. Além disso, esse nível de segurança só é permitido em protocolos específicos, como é o caso do MessageQueue, no qual a latência não é sentida. TransportWithMessageCredential Esta opção é uma mistura das duas anteriores. Ou seja, a autenticação do cliente será fornecida em nível de mensagem, enquanto a proteção da mensagem (confidencialidade e integridade) e a autenticação do serviço serão fornecidas pela segurança do transporte. TransportCredentialOnly Apenas a autenticação mútua é fornecida em nível de transporte, não havendo a proteção da mensagem. Esta opção somente está disponível para o ligação basichttpbinding. 5 CONCLUSÃO Com este estudo, foram identificadas as principais vantagens do WCF e os benefícios alcançados com sua utilização. Ganhos de desempenho e escalabilidade, fundamentais para as organizações, são possíveis com a utilização de comunicação WCF. Como o assunto é relativamente novo, a documentação sobre tais testes ainda deixa a desejar, e este estudo poderá ser uma base de conhecimento e poderá trazer resultados significativos para o desenvolvimento da integração de aplicações comerciais. O WCF fornece uma grande quantidade de funcionalidades que facilmente podem ser adicionadas em serviços. Além disso, grande parte dessas funcionalidades pode ser configurada de forma declarativa, através de arquivos de configuração que, na maioria dos casos, trazem enorme flexibilidade. Apesar de ser uma tecnologia com muito mais recursos, o WCF não é complicado, pelo contrário, é bem simples. Ainda há algum receio em sua utilização, pois sistemas legados de intercomunicação de aplicações são extremamente caros e vitais nas empresas. Não é simples conseguir mudar o fluxo de dados de uma hora para outra. Mas, as vantagens obtidas com a programação orientada a serviços trazem benefícios (a curto e a longo prazos) aos quais arquitetos e desenvolvedores de software deveriam estar atentos. Conclui-se que o WCF é uma excelente evolução para os antigos ASP.NET Web Services, e que, na medida do possível, as aplicações legadas (ASMX) deveriam ser substituídas, levando em conta o treinamento de desenvolvedores no WCF para melhor aproveitamento. Apesar de o desenvolvimento ser 18

19 feito em uma plataforma orientada a objetos, o resultado é extremamente satisfatório. Tudo indica que, em um futuro próximo, será criada uma plataforma especifica para desenvolvimento orientado a serviços. 5.1 Trabalhos futuros A orientação a serviços é uma forma de desenvolvimento muito rica, mas pode ser melhor em diversos pontos. Algumas das oportunidades para novos trabalhos são: WCF na nuvem. Ambiente de Desenvolvimento Integrado (Integrated Development Environment IDE) para orientação a serviços. AGRADECIMENTOS Gostaria de agradecer especialmente ao professor Edemar Costa, por acompanhar e auxiliar o desenvolvimento deste trabalho, assim como a todos os professores que fizeram parte de minha formação acadêmica. Um agradecimento especial a minha mãe, Alzira Ferreira Gomes, cujo apoio tornou possível a conclusão da minha graduação nesta universidade. Muito obrigado. REFERÊNCIAS BASIURA, Russ et al. Professional ASP.NET Web Services. Birmingham: Ed. Wrox Press Ltd, BOOTH, David et al. Web Services Architecture. [S. l], W3C, fev f. Disponível em: < Acesso em: 24 abr CAMBIUCCI, Waldemir. Cenários de implementação de serviços com WCF - Parte 1: Aspectos de SOA. [S. l], MSDN Blogs, jun f. Disponível em: < 1-aspectos-de-soa.aspx>. Acesso em: 17 abr CAMBIUCCI, Waldemir. Uma introdução ao Software + Serviços, SaaS e SOA. [S. l], MSDN Library, maio f. Disponível em: < Acesso em: 17 abr CERAMI, Ethan. Web Services Essentials. 1 ed. Sebastopol: Ed. O Reilly Media, Inc., HAAS, Hugo; BROWN, Allen. W3C Working Group Note. [S. l], W3C Glossary, fevereiro Disponível em: < Acesso em: 17 abr JOSUTTIS, Nicloai. SOA in Practice. Sebastopol: Ed. O Reilly Media, Inc., ago KHAN, Iqbal. Address Scalability Bottlenecks with Distributed Caching. [S. l], MSDN Magazine, jun f. Disponível em: < Acesso em: 17 abr LIBERTY, Jesse; HOROVITZ, Alex. Programming.NET 3.5. Sebastopol: Ed. O Reilly Media, Inc., jul LÖWY, Juval. Programando Serviços WCF. 1 ed. Sebastopol: Ed. O Reilly Media, Inc., LÖWY, Juval. Programming WCF Services. 3 ed. Sebastopol: Ed. O Reilly Media, Inc., PIGOSKI, Thomas M., Practical Software Maintenance. [S. l], John Wiley & Sons, Inc., SANTOS, Victor. Orientação a Objeto Parte I. [S. l], Web Final, julho Disponível em: < Acesso em: 17 abr SHODJAI, Payam. Serviços da Web e a plataforma Microsoft. [S. l], MSDN, 28 ago f. Disponível em: < Acesso em: 17 abr

ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF

ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF ESTUDO COMPARATIVO SOBRE APS.NET WEB SERVICES E WCF Daniel Strassburger Edemar Costa Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3

INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1. Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTEGRAÇÃO DE APLICAÇÕES UTILIZANDO WEB SERVICE 1 Kellen Kristine Perazzoli 2 ; Manassés Ribeiro 3 INTRODUÇÃO Atualmente empresas de diversos portes estão encontrando nos web services soluções para seus

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 2 Computação em Nuvem Desafios e Oportunidades A Computação em Nuvem

Leia mais

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores Conceitos Básicos de Rede Um manual para empresas com até 75 computadores 1 Conceitos Básicos de Rede Conceitos Básicos de Rede... 1 A Função de Uma Rede... 1 Introdução às Redes... 2 Mais Conceitos Básicos

Leia mais

2 Conceitos relativos a Web services e sua composição

2 Conceitos relativos a Web services e sua composição 15 2 Conceitos relativos a Web services e sua composição A necessidade de flexibilidade na arquitetura das aplicações levou ao modelo orientado a objetos, onde os processos de negócios podem ser representados

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

IW10. Rev.: 02. Especificações Técnicas

IW10. Rev.: 02. Especificações Técnicas IW10 Rev.: 02 Especificações Técnicas Sumário 1. INTRODUÇÃO... 1 2. COMPOSIÇÃO DO IW10... 2 2.1 Placa Principal... 2 2.2 Módulos de Sensores... 5 3. APLICAÇÕES... 6 3.1 Monitoramento Local... 7 3.2 Monitoramento

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG Marco T. A. Rodrigues*, Paulo E. M. de Almeida* *Departamento de Recursos em Informática Centro Federal de Educação Tecnológica de

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais

Forneça a próxima onda de inovações empresariais com o Open Network Environment

Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral da solução Forneça a próxima onda de inovações empresariais com o Open Network Environment Visão geral À medida que tecnologias como nuvem, mobilidade, mídias sociais e vídeo assumem papéis

Leia mais

Serviços Web: Introdução

Serviços Web: Introdução Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

On Scalability of Software-Defined Networking

On Scalability of Software-Defined Networking On Scalability of Software-Defined Networking Bruno dos Santos Silva bruno.silva@ic.uff.br Instituto de Computação IC Universidade Federal Fluminense UFF 24 de Setembro de 2015 B. S. Silva (IC-UFF) On

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2

Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 1 Conceitos da Computação em Nuvem A computação em nuvem ou cloud computing

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO Intranets FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO As intranets são redes internas às organizações que usam as tecnologias utilizadas na rede mundial

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

BlackBerry Mobile Voice System

BlackBerry Mobile Voice System BlackBerry Mobile Voice System BlackBerry Mobile Voice System Comunicações móveis unificadas O Mobile Voice System ( MVS) foi projetado para unificar os recursos do telefone fixo aos smartphones e às redes

Leia mais

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013

Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013 Visão geral híbrida de Serviços Corporativos de Conectividade do SharePoint 2013 Christopher J Fox Microsoft Corporation Novembro de 2012 Aplica-se a: SharePoint 2013, SharePoint Online Resumo: Um ambiente

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva 1. O que são Serviços Web (Web Services)? Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva A ideia central dos Web Services parte da antiga necessidade

Leia mais

Web Services. Integração de aplicações na Web. Sistemas Distribuídos

Web Services. Integração de aplicações na Web. Sistemas Distribuídos Web Services Integração de aplicações na Web Integração de Aplicações na Web Interoperação entre ambientes heterogêneos desafios diversidade de componentes: EJB, CORBA, DCOM... diversidade de linguagens:

Leia mais

INTERNET HOST CONNECTOR

INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR INTERNET HOST CONNECTOR IHC: INTEGRAÇÃO TOTAL COM PRESERVAÇÃO DE INVESTIMENTOS Ao longo das últimas décadas, as organizações investiram milhões de reais em sistemas e aplicativos

Leia mais

Microsoft.NET. Desenvolvimento Baseado em Componentes

Microsoft.NET. Desenvolvimento Baseado em Componentes Microsoft.NET Lirisnei Gomes de Sousa lirisnei@hotmail.com Jair C Leite jair@dimap.ufrn.br Desenvolvimento Baseado em Componentes Resolução de problemas específicos, mas que podem ser re-utilizados em

Leia mais

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com

Análise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com Análise e Projeto de Sistemas de Informação Andrêza Leite andreza.lba@gmail.com Roteiro Sistemas de Informação Ciclo de Desenvolvimento de SI Projeto Análise Estruturada Análise Orientada a Objetos Como

Leia mais

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima

INFORMÁTICA FUNDAMENTOS DE INTERNET. Prof. Marcondes Ribeiro Lima INFORMÁTICA FUNDAMENTOS DE INTERNET Prof. Marcondes Ribeiro Lima Fundamentos de Internet O que é internet? Nome dado a rede mundial de computadores, na verdade a reunião de milhares de redes conectadas

Leia mais

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança 3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade

Leia mais

Sistema de Controle de Solicitação de Desenvolvimento

Sistema de Controle de Solicitação de Desenvolvimento Sistema de Controle de Solicitação de Desenvolvimento Introdução O presente documento descreverá de forma objetiva as principais operações para abertura e consulta de uma solicitação ao Setor de Desenvolvimento

Leia mais

Computação em Nuvem. Alunos: Allan e Clayton

Computação em Nuvem. Alunos: Allan e Clayton Computação em Nuvem Alunos: Allan e Clayton 1 - Introdução 2 - Como Funciona? 3 - Sistemas Operacionais na Nuvem 4 - Empresas e a Computação em Nuvem 5 - Segurança da Informação na Nuvem 6 - Dicas de Segurança

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

Governança Corporativa. A importância da Governança de TI e Segurança da Informação na estratégia empresarial.

Governança Corporativa. A importância da Governança de TI e Segurança da Informação na estratégia empresarial. Governança Corporativa A importância da Governança de TI e Segurança da Informação na estratégia empresarial. A virtualização dos negócios tem impactado diretamente a condição de fazer negócio, conferindo

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Governança de TI. ITIL v.2&3. parte 1

Governança de TI. ITIL v.2&3. parte 1 Governança de TI ITIL v.2&3 parte 1 Prof. Luís Fernando Garcia LUIS@GARCIA.PRO.BR ITIL 1 1 ITIL Gerenciamento de Serviços 2 2 Gerenciamento de Serviços Gerenciamento de Serviços 3 3 Gerenciamento de Serviços

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO 10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO UMA DAS GRANDES FUNÇÕES DA TECNOLOGIA É A DE FACILITAR A VIDA DO HOMEM, SEJA NA VIDA PESSOAL OU CORPORATIVA. ATRAVÉS DELA, ELE CONSEGUE

Leia mais

Resumo da solução SAP SAP Technology SAP Afaria. Gestão da mobilidade empresarial como vantagem competitiva

Resumo da solução SAP SAP Technology SAP Afaria. Gestão da mobilidade empresarial como vantagem competitiva da solução SAP SAP Technology SAP Afaria Objetivos Gestão da mobilidade empresarial como vantagem competitiva Simplifique a gestão de dispositivos e aplicativos Simplifique a gestão de dispositivos e aplicativos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Mecanismos de Comunicação Protocolos de Aplicação Mecanismos de comunicação

Leia mais

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT 1. IDENTIFICAÇÃO Padrão Segmento Código P06.002 Revisão v. 2014 Plataformas Web 2. PUBLICAÇÃO Recursos Tecnológicos Versão Data para adoção Publicação v. 2014 23 de dezembro de 2014 PORTARIA N Nº 225 de

Leia mais

BlackBerry Mobile Voice System

BlackBerry Mobile Voice System BlackBerry Mobile Voice System Comunicações móveis unificadas O BlackBerry Mobile Voice System (BlackBerry MVS) leva os recursos do telefone do escritório aos smartphones BlackBerry. Você pode trabalhar

Leia mais

Web Services. Autor: Rômulo Rosa Furtado

Web Services. Autor: Rômulo Rosa Furtado Web Services Autor: Rômulo Rosa Furtado Sumário O que é um Web Service. Qual a finalidade de um Web Service. Como funciona o serviço. Motivação para o uso. Como construir um. Referências. Seção: O que

Leia mais

Qual servidor é o mais adequado para você?

Qual servidor é o mais adequado para você? Qual servidor é o mais adequado para você? Proteção de dados Tenho medo de perder dados se e o meu computador travar Preciso proteger dados confidenciais Preciso de acesso restrito a dados Acesso a dados

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

IV. Intercâmbio Eletrônico de Dados (EDI)

IV. Intercâmbio Eletrônico de Dados (EDI) IV. Intercâmbio Eletrônico de Dados (EDI) 1. Funcionamento do EDI 2. EDI tradicional X WEB EDI 3. EDI Tradicional 4. WEB EDI Intercâmbio Eletrônico de Dados (EDI) EDI: Electronic Data Interchange Troca

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling

DIMENSIONANDO PROJETOS DE WEB-ENABLING. Uma aplicação da Análise de Pontos de Função. Dimensionando projetos de Web- Enabling DIMENSIONANDO PROJETOS DE WEB-ENABLING Uma aplicação da Análise de Pontos de Função Dimensionando projetos de Web- Enabling Índice INTRODUÇÃO...3 FRONTEIRA DA APLICAÇÃO E TIPO DE CONTAGEM...3 ESCOPO DA

Leia mais

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR WEBSERVICES EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB WEBSERVICES Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é um WebService e sua utilidade Compreender a lógica de funcionamento de um WebService Capacitar

Leia mais

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado

5.1 Exemplos de uso Mediante a instanciação de componentes específicos, o OiL pode ser configurado 5 Avaliação Decidimos avaliar a arquitetura de componentes para o OiL proposta neste trabalho em duas dimensões diferentes. Na primeira, demonstramos a capacidade de configuração do middleware com alguns

Leia mais

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição?

4. Qual seria o impacto da escolha de uma chave que possua letras repetidas em uma cifra de transposição? Prova de 2011-02 1. Descreva duas maneiras de estabelecer uma conexão entre processos na camada de transporte sem o conhecimento da porta (TSAP) ao qual o servidor remoto esteja associado. 2. Estabelecer

Leia mais

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0

AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 AUTOR: DAVID DE MIRANDA RODRIGUES CONTATO: davidmr@ifce.edu.br CURSO FIC DE PROGRAMADOR WEB VERSÃO: 1.0 SUMÁRIO 1 Conceitos Básicos... 3 1.1 O que é Software?... 3 1.2 Situações Críticas no desenvolvimento

Leia mais

Parceiro Oficial de Soluções Zabbix no Brasil

Parceiro Oficial de Soluções Zabbix no Brasil Apresentação A Vantage TI conta uma estrutura completa para atender empresas de todos os segmentos e portes, nacionais e internacionais. Nossos profissionais dedicam-se ao desenvolvimento e criação de

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS Cluster, Grid e computação em nuvem Slide 8 Nielsen C. Damasceno Introdução Inicialmente, os ambientes distribuídos eram formados através de um cluster. Com o avanço das tecnologias

Leia mais

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA

Detecção e investigação de ameaças avançadas. INFRAESTRUTURA Detecção e investigação de ameaças avançadas. INFRAESTRUTURA DESTAQUES A infraestrutura do RSA Security Analytics Arquitetura modular para coleta distribuída Baseada em metadados para indexação, armazenamento

Leia mais

Solitaire Interglobal

Solitaire Interglobal Solitaire Interglobal POWERLINUX OU WINDOWS PARA IMPLANTAÇÃO SAP Escolher entre as plataformas concorrentes de sistema operacional Linux e Windows para SAP pode ser uma tarefa confusa para as organizações.

Leia mais

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento

O que é o Virto ERP? Onde sua empresa quer chegar? Apresentação. Modelo de funcionamento HOME O QUE É TOUR MÓDULOS POR QUE SOMOS DIFERENTES METODOLOGIA CLIENTES DÚVIDAS PREÇOS FALE CONOSCO Suporte Sou Cliente Onde sua empresa quer chegar? Sistemas de gestão precisam ajudar sua empresa a atingir

Leia mais

[ Empowering Business, Architecting IT. ]

[ Empowering Business, Architecting IT. ] SOA coloca TI da Rede Ipiranga em linha com os negócios Setembro/2012 Sumário Matéria publicada na Information Week... 4 Artigo Case Ipiranga... 7 SOA coloca TI da Rede Ipiranga em linha com os negócios

Leia mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

Leia mais

Outlook XML Reader Versão 8.0.0. Manual de Instalação e Demonstração UNE Tecnologia

Outlook XML Reader Versão 8.0.0. Manual de Instalação e Demonstração UNE Tecnologia Outlook XML Reader Versão 8.0.0 Manual de Instalação e Demonstração UNE Tecnologia Add-in para o Outlook 2003, 2007 e 2010 responsável pela validação e armazenamento de notas fiscais eletrônicas. Atenção,

Leia mais

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento.

acoplamento Exprime o grau de conexão entre os módulos; os módulos de um software devemapresentar um baixo coeficiente de acoplamento. SOA Arquitetura Orientada a Serviços Conceitos e Aplicações Prof. MSc. Edilberto Silva edilms@yahoo.com/ http://edilms.eti.br Gestão de TI Conceitode SOA SOA - Service OrientedArchitecture (Arquitetura

Leia mais

PARANÁ GOVERNO DO ESTADO

PARANÁ GOVERNO DO ESTADO A COMUNICAÇÃO NA INTERNET PROTOCOLO TCP/IP Para tentar facilitar o entendimento de como se dá a comunicação na Internet, vamos começar contando uma história para fazer uma analogia. Era uma vez, um estrangeiro

Leia mais

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO www.origy.com.br UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO CARACTERÍSTICAS: E-MAIL IMAP * Acesso simultâneo e centralizado, via aplicativo, webmail e celular/smartphone * Alta capacidade de armazenamento

Leia mais

Firewall. Alunos: Hélio Cândido Andersson Sales

Firewall. Alunos: Hélio Cândido Andersson Sales Firewall Alunos: Hélio Cândido Andersson Sales O que é Firewall? Firewall pode ser definido como uma barreira de proteção, que controla o tráfego de dados entre seu computador e a Internet (ou entre a

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

FIREWALL. Prof. Fabio de Jesus Souza. fabiojsouza@gmail.com. Professor Fabio Souza

FIREWALL. Prof. Fabio de Jesus Souza. fabiojsouza@gmail.com. Professor Fabio Souza FIREWALL Prof. Fabio de Jesus Souza fabiojsouza@gmail.com Professor Fabio Souza O que são Firewalls? Os firewalls são sistemas de segurança que podem ser baseados em: um único elemento de hardware; um

Leia mais

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13

FileMaker Pro 13. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 FileMaker Pro 13 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 13 2007-2013 FileMaker Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM

CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM CONCEITOS E APLICAÇÕES DA COMPUTAÇÃO EM NUVEM Rogério Schueroff Vandresen¹, Willian Barbosa Magalhães¹ ¹Universidade Paranaense(UNIPAR) Paranavaí-PR-Brasil rogeriovandresen@gmail.com, wmagalhaes@unipar.br

Leia mais

Introdução a Web Services

Introdução a Web Services Introdução a Web Services Mário Meireles Teixeira DEINF/UFMA O que é um Web Service? Web Service / Serviço Web É uma aplicação, identificada por um URI, cujas interfaces podem ser definidas, descritas

Leia mais

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web; CONCEITOS INICIAIS Agenda A diferença entre páginas Web, Home Page e apresentação Web; O que é necessário para se criar páginas para a Web; Navegadores; O que é site, Host, Provedor e Servidor Web; Protocolos.

Leia mais

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14

FileMaker Pro 14. Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 FileMaker Pro 14 Utilização de uma Conexão de Área de Trabalho Remota com o FileMaker Pro 14 2007-2015 FileMaker, Inc. Todos os direitos reservados. FileMaker Inc. 5201 Patrick Henry Drive Santa Clara,

Leia mais

Manual SAGe Versão 1.2 (a partir da versão 12.08.01)

Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Manual SAGe Versão 1.2 (a partir da versão 12.08.01) Submissão de Relatórios Científicos Sumário Introdução... 2 Elaboração do Relatório Científico... 3 Submissão do Relatório Científico... 14 Operação

Leia mais

Desenvolvendo para WEB

Desenvolvendo para WEB Nível - Básico Desenvolvendo para WEB Por: Evandro Silva Neste nosso primeiro artigo vamos revisar alguns conceitos que envolvem a programação de aplicativos WEB. A ideia aqui é explicarmos a arquitetura

Leia mais

Usando Service Design Thinking para criar SOA Corporativo

Usando Service Design Thinking para criar SOA Corporativo Usando Service Design Thinking para criar SOA Corporativo Hilton Menezes 2013 Introdução Uma área de Tecnologia da Informação - TI ágil pode contribuir significativamente para que o negócio possa fazer

Leia mais

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP

Anexo VI Edital nº 03361/2008. Projeto de Integração das informações de Identificação Civil. 1. Definições de interoperabilidade adotadas pela SENASP Anexo VI Edital nº 03361/2008 Projeto de Integração das informações de Identificação Civil 1. Definições de interoperabilidade adotadas pela SENASP A Senasp procura adotar os padrões de interoperabilidade

Leia mais

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza

Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões. Prof. MSc. Hugo Souza Programação Orientada a Objetos com PHP & MySQL Cookies e Sessões Prof. MSc. Hugo Souza Se você precisar manter informações sobre seus usuários enquanto eles navegam pelo seu site, ou até quando eles saem

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais