Changes between Initial Version and Version 1 of WF/executarrotinaws


Ignore:
Timestamp:
09/28/10 11:04:45 (14 years ago)
Author:
fabianok
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • WF/executarrotinaws

    v1 v1  
     1= Executar Rotina Utilizando SOAP = 
     2 
     3== 1 Descrição == 
     4 
     5Para prover integração com sistemas existentes e prover acesso a funcionalidades das aplicações desenvilvida para o módulo é possível atender a uma requsição no enviada em um XML utilizando o protocolo SOAP. A implementação não contempla os serviços oferecidos por um Web Service, sendo capaz apenas de trocar informações utilizando dados enviados no formato SOAP não disponibilizando serviços de WSDL nem UDDI. 
     6 
     7O desenvolvedor do serviço é responsável por fornecer a documentação sobre como acessar os dados do serviço e o desenvolvedor que utilizará o serviço é responsável pela implementação de acordo com a documentação. O módulo oferece ferramentas que valida se o XML está formatado adequadamente, retira os marcadores do protocolo e entrega para a aplicação do módulo apenas o conteúdo do XML. A aplicação é responsável por fazer o parser do conteúdo recebido para a manipulação dos dados como, por exemplo, popular uma classe. 
     8 
     9O SOAP enviado obrigatoriamente conterá tags infomando o código da ação a ser executada e código da aplicação, nome de usuário e senha. A solicaitação deverá ser encaminhada para o endereço da classe ControllerSOAP.php que recebe o pedido, valida o usuário utilizando a biblioteca de validação de usuário recupera o nome do arquivo da classe a ser instânciada e disponibiliza o objeto xml, document dom, para a aplicação, e passa a executar como descrito no [wiki:WF/executarrotina UC Executar Rotina] instanciando sempre a classe de retorno da interface como a biblioteca que converte objeto para SOAP. 
     10 
     11 
     12== 2 Atores == 
     13 
     14 1. Aplicação do Sistema 
     15 2. Aplicação Cliente 
     16 3. Usuário 
     17 
     18== 3 Pré-condições == 
     19 
     20 Não existem pré condições. 
     21 
     22== 4 Eventos == 
     23 
     24 1. Aplicativo cliente envia requisição HTTP contendo informações em formato SOAP. 
     25 2. Servidor recebe a requisição e chama a camada controller para processar a requisição. 
     26 3. Camada controller valida se o SOAP é um XML bem formatado. 
     27 4. Camada controller valida se o XML contém os dados nome de usuário, senha, codigo da aplicação e código da rotina. 
     28 5. Camada controller valida o usuário na base LDAP. {A1} 
     29 6. Camada controler recupera as informações de aplicação e ação, e valida acesso, executando o [wiki:WF/validaracesso UC Validar Acesso], conforme dados do usuário informados no SOAP. {A2} 
     30 7. Busca informações sobre a ação no banco de dados e define a classe de segurança no modo de proteção habilitado. {A3} 
     31 8. Inclui o código da classe de negócio e chama o método vinculado à ação. {A4} 
     32 9. Aplicação desenvolvida pelo cliente executa suas tarefas e retorna objeto.{A5} 
     33 10. Controler converte objeto da camada de negocios em SOAP. 
     34 9. Camada de visualização retorna SOAP para o cliente. 
     35 
     36== 5 Eventos Alternativos == 
     37 
     38 {A1}. Usuário não validado no LDAP, retorna SOPA de erro com mensagem de usuário inválido, e encerra o fluxo. {E1} 
     39 
     40 {A2}. Usuário validado não tem permissão de execução da ação, levanta erro para ser tratado pela camada de controle que retorna XML/HTML de erro, e encerra o fluxo. {E2} 
     41 
     42 {A3}. No caso da solicitação ao banco de dados retornar que a aplicação deve ser desprotegida define a classe de segurança no modo de proteção desabilitado. 
     43 
     44 {A4}. Não encontra o código da classe a ser incluída e levanta erro para ser tratado pela camada de controle que retorna, SOAP de erro, e encerra o fluxo. {E3} 
     45 
     46 {A5}. Aplicação do cliente retorna erro, para ser tratado pela camada de controle. 
     47 
     48  
     49== 6 Tratamento de Erros == 
     50 
     51 {E1}. Monta mensagem de erro "Usuário ou senha inválidos". 
     52 
     53 {E2}. Monta mensagem de erro "Ação solicitada não existe ou usuário não tem permissão de acesso". 
     54 
     55 {E3}. Monta mensagem de erro "Código da classe de negócio não foi localizado". 
     56 
     57== 7 Mensagem == 
     58 
     59Não relevante 
     60 
     61== 8 Pós-condições == 
     62 
     63SOAP enviado para o cliente. 
     64 
     65== 9 Regras de Negócio == 
     66 
     67Não relevante. 
     68 
     69== 10 Protocolos == 
     70 
     71=== 10.1 Requisição do cliente === 
     72<?xml version="1.0"?> 
     73<soap:Envelope xmlns:soap="http://expresso.pr.gov.br/applications/soap-envelope" 
     74soap:encodingStyle="http://expresso.pr.gov.br/applications/soap-encoding"> 
     75 
     76<soap:Header> 
     77   <login:Validate xmlns:login="http://expresso.pr.gov.br/applications/login"> 
     78      <login:user_name></login:user_name> 
     79      <login:user_passwd></login:user_passwd> 
     80   </login:Validate> 
     81   <login:Action xmlns:login="http://expresso.pr.gov.br/applications/login"> 
     82      <login:application></login:aplication> 
     83      <login:action></login:action> 
     84   <login:Action> 
     85</soap:Header> 
     86<soap:Body> 
     87 <!-- Incluir XML contendo as informações a serem enviada para sere processadas --> 
     88</soap:Body> 
     89</soap:Envelope> 
     90 
     91=== 10.2 Resposta do servidor === 
     92<?xml version="1.0"?> 
     93<soap:Envelope xmlns:soap="http://expresso.pr.gov.br/applications/soap-envelope" 
     94soap:encodingStyle="http://expresso.pr.gov.br/applications/soap-encoding"> 
     95 
     96<soap:Body> 
     97 <!-- Incluir XML que representa a serialização do objeto de negocios --> 
     98</soap:Body> 
     99</soap:Envelope> 
     100 
     101 
     102 
     103Não relevante. 
     104 
     105== 11 Notas ==