jcompany Service Capítulo Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST - O padrão JAX-RS e o jcompany Service

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

Download "jcompany Service Capítulo Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST - O padrão JAX-RS e o jcompany Service"

Transcrição

1 A1RESTful com JAX-RS e jcompany Service Capítulo 26 Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST Os RESTful Services, de certa maneira, foram a resposta dos programadores mais pragmáticos ao crescimento da indústria de Web-Services em torno de complexidades questionáveis. O aumento da complexidade a partir da exigência de um envelope SOAP adicional ao HTTP, servidores UDDI para busca de serviço, contratos WSDL, padrões para segurança (WS-Security), dentre outros, levantaram uma questão fundamental: precisamos mesmo de tudo isso para acessar serviços programaticamente via Web? Não seria possível obter os mesmos benefícios, somente a partir do bom uso das práticas HTTP já disponíveis? A esta simplificação, alguns autores inclusive denominaram de arquitetura ROA (RESTful Oriented Architecture) em contraposição ao SOA, bastante associado tecnicamente aos "grandes Web-Services". E este questionamento recebeu bastante receptividade no mercado: uso do SSL simplesmente para criptografia de senhas; uso dos motores de busca (Google, Yahoo!, MSN) para buscar serviços REST em lugar do UDDI; uso mais diligente de métodos (POST, GET, PUT, etc.) e códigos de resposta do HTTP em lugar de extensões SOAP; dentre outros, se mostraram estratégias eficazes para a grande maioria das situações, ao ponto de hoje a maior parte dos sites que disponibilizam serviço fazê-lo nas duas modalidades: em "Web-Services" e "RESTful Services". - REST A Transferência de Estado Representacional (Representational State Transfer) ou somente (REST) são serviços sem estado (stateless) e arquiteturas que fazem uso da semântica e do conteúdo de uma URL ou URI, para identificar um determinado recurso da aplicação. Em sistemas REST, os recursos são manipulados através da troca de representações do recurso. Ex.: " Neste exemplo, através desta URL estamos definindo padrões que serão utilizados para mapear nossas ações e recursos a serem obtidos. É fácil entender como ela funciona: identificamos nossa chave primária (object-id) com o texto entre parênteses "(1)" ao final da URI e o nome da colaboração como "funcionariomdt". Poderíamos alterar a chamada para um serviço que retorne uma coleção de objetos definidos em "funcionariomdt" simplesmente com a omissão da chave primária. Mais adiante neste capítulo utilizaremos o jcompany Service para demonstrar todas as principais operações possíveis. A URI é uma maneira uniforme de identificar recursos e o HTTP é o meio utilizado para manipular estes recursos. Como as URIs são únicas, ganhamos uma busca otimizada que, de forma simples, nos permite recuperar diversas representações de dados (advindos de agregações de entidades ou JPA-QL sobre elas), em diversos formatos (XML, JSON, etc) parametrizáveis. Grande parte deste mecanismo é suportado pelo padrão Java EE 6 JAX-RS, utilizado pelo jcompany. - O padrão JAX-RS e o jcompany Service O jcompany Developer Suite implementa o padrão JAX-RS reutilizando sua implementação de referência, o jboss RESTEasy. Mas vai além desta especificação ao prover uma API simples para utilização de serviços REST integrados aos seus padrões de caso de uso, que proveem operações de CRUD de forma simples, mesmo para agregações complexas de entidades. Ou seja, além de simplesmente permitir a utilização de um serviço REST através da implementação de referência jboss RESTEasy, o jcompany generaliza diversos serviços ao ponto de dispensar programação do serviço em si para diversos casos em que informações de metadados já definidas em casos de uso padrões existentes são reutilizadas.

2 RESTful com JAX-RS e jcompany Service Para estas generalizações, as diferentes operações de CRUD são ativadas em conformidade com comandos do protocolo HTTP, conforme a Figura G26.1 abaixo: Figura G26.1. Métodos HTTP. Serviços adicionais específicos podem também ser criados de forma altamente produtiva e evoluída, através de recomendações de arquitetura pré-implementadas no jcompany Service. * - Configurando o suporte a REST com JAX-RS no jcompany Para começarmos a utilizar o padrão JAX-RS, devemos realizar algumas poucas configurações no arquivo "web.xml", muitas inclusive geradas automaticamente por constarem em templates INI do jcompany. O padrão é para prover a funcionalidade REST em resposta às URLs que tenham o trecho /soa/*. Estas configurações estão detalhadas na Figura G26.2 e na Figura G26.3. Figura G26.2. Configurações para o funcionamento do REST. #1. Configuração necessária para que um Servlet específico nomeado como "Resteasy" intercepte URLs com token "/soa/" presente e as delega para serem atendidas por classes genéricas de controle do jcompany. Figura G26.3. Parâmetros para o funcionamento de RESTServices no web.xml do projeto "rhtutorial". #1. Parâmetro que, ao assumir o valor "true", ativa a funcionalidade de busca automatizada por classes anotadas para atender a serviços RESTFul, estejam elas no projeto ou no jcompany em si (genéricas). #2. Parâmetro que permite a execução de rotinas de segurança na trâmite das informações. #3. Parâmetro que define o prefixo da url de acesso ao serviço RESTFul, por padrão será usado "/soa". * O Java possui uma JSR que define a API para comunicação de aplicações Web através de REST Web Services. Essa API é descrita na JSR 311 (JAX-RS e o jcompany utiliza a implementação RESTEasy da jboss ( para implementá-la.

3 Capítulo G26 Por fim, para induzir o jcompany a empacotar os frameworks de base que implementam os serviços RESTFul, deve-se configurar o arquivo pom.xml do projeto incluindo a dependência do componente (artifactid) "jcompany_service". A Figura G26.4 mostra a dependência inserida no arquivo. Figura G26.4. Tags com as dependências do "jcompany_service" no arquivo "pom.xml" da aplicação. #1. Declaração de "dependency" do Maven, do projeto "rhtutorial" para o framework "jcompany_service", instalado no repositório Maven abaixo de "powerlogic.jcompany". Visão Geral do jcompany Service - Entendendo a demanda de negócio Vamos supor que nossa aplicação "rhtutorial" comece a ser demandada para possibilitar acesso por diversos dispositivos móveis que não necessariamente operam com Browser. E também para que outros sistemas agora possam realizar operações completas de "inclusão, alteração, exclusão e consulta" de funcionários (em uma arquitetura conhecida como B2B), tal como já fazemos em um Browser (arquitetura B2C). Uma alternativa seria expandir o nosso "Web-Service" do capítulo anterior para possibilitar não somente a consulta de algumas informações, mas também a inclusão, alteração e exclusão de todos os funcionários, seus endereços, históricos profissionais e dependentes. Mas isso seria bem mais trabalhoso que a abordagem que iremos utilizar via JAX-RS no jcompany Service. - Entendendo a arquitetura do jcompany Service Para executar as funções CRUD já citadas, necessitamos de uma classe de "Controle" e uma de "Conversor", respectivamente objetos que interceptam/controlam a execução dos métodos recebidos através do REST e formatam os dados para devolvê-los ao requerente (Browser ou Aplicação). Para identificar as classes de Controle e Conversor de uma aplicação, O jcompany Service faz uso do padrão CDI *, tornando a criação dos mesmos mais fácil e padronizada - sem necessitar de nenhuma configuração de XML e fazendo uso de técnicas de "Convenção sobre a Configuração". - Entendendo a implementação de Controle no jcompany Service Consegue-se uma implementação de Controle apenas estendendo a classe base "PlcBaseControle.java" e/ou implementando diretamente a interface "IPlcController.java". A Figura G26.5 mostra a interface "IPlcController.java". Figura G26.5. Interface "IPlcController.java". * Contexts and Dependency Injection, JSR-299.

4 RESTful com JAX-RS e jcompany Service #1. HTTP GET - utiliza-se /soa/service/[controle](identificador) - dispara o método "public void recupera (I identificadorentidade);" e é utilizado para recuperar uma informação de acordo com a URI e o identificador. #2. HTTP POST - utiliza-se /soa/service/[controle] - invoca o método "public void inclui();" e é utilizado para adicionar uma informação. #3. HTTP PUT - utiliza-se /soa/service/[controle](identificador) - invoca o método "public void put();" e é utilizado para alterar uma informação. #4. HTTP DELETE - utiliza-se /soa/service/[controle](identificador) - invoca o método "public void exclui();" e é utilizado para remover logicamente uma entidade. #5. HTTP GET - utiliza-se /soa/service/[controle] - dispara o método "public void recuperacolecao();" e é utilizado para recuperar a coleção de acordo com a URI. A classe de implementação deve possuir a que a qualifica para o CDI como um controlador de serviços REST. Outra anotação associa este controle com a URL que ele atenderá. Ela é informada através da que pode ser vista na Figura G26.6: Figura G26.6. Exemplo da anotação "@QPlcControllerName". Se nenhum nome for informado, o nome do controle passa a ser o mesmo da classe, sem o prefixo Controle conforme pode ser vista na Figura G26.7: Figura G26.7. Exemplo de classe sem a anotação "@QPlcControllerName". Para dar mais flexibilidade e possibilitar agrupar controles em um mesmo grupo, existe ainda uma que possibilita a adição de um qualificador ou extensão à URI. Este qualificador pode ser genérico ou específico. A Figura G26.8 mostra a anotação na classe "FuncionarioGridController.java".

5 Capítulo G26 Figura G26.8. Exemplo de classe com a anotação "@QPlcControllerQualifier ". É possível definir um qualificador genérico para todas as requisições, informando uma classe que atenda a todas as requisições, apenas adicionando um qualificador com caractere coringa * conforme mostra a Figura G26.9. Figura G26.9. Exemplo de classe com qualificador genérico "*".

6 RESTful com JAX-RS e jcompany Service - Entendendo o Conversor de dados no jcompany Service Após a execução da classe de Controle, o resultado deve ser enviado para a requisição em um formato específico, e este formato é determinado pela própria requisição. O protocolo HTTP define um cabeçalho ACCEPT, para informar qual o retorno esperado da requisição, o que permite que um mesmo controle retorne o resultado em formatos distintos, XML, JSON, ou outro qualquer esperado pelo usuário. A implementação de um conversor pode ser feita através de uma classe simples que estende a classe de base "PlcBaseConversor.java" e/ou que implementa diretamente a interface "IPlcConversor.java". Tal como no caso da classe de Controle, esta classe também deve possuir a que determina o estereótipo de Conversor, de modo que o jcompany possa identificar e disponibilizar essas classes para agir junto às de controle para finalizar a requisição. A Figura G26.10 mostra a interface "IPlcConversor.java". Figura G Interface "IPlcConversor.java". Para especificar o formato de dados que o conversor consome e produz na requisição, deve-se definir na classe a Se não for definida nenhuma anotação, o jcompany assumirá o valor padrão */*, que torna o Conversor em questão genérico para toda requisição com formato não especificado. A Figura G26.11 mostra esta anotação, especificando o consumo de dados genéricos. Figura G Exemplo de especificação de dados consumidos pelo conversor genéricos (*/*). Como funciona a localização de um conversor para atender a uma requisição REST? Para a identificação de um conversor, o jcompany inspeciona a hierarquia de herança do conversor em busca de uma declaração de Generics que determine a quais tipos de Controle o Conversor se aplica. A classe da Figura

7 Capítulo G26 G26.12, por exemplo, mostra um Conversor que responde a requisições para o controlador GridControle, onde para qualquer tipo de retorno */* será gerado um JSON de resposta. A Figura G26.12 mostra a anotação especificando o consumo de dados JSON. Figura G Exemplo de especificação de dados com retorno em JSON. Serviço CRUD/REST genérico com jcompany Service - Entendendo as classes de controle genéricas do jcompany Service O jcompany já disponibiliza classes de Controle genéricas que implementam um serviço REST com todas as operações de CRUD já prontas para uso. Esta classe é parcialmente ilustrada na Figura G26.13, e utiliza conversores que utilizam o formato XML Atom para a transferência de dados. Figura G Implementação de controle genérica disponível para uso no jcompany Service. - Entendendo o protocolo Atom Publishing O protocolo Atom e sua extensão conhecida como Atom Publishing definem um formato bastante popular na Web, utilizado por grandes provedores como Google e Amazon para trabalhar com dados complexos. Ele é assim definido por seus criadores: "O Atom Publishing Protocol é um protocolo de nível de aplicativo para publicar e editar recursos da Web usando HTTP [RFC2616] e XML 1.0 [W3C.REC-xml ]. O protocolo suporta a criação de quaisquer recursos web oferecendo facilidades especialmente refinadas para: * Coleções: conjuntos de recursos que podem ser recuperados no todo ou em parte. * Introspecção: Descobrir e descrever coleções. * Edição: criar, atualizar e excluir recursos."

8 RESTful com JAX-RS e jcompany Service O jcompany também utiliza este formato para trafegar com informações obtidas de Agregações de Entidades, que podem inclusive possuir organizações Mestre-Detalhe como as que vimos neste livro, para Funcionários, Dependentes e Histórico Funcional. No jcompany, os dados das entidades em si são fornecidos como um entry do Atom/Publishing e os demais campos padrões são utilizados conforme requerido pelo protocolo, que não difere de outras Markup Languages tradicionais, contendo cabeçalhos, títulos e corpo. - Configurando o acesso via RESTClient Agora que o projeto rhtutorial está configurado para aceitar RESTful Services, já podemos experimentar a disponibilidade de nossos serviços REST genéricos. Vamos acessar a agregação definida no caso de uso "Manter Funcionário" que construímos em capítulos anteriores. Para tanto, basta dispararmos uma URL com o seguinte padrão: ' do projeto]/soa/service/[nome do caso de uso]'. Para melhorar nosso entendimento das mensagens REST enviadas - principalmente do formato dos dados enviados e recebidos - precisaremos utilizar alguma ferramenta de "cliente" que nos permita realizar simulações de acesso dinamicamente, em mais baixo nível que no Browser. Este tipo de ferramenta conhecido como RESTClient exibe a anatomia completa de mensagens do protocolo Atom, possibilitando ainda fazermos a edição manual de novas mensagens e submissões de PUT, DELETE ou POST que realizam alterações na camada modelo. Note que não conseguiríamos fazer testes no Browser destas operações, sem termos que programar um aplicativo. Portanto usaremos um RESTClient que é um complemento do Firefox, ferramenta que tem alguns destaques com relação a outras disponíveis *. Para obter acesso a esta ferramenta entre na página de complementos do Mozilla e a instale ( A Figura G26.14 nos mostra a ferramenta RESTClient, bem como uma noção de sua usabilidade. Figura G Console do RESTClient #1. O método "HTTP" que será usado. #2. URL de acesso ao serviço. #3. Cabeçalho da requisição. * Para usuários que não utilizam o browser Firefox é recomendado o uso da ferramenta RESTclient desktop que é encontrada na instalação do jcompany. Esta ferramenta pode obtida em: "[diretorio_base]\ferramentas\restclient\restclient.bat"

9 Capítulo G26 #4. Área de input de XML de acordo com o método estabelecido. #5. Área que mostra ao desenvolvedor os dados do serviço estabelecido. #6. Área que retorna o XML requisitado. #7. Área que retorna o XML requisitado, usando a tecnologia Syntax Highlight. Essa tecnologia mostra códigos fontes em cores e fontes diferentes, sendo organizada de acordo com a categoria de cada termo. - Testando os RESTful Services genéricos para CRUD - seleção e edição de funcionários Agora vamos testar o uso de RESTful Services para o caso de uso "Funcionario", utilizando as quatro operações básicas de aplicações Data-Centric (CRUD), com seus comandos HTTP correspondentes: operações de recuperação ou pesquisa/edição (HTTP GET), alteração (HTTP PUT), inclusão (HTTP POST) e exclusão (HTTP DELETE). Vamos começar obtendo uma lista de entidades "Funcionario" do projeto rhtutorial, em XML Atom/Publishing. Para obter uma primeira relação padrão destas entidades, o principal segredo é montar corretamente a URL, no padrão REST e com o identificador da colaboração "funcionariomdt". Esta única informação ao final é suficiente para possibilitar ao jcompany obter as demais informações dos metadados (anotações) deste Caso de Uso Padrão e conceber todo o resto. A URL para a aplicação "rhtutorial" rodando localmente fica assim: ' Após montada devemos digitá-la no RESTClient escolhendo o método GET e submetendo para o servidor. No caso do RESTClient do Firefox, clique no botão "Send". A Figura G26.15 mostra a lista de entidades "Funcionario" em formato XML Atom/Publishing, retornada da submissão. Figura G Retorno das entidades em XML Atom/Publishing através de um método HTTP GET. Obs.: O XML resultante não vem formatado nesta ferramenta de RESTClient. É aconselhável que o desenvolvedor iniciante em Atom/Publishing o edite no Eclipse e utilize "Ctrl+I" para endentar o arquivo e melhor compreendê-lo. Note que, como trabalhamos com reuso de configurações de metadados para caso de uso padrão ("Funcionario"), não tivemos que desenvolver mais nenhuma classe, seja de controle, modelo, persistência (DAO) ou entidades, para obter um resultado de pesquisa REST! Isso porque o jcompany Service é inteligente o suficiente para reutilizar estas configurações e classes para produzir um resultado inicial válido. Caso acessemos o console do Eclipse poderemos notar que o serviço estabelecido acima utiliza a namedquery "querysel" do JPA e/ou Hibernate para estabelecer a recuperação dos dados, sem passar

10 RESTful com JAX-RS e jcompany Service nenhum argumento (pois nenhum foi informado na URL). A Figura G26.16 mostra o SQL resultante da requisição acima. Figura G Query obtida através do método GET. Importante: Note que o jcompany Service reconhece padrões fortes do jcompany como o de "exclusão lógica" implementado pela propriedade "sithistoricoplc". Portanto, o HQL somente traz "funcionários ativos", desprezando os excluídos logicamente (como desejável na maior parte dos casos). Agora que já temos uma relação, vamos recuperar uma entidade específica Fulano de Tal, que aparece em nossa listagem anterior (simulando uma "seleção para edição" de uma ficha de funcionário). Para tanto siga os mesmos passos descritos para o comando anterior, somente acrescentando ao final da URL o Object-Id (valor numérico do "id") da entidade, entre parênteses. A Figura G26.17 mostra o retorno em XML Atom/Publishing, de todos os dados entidade especificamente informada. Figura G Retorno de uma entidade especifica de "Funcionario". O serviço estabelecido acima utilizou a namedquery "queryman" do JPA/Hibernate. Esta Query, além de recuperar os dados do funcionário em si, recupera todos os demais de sua agregação, como os dados dos componentes (Endereco) e de composições (detalhes) que não estejam marcados como "por demanda" na configuração do caso de uso. A Figura G26.18 mostra parte do SQL produzido pela requisição acima.

11 Capítulo G26 Figura G SQL produzido pela edição de uma instância especifica da entidade "Funcionario". - Testando os RESTful Services genéricos para CRUD - inclusão de funcionários Até agora trabalhamos com consultas. O próximo grande passo será a utilização do RESTful Services para incluir um novo registro de "Funcionario" com o nome Adolfo. Para tal monte no campo Request Body do RestClient o XML Atom/Publishing contendo os dados da entidade. O XML retornado na edição ajuda nesta operação. Copie um funcionário aleatório e somente troque seu nome e retire o "id". Abaixo um exemplo do XML no formato Atom, utilizado pelo jcompany_service, na manutenção. O formato do XML segue o padrão Atom, onde o conteúdo do "Entry" é formado pelos dados da entidade. Ele pode ser visto no trecho de Código G26.1: <?xml version="1.0" encoding="utf-8" standalone="yes"?> <entry xmlns=" <content type="application/xml"> <com.empresa.rhtutorial.entidade.funcionario.funcionarioentity xmlns:ns3=" <versao>1</versao>... <unidadeorganizacional> <id>8</id> </unidadeorganizacional>... </com.empresa.rhtutorial.entidade.funcionario.funcionarioentity> </content> </entry> Código G26.1. Formato do XML Atom para envio de dados. Com o XML corretamente montado, selecione o método POST e clique em Send para disparar a requisição de inclusão. A Figura G26.19 mostra o resultado retornado de uma inclusão feita com sucesso.

12 RESTful com JAX-RS e jcompany Service Figura G Inclusão com sucesso de um registro de "Funcionario". Agora vamos acessar o console do Eclipse novamente para verificar o SQL de atualização. Os comandos SQL gerados pelo JPA/Hibernate realizam a verificação de dependências (integridade referencial) e do negócio (integridade de identidade, definida em namedqueries "naodeveexistir) e, por fim, a inclusão de dados da agregação de funcionário. Conforme o SGBD-R em uso podem também surgir comandos SQL voltados para a a obtenção automática do Object-Id (chave primária definida na propriedade "id"). Tudo isso é ilustrado na Figura G Figura G SQL produzidos para inclusão de um "Funcionario". - Testando os RESTful Services genéricos para CRUD - alteração de funcionários Prosseguindo com nossas operações CRUD, iremos agora atualizar o registro inserido acima. Defina no campo "Request Body" o XML Atom/Publishing contendo os dados para atualização, de forma análoga caso de inclusão, porém agora com o cuidado de utilizar o Object-Id (tag "<id>") e também a última versão da entidade (tag "<versao>"), já que o jcompany utiliza o controle de "concorrência otimista" utilizando este atributo, conforme recomendado pelo JPA/Hibernate. A Figura G26.21 mostra o retorno de uma atualização bem sucedida:

13 Capítulo G26 Figura G Resultado da atualização bem-sucedida de um "Funcionario". O comando SQL gerado para atualização de funcionário pode ser vista na Figura G Obs.: Note que, tal como em todos os demais casos, os comandos utilizam "Prepared Statements" devidamente, evitando de misturar argumentos (representados por "?") com comandos SQL. Além disso, todas as atualizações e exclusões são também acompanhadas de um teste de versão, para garantir que o registro não tenha sido alterado por outra pessoa, entre o momento que foi recuperado e o que está sendo atualizado. Estas são algumas das boas práticas de JPA/Hibernate, genericamente estimuladas pelo jcompany. Figura G SQL de atualização de "Funcionario", com teste de identificação e versão (concorrência). - Testando os RESTful Services genéricos para CRUD - exclusão de funcionários O processo de exclusão de entidades é semelhante ao de alteração, porém utilizando o comando DELETE do HTTP. Após montar no Request Body do RESTClient o XML Atom/Publishing contendo Object-Id e versão da entidade na URL, selecione o método DELETE e clique em Send para enviar a requisição de exclusão. A Figura G26.23 mostra um exemplo de Delete.

14 RESTful com JAX-RS e jcompany Service Figura G Remoção de um "Funcionario" via jcompany Service. A console do Tomcat no Eclipse vai nos mostrar agora os SQLs utilizados para exclusão, que englobam também os SQLs de verificação (de toda a agregação). A Figura G26.24 mostra o console. Figura G Query de remoção de um "Funcionario". Importante: note que, muito embora os metadados do caso de uso padrão Funcionário definam o uso de "exclusão lógica" (ou seja, alterar sithistoricoplc para "A", em lugar de excluir fisicamente cada registro), nossa operação REST realizou uma exclusão física. Este comportamento dá mais controle à aplicação de cliente (que neste caso é agnóstica), para que realize exclusões lógicas (com comandos de alteração) e físicas se for preciso.

15 Capítulo G26 Padrões de Programação do jcompany Service - Programações de negócio em serviço REST. Em aplicações reais, apenas as operações de cadastro básico não seriam suficientes para se disponibilizar serviços úteis para os usuários. Felizmente, as regras de negócio programadas nas camadas de modelo para a agregação de funcionário, normalmente codificadas em "FuncionarioRepository" e/ou 'FuncionarioEntity", bem como serviços de DAO complementares em "FuncionarioDAO", serão todas executadas normalmente, tal como ocorrem nas manutenções Web padrões. Alguma variação de comportamento das regras de negócio, portanto, que deva atender somente a serviços REST, deve receber informações adicionais a partir da interceptação da camada de controle, esta sim diferente para cada caso. - Programações de controle e validação variante em serviço REST. A camada controle para serviços REST, como vimos, é inteiramente distinta da camada controle "convencional" do jcompany, baseada em classes de MB e padrão JSF. Não há acoplamento de tecnologia JSF nos controles JAX-RS, o que exatamente lhes tornam flexíveis para funcionar com qualquer cliente desejado. Felizmente, como vimos na introdução (e tal como ocorre no restante do jcompany FS Framework), a arquitetura concebida para o Controle REST permite o reuso total de generalizações mas também permite sua especialização "por exceção", com total flexibilidade para o desenvolvedor. Neste tópico, vamos realizar uma validação variante fictícia apenas para testar o mecanismo de tratamento de exceções via JAX-RS e Atom Publishing. Vamos também incluir algumas mensagens de logging em pontos chave de extensão, para ilustrar outras formas de especializações típicas. Importante: As validações invariantes (definidas nas Entidades, em nível de domínio) são disparadas genericamente pelo jcompany na camada modelo, independentemente da origem da requisição (se for "Web convencional" ou "REST") - e serão melhor discutidas mais abaixo. Nesta seção, vamos ilustrar uma validação "variante", supondo que seja necessária somente nas requisições REST, em um exemplo um tanto forçado mas útil para nosso propósito: "Não é permitido incluir funcionário com curso superior em operações B2B". Para estas validações ou quaisquer outras variações de comportamento específicas para requisições REST, devemos criar uma classe de Controle específica. Em nosso caso, ela deve ser chamada "FuncionarioController" (pode ter qualquer nome, mas as convenções facilitam a manutenção). Conforme explicamos no início do capítulo, deve ainda estender a classe "PlcBaseController" se for preciso implementar apenas códigos complementares. Codifique a regra acima nesta classe, conforme ilustra a Figura G Figura G Classe de controle que implementa a validação descrita acima. As estruturas principais desta classe já foram explicadas no início deste capítulo. Outro ponto de novidade é a obtenção da agregação a partir de sua entidade Raiz, via "getentity()" - Verificando exceções do jcompany Service no RESTClient Sejam exceções disparadas por validações invariantes, sejam programadas como na seção anterior, requisições com método "PUT" ou "POST" no RESTClient serão retornadas de modo homogêneo.

16 RESTful com JAX-RS e jcompany Service Teste o retorno provocando a exceção acima, com a inserção de valores de CPF ou inválidos (invariantes definidas por anotação na entidade Funcionario) ou mesmo burlando uma integridade de dados anotada com namedquery "naodeveexistircpfduplicado". Em quaisquer dos casos, a exceção será retornada de modo similar como apresentado na Figura G26.26, para uma validação de CPF duplicado. Figura G Exceção controlada, provocada por validação a partir de método "POST". Com este padrão homogêneo, uma aplicação de cliente genérica (Swing, Flex,.NET, Mobile, etc.) tem como receber e tratar exceções como desejar, enviando uma mensagem para o usuário ou realizando algum outro procedimento desejado. - Utilizando formato JSON e outros pontos de especialização do jcompany Service Vimos que o jcompany Service preserva as funcionalidades de negócio e validações invariantes e permite programação de regras de validação invariantes. Porém, outras regras de controle são possíveis para cenários diversos. Vamos exemplificá-las simulando a implementação de um serviço REST para funcionamento com um componente de "Grid". Este componente é disponibilizado em Javascript e funciona no padrão RIA, comunicando via REST com o servidor. Ele pode enviar argumentos para filtrar a recuperação da lista de entidades a serem exibidos na tabela do Grid, o que pode exigir outras lógicas de programação complementares de nossa parte, em casos mais complexos. Além disso, este componente envia e recebe dados em formato JSON, e não mais em XML Atom/Publishing, o que exigirá também algumas outras configurações de nossa parte. Para este exemplo, reutilizaremos a mesma classe de controle "FuncionarioController", mas seria possível fazê-lo em outra classe à parte, bastando que anotássemos o qualificador apropriadamente. Implemente os demais códigos conforme a Figura G26.27.

17 Capítulo G26 Figura G Classe "FuncionarioController.java" #1. Anotação de estereótipo informando que a classe é um controle. #2. Anotação de qualificador informando que no nome do controle é "funcionariomdt". #3. A classe criada deve estender "PlcBaseDynamicController". #4. Note que foi utilizado um ponto de especialização padrão que contém a validação de "Não é possível incluir funcionário com curso superior". Com esta demanda implantada já temos um serviços REST servindo JSON, formato que atende aos componentes de Grid' típicos encontrados no mercado, conforme vemos na Figura G26.28: Figura G Retorno de serviço REST em formato JSON. #1. Nome do controle é "funcionariomdt" que corresponde à manutenção de funcionário. #2. Tipo do conversor de dados utilizado pelo controle. #3. A requisição retorna todos os dados das entidades em JSON, formato tipicamente utilizados por componentes de Grid como o "jqgrid" homologado no jcompany. A geração da coleção de entidades no formato JSON para ser consumido pelo componente "Grid", pode ser feita apenas criando um conversor que herda da classe do JCompany que já da suporte a este tipo de geração. A Figura G26.29 mostra a classe "FuncionarioGridConversor" citada acima:

18 RESTful com JAX-RS e jcompany Service Figura G Retorno de serviço REST em formato JSON. Aplicações Cliente para Consumo de Serviços REST - Portando o Web-Services do capítulo anterior para REST Agora que já vimos como é altamente produtivo disponibilizar serviços completos de CRUDS (incluindo Search) no jcompany Service para grafos de entidades padrões, vejamos qual é o esforço para consumirmos estes serviços. Para melhorar nosso entendimento de RESTful Services em comparação com Web Services SOAP, vamos reimplementar exatamente o mesmo serviço do capítulo anterior, para que possa ser servido alternativamente via REST (aliás, prover acesso via ambos os padrões é uma prática muito comum nos provedores atuais). - Testando o novo serviço Note que já inserimos, no exemplo anterior, dois métodos na classe "FuncionarioController" para validar e permitir o uso do campo "CPF" como parâmetro de pesquisa, antecipando a nossa demanda para este tópico. Portanto, para simular a pesquisa basta digitar o CPF na URL, utilizando o RESTClient. A Figura G26.30 mostra a URL e o retorno da pesquisa em formato JSON. Figura G Retorno das entidades através do uso do parâmetro "CPF". #1. URL de requisição "normal". #2. Foi adicionado o parâmetro "?cpf= " para fazer a requisição conforme planejado em nosso serviço.

19 Capítulo G26 #3. A requisição do serviço prestado é retornada em JSON. - Criando a aplicação de consumo Com o serviço devidamente testado, vamos agora à criação em si da aplicação de consumo deste serviço. Note que nada impede que a aplicação cliente seja outra aplicação Java EE, consumindo o serviço em uma anotomia "server-to-server" ou "business-to-business" (B2B). Mas uma das vantagens dos RESTFul Services é a facilidade para se consumir estes serviços diretamente de "clientes finais ou Browsers", via rotinas Javascript bastante simples, como será nosso exemplo. 1. Crie um item de chamada de menu no arquivo "geralmenu.xhtml" e o arquivo XHTML para conter o formulário, com nome "buscafuncionario.xhtml". Obs.: Estes arquivos seguem as práticas semelhantes às que usamos no caso de uso "funcionário" e que, portanto não serão detalhadas nesta documentação. A Figura G26.31 mostra o arquivo "geralmenu.xhtml" enquanto a Figura G26.32 mostra o código do formulário e suas chamadas Javascript/Ajax, no arquivo "buscafuncionario.xhtml". Figura G Arquivo "geralmenu.xhtml" com as configurações de "Busca Funcionário". Figura G Arquivo "buscafuncionario.xhtml". #1. Criação do botão que aciona a busca através do serviço REST. #2. Elemento HTML utilizado para mostrar a resposta do serviço REST. #3. Criação da função JavaScript "buscarcpf". Essa função é disparada ao clicar no botão com o ID "Buscar CPF" #4. Recuperando o valor do campo "CPF" informando o atribuindo a uma variável local. #5. Verificação simples de uma validação de "CPF". #6. Trecho de código responsável por mostrar os dados do "Funcionario" retornado pela chamada Ajax ao serviço REST. #7. Trecho que limpa as mensagens da tela. #8. Caso não tenha encontrado resultado, mostra a seguinte mensagem: "CPF não encontrado".

20 RESTful com JAX-RS e jcompany Service #9. Especifica que a função que trata o retorno do Ajax espera um resultado no formato JSON. 2. Faça uma liberação, entre na aplicação e acesse via menu o caso de uso. A Figura G26.33 mostra o resultado obtido enquanto a Figura G26.34 e a Figura G26.35 mostram o resultado das validações criadas. Figura G Uso do RESTful para retornar um "Funcionario". Figura G Validação de "CPF não encontrado". Figura G Validação de "CPF inválido", disparada quando o campo "CPF" está vazio.

jcompany Service Capítulo Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST - O padrão JAX-RS e o jcompany Service

jcompany Service Capítulo Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST - O padrão JAX-RS e o jcompany Service A1RESTful com JAX-RS e jcompany Service Capítulo 23 Introdução aos RESTful Services via JAX-RS - Um breve histórico sobre REST Os RESTful Services, de certa maneira, foram a resposta dos programadores

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

ProJuris 8: Manual de Integração com Provedores de Recortes

ProJuris 8: Manual de Integração com Provedores de Recortes ProJuris 8: Manual de Integração com Provedores de Recortes Versão 2.0 por Gabriel Cherem agosto/2014 Motivação Pelo menos 50% de todas as sociedades de advogados no Brasil utilizam algum software para

Leia mais

Aula 03 - Projeto Java Web

Aula 03 - Projeto Java Web Aula 03 - Projeto Java Web Para criação de um projeto java web, vá em File/New. Escolha o projeto: Em seguida, na caixa Categorias selecione Java Web. Feito isso, na caixa à direita selecione Aplicação

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 com JAX-WS. Capítulo. Introdução aos Web-Services via JAX-WS. - Um breve histórico sobre Web-Services. - SOAP x REST. Provendo um Serviço

Web-Services com JAX-WS. Capítulo. Introdução aos Web-Services via JAX-WS. - Um breve histórico sobre Web-Services. - SOAP x REST. Provendo um Serviço A1Provendo e Consumindo Web-Services com JAX-WS Capítulo 22 Introdução aos Web-Services via JAX-WS - Um breve histórico sobre Web-Services Os Web-Services são uma tecnologia popular para apoiar iniciativas

Leia mais

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO Compra Direta - Guia do Fornecedor PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO Página As informações contidas neste documento, incluindo quaisquer URLs e outras possíveis referências a web sites, estão sujeitas

Leia mais

Trecho retirando do Manual do esocial Versão 1.1

Trecho retirando do Manual do esocial Versão 1.1 Trecho retirando do Manual do esocial Versão 1.1 A rotina de acesso direto ao XML do S-1000, o usuário pode encontrar na opção de cadastro de Empresas do SIP. Sempre que o usuário localizar a figura ao

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

Programando em PHP. Conceitos Básicos

Programando em PHP. Conceitos Básicos Programando em PHP www.guilhermepontes.eti.br lgapontes@gmail.com Conceitos Básicos Todo o escopo deste estudo estará voltado para a criação de sites com o uso dos diversos recursos de programação web

Leia mais

Manual do Usuário CFCWeb BA

Manual do Usuário CFCWeb BA ÍNDICE Acesso ao sistema... 2 Tela Principal... 3 Cadastro de Candidatos... 5 Agenda Teórico... 6 Agenda Prático... 7 Consulta Agendamentos do Candidato por Serviço... 9 Cadastro de Grade Horária... 10

Leia mais

Anote aqui as informações necessárias:

Anote aqui as informações necessárias: banco de mídias Anote aqui as informações necessárias: URL E-mail Senha Sumário Instruções de uso Cadastro Login Página principal Abrir arquivos Área de trabalho Refine sua pesquisa Menu superior Fazer

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

Manual Administrador - Mídia System

Manual Administrador - Mídia System Manual Administrador - Mídia System Logo após cadastrarmos sua Empresa em nosso sistema, será enviado um e-mail confirmando as informações de acesso do Administrador do sistema. Obs: Caso não tenha recebido

Leia mais

Gestão inteligente de documentos eletrônicos

Gestão inteligente de documentos eletrônicos Gestão inteligente de documentos eletrônicos MANUAL DE UTILIZAÇÃO VISÃO DE EMPRESAS VISÃO EMPRESAS - USUÁRIOS (OVERVIEW) No ELDOC, o perfil de EMPRESA refere-se aos usuários com papel operacional. São

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

Leia mais

Parte I. Demoiselle Mail

Parte I. Demoiselle Mail Parte I. Demoiselle Mail Para o envio e recebimento de e-s em aplicativos Java, a solução mais natural é usar a API JavaMail [http:// www.oracle.com/technetwork/java/java/index.html]. Ela provê um framework

Leia mais

02 - Usando o SiteMaster - Informações importantes

02 - Usando o SiteMaster - Informações importantes 01 - Apresentação do SiteMaster - News Edition O SiteMaster foi desenvolvido para ser um sistema simples de gerenciamento de notícias, instalado em seu próprio computador e com configuração simplificada,

Leia mais

Procedimentos para Reinstalação do Sisloc

Procedimentos para Reinstalação do Sisloc Procedimentos para Reinstalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Criação de backups importantes... 3 3. Reinstalação do Sisloc... 4 Passo a passo... 4 4. Instalação da base de dados Sisloc...

Leia mais

Microsoft Access XP Módulo Um

Microsoft Access XP Módulo Um Microsoft Access XP Módulo Um Neste primeiro módulo de aula do curso completo de Access XP vamos nos dedicar ao estudo de alguns termos relacionados com banco de dados e as principais novidades do novo

Leia mais

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

1.2) Na tela seguinte, o primeiro item a ser selecionado é o Unidade Acumuladora1.

1.2) Na tela seguinte, o primeiro item a ser selecionado é o Unidade Acumuladora1. MANUAL DA NOVA VERSÃO DE ARQUIVAMENTO DO CPROD Na nova versão de Arquivamento que está sendo implementada no CPROD, antes de realizarmos o Arquivamento do Processo ou Documento em si, temos que criar no

Leia mais

Acessando um Banco de Dados

Acessando um Banco de Dados Acessando um Banco de Dados Introdução Agora que você já está craque em JSP e já instalou seu servidor, vamos direto para a parte prática! Neste tutorial vamos aprender a acessar um banco de dados. Para

Leia mais

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet. 1. Descrição Geral Este manual descreve as operações disponíveis no módulo VTWEB Client, cuja finalidade é gerenciar cadastros de funcionários, realização de pedidos e controle financeiro dos pedidos.

Leia mais

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL

Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Programação Orientada a Objetos com PHP & MySQL Sistema Gerenciador de Banco de Dados: Introdução e configuração de bases de dados com Postgre e MySQL Prof. MSc. Hugo Souza Iniciando nossas aulas sobre

Leia mais

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2.

1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. 1. Introdução pág.3 2. Apresentação do sistema Joomla! pág.4 3. Acessando a administração do site pág.4 4. Artigos 4.1. Criando um Artigo 4.2. Editando um Artigo 4.3. Excluindo um Artigo 4.4. Publicar

Leia mais

MANUAL DO SISTEMA. Versão 6.04

MANUAL DO SISTEMA. Versão 6.04 MANUAL DO SISTEMA Versão 6.04 Inventário Manual...2 Relatório de contagem...2 Contagem...3 Digitação...3 Inventário Programado...6 Gerando o lote...7 Inserindo produtos manualmente no lote...8 Consultando

Leia mais

Atualizado em 9 de outubro de 2007

Atualizado em 9 de outubro de 2007 2 Nettion R Copyright 2007 by Nettion Information Security. Este material pode ser livremente reproduzido, desde que mantidas as notas de copyright e o seu conteúdo original. Envie críticas e sugestões

Leia mais

2013 GVDASA Sistemas Cheques 1

2013 GVDASA Sistemas Cheques 1 2013 GVDASA Sistemas Cheques 1 2013 GVDASA Sistemas Cheques 2 AVISO O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. Nenhuma

Leia mais

Manual do sistema SMARsa Web

Manual do sistema SMARsa Web Manual do sistema SMARsa Web Módulo Gestão de atividades RS/OS Requisição de serviço/ordem de serviço 1 Sumário INTRODUÇÃO...3 OBJETIVO...3 Bem-vindo ao sistema SMARsa WEB: Módulo gestão de atividades...4

Leia mais

Procedimentos para Instalação do Sisloc

Procedimentos para Instalação do Sisloc Procedimentos para Instalação do Sisloc Sumário: 1. Informações Gerais... 3 2. Instalação do Sisloc... 3 Passo a passo... 3 3. Instalação da base de dados Sisloc... 16 Passo a passo... 16 4. Instalação

Leia mais

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0

DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 DOCUMENTAÇÃO DO FRAMEWORK - versão 2.0 Índice 1 - Objetivo 2 - Descrição do ambiente 2.1. Tecnologias utilizadas 2.2. Estrutura de pastas 2.3. Bibliotecas já incluídas 3 - Características gerais 4 - Criando

Leia mais

MANUAL C R M ÍNDICE. Sobre o módulo de CRM... 2. 1 Definindo a Campanha... 3

MANUAL C R M ÍNDICE. Sobre o módulo de CRM... 2. 1 Definindo a Campanha... 3 ÍNDICE Sobre o módulo de CRM... 2 1 Definindo a Campanha... 3 1.1 Incluir uma campanha... 3 1.2 Alterar uma campanha... 4 1.3 Excluir... 4 1.4 Procurar... 4 2 Definindo os clientes para a campanha... 4

Leia mais

MANUAL DO PVP SUMÁRIO

MANUAL DO PVP SUMÁRIO Manual PVP - Professores SUMÁRIO 1 INTRODUÇÃO... 6 2 ACESSANDO O PVP... 8 3 TELA PRINCIPAL... 10 3.1 USUÁRIO... 10 3.2 INICIAL/PARAR... 10 3.3 RELATÓRIO... 10 3.4 INSTITUIÇÕES... 11 3.5 CONFIGURAR... 11

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

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1

MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento. Toledo PR. Versão 2.0 - Atualização 26/01/2009 Depto de TI - FASUL Página 1 MANUAL DO USUÁRIO SORE Sistema Online de Reservas de Equipamento Toledo PR Página 1 INDICE 1. O QUE É O SORE...3 2. COMO ACESSAR O SORE... 4 2.1. Obtendo um Usuário e Senha... 4 2.2. Acessando o SORE pelo

Leia mais

UNIVERSIDADE FEDERAL DO AMAPÁ NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO. Manual de Avaliação de Desempenho Cadastro

UNIVERSIDADE FEDERAL DO AMAPÁ NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO. Manual de Avaliação de Desempenho Cadastro UNIVERSIDADE FEDERAL DO AMAPÁ NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO Manual de Avaliação de Desempenho Cadastro UNIFAP MACAPÁ-AP 2013 S U M Á R I O 1 Tela de Login...2 2 Acessando ao submenu cadastro de avaliaçã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

Procedimentos para Instalação do SISLOC

Procedimentos para Instalação do SISLOC Procedimentos para Instalação do SISLOC Sumário 1. Informações Gerais...3 2. Instalação do SISLOC...3 Passo a passo...3 3. Instalação da Base de Dados SISLOC... 11 Passo a passo... 11 4. Instalação de

Leia mais

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet

Manual do Contribuidor. Portal de Internet. Projeto: Novo Portal de internet Manual do Contribuidor Portal de Internet Projeto: Novo Portal de internet 1. Propósito Este documento tem o propósito de orientar usuários a utilizar as funcionalidades do portal do Inea no modo de contribuição.

Leia mais

INTRODUÇÃO À TECNOLOGIA SERVLETS

INTRODUÇÃO À TECNOLOGIA SERVLETS PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB INTRODUÇÃO À TECNOLOGIA SERVLETS Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o conceito aplicações orientada a serviços via web Apresentar o papel dos contentores

Leia mais

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira

Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira Plano de Carreira Sistema de Apoio à Gestão de Planos de Carreira Manual do Usuário Página1 Sumário 1 Configurações Recomendadas... 4 2 Objetivos... 4 3 Acesso ao Sistema... 5 3.1. Acessar 6 3.2. Primeiro

Leia mais

Versão Liberada. www.gerpos.com.br. Gerpos Sistemas Ltda. info@gerpos.com.br. Av. Jones dos Santos Neves, nº 160/174

Versão Liberada. www.gerpos.com.br. Gerpos Sistemas Ltda. info@gerpos.com.br. Av. Jones dos Santos Neves, nº 160/174 Versão Liberada A Gerpos comunica a seus clientes que nova versão do aplicativo Gerpos Retaguarda, contendo as rotinas para emissão da Nota Fiscal Eletrônica, já está disponível. A atualização da versão

Leia mais

2 Diagrama de Caso de Uso

2 Diagrama de Caso de Uso Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Diagrama de Caso de Uso (Use Case) Autoria:Aristófanes Corrêa

Leia mais

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1

Despachante Express - Software para o despachante documentalista veicular DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 DESPACHANTE EXPRESS MANUAL DO USUÁRIO VERSÃO 1.1 1 Sumário 1 - Instalação Normal do Despachante Express... 3 2 - Instalação do Despachante Express em Rede... 5 3 - Registrando o Despachante Express...

Leia mais

Lição 1 - Criação de campos calculados em consultas

Lição 1 - Criação de campos calculados em consultas 1 de 5 21-08-2011 22:15 Lição 1 - Criação de campos calculados em consultas Adição de Colunas com Valores Calculados: Vamos, inicialmente, relembrar, rapidamente alguns conceitos básicos sobre Consultas

Leia mais

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software

MANUAL DO ANIMAIL 1.0.0.1142 Terti Software O Animail é um software para criar campanhas de envio de email (email Marketing). Você pode criar diversas campanhas para públicos diferenciados. Tela Principal do sistema Para melhor apresentar o sistema,

Leia mais

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo Manual de utilização do sistema OTRS (Atendimento) Cliente Externo 1 LISTA DE ILUSTRAÇÕES FIGURA 1 - TELA DE LOGIN... 5 FIGURA 2 - TELA INICIAL... 6 FIGURA 3 PREFERÊNCIAS DO USUÁRIO... 6 FIGURA 4 NOVO

Leia mais

Ministério da Cultura

Ministério da Cultura Ministério da Cultura MANUAL DO PROPONENTE: PROPOSTAS VERSÃO 1.1 HISTÓRICO DE REVISÃO Data Versão Descrição Autor 10/11/2011 1.0 Criação do documento. Aline Oliveira - MINC 07/01/2013 1.1 Atualização do

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

Notas de Aula 05: Aplicação de um caso de uso

Notas de Aula 05: Aplicação de um caso de uso Notas de Aula 05: Aplicação de um caso de uso Objetivos da aula: Aprender a aplicar a técnica de casos de uso em um pequeno problema real Identificar as variáveis relevantes a serem consideradas Modelar

Leia mais

- Acessar o sistema. Para acessar o sistema digite o endereço eletronico www.simpo.com.br/protocolo e clique em login na barra de menus.

- Acessar o sistema. Para acessar o sistema digite o endereço eletronico www.simpo.com.br/protocolo e clique em login na barra de menus. - Acessar o sistema. Para acessar o sistema digite o endereço eletronico www.simpo.com.br/protocolo e clique em login na barra de menus. Ou digite www.simpo.com.br/protocolo/login.php, para ir diretamente

Leia mais

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. Manual de Instruções ECO Editor de Conteúdo Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo. O ECO é um sistema amigável e intui?vo, mas abaixo você pode?rar eventuais dúvidas e aproveitar

Leia mais

Análise e Tramitação de Projetos nos Comitês de Ética em Pesquisa

Análise e Tramitação de Projetos nos Comitês de Ética em Pesquisa Análise e Tramitação de Projetos nos Comitês de Ética em Pesquisa Versão 3.0 1 Histórico de Revisão Versão Autor Data Descrição Equipe suporte Criação do 1.0 Plataforma Brasil 01/11/2011 Documento 1.1

Leia mais

Processo de Envio de email

Processo de Envio de email Processo de Envio de email Introdução O envio de documentos de forma eletrônica vem sendo muito utilizado, assim o envio de arquivos, relatórios, avisos, informações é realizado via e-mail. O sistema disponibiliza

Leia mais

Tutorial para envio de comunicados e SMS

Tutorial para envio de comunicados e SMS Tutorial para envio de comunicados e SMS Conteúdo 1. Enviando comunicado para os alunos... 1 2. Verificando a situação do envio dos e-mails para os alunos... 5 3. Enviando comunicado para colaboradores

Leia mais

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET

MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET MANUAL DE UTILIZAÇÃO SISTEMA DE CADASTRO INTRANET I Sumário 1. Objetivo do Documento... 1 2. Início... 1 3. Cadastro de Pessoa Física... 3 3.1. Preenchimentos Obrigatórios.... 4 3.2. Acesso aos Campos

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

PROCESSO JUDICIAL ELETRÔNICO PJe

PROCESSO JUDICIAL ELETRÔNICO PJe PROCESSO JUDICIAL ELETRÔNICO PJe TRIBUNAL REGIONAL FEDERAL DA 5ª REGIÃO MANUAL DO SERVIDOR 1ºGRAU MÓDULO 3 Sumário 1 Cadastros Básicos3 11 Documento3 111 Modelo3 112 Tipo6 12 Pessoa10 121 Conciliador10

Leia mais

Como acessar o novo webmail da Educação? Manual do Usuário. 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S.

Como acessar o novo webmail da Educação? Manual do Usuário. 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S. Como acessar o novo webmail da Educação? Manual do Usuário 15/9/2009 Gerencia de Suporte, Redes e Novas Tecnologias Claudia M.S. Tomaz IT.002 02 2/14 Como acessar o Webmail da Secretaria de Educação? Para

Leia mais

MANUAL DE UTILIZAÇÃO

MANUAL DE UTILIZAÇÃO MANUAL DE UTILIZAÇÃO Módulo de operação Ativo Bem vindo à Vorage CRM! Nas próximas paginas apresentaremos o funcionamento da plataforma e ensinaremos como iniciar uma operação básica através do nosso sistema,

Leia mais

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser

Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser A1Criando um módulo de negócio Capítulo 27 Aplicação dividida em módulos - Introdução Como já foi muito bem detalhado no Capítulo IV, o jcompany Developer Suite pode ser compreendido como uma solução de

Leia mais

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais Operações de Caixa Versão 2.0 Manual destinado à implantadores, técnicos do suporte e usuários finais Sumário Introdução... 3 Suprimento... 3 Sangria... 4 Abertura de Caixa... 6 Fechamento de Caixa...

Leia mais

DIGPROP - PREGÃO. Digitação de dados para entrega de propostas por meio magnético

DIGPROP - PREGÃO. Digitação de dados para entrega de propostas por meio magnético DIGPROP - PREGÃO Digitação de dados para entrega de propostas por meio magnético Marcio Tomazelli Programador Sênior Versão 1.0 Índice Índice...2 Índice de Figuras...2 Introdução...3 Fluxograma do processo

Leia mais

INSTALAÇÃO DO SISTEMA CONTROLGÁS

INSTALAÇÃO DO SISTEMA CONTROLGÁS INSTALAÇÃO DO SISTEMA CONTROLGÁS 1) Clique duas vezes no arquivo ControlGasSetup.exe. Será exibida a tela de boas vindas do instalador: 2) Clique em avançar e aparecerá a tela a seguir: Manual de Instalação

Leia mais

Instalando o Internet Information Services no Windows XP

Instalando o Internet Information Services no Windows XP Internet Information Services - IIS Se você migrou recentemente do Windows 95 ou 98 para o novo sitema operacional da Microsoft Windows XP, e utilizava antes o Personal Web Server, deve ter notado que

Leia mais

Tutorial Sistema de Eventos de Certificação e Capacitação

Tutorial Sistema de Eventos de Certificação e Capacitação Tutorial Sistema de Eventos de Certificação e Capacitação Junho 2014 Sumário 1 O que é o Sistema de Certificados?... 3 2 Como acessar o Sistema?... 3 3 - Pré-requisitos para a Geração dos Certificados...

Leia mais

Escritório Virtual Administrativo

Escritório Virtual Administrativo 1 Treinamento Módulos Escritório Virtual Administrativo Sistema Office Instruções para configuração e utilização do módulo Escritório Virtual e módulo Administrativo do sistema Office 2 3 1. Escritório

Leia mais

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet.

Está apto a utilizar o sistema, o usuário que tenha conhecimentos básicos de informática e navegação na internet. Conteúdo 1. Descrição geral 2 2. Resumo das funcionalidades 3 3. Efetuar cadastro no sistema 4 4. Acessar o sistema 6 5. Funcionalidades do menu 7 5.1 Dados cadastrais 7 5.2 Grupos de usuários 7 5.3 Funcionários

Leia mais

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União

e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Controladoria-Geral da União e-ouv Passo-a-passo Sistema de Ouvidorias do Poder Executivo Federal Junho, 2015 Sumário 1. Acesso ao sistema... 3 2. Funcionalidades do sistema... 5 3. Como tratar manifestações... 14 3.1 Detalhar...

Leia mais

Especificação de Requisitos

Especificação de Requisitos Projeto/Versão: Versão 11.80 Melhoria Requisito/Módulo: 000552 / Conector Sub-Requisito/Função: Multas Tarefa/Chamado: 01.08.01 País: Brasil Data Especificação: 13/05/13 Rotinas Envolvidas Rotina Tipo

Leia mais

Java para Desenvolvimento Web

Java para Desenvolvimento Web Java para Desenvolvimento Web Servlets A tecnologia Servlet foi introduzida pela Sun Microsystems em 1996, aprimorando e estendendo a funcionalidade e capacidade de servidores Web. Servlets é uma API para

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

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

A barra de menu a direita possibilita efetuar login/logout do sistema e também voltar para a página principal.

A barra de menu a direita possibilita efetuar login/logout do sistema e também voltar para a página principal. MANUAL DO SISCOOP Sumário 1 Menu de Navegação... 3 2 Gerenciar País... 5 3- Gerenciamento de Registro... 8 3.1 Adicionar um registro... 8 3.2 Editar um registro... 10 3.3 Excluir um registro... 11 3.4

Leia mais

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com

REST. Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com REST Caio Nakashima caio.nakashima@mds.gov.br caionakashima@gmail.com 1 RESTful REpresentation State Transfer Estilo de arquitetura de software para sistemas distribuídos Termo proposto por Roy Fielding

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Persistência de dados com Android Professor: Danilo Giacobo OBJETIVOS DA AULA Apresentar novas técnicas de persistência em Android. Utilizar a classe SharedPreferences.

Leia mais

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI

MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI MANUAL DE UTILIZAÇÃO DO SISTEMA GLPI PERFIL TÉCNICO Versão 2.0 DEPARTAMENTO DE INFORMÁTICA E TELECOMUNICAÇÕES PREFEITURA DE GUARULHOS SP 1 Objetivo: Esse manual tem como objetivo principal instruir os

Leia mais

RESUMO DE CATALOGAÇÃO

RESUMO DE CATALOGAÇÃO RESUMO DE CATALOGAÇÃO CLASSIFICAÇÃO DISTINTA Contatos: Cirineo Zenere (c.zenere@pucpr.br) Eulália M. Soares (eulalia.soares@pucpr.br) Josilaine O. Cezar (josilaine.cezar@pucpr.br) SUMÁRIO INICIANDO A CATALOGAÇÃO...2

Leia mais

Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7)

Manual de Instalação. SafeSign Standard 3.0.77. (Para MAC OS 10.7) SafeSign Standard 3.0.77 (Para MAC OS 10.7) 2/23 Sumário 1 Introdução... 3 2 Pré-Requisitos Para Instalação... 3 3 Ambientes Homologados... 4 4 Hardware Homologado... 4 5 Instruções de Instalação... 5

Leia mais

V.1.0 SIAPAS. Sistema Integrado de Administração ao Plano de Assistência à Saúde. Contas Médicas

V.1.0 SIAPAS. Sistema Integrado de Administração ao Plano de Assistência à Saúde. Contas Médicas 2014 V.1.0 SIAPAS Sistema Integrado de Administração ao Plano de Assistência à Saúde Contas Médicas SIAPAS Sistema Integrado de Administração ao Plano de Assistência à Saúde Módulos CONTAS MÉDICAS Capa

Leia mais

Como obter Ajuda e Suporte

Como obter Ajuda e Suporte Como obter Ajuda e Suporte Durante a utilização dos Sistemas comercializados pela Domínio Sistemas, você e sua equipe poderão ter dúvidas sobre algum processo ou alguma tela em específico. Estas dúvidas

Leia mais

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização

TRANSMISSOR ECF. Sistema de transmissão de arquivos Nota Fiscal Paulista. Manual de Utilização TRANSMISSOR ECF Sistema de transmissão de arquivos Nota Fiscal Paulista Manual de Utilização 1. Histórico de alterações Data Versão Alteração 04/12/2012 1 Criação do documento 28/02/2013 2 Revisão 2. Proposta

Leia mais

Pag: 1/20. SGI Manual. Controle de Padrões

Pag: 1/20. SGI Manual. Controle de Padrões Pag: 1/20 SGI Manual Controle de Padrões Pag: 2/20 Sumário 1 Introdução...3 2 Cadastros Básicos...5 2.1 Grandezas...5 2.2 Instrumentos (Classificação de Padrões)...6 3 Padrões...9 3.1 Padrão Interno...9

Leia mais

SUAP Módulo Protocolo Manual do Usuário DTI DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SEÇÃO DE PROJETOS, SISTEMAS E PROCESSOS DE NEGÓCIO

SUAP Módulo Protocolo Manual do Usuário DTI DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SEÇÃO DE PROJETOS, SISTEMAS E PROCESSOS DE NEGÓCIO SUAP Módulo Protocolo Manual do Usuário DTI DIRETORIA DE TECNOLOGIA DA INFORMAÇÃO SEÇÃO DE PROJETOS, SISTEMAS E PROCESSOS DE NEGÓCIO SUMÁRIO 1. APRESENTAÇÃO... 1 1.1. ACESSO AO SISTEMA... 1 1.2. TELA INICIAL

Leia mais

MÓDULO 5 Movimentações

MÓDULO 5 Movimentações MÓDULO 5 Movimentações Bem-vindo(a) ao quinto módulo do curso. Agora que você já conhece as entradas no HÓRUS, aprenderá como são feitas as movimentações. As movimentações do HÓRUS são: Requisição ao Almoxarifado:

Leia mais

MANUAL DO GERENCIADOR ESCOLAR WEB

MANUAL DO GERENCIADOR ESCOLAR WEB CNS LEARNING MANUAL DO GERENCIADOR ESCOLAR WEB Versão Online 13 Índice ÍNDICE... 1 VISÃO GERAL... 2 CONCEITO E APRESENTAÇÃO VISUAL... 2 PRINCIPAIS MÓDULOS... 3 ESTRUTURAÇÃO... 3 CURSOS... 4 TURMAS... 4

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

VIAÇÃO SÃO BENTO LTDA.

VIAÇÃO SÃO BENTO LTDA. VIAÇÃO SÃO BENTO LTDA. SISTEMA AUTOMÁTICO DE BILHETAGEM ELETRÔNICA MANUAL DO VTWEB CLIENT CADASTROS /PEDIDOS E PROCEDIMENTOS Resumo Esse manual tem como o seu objetivo principal a orientação de uso do

Leia mais

Manual de Utilização do GLPI

Manual de Utilização do GLPI Manual de Utilização do GLPI Perfil Usuário Versão 1.0 NTI Campus Muzambinho 1 Introdução Prezado servidor, o GLPI é um sistema de Service Desk composto por um conjunto de serviços para a administração

Leia mais

Desenvolvendo Websites com PHP

Desenvolvendo Websites com PHP Desenvolvendo Websites com PHP Aprenda a criar Websites dinâmicos e interativos com PHP e bancos de dados Juliano Niederauer 19 Capítulo 1 O que é o PHP? O PHP é uma das linguagens mais utilizadas na Web.

Leia mais

Curso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013.

Curso de atualização Educação Integral e Integrada. Tutorial Moodle. Belo Horizonte, 2013. Curso de atualização Educação Integral e Integrada Tutorial Moodle Belo Horizonte, 2013. 1. INTRODUÇÃO... 3 2. ACESSANDO O AMBIENTE... 4 3. CONHECENDO O AMBIENTE... 5 3.1. CAIXAS DE UTILIDADES... 5 4.

Leia mais

Manual de Operação do Sistema de Tickets Support Suite

Manual de Operação do Sistema de Tickets Support Suite Manual de Operação do Sistema de Tickets Support Suite Sumário Acessando a página do HelpDesk helpdesk.virtuem.com.br... 3 Criando um Ticket... 6 Visualizando Tickets Existentes... 9 Respondendo um Ticket...

Leia mais

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, 354 - cj. 121 CEP 01323-001 - São Paulo - SP (11) 3266-2096

TUTORIAL DE UTILIZAÇÃO. Rua Maestro Cardim, 354 - cj. 121 CEP 01323-001 - São Paulo - SP (11) 3266-2096 TUTORIAL DE UTILIZAÇÃO Índice Geral Antes de Começar 2 Procedimento de Instalação 3 Exportar dados para o 8 Acesso ao 10 Ordens de Serviço no 11 Solicitações de Serviço no 17 Folhas de Inspeção no 19 Importar

Leia mais

WF Processos. Manual de Instruções

WF Processos. Manual de Instruções WF Processos Manual de Instruções O WF Processos é um sistema simples e fácil de ser utilizado, contudo para ajudar os novos usuários a se familiarizarem com o sistema, criamos este manual. Recomendamos

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