• Nenhum resultado encontrado

DEPARTAMENTO DE COMPUTAÇÃO CURSO DE PÓS-GRADUAÇÃO EM ENGENHARIA DE SOFTWARE COM UML LATO-SENSU CARLOS EDUARDO PASQUETO BORIN

N/A
N/A
Protected

Academic year: 2021

Share "DEPARTAMENTO DE COMPUTAÇÃO CURSO DE PÓS-GRADUAÇÃO EM ENGENHARIA DE SOFTWARE COM UML LATO-SENSU CARLOS EDUARDO PASQUETO BORIN"

Copied!
57
0
0

Texto

(1)

DEPARTAMENTO DE COMPUTAÇÃO

CURSO DE PÓS-GRADUAÇÃO EM ENGENHARIA DE SOFTWARE COM UML “LATO-SENSU”

CARLOS EDUARDO PASQUETO BORIN

APLICAÇÃO DA SERVICE ORIENTED ARCHITECTURE (SOA) UTILIZANDO O FRAMEWORK WINDOWS COMMUNICATION FOUNDATION (WCF)

(2)

CARLOS EDUARDO PASQUETO BORIN

APLICAÇÃO DA SERVICE ORIENTED ARCHITECTURE (SOA) UTILIZANDO O FRAMEWORK WINDOWS COMMUNICATION FOUNDATION (WCF)

Monografia apresentado à Banca Examinadora do Curso de Pós-Graduação em Engenharia de Software com UML do Centro Universitário Filadélfia de Londrina - UniFil como requisito parcial para obtenção do grau de Especialista em Engenharia de Software sob a orientação do Professor Msc. Sergio Akio Tanaka.

(3)

CARLOS EDUARDO PASQUETO BORIN

APLICAÇÃO DA SERVICE ORIENTED ARCHITECTURE (SOA) UTILIZANDO O FRAMEWORK WINDOWS COMMUNICATION FOUNDATION (WCF)

Monografia apresentado à Banca Examinadora do Curso de Pós-Graduação em Engenharia de Software do Centro Universitário Filadélfia de Londrina - UniFil em

cumprimento a requisito parcial para obtenção do título de Especialista em Engenharia de Software.

APROVADA PELA COMISSÃO EXAMINADORA

EM LONDRINA, 18 DE MAIO DE 2012.

Prof. MSc. Sergio Akio Tanaka (UniFil) - Orientador

(4)

Londrina, 18 de Maio de 2012.

Ao Aluno: Carlos Eduardo Pasqueto Borin.

Prezado(a) Senhor(a):

Tem a presente a finalidade de NOTIFICAR-LHE nos termos do art. 867 e seguintes do Código de Processo Civil com vistas a prevenir responsabilidades, provendo a conservação e ressalva de direitos. A “UniFil” em razão da apresentação recorrente de trabalhos onde se tem efetuado a cópia de trechos e até capítulos ou trabalhos inteiros, vem notificá-lo que tal pratica é vedada pela Lei de Direitos Autorais nº 9.610/98 em seus artigos 1º, 5º incisos VI e X, 7º, 22º, 24º inciso IV, 29º e 41º, cumulados com a nova redação dos artigos 184 e 186 do Código penal dados pela lei 10.695/2003, que prevê não apenas a proibição de cópia total ou parcial sem atribuição da devida autoria como inclusive pena de detenção de até quatro anos mais multa para quem assim proceder. Assim sendo, considera-se o aluno: Carlos Eduardo Pasqueto Borin, da Pós-Graduação em Engenharia de Software com UML, Linha de Formação: Engenharia de Software, ciente de previsão legal que veda tal prática e se mesmo assim optar por faze-lo deverá arcar sozinho com o ônus de tal ato, quer seja ele penal, cível ou administrativo, não podendo a Instituição de Ensino ser responsabilizada por opção do aluno sem seu consentimento ou anuência. .

Na esfera administrativa desde já ficam, também devidamente notificados, que os trabalhos copiados na íntegra ou que apresentem cópia parcial, serão sumariamente reprovados; bem como estarão sujeitos a outras medidas cabíveis. Conforme Regulamento da instituição no qual relata o seguinte: “Na constatação de procedimentos ilícitos para a elaboração dos trabalhos de estágio, caracterizando cópias parciais ou integrais (plágio), será atribuído a média 0,0 (zero) ao aluno no bimestre em curso, não cabendo recurso”.

Sem mais para o momento.

Atenciosamente.

(5)

AGRADECIMENTOS

Primeiramente a Deus, que me deu sabedoria para concluir mais esta etapa da minha vida.

A minha esposa Fabiane Yuri Yamacita e ao meu filho Felipe, por todo apoio, companheirismo e paciência nesta jornada.

Ao meu orientador, Prof. Msc. Sergio Tanaka, que com toda paciência e sabedoria esteve sempre orientando, corrigindo e auxiliando em cada etapa deste trabalho, além de compartilhar todo seu conhecimento e experiências durante o curso.

(6)

“Numa escala mais humana, os produtos de software intensivos ajudaram a

(7)

BORIN, Carlos Eduardo Pasqueto. Aplicação da Service Oriented Architecture (SOA) utilizando o Framework Windows Comunication Foundation (WCF). Londrina, 2012, 57f. Monografia do Curso de Pós-Graduação em Engenharia de Software com UML. Centro Universitário Filadélfia de Londrina - UniFil, Londrina, 2012.

RESUMO

Este trabalho apresenta a aplicação da engenharia de software em sistemas orientados a serviços utilizando a arquitetura de software orientada a serviços (SOA). Um estudo de caso intitulado WcfServicoReserva foi implementado para demonstrar a aplicabilidade da arquitetura SOA na plataforma Microsoft. O projeto foi modelado em Unified Modeling Language (UML) utilizando a ferramenta IBM Rational Rose, para o desenvolvimento desse software foi utilizado o framework

Windows Communication Foundation (WCF) que faz parte do framework .NET 4.0, e

a IDE de implementação foi o Visual Studio 2010 utilizando a linguagem orienta a objetos C#. O principal objetivo deste trabalho foi demonstrar os benefícios que essa arquitetura oferece pensando no software como negócio, dividindo as responsabilidades lógicas em pequenas partes e disponibilizando através de serviços, que garantam a interoperabilidade de tecnologias e a reutilização do negócio da empresa.

(8)

BORIN, Carlos Eduardo Pasqueto. Aplicação da Service Oriented Architecture (SOA) utilizando o Framework Windows Comunication Foundation (WCF). Londrina, 2012, 57f. Monografia do Curso de Pós-Graduação em Engenharia de Software com UML. Centro Universitário Filadélfia de Londrina - UniFil, Londrina, 2012.

ABSTRACT

This paper presents the application of software engineering in service-oriented systems using software-oriented architecture (SOA). A case study titled WcfServicoReserva was implemented to demonstrate the applicability of SOA on the Microsoft platform. The project was modeled in UML using Rational Rose tool, on development it was used framework Windows Communication Foundation (WCF), which is a part of the framework. NET 4.0, the IDE used to implement the software was the Visual Studio 2010 and the development language used was C # objects. The aim of this study was to demonstrate the benefits that this architecture offers, thinking about software as a business, dividing the logical responsibilities into small pieces, providing services that ensure interoperability and reuse of technologies from company's business.

(9)

LISTA DE FIGURAS

Figura 1: Classificação Diagramas UML ... 19

Figura 2: Uma aplicação composta de 4 serviços. As setas indicam a sequência da troca de mensagens ... 21

Figura 3: Uma aplicação orientada a serviço. ... 25

Figura 4: Comunicação WCF. ... 26

Figura 5: Transporte e codificação para bindings. ... 28

Figura 6: Endpoint. ... 28

Figura 7: Escolhendo um binding. ... 29

Figura 8: Diagrama de Caso de Uso. ... 31

Figura 9: Diagrama de Classes. ... 32

Figura 10: Diagrama de Sequência. ... 33

Figura 11: Criar um projeto WCF no Visual Studio 2010. ... 34

Figura 12: Configurar uma classe para DataContract. ... 35

Figura 13: Contrato do serviço através de Interface. ... 36

Figura 14: Codificação do serviço implementando a interface do serviço. ... 37

Figura 15: Arquivo App.config. ... 38

Figura 16: Microsoft WCF Service Host. ... 39

Figura 17: Arquivo WSDL. ... 40

Figura 18: Aplicativo de teste embutido no Visual Studio para teste do serviço... 41

Figura 19: Chamada ao método ValidarUsuario(). ... 42

Figura 20: Visualização do envio e recebimento do método ValidarUsuario() em formato SOAP...43

Figura 21: Criação do projeto do tipo ConsoleApplication para consumir o serviço WcfServicoReserva...45

(10)

Figura 23: Informando o endereço do arquivo WSDL do serviço

WcfServicoReserva...47

Figura 24: Referência do serviço WcfServicoReserva adicionada ao projeto...48

Figura 25: Chamada ao método ListarSalas() do serviço WcfServicoReserva...49

Figura 26: Resultado do método ListarSalas() do serviço WcfServicoReserva...49

Figura 27: Criação projeto do tipo Aplicativo Java para consumir o serviço WcfServicoReserva...50

Figura 28: Criar um Cliente para serviço web para consumir o serviço WcfServicoReserva...51

Figura 29: Informando o endereço do arquivo WSDL do serviço WcfServicoReserva. ...52

Figura 30: Referência do serviço WcfServicoReserva adicionada ao projeto...53

Figura 31: Chamada ao método ListarSalas() do serviço WcfServicoReserva em Java...53

(11)

LISTA DE TABELAS

(12)

LISTA DE ABREVIATURAS E SIGLAS

ASMX ASP.NET Webservices Source

CLR Common Language Runtime

COM Component Object Model

DCOM Distributed Component Object Model

IBM International Business Machines

IDE Integrated Development Environment

MSMQ Message Queuing

OMG Object Management Group

SOA Service-oriented Architecture

SOAP Simple Object Access Protocol

UML Unified Modeling Language

XML Extensible Markup Language

WCF Windows Communication Foundation

(13)

SUMÁRIO

1 INTRODUÇÃO ... 14

2 REVISÃO DE LITERATURA ... 17

2.1 UNIFIED MODELING LANGUAGE (UML) ... 17

2.2 SERVICE-ORIENTED ARCHITECTURE ... 19

2.3 WINDOWS COMMUNICATION FOUNDATION... 24

2.4 CONSIDERAÇÕES SOBRE O SOFTWARE ... 30

3 ESTUDO DE CASO ... 31 3.1 DATACONTRACS ... 35 3.2 CONTRATO DO SERVIÇO ... 35 3.3 IMPLEMENTAR O CONTRATO... 36 3.4 CONFIGURAR ENDPOINTS ... 37 3.5 HOSPEDAR O SERVIÇO ... 38

4 PERSPECTIVAS PARA TRABALHOS FUTUROS ... 44

5 CONCLUSÃO...58

(14)

1 INTRODUÇÃO

Uma equipe de Tecnologia da Informação (TI) consiste de muitas pessoas e muitos softwares, cada um no qual contribuindo de forma uniforme para ajudar a alcançar os objetivos do negócio da empresa. Cada um possui requisitos específicos para gerenciamento, tal como sistemas, rede de comunicações, aplicações, informações, serviços, processos, banco de dados, repositórios, integrações, warehouses, migrações, etc.

Atualmente, existem enormes mudanças e desafios encontrados pela TI através das mudanças de requisitos no mundo real. Depois de muitos anos se deparando com problemas, incompatibilidade entre sistemas e até mesmo a recodificação dos mesmos, tornou-se necessário a busca de um padrão que atenda a necessidade atuais e que no futuro seja compatível com as novas tecnologias que surgem no mercado no mundo de tecnologia.

Através da Arquitetura de Software Orientada a Serviços (SOA) que as equipes de TI encontraram essa solução, que é completamente baseado em padrões abertos de comunicação disponíveis como serviços pela rede. Serviços escondem a complexidade dos sistemas heterogêneos que existem em ambientes de TI, mas para o mundo orientado a serviço tornar-se realidade, as companhias devem mover-se para uma nova arquitetura denominada SOA, que é uma arquitetura que representa as funcionalidades de software através de serviços pela rede.

Uma verdadeira arquitetura de SOA deve ser uma aplicação na qual todas as funcionalidades são definidas como serviços independentes e invocados através de interface, no qual pode ser chamada em sequencias definidas do processo de negócio.

(15)

Essa pesquisa traz como tema a aplicação de SOA utilizando a tecnologia da Microsoft, que no decorrer dos anos e do avanço da plataforma de desenvolvimento, foi disponibilizando novas tecnologias para a implementação de aplicações distribuídas, todas com o mesmo objetivo: comunicação entre objetos em sistemas distribuídos através da rede.

Hoje existe uma série de tecnologias, tais como: COM/DCOM/COM+/ES, .NET Remoting, MSQM, ASMX desenvolvidas pela Microsoft, cada uma com suas características específicas.

O grande problema é que cada framework é disponível com um modelo de programação, para cada framework faz-se necessário o esforço do aprendizado específico, e muitas vezes é necessário utilizar várias dessas tecnologias no mesmo software, aumentando assim sua complexidade, além de que todos são restritos para plataforma Windows. O objetivo desse projeto foi demonstrar como está mais simples atualmente, desenvolver aplicações orientadas a serviços através do

framework WCF.

A justificativa para a utilização de SOA é que o mesmo está mudando o paradigma de desenvolvimento de software, pois oferece a divisão de responsabilidades e a reutilização da regra de negócio através dos serviços criados, essas funcionalidades já existentes ficam disponíveis para qualquer sistema que de alguma forma necessita dessa informação.

O WCF é a tecnologia ideal para desenvolvimento de serviços para plataforma Windows. É a unificação das tecnologias distribuídas da Microsoft, onde existe apenas um modelo de programação, mas várias formas de ligar os pontos, ou seja, uma comunicação independente da linguagem, garantindo a interoperabilidade entre as tecnologias.

O principal objetivo deste trabalho foi demonstrar como a Microsoft oferece aos seus desenvolvedores a possibilidade de desenvolver aplicações na arquitetura SOA através da tecnologia WCF. Alguns objetivos específicos foram elencados tais como:

(16)

b) demonstrar os padrões abertos para comunicação de sistemas independente da tecnologia utilizada;

c) aplicar o SOA com o WCF;

d) implementar um estudo de caso.

A metodologia escolhida para esta monografia é a pesquisa descritiva que tem como finalidade descrever e interpretar os fenômenos estudados, observando-os em sua natureza e em seus processobservando-os. Os dadobservando-os obtidobservando-os devem ser analisadobservando-os e interpretados e podem ser qualitativos ou quantitativos. Na maioria dos casos, essas pesquisas envolvem levantamento bibliográfico, entrevistas com pessoas que tiveram experiências práticas com o problema pesquisado e análise de exemplos que darão suporte para a compreensão do tema (GIL, 1995).

O estudo de caso foi abordado neste trabalho e pode ser caracterizado por ser um estudo intenso e profundo a respeito de um assunto em relação a uma unidade social. O foco de estudo pode ser um indivíduo, um grupo social específico, uma comunidade ou uma organização (LEITE, 2008).

A pesquisa será fundamentada em referência bibliográfica de obras existentes, como livros, revistas e sites (GIL, 1995).

(17)

2 REVISÃO DE LITERATURA

Este capítulo apresenta os principais conceitos utilizados para a compreensão deste trabalho.

2.1 UNIFIED MODELING LANGUAGE (UML)

Segundo Fowler (2005), a UML é uma família de notações gráficas, apoiada por um metamodelo único que ajuda na descrição e no projeto de sistemas de software, particularmente daqueles construídos utilizando o estilo orientado a objetos. O fator fundamental para a criação de uma linguagem de modelagem de software é que as linguagens de programação não estão em um nível de abstração alto para facilitar a análise sobre o projeto. A Object Management Group (OMG) que é um consórcio aberto de empresas é quem controla o padrão da UML, onde estabelece padrões que suportam interoperabilidade, especificamente para sistemas orientado a objetos.

(18)

Tabela 1: Tipos de diagramas oficiais da UML (Fonte: Fowler, 2005, p. 33.)

(19)

Figura 1: Classificação Diagramas UML.

Fonte: (Fowler, 2005, p 34.)

2.2 SERVICE-ORIENTED ARCHITECTURE

(20)

O SOA representa um modelo arquitetural que tem como objetivo aumentar a agilidade e custo-efetividade de uma empresa e reduzir a sobrecarga existente na equipe de TI. E é através da criação de serviços, com a divisão da responsabilidade desacoplando a regra de negócio da empresa, que nos proporciona uma maior flexibilidade do negócio para eventuais mudanças e evolução nos requisitos.

Segundo Erl (2008), afirma que para se aplicar de uma forma inteligente e projetar serviços que serão realmente reutilizados, é necessário que o paradigma de desenvolvimento atual sofra profundas modificações no processo da empresa, envolvendo governança e tecnologia, para que seja capaz de definir de forma correta o tamanho ideal de cada serviço, essas decisões são baseadas nos princípios de design de serviços e devem obedecer as características fundamentais do serviço, que obrigatoriamente deve ser reutilizável, compartilhar um contrato formal, ter baixo acoplamento, ser autônomo e ser capaz de ser descoberto.

Com uma aplicação de SOA inteligente, Erl 2009, afirma que acabarão as funcionalidades redundantes e a dificuldade de evolução dos sistemas de TI, possibilitando maior agilidade nos negócios. A atual complexidade de implantação de uma solução SOA é única e exclusiva de cada empresa, entretanto é caracterizado por uma introdução de novas tecnologias e plataformas que especificamente possibilita a criação, execução e evolução de sistemas conectados.

(21)

Figura 2: Uma aplicação composta de 4 serviços. As setas indicam a sequência da troca de mensagens.

Fonte: ERL et al (2009). p. 30.

Segundo John Sharp (2010), inicialmente a Microsoft projetou o Component

Object Model (COM) para possibilitar a comunicação entre componentes e

aplicações executando no mesmo computador. Depois ela desenvolveu o

Distributed Component Object Model (DCOM), uma extensão do COM, na qual

permite aplicações acessar componentes que estão em outros computadores através da rede e posteriormente foi criado o COM+, que incorporou características tal como integração com Microsoft Transaction Server que possibilita agrupar operações em componentes juntos em transações, e os resultados dessas operações poderiam ser feitos permanentemente (commit) se tudo ocorresse com sucesso ou automaticamente cancelados (rollback) caso algum erro ocorresse.

(22)

que pode demorar em processar e responder a requisição, o componente continua processando e avisa a aplicação quando a operação foi completada).

A evolução do COM+ veio através do .NET framework, que herdou suas funcionalidades e foi renomeado para Enterprise Services. O .NET framework também forneceu outra grande tecnologia para comunicação através da rede, o .NET Remoting, que fornece intercomunicação em ambientes protegidos que exigem alta performance e que utilizam a tecnologia .NET através do protocolo TCP/IP, permitindo uma aplicação cliente acessar um objeto remoto do servidor como se ele estivesse sendo executado localmente, dentro do aplicativo cliente.

Tecnologias como COM, DCOM, COM+, Enterprise Services e .NET

framework Remoting tem sucesso em ambientes internos ou seja, interligados na

mesma rede e na plataforma Windows. Enquanto a Microsoft estava desenvolvendo o COM e o DCOM, a World Wilde Web apareceu. O mundo real é baseado na internet, que fornece uma infraestrutura para desenvolvedores construir software e componentes para comunicação com outros aplicativos em qualquer lugar do mundo, independente de plataforma.

Com a evolução da internet surgiu o web service, que é uma aplicação ou componente que executa em um servidor web ao invés do computador do usuário, onde executa operações através de requisições e envia a resposta de volta para o computador do usuário. O web service pode também invocar operações para outros

web services, hospedados em outro servidor na internet, web services não são

dependentes de linguagem e plataforma, isso se deve aos padrões de comunicação abertos criados para internet, com o formato de hora, protocolo e tratamento de segurança.

John Sharp (2010), afirma que para que essa comunicação independente de plataforma seja possível, aplicações cliente e web services precisam utilizar um protocolo de comunicação comum para ambos para o envio e recebimento de mensagens. Um aplicativo cliente precisa saber quais mensagens pode enviar e como será a resposta recebida do web service.

Um padrão aberto de comunicação extremamente utilizado é o Simple

Object Access Protocol (SOAP), que é um protocolo baseado em (Extensible

(23)

internet utilizando o protocolo (Hypertext Transfer Protocol) HTTP, e em julho de 2003, com sua versão 1.2 tornou-se uma recomendação W3C.

John Sharp (2010) afirma que, por SOAP ser um padrão, fornece muitos benefícios tais como:

 protocolo de comunicação para comunicação entre aplicações pela internet;

 possui um formato para envio de mensagens;

 é independente de plataforma e linguagem;

 totalmente baseado em XML;

 simples e extensível;

permite comunicação entre firewalls.

Por todas essas características, SOAP transformou-se no padrão mais utilizado em serviços, e foi utilizado no estudo de caso desse trabalho.

Segundo Erl (2009), foi através dos princípios dos web services que os desenvolvedores perceberam que os web services poderiam ser aplicados de uma forma mais generalizada, alcançando o conceito de software como serviço para a implementação de uma arquitetura orientada a serviço SOA.

Para Erl (2008), o termo chave de SOA é a capacidade de reutilização de softwares proprietários existentes e expor a funcionalidade desses softwares através de serviços.

Os conceitos chaves para uma implementação de sucesso de SOA são:

 fornecer uma interface reutilizável e extensível baseado em padrões abertos para a maximização de interoperabilidade;

 fornecer um ambiente de hospedagem escalonável no qual um serviço possa responder rapidamente a requisições do usuário, mesmo sobre uma carga extrema.

Para alcançar esses objetivos, a Microsoft criou o Windows Communication

(24)

2.3 Windows Communication Foundation

O grande problema das tecnologias anteriores citadas nesse trabalho desenvolvidas pela Microsoft, é que cada framework é disponível com um modelo de programação, para cada framework é necessário o esforço do aprendizado específico e muitas vezes é necessário utilizar várias dessas tecnologias no mesmo software, aumentando assim sua complexidade, além de todos esses frameworks serem restritos para Windows.

Para solucionar o problema de muito esforço gasto no aprendizado de várias tecnologias, a Microsoft unificou todas essas tecnologias em uma só, criando o Windows Communication Foundation, onde tem como o grande slogan “Apenas uma forma de escrever o código, mas várias maneiras de conectar os pontos”, ou seja, codifique uma vez, e se comunique em vários padrões de comunicação.

Lowi (2010) define WCF como um kit de desenvolvimento de software para desenvolvimento e implantação de serviços para hospedagem na plataforma Windows, o WCF oferece um ambiente de execução para seus serviços e toda a vantagem da Common Language Runtime (CLR) para troca de informações entre serviços para plataforma Windows.

O WCF fornece um completo ambiente de desenvolvimento para aplicações baseadas na arquitetura SOA, aumentando a produtividade, principalmente porque é necessário somente um esforço de aprendizagem.

O WCF implementa um conjunto de padrões definidos pela indústrias para definição de serviços, como tipo de conversões e serialização e gerenciamento de protocolos, alcançando a interoperabilidade entre serviços.

(25)

atual faz parte do .NET framework 4.0, incluindo mudança de configuração, algumas extensões e novas características de revelação de serviços e rotas.

Lowi (2010) define serviço como uma funcionalidade exposta para o mundo e que uma aplicação orientada a serviço agrega dentro de um serviço uma única lógica da aplicação conforme a Figura 3.

Figura 3: Uma aplicação orientada a serviço.

Fonte: Lowi, 2010, p. 2.

Os serviços podem ser hospedados localmente ou remotamente, desenvolvidos por mais de uma equipe e independente de tecnologia. O serviço encapsula linguagem, tecnologia, plataforma, versão e frameworks, tendo que somente obedecer aos padrões de comunicação permitidos.

Para consumir um serviço, o aplicativo cliente pode ser literalmente qualquer tipo de aplicação, por exemplo, um Windows Forms, Windows

Presentation Foundation, Silverlight, uma página ASP.NET, ou qualquer outro

cliente. A comunicação entre clientes e serviços é feita por envio e recebimento de mensagens. Com o WCF, mensagens são na maioria das vezes SOAP.

(26)

cliente WCF podem se comunicar com serviços que não sejam codificados em WCF, e serviços WCF podem interagir com aplicativos clientes não WCF. Caso ambos os aplicativos cliente e servidor forem desenvolvidos em WCF, é possível tirar vantagem específicas da plataforma .NET, obtendo maior performance.

Segundo Lowi (2010), em WCF, o cliente nunca se comunica diretamente com o serviço, é criado um proxy que encaminha as requisições para o serviço e expõe as mesmas operações do serviço além de alguns métodos de gerenciamento do proxy.

As IDEs como Visual Studio e NetBeans geram o proxy automaticamente, devido ao fato de que os web services são capazes de gerar o documento Web

Services Description Language (WSDL) que segundo Sharp (2010) é um arquivo

puro XML que descreve as mensagens que o web service pode receber e a estrutura das respostas que o web service envia para a aplicação cliente.

O aplicativo cliente pode consumir um serviço WCF em qualquer ambiente que esteja sendo executado, localmente, entre domínios ou remotamente conforme Figura 4.

Figura 4: Comunicação WCF.

Fonte: Lowi, 2010, p. 4.

(27)

O endereço oferece duas características importantes: a localização do serviço e o protocolo comunicação e tem o seguinte formato: [endereço base]/[URI opcional], por exemplo: http://localhost:8001; http://localhost:8001/MeuServico.

O contrato descreve o que um serviço é capaz de fazer. O WCF possui quatro tipos de contratos:

service contracts: define quais operações o cliente pode efetuar no serviço;

data contracts: define os tipos de dados para a comunicação com o serviço;

fault contracts: define quais erros são gerados pelo serviço e como é disparado esse erro para o cliente;

message contracts: permite interação com serviço diretamente com mensagens, podendo atribuir informações no cabeçalho SOAP.

O hosting é onde o serviço será hospedado, podendo ser no Internet

Information Services (IIS), no Windows Activation Service (WAS) para Windows Vista ou Windows Server 2008, ou no Windows Server AppFabric para Windows 7,

ou até mesmo em qualquer aplicação .NET.

(28)

Figura 5: Transporte e codificação para bindings.

Fonte: Lowi, 2010, p. 26.

A associação de um address que define onde o serviço está hospedado, um

binding que define qual meio de comunicação, e um contrato que define o que o

serviço faz é chamado de endpoint. O endpoint é a fusão entre address, contract e

binding, como mostrado na Figura 6.

Figura 6: Endpoint.

Fonte: Lowi, p. 29.

Lowy (2010) descreve que ao projetar um serviço, é necessário definir quais tipos de endpoints especificamente o serviço será capaz de se comunicar, a primeira questão é se o serviço WCF terá que se comunicar com clientes não WCF, se sim, o protocolo de comunicação será o padrão para web services, o binding é do tipo BasicHttpBinding, que expõe o serviço WCF para o mundo web como um web

service.

(29)

binding é do tipo NetTcpBinding que é comunicação sobre TCP, e se o cliente

estiver na mesma máquina que o host do serviço, o binding pode ser do tipo

NetNamedPipeBinding, que usa o protocolo IPC para obter maior performance. A

Figura 7 apresenta um diagrama desse cenário.

Figura 7: Escolhendo um binding.

(30)

2.4 CONSIDERAÇÕES FINAIS

A UML cada vez mais está presente em empresas de desenvolvimento de software, sendo utilizada por engenheiros, arquitetos e profissionais de software, está na sua versão 2.0 e em breve será lançada a versão 3.0. Com a padronização do vasto número de diagramas, é possível abstrair totalmente o projeto para os envolvidos, desde o cliente até o desenvolvedor.

As empresas brasileiras de TI estão cada vez mais cientes de que SOA não é somente uma aposta, e sim uma realidade e até mesmo uma necessidade, pois os sistemas hoje estão exigindo cada vez mais integração e uma maior flexibilidade em evolução e reutilização do software, e a proposta SOA é exatamente essa, evitar a redundância e aumentar o ativo da empresa, pois obedecendo a essa arquitetura e os padrões de comunicação, fica livre para empresa evoluir na tecnologia de programação. Seu legado continuará funcionando, pois estão disponíveis através de serviços e obedecendo aos padrões abertos de comunicação.

(31)

3 ESTUDO DE CASO

O estudo de caso criado para essa monografia é um sistema de reserva de salas para reunião e treinamento denominado WcfServicoReserva. Esse sistema foi implementado em forma de serviço para utilização de SOA.

Cada colaborador que possui um login e senha pode solicitar a reserva de uma sala conforme o seu nível, podendo ser diretoria, comercial ou colaborador interno. Ao efetuar uma reserva o colaborador pode solicitar equipamentos, como retroprojetor, televisão, notebook e dvd.

Para a modelagem do estudo de caso WcfServicoReserva foi utilizado a ferramenta IBM Rational Rose, o primeiro passo foi a criação dos diagramas de caso de uso, diagrama de classe e diagrama de sequencia, a Figura 8 ilustra o diagrama de caso de uso.

(32)

O próximo é o diagrama de classes, que representa as classes do sistema conforme Figura 9.

(33)

O próximo diagrama é o diagrama de sequência, que ilustra os passos do colaborador para efetuar a reserva de uma sala conforme a Figura 10.

(34)

Após a modelagem do sistema iniciou a implementação do serviço, que foi desenvolvido utilizando a IDE Microsoft Visual Studio 2010.

O primeiro passo foi criar um projeto WCF conforme Figura 11.

Figura 11: Criar um projeto WCF no Visual Studio 2010.

Um programa WCF consiste no seguintes passos:

definir DataContracts;

 definir o contrato do serviço;

 implementar o contrato;

configurar endpoints;

(35)

3.1 DATACONTRACS

É a estrutura das mensagens que será transmitida pelo serviço, é configurado no endpoint e pode ser tipada ou não tipada. Quando a mensagem é não tipada é enviada a estrutura genérica do objeto que é compatível com qualquer linguagem de programação, por exemplo int e string. Quando a mensagem é tipada é enviado o próprio objeto .NET, o objeto é serializado e enviado a aplicação cliente, esse tipo de configuração é somente para clientes desenvolvidos em WCF, que ao receber a mensagem é feito a deserialização do objeto e é reconhecido o tipo e convertido automaticamente. Nesse estudo de caso foi configurado os dois tipos de envio de mensagem, tipado e não tipado.

A Figura 12 ilustra a classe Colaborador como DataContract.

Figura 12: Configurar uma classe para DataContract.

3.2 CONTRATO DO SERVIÇO

(36)

ao WCF que esse método será disponibilizado para o cliente fazer chamadas, e a interface recebe o atributo ServiceContract, que diz ao WCF que a classe que implementar essa interface será exposta como um serviço. A Figura 13 mostra a interface definida para o serviço desse estudo de caso, contém cinco operações.

Figura 13: Contrato do serviço através de Interface.

3.3 IMPLEMENTAR O CONTRATO

(37)

Figura 14: Codificação do serviço implementando a interface do serviço.

3.4 CONFIGURAR ENDPOINTS

Endpoint define as opções de comunicação do serviço, nesse estudo de

caso será de duas formas, basicHttpBinding que é a estrutura genérica para interoperabilidade de tecnologias e netTcpBinding, binding específico para aplicações .NET para troca de mensagens tipadas.

A configuração do endpoint pode ser feita de duas formas, via programação ou no arquivo de configuração App.config, para esse estudo de caso foi utilizado a configuração do endpoint via arquivo de configuração, que é simples e tem como principal vantagem, caso necessite fazer alguma alteração no endpoint, não é necessário recompilar o serviço.

Cada endpoint é composto de três partes, address, binding e contract.

Address é o endereço onde o serviço está hospedado, o binding é o tipo de

(38)

A Figura 15 mostra o arquivo de configuração do estudo de caso.

Figura 15: Arquivo App.config.

A primeira coisa a fazer é adicionar o serviço no arquivo de configuração para que o WCF reconheça a classe que implementa o serviço, isso é feito através da tag <service name="Namespace.NomeServico">. Após adicionar o caminho do serviço é necessário informar o endereço base através da tag <baseAddress> que é o endereço primário do serviço, e por último é configurado os endpoints do serviço. Essas são as configurações necessárias para que o serviço possa ser consumido.

3.5 HOSPEDAR O SERVIÇO

É possível hospedar um serviço WCF em qualquer aplicação .NET ou no

Internet Information Services, servidor web da Microsft. Para esse estudo de caso,

(39)

Figura 16: Microsoft WCF Service Host.

A partir desse momento o serviço já está em funcionamento e pode ser consumido, para visualizar as funcionalidades do serviço basta acessar o arquivo WSDL que é gerado automaticamente pelo WCF, o arquivo WSDL especifica como acessar o serviço e as operações disponíveis.

Para visualizar o arquivo WSDL gerado pelo WCF basta abrir em um browser e digitar o endereço do serviço que nesse estudo de caso é http://localhost/WcfServicoReserva?wsdl.

(40)

Figura 17: Arquivo WSDL.

As IDEs de desenvolvimento como Visual Studio e NetBeans conseguem importar o arquivo WSDL para dentro da aplicação e automaticamente geram um proxy local para disponibilizar as chamadas do serviço através de métodos dentro da própria linguagem, a ferramenta faz uma leitura completa do arquivo WSDL e gera uma biblioteca do serviço com todos os métodos disponíveis, a única informação necessária é saber o endereço host do serviço.

(41)

Figura 18: Aplicativo de teste embutido no Visual Studio para teste do serviço.

Para cada binding configurado é disponibilizado a chamada de todos os métodos do serviço conforme a Figura 18, onde mostra no quadro esquerdo as duas interfaces de comunicação, a IReserva(BasicHttpBinding_IReserva) e a IReserva(NetTcpBinding_IReserva), que permite testar o serviço através das duas interfaces geradas conforme os bindings configurados.

(42)

Figura 19: Chamada ao método ValidarUsuario().

(43)

Figura 20: Visualização do envio e recebimento do método ValidarUsuario() em formato SOAP.

(44)

4 PERSPECTIVAS PARA TRABALHOS FUTUROS

O WCF é um framework para criação de serviços para plataforma Windows que foi projetado para unificar e facilitar o desenvolvimento de sistemas distribuídos, esse estudo de caso apresentou como ficou simples desenvolver um serviço em WCF aderindo à arquitetura SOA.

Agora com o serviço hospedado, é necessário somente desenvolver um aplicativo cliente para consumi-lo independente de linguagem e plataforma, pois como apresentado nesse estudo de caso, o serviço WcfServicoReserva permite conectar de duas formas, primeiro com os padrões pré-estabelecidos de interoperabilidade de comunicação pela internet através de SOAP genérico e com aplicativos clientes desenvolvidos em WCF, que utiliza SOAP binário aumentando a performance de troca de mensagens entre serviço e cliente .NET.

Apesar das duas formas de comunicação utilizadas nesse trabalho, o serviço foi desenvolvido utilizando somente um modelo de programação, sendo que a única coisa necessária é configurar os bindings através do arquivo App.config, lembrando que WCF permite uma série de configuração de bindings, conforme descrito no capítulo 2 desse trabalho.

A fim de demonstrar o resultado e a aplicabilidade de SOA, é demonstrado a seguir como consumir o serviço WcfServicoReserva em duas tecnologias distintas, primeiro em .NET e posteriormente através da linguagem de programação Java, sem necessidade nenhuma de alteração no serviço WcfServicoReserva comprovando a interoperabilidade entre tecnologias.

Para demonstração de como consumir um aplicativo WCF na plataforma .NET, foi criado um projeto do tipo ConsoleApplication conforme Figura 21. Lembrando que e possível consumir um serviço WCF através de qualquer tipo de aplicativo .NET tais como, um site ASP.NET, Windows Forms, Windows

(45)

Figura 21: Criação do projeto do tipo ConsoleApplication para consumir o serviço WcfServicoReserva.

Após criar o projeto, é necessário adicionar a referência do serviço WcfServicoReserva que será consumido, para isso clique com o botão direito nas referências do projeto e selecione a opção Add Service Reference, conforme a Figura 22.

Essa tela pede o endereço do arquivo WSDL do serviço para que seja gerado o proxy de comunicação com o serviço.

(46)

.

(47)
(48)

Após clicar em ok é gerado automaticamente o proxy baseado nos metadados do arquivo WSDL e adicionado a referência do serviço conforme Figura 24.

Figura 24: Referência do serviço WcfServicoReserva adicionada ao projeto.

(49)

Figura 25: Chamada ao método ListarSalas() do serviço WcfServicoReserva.

A Figura 26 mostra o resultado da chamada do método, onde imprime o nome das salas retornadas pelo serviço.

(50)

Foi demonstrado como é simples a comunicação com o serviço WCF através de uma aplicação .NET, agora será demonstrado na linguagem Java a chamada do mesmo método do serviço WcfServicoSala para a demonstração da utilização de padrões abertos de comunicação pela internet que garantem a interoperabilidade de tecnologias.

Para a criação do aplicativo cliente em Java foi utilizado a IDE NetBeans, os passos a seguir são bem parecidos com o exemplo anterior.

Foi criado um projeto do tipo Aplicativo Java para a demonstração da comunicação com o serviço conforme Figura 27.

(51)

Após criar o projeto, é necessário adicionar a referência do serviço WcfServicoReserva que será consumido, para isso clique com o botão direito no projeto, escolha a opção novo Cliente para serviço Web conforme Figura 28.

(52)

Essa tela pede o endereço do arquivo WSDL do serviço para que seja gerado o proxy de comunicação com o serviço. O endereço do WSDL é informado no campo WSDL URL conforme Figura 29.

Figura 29: Informando o endereço do arquivo WSDL do serviço WcfServicoReserva.

Após informar o endereço e clicar no botão finalizar é gerado o proxy de comunicação com o serviço, a Figura 30 mostra a referência gerada para o serviço e as duas interfaces de comunicação conforme o endpoint configurado no serviço WcfServicoReserva. Para a comunicação com outras tecnologias que não são .NET obrigatoriamente a comunicação é feita através da interface BasicHttpBinding_IReserva, que é o padrão SOAP de comunicação para interoperabilidade de tecnologias.

(53)

Figura 30: Referência do serviço WcfServicoReserva adicionada ao projeto.

(54)

E a Figura 32 demonstra o resultado da chamada do método ListarSalas(), o resultado é o mesmo que no exemplo anterior.

(55)

5 CONSLUSÃO

Esse trabalho teve como tema demonstrar a aplicação da arquitetura SOA utilizando o framework WCF, onde demonstrou a evolução da tecnologia Microsoft para sistemas distribuídos, desde o COM, passando pela sua evolução através do DCOM e COM+, e após o desenvolvimento da plataforma .NET com o

Enterprise Services e .NET Remoting. A partir do framework .NET versão 3.5, foi

lançado a unificação de todas essas tecnologias anteriores e a Microsoft nomeou de WCF.

O WCF tornou-se o padrão de desenvolvimento de sistemas distribuídos da Microsoft, pois facilitou o desenvolvimento de serviços para troca de informações estruturadas em uma plataforma descentralizada e distribuída, utilizando os padrões abertos de comunicação para interoperabilidade de tecnologias através do protocolo SOAP, que é o padrão aberto de comunicação recomendado pela W3C para sistemas disponibilizados como serviços na internet.

Com o objetivo de testar a arquitetura SOA na plataforma Windows, foi desenvolvido um estudo de caso em WCF denominado WcfServicoReserva, onde disponibilizou comunicação através dos padrões abertos de comunicação utilizando protocolo SOAP/HTTP e através do padrão proprietário da Microsoft para WCF, que é um SOAP binário para comunicação entre aplicações cliente e servidor desenvolvidos em WCF, obtendo alta performance através do protocolo TCP/IP.

Com o objetivo de demonstrar a interoperabilidade de tecnologias, foi desenvolvido dois aplicativos clientes para consumir o serviço WCFServicoReserva, o primeiro em WCF utilizando o protocolo SOAP binário e o segundo na linguagem Java, utilizando o protocolo SOAP padrão para comunicação pela internet

Para os dois aplicativos clientes o resultado foi o mesmo, nas duas versões é importado o arquivo WSDL do serviço WcfServicoReserva e é gerado um proxy de comunicação com todos os métodos disponíveis para efetuar as chamadas das operações do serviço.

(56)

NetTcpBinding, e o segundo, que foi desenvolvido em Java conectou no BasicHttpBinding.

(57)

REFERÊNCIAS

ERL, Thomas. SOA: Principles of Service Design. Boston: Prentice Hall, 2008.

______. Service-Oriented Architecture: Concepts, Technology, and Design. Boston: Pearson Education, Inc, 2009.

ERL, Thomas; KARMARKAR, Anish; WALMSLEY, Priscilla; HAAS, Hugo; YALCINALP, Umit; LIU, Canyang Kevin, ORCHARD, David; TOST, Andre; PASLEY, James. Web Service Contract Design and Versioning for SOA. Boston: Prentice Hall, 2009.

FOWLER, M. UML Essencial: Um Breve Guia para a Linguagem-Padrão de Modelagem de Objetos. 3. Ed. Porto Alegre: Bookman, 2005.

GIL, Carlos. Como elaborar projetos de pesquisa. São Paulo: Atlas, 1995, p.45 e 50.

LEITE, Francisco Tarciso. Metodologia científica: métodos e técnicas de pesquisa: monografias, dissertações, teses e livros. Aparecida, SP: Idéias & Letras, 2008.

LOWY, Juval. Programming WCF Services Third Edition. Sebastopol: O'Reilly Media, Inc, 2010;

SHARP, John. Windows Communication Foundation 4 Step by Step. Sebastopol: O’Reilly Media, Inc, 2010;

Referências

Documentos relacionados

(b) Para esta constante da mola, qual seria a frequência natural de vibração vertical da plataforma carregada pelo caminhão de 40

● Arquiteturas de software são especificadas através de uma ou mais de suas visões.. Três

• Roles são especificações (abstratas ou não) para as portas e

O GRUPO EFATH possui grande expertise em gestão de segurança para condomínios, empreendimentos e residências, desenvolvendo soluções de segurança que englobam treinamento ostensivo

Consumo de nutrientes (g/cab/dia) Ingredientes PB NDT MS Milho (grão) Soja (grão) Uréia I Sulfato de amônio 1 Mistura mineral I 188 214 351 19 1.. Da mesma

Detectadas as baixas condições socioeconômicas e sanitárias do Município de Cuité, bem como a carência de informação por parte da população de como prevenir

a) Na doença de Crohn dos cólons, ao contrário da reto- colite ulcerativa, o reto tende a se apresentar pouco comprometido ou até mesmo endoscopicamente normal. b)

Vários trabalhos têm demonstrado que a mortali- dade por síndrome ascítica é maior nos machos do que nas fêmeas, acreditando-se que este fato esteja relacionado com a maior