Edição 03 – Setembro de 2011 - Revista FOSSGIS Brasil
Edição 03 – Setembro de 2011 - Revista FOSSGIS Brasil
Edição 03 – Setembro de 2011 - Revista FOSSGIS Brasil
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
O WPS usa duas maneiras <strong>de</strong> transferir dados:<br />
- Conteúdo transferido como input e/ou output<br />
- Referencia, on<strong>de</strong> o WPS po<strong>de</strong> entrar os dados<br />
(input), e/ou on<strong>de</strong> o cliente po<strong>de</strong> encontrar o<br />
resultado do processo (output)<br />
As referências usadas em WPS são URLs<br />
(p.ex.: http://foo/servicoWPS/dadosGML.gml)<br />
que po<strong>de</strong>m ser passados <strong>de</strong> um serviço para o<br />
outro, sem que os dados sejam transferidos <strong>de</strong><br />
volta para o cliente.<br />
A segunda gran<strong>de</strong> capacida<strong>de</strong> do WPS é<br />
permitir a execução <strong>de</strong> algoritmos que po<strong>de</strong>m levar<br />
bastante tempo para executar, ou seja, mais tempo<br />
do que o permitido até que um utilizador receba a<br />
fatídica mensagem: “HTTP 408 Request Timeout”.<br />
A estratégia usada em WPS é <strong>de</strong> respon<strong>de</strong>r<br />
imediatamente com um URL on<strong>de</strong> o cliente po<strong>de</strong><br />
obter informação sobre o estado <strong>de</strong> execução do<br />
processo e os dados resultantes, caso o processo<br />
tenha terminado.<br />
Exemplo <strong>de</strong> resposta a um <strong>de</strong>scribeProcess<br />
<strong>Revista</strong> <strong>FOSSGIS</strong> <strong>Brasil</strong> | <strong>Setembro</strong> <strong>2011</strong> | www.fossgisbrasil.com.br<br />
Apenas três operações <strong>de</strong>finem o WPS:<br />
getCapabilities, <strong>de</strong>scribeProcess e Execute. As<br />
duas primeiras servem para <strong>de</strong>screver os<br />
processos disponibilizados pelo servidor, ou seja,<br />
o nome dos processos, tipos <strong>de</strong> input/output e se<br />
o processo é assíncrono (resposta imediata sobre<br />
on<strong>de</strong> vão ser <strong>de</strong>positados os resultados quando<br />
terminado). A terceira operação é a mais<br />
importante e or<strong>de</strong>na a execução do processo,<br />
tendo o cliente <strong>de</strong> indicar os inputs, ouputs e se o<br />
resultado <strong>de</strong>ve ser dado por referência.<br />
Na imagem abaixo apresenta-se um<br />
exemplo <strong>de</strong> resposta a um <strong>de</strong>scribeProcess para<br />
o servico v.net.path. O uso <strong>de</strong> XML é bastante<br />
conveniente em web services mas, para leigos,<br />
po<strong>de</strong> ser um tanto quanto difícil <strong>de</strong> perceber.<br />
São permitidos três tipos <strong>de</strong> Input/Ouputs:<br />
- Literal<br />
- ComplexData<br />
- Bounding-box<br />
11