Escolar Documentos
Profissional Documentos
Cultura Documentos
Montes Claros
2005
UNIVERSIDADE ESTADUAL DE MONTES CLAROS
CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS
DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
___________________________________
Orientador: Prof. João Batista Mendes
___________________________________
Avaliador: Prof. Guilherme Barbosa Vilela
___________________________________
Avaliador: Prof. Luiz Carlos Pires dos Santos
Agradecimentos
1. INTRODUÇÃO 8
1.1 INTEROPERABILIDADE ......................................................................... 8
1.2 OBJETIVOS............................................................................................. 9
1.3 HISTÓRICO ........................................................................................... 10
1.4 METODOLOGIA .................................................................................... 11
1.5 JUSTIFICATIVA ..................................................................................... 12
1.6 ORGANIZAÇÃO DA DISSERTAÇÃO .................................................... 15
2. WEB SERVICES 16
2.1 PADRÕES E CONSÓRCIOS................................................................. 16
UNIMONTES: DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO........... 22
3.1 WEB SERVICES NO DCC-UNIMONTES .............................................. 22
3.2 WEB SERVICES DISPONÍVEIS............................................................ 24
3.2.1 Autenticação no Web Services DCC: ................................................. 24
3.2.2 Requisição de uso dos Laboratórios: ................................................. 26
3.2.3 Requisição de uso de equipamento de apoio:.................................... 27
3.2.4 Solicitação de compra de material bibliográfico junto a Biblioteca: .... 29
3.2.5 Autenticação no Web Services Biblioteca: ......................................... 31
3.2.6 Pedido de compras de livros junto a Biblioteca Central:..................... 33
3. CONCLUSÃO 36
4.1 USO DE WEB SERVICES ..................................................................... 36
4.2 UNIMONTES: DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO . 37
4.3 ESTUDOS FUTUROS ........................................................................... 38
4. BIBLIOGRAFIA 39
Lista de Figuras
INTRODUÇÃO
1.1 INTEROPERABILIDADE
Atualmente nas empresas o acesso a Internet é através de conexões
dedicadas e de alta velocidade. Devido ao aumento de recursos multimídias
disponibilizados, ao grande tráfego de arquivos na Internet se fez a necessidade
de mais velocidade para acesso.
Essas empresas contam com uma infra-estrutura superior ao que
existia na década de 80-90, mas ainda não dispõe de sistemas que utilizem todo
este potencial. Os sistemas que foram desenvolvidos atualmente são
desenvolvidos para redes locais e estão sendo adaptados para operar na grande
rede, Internet. É necessária uma nova visão de software na qual a Internet esteja
presente em todos os detalhes.
Com o uso dos Web Services a Internet deixará de ser um emaranhado
de sites isolados. Ela será um grande conjunto de sistemas interagindo e
trabalhando a favor do usuário. A grande rede de computadores realmente estará
integrada, interagindo com troca de informações mais rápidas e seguras.
Os Web Services tem o apoio da organização Universal Description,
Discovery and Integration – UDDI [2], que é responsável por cadastrar e
disponibilizar informações sobre os serviços e a descrição de seu objetivo,
categorizados por áreas de atuação. Desenvolvedores de Web Services podem
estar registrando seus domínios na UDDI para que outras pessoas possam
encontrar o serviço que dispõe [10],[11]. O uddi.org, centro mundial dos serviços,
tem sua estrutura pensada para agregar serviços do mundo todo, o que possibilita
uma visão global do uso da tecnologia [6].
8
O Web Services tem grande vantagem em relação ao DCOM e o
CORBA, seus antecessores, pois utiliza para troca de informações padrões
abertos e não especificamente um tipo de protocolo [10]. A nova plataforma .NET
por exemplo, redefiniu a interface do usuário, tornando a interação e a
colaboração pela Internet muito mais fáceis e transformando fundamentalmente a
forma de fazer negócios em todo o mundo [5].
1.2 OBJETIVOS
Este trabalho consiste em demonstrar a utilização do conceito de Web
Services, em especial a plataforma .NET, tecnologia apoiada pela Microsoft [4],
para desenvolvimento de sistemas onde a principal vantagem seja a interação e
interoperabilidade entre os sistemas desenvolvidos. Serviços disponibilizados pela
Internet para os usuários, para que se possa integrar de vez os sistemas
desenvolvidos à grande rede e usufruir todo esse avanço tecnológico na área de
comunicação hoje alcançado.
Como objetivos específicos deste trabalho, citam-se:
1
João Abud Jr. - Diretor Geral de Marketing e Vendas Procomp
9
objetivo principal estruturar um Web Service que atenda a
necessidade de melhor comunicação entre o Departamento de
Ciências da Computação – DCC, os alunos e demais setores da
Unimontes. Será feito descrição dos serviços que o Web Service irá
atender e a definição WSDL (Web Services Description Language).
1.3 HISTÓRICO
Na década de 80, predominava o uso do mainframe. Os computadores
existiam apenas nos centros computacionais onde apenas os especialistas
podiam operá-los. O procedimento para se processar alguns dados era trabalhoso
e complexo, o que distanciavam o usuário da informação. Com a criação do
circuito integrado esse passo foi melhorado, transformando o computador em um
produto mais acessível. As empresas se equiparam com microcomputadores e a
população teve acesso a uma nova fonte de comunicação e entretenimento.
Neste cenário, a Internet é apontada como o maior avanço tecnológico existente,
onde a comunicação entre as pessoas chegou a nível mundial.
A Internet instaurou uma nova forma de comunicação, disponibilizando
um volume imenso de informações aos usuários e acrescentou um “e” à palavra
comércio. Atualmente mais de 300 milhões de pessoas em todo mundo estão
conectadas à grande rede mundial [5].
O avanço tecnológico na área de comunicação evolui bastante em
relação a década de 80, possibilitando cada vez mais, de forma eficiente à troca
de informações entre as pessoas. Com esse avanço tecnológico possibilitou uma
maior facilidade em disponibilizar serviços pela Internet devido a grande
velocidade de conexão. Serviços que auxiliam o cotidiano do usuário de
computador e da Internet foram surgindo. Um bom exemplo seria a caixa postal
eletrônica, o e-mail, onde o usuário pode trocar mensagens com outra pessoa.
Surge então um novo conceito de software: Web Services. Apoiado por
diversas organizações e definido por diversos padrões [1],[2],[3],[4] o uso dos
serviços pela web torna-se bastante difundido. Será comum o usuário da Internet
acessar serviços pela rede, sem a necessidade de adquirir o pacote do software.
Surge um novo conceito de produção de software.
10
Essa nova tecnologia de desenvolvimento de software traz benefícios
tanto ao usuário quanto ao desenvolvedor. A facilidade com que se introduz a
Internet no meio social facilita o avanço dessa tecnologia, não exigindo mais que
se tenha que comprar versões de softwares. Bastará apenas abrir o navegador de
Internet e acessaram um determinado serviço.
1.4 METODOLOGIA
2
Arnaldo Pereira Pinto, diretor de Internet do Banco Itaú
11
Será acompanhado alguns casos e serviços já disponíveis na UDDI [2]
onde será possível um levantamento da utilização e aprovação dos usuários e a
avaliação da eficiência dos serviços já em funcionamento. Observar questões de
segurança e acessibilidade do sistema e comparar em relação ao
desenvolvimento de sistemas da maneira convencional.
Será feito também um estudo sobre as vantagens e desvantagens da
aplicação de um Web Service na Unimontes. Será desenvolvida toda a
documentação necessária para desenvolvimento de um Web Service que
atenderá o DCC-Unimontes em questões como, por exemplo, requisição de
alguns documentos dos alunos junto ao departamento, requisição de pedidos de
abertura de laboratório, autorização por parte dos coordenadores e chefes de
departamento ou responsáveis dos pedidos solicitados, dentre outros. Isto
facilitará o processo e a comunicação entre as partes envolvidas.
No final deste projeto, será possível a avaliação do uso da plataforma
.NET para desenvolvimento de serviços para Web. O por quê do uso será
mostrado e o usuário final não terá dúvidas quanto às facilidades e benefícios de
seu uso.
1.5 JUSTIFICATIVA
12
Todas as ferramentas da plataforma .NET, utilizadas para
desenvolvimento de Web Services, foram construídas como base no padrão XML
(Extensible Markup Language). Já utilizam a linguagem para troca de informação da
Internet e possibilitam a integração não apenas de sistemas internos da empresa,
como a integração entre sites de diferentes empresas. Ao contrário da situação
atual, na qual os sites são criados de forma artesanal, com um desenvolvimento
complexo para garantir sua operação com outros sites, o modelo de programação
.NET fornece um mecanismo de construção de sites e serviços que permite a
interação transparente com quaisquer outros sites ou serviços.
A principal diferença entre um web site e um web service está mostrada
na Figura 1-1. No web service o usuário interage com o serviço, recebendo em
seu sistema os dados para que possa concluir seu processo.
13
por uma empresa ou por um serviço disponível na Web pode ser visualizado
pelos mais diferentes dispositivos como celulares, PDAs, agendas eletrônicas, e
browseres.
A possibilidade de comunicação e utilização dos serviços entre
sistemas heterogêneos é um dos pontos positivos dessa nova tecnologia. Os
serviços poderão ser acessados tanto de plataformas Windows quanto UNIX ou
Linux, já que são acessados através da Internet.
Na atual conjuntura, os clientes não precisam mais adquirir pacotes de
softwares e depois de um certo tempo uma atualização de versão. Serão
adquiridos direitos de utilizar um serviço disponibilizado pela Internet, semelhante
as caixas postais dos Correios, onde o usuário do serviço paga pela
disponibilidade de um espaço reservado para receber suas correspondências.
O desenvolvedor tem mais possibilidades de aumentar a produtividade
do seu trabalho, já que disponibilizando o serviço a diversos usuários e clientes, o
custo de produção será menor. Ele produzira um serviço acessado por diversos
usuários, e terá que disponibilizar manutenção em apenas um serviço para uma
gama inteira de usuários.
No caso específico do DCC-Unimontes, que será abordado como
exemplificação do uso de Web Services, as vantagens da implementação são
diversas, dentre as quais podem ser relacionadas: A troca de informações entre
departamento e alunos e outros setores da universidade é bastante significativo.
Um serviço pela Internet que auxiliasse o fluxo dessas informações seria útil já
que agilizaria o processo e o usuário poderia solicitar de qualquer lugar.
Se este processo fosse informatizado, a pessoa responsável pelas
respostas teria como organizar melhor o seu tempo conseguindo atender a todos
os chamados. O agendamento dos laboratórios, reserva de equipamentos, a
maioria das solicitações junto ao departamento poderia ser feito de uma forma
mais eficaz pela rede. Há ainda a possibilidade de interoperabilidade do sistema
do DCC-Unimontes com os outros existentes na Universidade como Biblioteca e
Secretaria Geral, por exemplo, solicitação de compras de livros e confirmação do
histórico escolar do aluno.
A tecnologia .NET é uma nova tecnologia de desenvolvimento de
software e serviços para Web que cresce a cada dia. Seu crescimento é devido à
14
própria necessidade dos usuários, que querem cada vez mais facilidades no seu
dia a dia. O uso da tecnologia para desenvolvimento se torna inevitável à medida
que a necessidade de informações se torna cada vez mais primordial entre as
pessoas e empresas.
15
Capítulo 2
WEB SERVICES
Web Services é um conceito de desenvolvimento de aplicações que tem auto
grau de interoperabilidade de sistemas. É apoiado por diversos padrões, o que torna fácil
a sua adoção e implementação. Com um simples arquivo texto, um protocolo único para
comunicação e a descrição dos métodos e funções consegue-se organizar um Web
Services poderoso que resolveria o problema de interoperabilidade de sistemas já
existentes. Será descrito neste capítulo, quais e como são utilizados esses padrões e
consórcios que apóia o desenvolvimento dos Web Services.
16
consegue interoperabilidade com a utlização do padrão XML [10]. O padrão XML permite
o usuário criar suas próprias tags para disponibilizar suas informações.
Como mostra a Figura 2-1 as informações são repassadas em forma de
arquivo texto, XML, e são transformadas na melhor maneira de visualização. Uma
simples tabela para visualizar os dados, ou um gráfico para compará-los ou uma arte que
possa estar sendo disponibilizada pela web ou meio multimídia.
17
de Pagamentos Brasileiro (SPB). Bancos já comunicam entre si utilizando essa
linguagem. Outros diversos setores da sociedade também já utilizam o XML. Como a
adoção da linguagem é bastante ampla, tem se uma maior facilidade na introdução de
Web Services como novo conceito de desenvolvimento de sistemas de informação [5].
Existe um consórcio responsável pelo Web Services, o WS-I [1], que é
mostrado na Figura 2-2. Assim como as páginas de web, um Web Service reside em um
servidor web e tem um endereço URL. No servidor existe o serviço já todo estruturado
com as funções e regras necessárias para receber e responder aos chamados de outros
programas, o WSDL (Web Services Description Language).
18
disponibiliza as informações em XML. A maneira de mostrar essas informações é de
responsabilidade do sistema legado.
Em tecnologias anteriores como Corba, existia um protocolo específico para
troca de informações entre sistemas, já Web Services provêm interoperabilidade através
de XML e da utilização de padrões abertos como SOAP, o que é uma grande vantagem
em relação aos seus antecessores [10].
O formato XML deixa o usuário definir suas próprias tags de acordo com as
informações que serão disponibilizadas. Para a comunicação entre as aplicações, os
Web Services utiliza-se do protocolo SOAP (Simple Object Access Protocol), um
protocolo para a troca de informações em um ambiente descentralizado através do
protocolo de comunicação HTTP e do formato XML [10]. Ou seja, para uma aplicação
trabalhar com Web Services, deve trocar informação em formato XML com o servidor que
executa a mensagem do cliente como um interpretador.
Depois de pronto, o desenvolvedor publica seu serviço em um diretório de
serviços na Internet, o UDDI (Universal Description Discovery and Integration). Neste
diretório são definidos os registros dos serviços, que podem estar inclusive em servidores
diferentes.
Para descrever os serviços, é utilizada a linguagem WSDL (Web Services
Description Language), que é baseada no formato XML e descreve um Web Service
definindo as interfaces e os mecanismos de interação, contendo informações como o
protocolo, procedimentos, formato de dados, segurança, dentre outros [10].
A Figura 2-3 mostra exatamente como funciona a relação do cliente e do
servidor Web Service, o fluxo das informações e os protocolos e padrões utilizados em
cada uma delas.
19
Figura 2-3 – Arquitetura dos Web Services
20
desenvolvimento de camadas para garantir a entrega segura dos dados, permitir rollback,
etc [10].
Como foi descrito, os Web Services tem apoio de organizações de peso a
nível mundial e já é utilizados em diversas delas. Isto tudo graças aos padrões que segue
em sua linha de desenvolvimento.
21
Capítulo 3
22
e receberia a informação instantânea, ou caso necessário, aguardaria retorno que por
sua vez não demoraria tanto.
A informação que trafega pelo mundo dos Web Services pode ser restringida
de acordo com o usuário que a solicita. Não é necessário saber ao aluno se um outro
aluno fez a requisição de uma prova de segunda chamada. Esta informação é exclusiva
do aluno que perdeu a prova. Quem responde por alguma requisição também pode ser
restrito. Apenas o coordenador dos laboratórios pode reservá-lo para uso.
Para que possa trocar informações com a Biblioteca Central, Secretaria Geral
e outros departamentos, seria necessário uma modificação nos sistemas desses locais
para atuarem como Web Services também, ou a construção de um módulo a parte para
que faça a mesma função. Não é necessária uma modificação no sistema em si, mas um
acréscimo de definições para tornar possível a comunicação via Web Services, não
sendo tão trabalhoso como já foi explicado no princípio deste trabalho.
O foco então deste trabalho se concentra em ampliar a visão da academia
para o uso de Web Services facilitando a interoperabilidade entre sistemas de uso dos
alunos, professores, coordenadores e demais setores da Universidade. Portanto, será
mostrada neste capítulo a documentação de um Web Service para o DCC-Unimontes e
um para a Biblioteca.
Outras possibilidades de aplicação de Web Services no DCC-Unimontes estão
relacionadas abaixo:
Requisição de material acadêmico: alunos poderiam estar solicitando ao
professor de alguma disciplina o material de discutido e utilizado em sala de aula. Os
professores poderão estar disponibilizando todo documento digital utilizado, apostilas,
slides, códigos fontes, no site, onde os alunos posteriormente façam o download dos
arquivos para estudo.
Acompanhamento de requisição de documentação acadêmica: os alunos
poderiam fazer solicitações de documentos como requisição de aproveitamento de notas,
prova de segunda oportunidade, requisição de disciplina de dependência, dentre outras
que fazem junto a Secretaria Geral, que podem ser acompanhadas via web. Poderá
ainda acompanhar o processo da solicitação.
Solicitação de abertura do prédio para aulas: os coordenadores poderiam
estar passando o pedido de abertura dos prédios ao setor responsável quando houver
necessidade de abertura do prédio nos sábados e em casos especiais. O aluno ou
professor pode estar retirando uma autorização para a utilização que seria apresentada
como prova do pedido. Serviria também para os alunos e professores poderem estar
23
acompanhando e saber quais os dias e horários estarão disponíveis para marcar uma
reserva especial.
É importante salientar que será demonstrada a documentação de uma das
demais possibilidades de interoperabilidade entre os sistemas disponíveis na
Universidade e que a expansão para os outros sistemas não seria complicada de se
implementar.
targetNamespace="http://www.dcc.unimontes.br/ws/Autenticacao.xsd1"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
24
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Autenticacao.xsd1">
</xsd:schema>
</wsdl:types>
<wsdl:message name="LogoffResponse">
<wsdl:part name="Logado" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="LoginRequest">
<wsdl:part name="Usuario" type="xsd:string"/>
<wsdl:part name="Senha" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="LogoffRequest">
<wsdl:part name="Logado" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="LoginResponse">
<wsdl:part name="Logado" type="xsd:boolean"/>
</wsdl:message>
<wsdl:portType name="AutenticacaoPortType">
<wsdl:operation name="Login">
<wsdl:input message="tns:LoginRequest"/>
<wsdl:output message="tns:LoginResponse"/>
</wsdl:operation>
<wsdl:operation name="Logoff">
<wsdl:input message="tns:LogoffRequest"/>
<wsdl:output message="tns:LogoffResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AutenticacaoBinding"
type="tns:AutenticacaoPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Login">
<soap:operation
soapAction="capeconnect:Autenticacao:AutenticacaoPortType#Login"/>
<wsdl:input>
<soap:body parts="Usuario Senha" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="" use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Logoff">
<soap:operation
soapAction="capeconnect:Autenticacao:AutenticacaoPortType#Logoff"/>
<wsdl:input>
<soap:body parts="" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Autenticacao">
<wsdl:port binding="tns:AutenticacaoBinding"
name="AutenticacaoPort">
<soap:address
location="http://localhost:8000/ccx/Autenticacao"/>
</wsdl:port>
25
</wsdl:service>
</wsdl:definitions>
Arquivo: Laboratorio.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="Laboratorios"
targetNamespace="http://www.dcc.unimontes.br/ws/Laboratorios.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.dcc.unimontes.br/ws/Laboratorios.wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Laboratorios.xsd1">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Created using Cape Clear
Studio SOA Editor - http://www.capeclear.com</wsdl:documentation>
<wsdl:types>
<xsd:schema
targetNamespace="http://www.dcc.unimontes.br/ws/Laboratorios.xsd1"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Laboratorios.xsd1">
</xsd:schema>
</wsdl:types>
<wsdl:message name="getStatusResponse">
<wsdl:part name="Status" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="setUsoRequest">
<wsdl:part name="IDLaboratorio" type="xsd:int"/>
<wsdl:part name="IDUsuario" type="xsd:int"/>
<wsdl:part name="Data" type="xsd:date"/>
<wsdl:part name="Hora" type="xsd:time"/>
</wsdl:message>
<wsdl:message name="setUsoResponse"> </wsdl:message>
<wsdl:message name="getStatusRequest">
<wsdl:part name="IDLaboratorio" type="xsd:int"/>
26
<wsdl:part name="Data" type="xsd:date"/>
<wsdl:part name="Hora" type="xsd:time"/>
</wsdl:message>
<wsdl:portType name="LaboratoriosPortType">
<wsdl:operation name="getStatus">
<wsdl:input message="tns:getStatusRequest"/>
<wsdl:output message="tns:getStatusResponse"/>
</wsdl:operation>
<wsdl:operation name="setUso">
<wsdl:input message="tns:setUsoRequest"/>
<wsdl:output message="tns:setUsoResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="LaboratoriosBinding"
type="tns:LaboratoriosPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getStatus">
<soap:operation
soapAction="capeconnect:Laboratorios:LaboratoriosPortType#getStatus"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setUso">
<soap:operation
soapAction="capeconnect:Laboratorios:LaboratoriosPortType#setUso"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Laboratorios">
<wsdl:port binding="tns:LaboratoriosBinding"
name="LaboratoriosPort">
<soap:address
location="http://localhost:8000/ccx/Laboratorios"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
27
outra data e horário disponível. O sistema ficaria responsável por controlar as reservas e
dar a baixa após o período de utilização.
Métodos disponíveis:
getStatus: verifica a disponibilidade de cada laboratório.
setUso: agenda o uso de determinado laboratório para determinada
atividade.
A descrição da implementação desse serviço é detalhada abaixo:
Arquivo: Apoio.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="Apoio"
targetNamespace="http://www.dcc.unimontes.br/ws/Apoio.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.dcc.unimontes.br/ws/Apoio.wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Apoio.xsd1">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Created using Cape Clear
Studio SOA Editor - http://www.capeclear.com</wsdl:documentation>
<wsdl:types>
<xsd:schema
targetNamespace="http://www.dcc.unimontes.br/ws/Apoio.xsd1"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Apoio.xsd1">
</xsd:schema>
</wsdl:types>
<wsdl:message name="getStatusResponse">
<wsdl:part name="Status" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="setUsoRequest">
<wsdl:part name="IDLaboratorio" type="xsd:int"/>
<wsdl:part name="IDUsuario" type="xsd:int"/>
<wsdl:part name="Data" type="xsd:date"/>
<wsdl:part name="Hora" type="xsd:time"/>
</wsdl:message>
<wsdl:message name="setUsoResponse"> </wsdl:message>
<wsdl:message name="getStatusRequest">
<wsdl:part name="IDMaterial" type="xsd:int"/>
<wsdl:part name="Data" type="xsd:date"/>
<wsdl:part name="Hora" type="xsd:time"/>
</wsdl:message>
<wsdl:portType name="ApoioPortType">
<wsdl:operation name="getStatus">
<wsdl:input message="tns:getStatusRequest"/>
<wsdl:output message="tns:getStatusResponse"/>
</wsdl:operation>
<wsdl:operation name="setUso">
<wsdl:input message="tns:setUsoRequest"/>
<wsdl:output message="tns:setUsoResponse"/>
</wsdl:operation>
</wsdl:portType>
28
<wsdl:binding name="ApoioBinding" type="tns:ApoioPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getStatus">
<soap:operation
soapAction="capeconnect:Apoio:ApoioPortType#getStatus"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setUso">
<soap:operation
soapAction="capeconnect:Apoio:ApoioPortType#setUso"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Apoio">
<wsdl:port binding="tns:ApoioBinding" name="ApoioPort">
<soap:address location="http://localhost:8000/ccx/Apoio"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Arquivo: Livros.wsdl
<?xml version="1.0" encoding="UTF-8"?>
29
<wsdl:definitions
name="Livros"
targetNamespace="http://www.dcc.unimontes.br/ws/Livros.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.dcc.unimontes.br/ws/Livros.wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Livros.xsd1">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Created using Cape Clear
Studio SOA Editor - http://www.capeclear.com</wsdl:documentation>
<wsdl:types>
<xsd:schema
targetNamespace="http://www.dcc.unimontes.br/ws/Livros.xsd1"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Livros.xsd1">
</xsd:schema>
</wsdl:types>
<wsdl:message name="setLivrosRequest">
<wsdl:part name="NomeLivro" type="xsd:string"/>
<wsdl:part name="NomeAutor" type="xsd:string"/>
<wsdl:part name="Ano" type="xsd:date"/>
<wsdl:part name="IDEditora" type="xsd:int"/>
<wsdl:part name="DataPedido" type="xsd:date"/>
<wsdl:part name="Quantidade" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="getStatusRequest">
<wsdl:part name="IDPedido" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="getPermissaoResponse">
<wsdl:part name="Permissao" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="setLivrosResponse">
<wsdl:part name="IDPedido" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="getStatusResponse">
<wsdl:part name="NomeLivro" type="xsd:string"/>
<wsdl:part name="Status" type="xsd:int"/>
<wsdl:part name="DataPedido" type="xsd:date"/>
<wsdl:part name="DataPrevisaoChegada" type="xsd:date"/>
</wsdl:message>
<wsdl:message name="getPermissaoRequest">
<wsdl:part name="IDUsuario" type="xsd:int"/>
</wsdl:message>
<wsdl:portType name="LivrosPortType">
<wsdl:operation name="getPermissao">
<wsdl:input message="tns:getPermissaoRequest"/>
<wsdl:output message="tns:getPermissaoResponse"/>
</wsdl:operation>
<wsdl:operation name="setLivros">
<wsdl:input message="tns:setLivrosRequest"/>
<wsdl:output message="tns:setLivrosResponse"/>
</wsdl:operation>
<wsdl:operation name="getStatus">
<wsdl:input message="tns:getStatusRequest"/>
<wsdl:output message="tns:getStatusResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="LivrosBinding" type="tns:LivrosPortType">
30
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="getPermissao">
<soap:operation
soapAction="capeconnect:Livros:LivrosPortType#getPermissao"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="setLivros">
<soap:operation
soapAction="capeconnect:Livros:LivrosPortType#setLivros"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getStatus">
<soap:operation
soapAction="capeconnect:Livros:LivrosPortType#getStatus"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Livros">
<wsdl:port binding="tns:LivrosBinding" name="LivrosPort">
<soap:address location="http://localhost:8000/ccx/Livros"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
31
A descrição da implementação desse serviço é detalhada abaixo:
Arquivo: Autenticacao.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="Autenticacao"
targetNamespace="http://www.biblioteca.unimontes.br/ws/Autenticacao.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tns="http://www.biblioteca.unimontes.br/ws/Autenticacao.wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Autenticacao.xsd1">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Created using Cape Clear
Studio SOA Editor - http://www.capeclear.com</wsdl:documentation>
<wsdl:types>
<xsd:schema
targetNamespace="http://www.dcc.unimontes.br/ws/Autenticacao.xsd1"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.dcc.unimontes.br/ws/Autenticacao.xsd1">
</xsd:schema>
</wsdl:types>
<wsdl:message name="LogoffResponse">
<wsdl:part name="Logado" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="LoginRequest">
<wsdl:part name="Usuario" type="xsd:string"/>
<wsdl:part name="Senha" type="xsd:string"/>
</wsdl:message>
<wsdl:message name="LogoffRequest">
<wsdl:part name="Logado" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="LoginResponse">
<wsdl:part name="Logado" type="xsd:boolean"/>
</wsdl:message>
<wsdl:portType name="AutenticacaoPortType">
<wsdl:operation name="Login">
<wsdl:input message="tns:LoginRequest"/>
<wsdl:output message="tns:LoginResponse"/>
</wsdl:operation>
<wsdl:operation name="Logoff">
<wsdl:input message="tns:LogoffRequest"/>
<wsdl:output message="tns:LogoffResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AutenticacaoBinding"
type="tns:AutenticacaoPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="Login">
<soap:operation
soapAction="capeconnect:Autenticacao:AutenticacaoPortType#Login"/>
<wsdl:input>
32
<soap:body parts="Usuario Senha" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="" use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="Logoff">
<soap:operation
soapAction="capeconnect:Autenticacao:AutenticacaoPortType#Logoff"/>
<wsdl:input>
<soap:body parts="" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="" use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Autenticacao">
<wsdl:port binding="tns:AutenticacaoBinding"
name="AutenticacaoPort">
<soap:address
location="http://localhost:8000/ccx/Autenticacao"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Arquivo: Livros.wsdl
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions
name="Livros"
targetNamespace="http://www.biblioteca.unimontes.br/ws/Livros.wsdl"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
33
xmlns:tns="http://www.biblioteca.unimontes.br/ws/Livros.wsdl"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.biblioteca.unimontes.br/ws/Livros.xsd1">
<wsdl:documentation
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Created using Cape Clear
Studio SOA Editor - http://www.capeclear.com</wsdl:documentation>
<wsdl:types>
<xsd:schema
targetNamespace="http://www.dcc.unimontes.br/ws/Livros.xsd1"
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsd1="http://www.biblioteca.unimontes.br/ws/Livros.xsd1">
</xsd:schema>
</wsdl:types>
<wsdl:message name="AtualizaResponse">
<wsdl:part name="NomeLivro" type="xsd:string"/>
<wsdl:part name="Status" type="xsd:int"/>
<wsdl:part name="DataPedido" type="xsd:date"/>
<wsdl:part name="DataPrevisaoChegada" type="xsd:date"/>
</wsdl:message>
<wsdl:message name="AtualizaRequest">
<wsdl:part name="IDPedido" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="setPermissaoResponse">
<wsdl:part name="Permissao" type="xsd:boolean"/>
</wsdl:message>
<wsdl:message name="getLivrosResponse">
<wsdl:part name="IDPedido" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="setPermissaoRequest">
<wsdl:part name="IDUsuario" type="xsd:int"/>
</wsdl:message>
<wsdl:message name="getLivrosRequest">
<wsdl:part name="NomeLivro" type="xsd:string"/>
<wsdl:part name="NomeAutor" type="xsd:string"/>
<wsdl:part name="Ano" type="xsd:date"/>
<wsdl:part name="Quantidade" type="xsd:int"/>
<wsdl:part name="DataPedido" type="xsd:date"/>
</wsdl:message>
<wsdl:portType name="LivrosPortType">
<wsdl:operation name="setPermissao">
<wsdl:input message="tns:setPermissaoRequest"/>
<wsdl:output message="tns:setPermissaoResponse"/>
</wsdl:operation>
<wsdl:operation name="AtualizaStatus">
<wsdl:input message="tns:AtualizaRequest"/>
<wsdl:output message="tns:AtualizaResponse"/>
</wsdl:operation>
<wsdl:operation name="getLivros">
<wsdl:input message="tns:getLivrosRequest"/>
<wsdl:output message="tns:getLivrosResponse"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="LivrosBinding" type="tns:LivrosPortType">
<soap:binding style="rpc"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="setPermissao">
34
<soap:operation
soapAction="capeconnect:Livros:LivrosPortType#setPermissao"/>
<wsdl:input>
<soap:body parts="IDUsuario" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body parts="Permissao" use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="AtualizaStatus">
<soap:operation
soapAction="capeconnect:Livros:LivrosPortType#AtualizaStatus"/>
<wsdl:input>
<soap:body parts="IDPedido" use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body
parts="NomeLivro Status DataPedido
DataPrevisaoChegada"
use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="getLivros">
<soap:operation
soapAction="capeconnect:Livros:LivrosPortType#getLivros"/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Livros">
<wsdl:port binding="tns:LivrosBinding" name="LivrosPort">
<soap:address location="http://localhost:8000/ccx/Livros"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
35
Capítulo 4
CONCLUSÃO
Com a realização deste trabalho, ficou claro que a utilização de Web Services
facilita a interoperabilidade entre sistemas. Foi demonstrada a facilidade com que o
programador consegue agregar em sistemas já existentes, métodos para que possa
comunicar com outros sistemas.
A comunicação em diferentes plataformas e ambientes facilita a vida do
desenvolvedor de software. Tudo isso graças ao SOAP que permite que esteja sendo
implementado em diversas plataformas de hardware e de software. Isso significa que o
SOAP pode ser usado para ligar sistemas muito diferentes, dentro e fora da organização.
Muitas tentativas desse tipo foram feitas no passado, propondo um protocolo de
comunicação padrão para ser usado na integração de sistemas, mas nenhuma delas teve
a mesma repercussão que o SOAP, devido a sua simplicidade e facilidade de
implementação.
Ele pode utilizar dessa vantagem para estar desenvolvendo aplicações que
possam estar sendo utilizadas em diversos ambientes além de desenvolver com sua
linguagem de maior afinidade e de forma padronizada. Uma empresa consegue agora
facilmente trocar informações com outra empresa. Através do XML, as empresas obtêm
informações de interesse em comum e pode estar disponibilizando da maneira mais
adequada ao seu sistema.
Para o usuário que irá utilizar os serviços também existem vantagens. Ele não
precisa estar instalando sistemas na sua máquina, pois utiliza os recursos remotamente.
Outra que ele não terá que sempre estar instalando versões mais novas dos aplicativos.
Os recursos são automaticamente atualizados na medida que o desenvolvedor realiza
alguma melhoria no software.
36
Em questões de manutenção do sistema também existem melhorias. O
responsável pela manutenção de software não terá que sair instalando novas versões do
aplicativo que a empresa usa em todas as máquinas da empresa. Basta apenas que
atualize a versão do servidor e todas as máquinas já acessaram a nova versão.
Os serviços mais simples são fontes de informação, que podem ser facilmente
incorporados às aplicações - cotações de preços, cotas de estoque, previsões de tempo
e temperatura, resultados de partidas esportivas, etc. É fácil imaginar uma grande classe
de aplicações que podem ser feitas para analisar e agregar informações importantes, e
apresentá-las de várias formas; por exemplo, uma planilha que resume sua situação
financeira - títulos, contas bancárias, empréstimos, etc. Se essa informação estiver
disponível através de Web Services, a planilha pode ser atualizada continuamente.
37
A criação de sistemas novos para setores onde ainda não existe nenhum tipo
de sistema de informação poderia passar a ser baseada em Web Services, já que ele
também pode trabalhar de forma independente, sem se comunicar com outro sistema. O
interessante é que caso haja a necessidade de trocar informações, o sistema já estaria
pronto para isso.
Como foi descrito nos capítulos anteriores não foram documentadas todas as
possíveis demandas de interação do sistema de um setor da Universidade. Seria
interessante que todos os sistemas da Universidade trabalhassem em harmonia. A
Universidade poderia estar sendo vista como um todo, facilitando a tomada de algumas
decisões.
A comunicação da Universidade com outra instituição, também poderia ser
feita de forma simples caso houvesse implementação de Web Services. A troca de
informações acadêmicas como disponibilização de trabalhos acadêmicos, o
acompanhamento de receita da Universidade, já que se trata de uma instituição pública e
outros processos poderiam estar sendo implementados.
Fica em aberto também à questão da implementação, já que este trabalho
focou-se em apenas documentar os métodos e procedimentos para o Web Service. Além
desses serviços descritos, podem existir outros que não foram documentados de
interesse da Universidade.
A contribuição deste trabalho é mostrar uma visão da utilização de Web
Services. A vantagem que o Web Service tem em relação as demais formas de
implementação vem da utilização de protocolos de fácil implementação. A força do SOAP
está na sua simplicidade; é fácil de entender e implementar. O SOAP é significantemente
menos complexo que as abordagens anteriores, assim a barreira para a mudança para
uma implementação SOAP é menor. Outra diferença significativa é trabalhar com
protocolos padrões de Web - XML, HTTP e TCP/IP. Um grande número de companhias
já possuem uma infra-estrutura Web, pessoas com conhecimento e experiência na sua
manutenção, fazendo com que o custo para uma mudança para o Web Services XML
seja menor.
38
Bibliografia
39