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
|
|
- Maria dos Santos Câmara Santiago
- 8 Há anos
- Visualizações:
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
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 maisIntegraçã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 maisProJuris 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 maisAula 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 maisPrá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 maisWeb-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 maisPORTAL 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 maisTrecho 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 maisManual 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 maisProgramando 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 maisManual 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 maisAnote 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 mais4 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 maisDesenvolvimento 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 maisManual 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 maisGestã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 maisABORDAGEM 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 maisParte 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 mais02 - 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 maisProcedimentos 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 maisMicrosoft 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 maisSISTEMA 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 mais1.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 maisAcessando 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 maisEstá 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 maisProgramaçã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 mais1. 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 maisMANUAL 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 maisAtualizado 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 mais2013 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 maisManual 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 maisProcedimentos 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 maisDOCUMENTAÇÃ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 maisMANUAL 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 maisMANUAL 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 maiswww.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 maisMANUAL 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 maisUNIVERSIDADE 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 maisDesenvolvendo 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 maisProcedimentos 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 maisManual 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 maisINTRODUÇÃ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 maisPlano 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 maisVersã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 mais2 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 maisDespachante 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 maisLiçã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 maisMANUAL 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 maisManual 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 maisMinisté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 maisProgramaçã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 maisNotas 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. Ou digite www.simpo.com.br/protocolo/login.php, para ir diretamente
Leia maisBem- 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 maisAná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 maisProcesso 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 maisTutorial 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 maisMANUAL 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 mais3 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 maisPROCESSO 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 maisComo 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 maisMANUAL 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 maisComo 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 maisOperaçõ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 maisDIGPROP - 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 maisINSTALAÇÃ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 maisInstalando 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 maisTutorial 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 maisEscritó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 maisEstá 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 maise-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 maisEspecificaçã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 maisJava 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 maisWeb 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 maisSistema 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 maisA 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 maisREST. 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 maisPROGRAMAÇÃ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 maisMANUAL 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 maisRESUMO 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 maisManual 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 maisV.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 maisComo 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 maisTRANSMISSOR 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 maisPag: 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 maisSUAP 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 maisMÓ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 maisMANUAL 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 maisOutlook 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 maisVIAÇÃ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 maisManual 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 maisDesenvolvendo 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 maisCurso 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 maisManual 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 maisTUTORIAL 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 maisWF 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 maisCONCEITOS 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