Programacao_Cliente_Servidor.pdf
Short Description
Download Programacao_Cliente_Servidor.pdf...
Description
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB
autor
JOÃO PAULO CASATI
1ª edição SESES rio de janeiro
2016
Conselho editorial
joão paulo casati
Autor do original Projeto editorial
regiane burger, roberto paes e paola gil de almeida
roberto paes
Coordenação de produção
paola gil de almeida, paula r. de a. machado e aline
karina rabello paulo vitor bastos
Projeto gráfico Diagramação
bfs media
Revisão linguística
bfs media
Revisão de conteúdo Imagem de capa
eduardo luiz pareto
timofeev vladimir | shutterstock.com
Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida por quaisquer meios (eletrônico ou mecânico, incluindo fotocópia e gravação) ou arquivada em qualquer sistema ou banco de dados sem permissão escrita da Editora. Copyright seses, 2016. Dados Internacionais de Catalogação na Publicação (cip) C334p Casati, João Paulo
Programação servidor em sistemas web /João Paulo Casati. Rio de Janeiro: SESES, SESES, 2016. 120 p: il. isbn: 978-85-5548-334-9 1.Sites na web. 2. Sites da web - desenvolvimento. 3. Sites da web – programação. I. SESES. II. Estácio. cdd 005
Diretoria de Ensino — Fábrica de Conhecimento Rua do Bispo, 83, bloco F, Campus João Uchôa Rio Comprido — Rio de Janeiro — rj — cep 20261-063
Sumário Prefácio
5
1. A Criação de Aplicativos para WEB
7
1.1 1.2 1.3 1.4
A sintaxe da linguagem Java O ambiente servidor IDEs para desenvolvimento web Desenvolvimento web com NetBeans
2. Tecnologias de Sistemas e Bancos de Dados 2.1 2.2 2.3 2.4 2.5
Servlets Java JavaServer Pages (JSP) Recebendo parâmetros A API JDBC Gerenciando JavaDB com NetBeans
3. Sessões e o Modelo MVC 3.1 Gerenciamento de sessão e login 3.2 O modelo MVC 3.3 Aplicação com MVC
4. Modelagem Comportamental e JPA 4.1 4.2 4.3 4.4
Tipos genéricos Anotações em Java Java Enterprise Edition (JEE) Object-Relational Mapping (ORM)
9 17 18
20
27 28 32 34 37 38
51 52
57 59
71 72 74 75 76
4.5 Java Persistence API (JPA) 4.6 JPA na prática
5. Objetos Distribuídos, MDB e Web Services 5.1 5.2 5.3 5.4 5.5
Objetos distribuídos e sistemas corporativos Comportamento assíncrono com MDB XML, Web Services e SOAP Criação de web services anotados Consumindo Web Service Java
78 83
93 94 96 98 99 105
Prefácio Prezados(as) alunos(as), Sejam bem-vindos a esta disciplina. A programação das rotinas que são executadas do lado servidor em um sistema web é uma tarefa que exige conhecimento de diversas tecnologias e métodos de programação, assim como conhecimento de arquiteturas de desenvolvimento, interação com bancos de dados e engenharia de software . Nesta disciplina serão abordadas as tecnologias necessárias para se desenvolver a base dos sistemas web , a aplicação do lado servidor. As rotinas mais importantes e vitais de um sistema devem seguir uma arquitetura de desenvolvimento que garanta manutenibilidade, organização, desempenho e produtividade e aliado às tecnologias, o padrão de arquitetura de desenvolvimento web mais aceito e utilizado também é apresentado neste livro. A grande maioria das tecnologias, linguagens e padrões apresentados aqui são baseados na linguagem de programação Java, a mais popular entre os desenvolvedores de sistemas de informação complexos para web . Juntamente com a linguagem e os padrões e tecnologias adotados para o desenvolvimento web , boas práticas e inovações são também abordadas no decorrer do livro, trazendo a aquisição de um conhecimento essencial, aprofundado e atualizado para que você, aluno, possa ter uma experiência de aprendizado completa quanto ao desenvolvimento de sistemas para a plataforma web . Como objetivos a serem alcançados por esta disciplina, pode-se citar o aprendizado de tecnologias importantes para o desenvolvedor, assim como uma visão prática da programação, permitindo a você aluno iniciar no desen volvimento de sistemas para a web . Bons estudos!
5
1 A Criação de Aplicativos para WEB
1. A criação de aplicativos para web Neste primeiro capítulo são abordados os temas iniciais necessários para que se possa progredir nesta disciplina de programação para o lado servidor dos sistemas web . Pela base tecnológica abordada neste livro ser a linguagem Java, este capítulo inicia com uma revisão de sua sintaxe (criação de classes, manipulação de objetos, estruturas, palavras reservadas etc.). Esta revisão é importante, pois o conhecimento acerca da linguagem é utilizado no decorrer do livro. Uma visão geral do ambiente servidor no qual a aplicação será processada também é apresentado, assim como uma parte muito importante para a prática do desenvolvimento de software : as IDEs (Integrated Development Environment , que em português significa Ambiente de Desenvolvimento Integrado). Uma visão mais prática e detalhada é feita na IDE NetBeans, a qual é utilizada no decorrer deste livro para apresentação de exemplos e estudos de caso. Inicia-se agora uma busca por um conhecimento fascinante! Bons estudos!
OBJETIVOS Este capítulo trará ao aluno os conhecimentos necessários para adentrar no mundo da programação do lado servidor em sistemas web baseados na tecnologia Java, muito difundida no mercado. Ao final deste primeiro capítulo, o aluno: Estará apto a programar na linguagem Java; Conhecerá o ambiente do servidor e os principais softwares utilizados; Saberá do que se tratam e como as IDEs podem auxiliar no desenvolvimento de software, inclusive para a web; Conhecerá a IDE NetBeans, uma das mais utilizadas e poderosas do mercado; e Aprenderá a iniciar projetos de sistemas web utilizando o NetBeans. •
•
•
•
•
8
•
capítulo 1
1.1 A sintaxe da linguagem Java Programar em Java para desenvolver sistemas de informação não é uma tarefa trivial, é necessário conhecimento em orientação a objetos e também da sintaxe da linguagem, que possui muitos recursos. Outra dificuldade de se desenvolver softwares em Java é que esta linguagem está em constante aperfeiçoamento, portanto, é necessário que se mantenha sempre atualizado para que se possa usufruir de todos os recursos que vêm sendo empregados à linguagem. A execução de código Java se dá por meio de uma máquina virtual, a JVM ( Java Virtual Machine ). Existem várias máquinas virtuais que interpretam código Java, mas a JVM adotada como padrão é provida pela Oracle. Um dos grandes motivos pelo qual a linguagem Java se popularizou é sua independência de plataforma. Por ser interpretada por uma máquina virtual, o Java pode ser executado em diversos sistemas operacionais, desde que este tenha uma implementação da máquina virtual. Os arquivos de código fonte em Java possuem a extensão. java . Para sua execução, estes são compilados para bytecodes (codificação intermediária entre a linguagem de máquina e o código-fonte, ilegíveis por seres humanos). A JVM interpreta os bytecodes gerados e executa as instruções. Este procedimento torna o Java uma espécie de linguagem compilada e interpretada (CAELUM, 2016). A criação de classes, objetos, manipulação de dados, tipos de variáveis, métodos, entre outros termos relativos à sintaxe da linguagem são apresentados aqui em forma de exemplo, mas antes, algumas considerações sobre as estruturas de repetição, condicionais, comparações e tipos de dados. Os tipos de dados adotados pelo Java podem ser primitivos, que são alocados estaticamente em memória ou abstratos, alocados dinamicamente (ASCENCIO; ARAÚJO, 2010). Os tipos primitivos do Java são apresentados na tabela 1.1. TIPO
BITS
boolean byte char short
1 8 16 16
int
32
VALORES true ou false
-128 a +128 ‘\u0000’ a ‘\uFFFF’ -32768 a +32767 -2147483648 a +2147483647
capítulo 1 •
9
TIPO
BITS
long
64
float double
32 64
VALORES -9223372036854775808 a +9223372036854775807 10-38 a 10+38 10-308 a 10+308
Tabela 1.1 – Tipos primitivos do Java seguidos do número de bits que ocupam em memória e os valores que podem ser assumidos por cada tipo.
Os tipos abstratos, em Java, são definidos por classes. Algumas classes são nativas da linguagem e muito utilizadas, como: Integer : números inteiros; Double : números reais; String : Cadeias de caracteres (texto); Entre muitas outras. •
•
•
•
Há uma recomendação para a utilização de tipos abstratos em programação de sistemas de informação, pois estes dão margem a um melhor gerenciamento da memória utilizada pelo programa. Outra vantagem dos tipos abstratos é que estes possuem métodos para manipulação dos dados, que auxiliam o programador e aumentam a produtividade. Antes de adentrar em exemplos com código, é importante saber: O método System.out.println imprime valores na saída do sistema, geralmente utilizado para exibir dados ao usuário quando a programação é feita em terminal; Existem dois modos de adicionar comentários nos códigos em Java, o primeiro é utilizando duas barras (//) antes de uma frase, este modo marca como comentário apenas a própria linha. Outro modo é marcar o início (/*) e o fim (*/) do comentário que pode ocupar várias linhas. As variáveis do Java são fortemente tipadas, isto significa que uma variável deve ter seu tipo definido ao ser declarada; Um programa em Java é uma classe e sua execução inicia-se do método main (que significa “principal” em português). Os operadores de incremento e decremento em Java são muito utilizados (++ para incremento e -- para decremento). Quando utilizados antes da variável, a operação ocorre antes de seu uso em expressões matemáticas, quando utilizado depois da variável, a expressão matemática é efetuada antes da operação de incremento/decremento (vide listagem 1.1); •
•
•
•
•
10
•
capítulo 1
Um exemplo do uso de variáveis primitivas em Java é dado na listagem 1.1, que possui o código-fonte e a saída de sua execução logo abaixo. public static void main (String[] args) { int i = 5; int j = 7; System.out.println(i System.out.prin tln(i * j);
i++; System.out.println(i System.out.prin tln(i * j); double k = (i * (j - 1) / ++j);
System.out.println(k); System.out.println(i System.out.prin tln(i + j);
}
SAÍDA: 35 42 4.0 14
Listagem 1.1 – Uso de variáveis primitivas em Java.
A primeira tarefa para a criação de programas em Java é a criação de uma classe. A figura 1.1 exibe a modelagem de uma classe utilizando a linguagem UML (BOOCH; RUMBAUGH; JACOBSON, 2005). Pode-se observar três divisões na modelagem da classe: A primeira indica o nome da classe; classe; A segunda indica os atributos da classe; A terceira indica os métodos métodos da classe. •
•
•
Figura 1.1 – Classe Java representada pela UML.
capítulo 1 •
11
O código-fonte referente a criação da classe apresentada na figura 1.1, de forma simples, é exibido na listagem 1.2. public class Pessoa { String nome; int idade; String documento; void andar(int metros) { // Faz a pessoa andar } void andar(String frase) { // Faz a pessoa falar } }
Listagem 1.2 – Código de uma classe em Java.
Os operadores lógicos são utilizados para a comparação entre variáveis e/ou valores. Se esta comparação for verdadeira, então retorna retorna o valor valor booleano true booleano true , se for falsa, retorna false. Este retorno r etorno é usado em diversos momentos, veremos alguns mais à frente (DEITEL; DEITEL, 2010). Os operadores lógicos mais utilizados em Java são apresentados na tabela 1.2. Operadores comparativos também são apresentados, juntamente com dois métodos da classe String que servem para a comparação entre textos (SIERRA; BATES, 2010). ESTRUTURA == != ! >
12
•
capítulo 1
DESCRIÇÃO Igual: retorna verdadeiro (true) se os dois lados da comparação forem iguais. Diferente: retorna true se os dois lados da comparação forem diferentes. Negação: Altera o estado de true para false e vice-versa. Maior: retorna true se o lado esquerdo da comparação for maior que o direito.
ESTRUTURA
DESCRIÇÃO Maior ou igual: retorna true se o lado esquerdo da comparação >= for maior ou igual ao direito. Menor: retorna true se o lado esquerdo da comparação for < menor que o direito. Menor ou igual: retorna true se o lado esquerdo da comparação 8); System.out.println(7 System.out.prin tln(7 8) || (8 < 9)); System.out.println(8 System.out.prin tln(8 == 10); System.out.println(8 System.out.prin tln(8 != 10); System.out.println(!(5 System.out.prin tln(!(5 == 5)); String texto1 = "teste"; String texto2 = "Teste"; boolean comparacao1; boolean comparacao2; comparacao1 = texto1.equals(texto2); comparacao2 = texto1.equalsIgnoreCase(texto texto1.equals IgnoreCase(texto2); 2); System.out.println(comparacao1);
System.out.println(comparacao2);
}
capítulo 1 •
13
SAÍDA (para cada estrutura): false true true true false true false false true
Listagem 1.3 – Operadores lógicos, comparativos e comparação de textos.
Ao analisar o código e a saída do programa da Listagem 3 pode-se entender como são retornados os resultados das operações utilizadas. Estes resultados são muito utilizados em estruturas de repetição e estruturas condicionais. As estruturas de repetição do Java são utilizadas para automatizar tarefas e iterações do sistema com os dados. As estruturas são apresentadas na tabela 1.3. ESTRUTURA for
while do, while
DESCRIÇÃO Define todos os parâmetros logo no início da estrutura, como a inicialização da variável de contagem, a condição de parada e o incremento/decremento a ser efetuado em cada iteração. Define o critério de parada, mas a inicialização da variável e o incremento são definidos em local definido pelo programador. Parecido com o while, mas checa se o critério de parada foi satisfeito após a execução da iteração.
Tabela 1.3 – Estruturas de repetição utilizadas no Java.
A listagem 1.4 traz um exemplo de uso de cada uma das estruturas exibidas na tabela 1.3, assim como o resultado (saída) da execução do código.
14
•
capítulo 1
public static void main(String []args) { // for contando de 1 a 10 for(int i=0; i a) && (c > b)) { for (int i=0; i 2) { if(txt.equals("hello world!")) { System.out.println("Ola Mundo!"); } else { System.out.println("Hello World!"); }
k--; }
}
02. Cite três vantagens de se utilizar um IDE como o NetBeans para o desenvolvimento de sistemas web.
REFLEXÃO A preparação para o aprendizado em desenvolvimento de aplicações web está feita. Uma revisão da linguagem de programação aplicada na disciplina, a explanação do ambiente servidor, informações sobre o ambiente de desenvolvimento a ser utilizado e sobre a criação de um projeto “vazio” pronto para iniciar os trabalhos de programação foram passados neste
24
•
capítulo 1
capítulo, conhecimento suficiente para prosseguir com os estudos e começar a desenvolver sistemas para web. O primeiro capítulo serve também como referência e o mesmo deve ser consultado sempre que necessário.
LEITURA Para o aprendizado de programação em Java, o livro da série Use a Cabeça escrito por Kathy Sierra e Bert Bates é altamente recomendado por seu caráter didático e bem-humorado. SIERRA, Kathy; BATES, Bert. Use a Cabeça! Java. 2. ed. Rio de Janeiro: Alta Books, 2010. (Use a Cabeça!).
REFERÊNCIAS BIBLIOGRÁFICAS ASCENCIO, Ana Fernanda Gomes; ARAÚJO, Graziela Santos de. Estruturas de Dados: algoritmos, análise da complexidade e implementações em JAVA e C/C++. São Paulo: Pearson Prentice Hall, 2010. BOOCH, Grady; RUMBAUGH, James; JACOBSON, Ivar.
UML: Guia do Usuário. 2. ed. Rio de Janeiro:
Campus, 2005. CAELUM. Java e Orientação Objetos. 2016. Disponível em: . Acesso em: 01 mar. 2016. DEITEL, Paul; DEITEL, Harvey. Java: Como Programar. 8. ed. São Paulo: Pearson, 2010. NETBEANS. Netbeans IDE. Disponível em: . Acesso em: 18 mar. 2016. SIERRA, Kathy; BATES, Bert. Use a Cabeça! Java. 2. ed. Rio de Janeiro: Alta Books, 2010. (Use a Cabeça!). ZAMBON, Giulio; SEKLER, Michael. Beginning JSP, JSF, Tomcat Web Development: From Novice to Professional. United States Of America: Apress, 2007.
capítulo 1 •
25
26
•
capítulo 1
2 Tecnologias de Sistemas e Bancos de Dados
2. Tecnologias de Sistemas e Bancos de Dados Este capítulo inicia de vez a programação do lado servidor para o desenvolvimento de sistemas web . Logo no começo, duas das tecnologias mais importantes para este fim são apresentadas: Servlet e JSP. Após adquirido conhecimento destas tecnologias, a integração dos sistemas web com bancos de dados é abordada. Uma breve explicação de como funciona a API JDBC e uma explicação no formato de um tutorial sobre como criar e manipular bancos de dados Java DB diretamente do NetBeans. É muito importante a assimilação do conteúdo deste capítulo, pois conceitos aqui explicados são utilizados durante todo o livro, em exemplos e na explicação de outros conceitos.
OBJETIVOS Ao final deste capítulo, o aluno poderá trabalhar com interfaces
web em
Java utilizan-
do servlets e JSPs, criando e manipulando bancos de dados (Java DB) diretamente do IDE NetBeans.
2.1 Servlets Java Para iniciar o entendimento desta tecnologia, vamos começar com a seguinte pergunta: o que são servlets? Os Servlets são classes Java que podem receber e enviar requisições de diversos tipos, normalmente utilizadas em sistemas web para o processamento de requisições HTTP. Um contêiner de servlets é utilizado para fazer este processamento, como por exemplo, o Apache Tomcat. O Glassfish também possui um contêiner de servlets embutido. Por se tratar de uma classe Java, a linguagem de programação utilizada no desenvolvimento dos servlets é puramente Java. Um exemplo de servlet é apresentado na listagem 2.1.
28
•
capítulo 2
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class Teste extends HttpServlet { protected
void
processRequest(HttpServletRequest
request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { out.println("Resultado da Servlet"); } fnally {
out.close(); } }
@Override protected
void
doGet(HttpServletRequest
request,
HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
@Override protected
void
doPost(HttpServletRequest
request,
HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); }
@Override public String getServletInfo() { return "Descrição"; }
}
Listagem 2.1 – Exemplo de código de um servlet Java.
capítulo 2 •
29
Ao observar o código do servlet na Listagem 6 pode-se atentar para diversas particularidades, como: A importação de bibliotecas utilizadas para o processamento das requisições; A herança (extends ) entre a classe criada (servlet) e a classe HttpServlet; O método processRequest que faz o processamento do servlet em questão; A criação de um PrinterWriter chamado out que é utilizado para impressão de valores quando o processamento do servlet é efetuado; O método doGet que é disparado quando a URL do servlet é acessada; O método doPost que é disparado quando uma requisição POST é efetuada por meio de um formulário, por exemplo; O método getServletInfo que retorna uma descrição do servlet. •
•
•
•
•
•
•
É possível criar, a partir de um servlet, uma página visual em HTML. Para isto, é necessário utilizar o PrinterWriter que irá imprimir na tela as tags HTML e seus conteúdos. Um exemplo de utilização de servlet para a criação de uma página HTML é dado na listagem 2.2. … PrintWriter out = response.getWriter(); try { out.println("");
out.println("");
out.println(""); out.println("Servlet Teste"); out.println("");
out.println(""); out.println("Este é um teste!!!"); out.println("Servlet Rodando: Tomcat");
out.println("");
out.println("");
} fnally {
out.close();
} ...
30
•
capítulo 2
Saída:
Servlet Teste Este é um teste!!! Servlet Rodando: Tomcat
Listagem 2.2 – Criando uma página HTML a partir de um servlet Java.
A saída do servlet é o código Java processado pelo contêiner de servlet, neste caso, o Tomcat. Esta saída é interpretada pelo navegador e exibe uma página em HTML, como na figura 2.1 que demonstra a página gerada pelo código apresentado na listagem 2.2.
Figura 2.1 – Servlet rodando em um navegador web.
Dentro do arquivo de configuração da aplicação “web.xml” é definido um local para que o servlet possa ser acessado pela aplicação web . A listagem 2.3 traz a configuração do servlet apresentado na listagem 2.2, que será acessado na raiz do projeto (pasta “/”).
capítulo 2 •
31
Dados
Dados
Dados
/Dados
Listagem 2.3 – Definindo um servlet no arquivo “web.xml”.
No NetBeans, ao criar um servlet, o endereço de acesso do mesmo deve ser informado na tela de criação e então o IDE gera automaticamente a configuração no “web.xml”. Criar interfaces com servlet não é algo muito comum em desenvolvimento de sistemas web pelo fato de que é mais complicado escrever código Java que imprima tags HTML do que as próprias tags . Pensando nisto, são desenvolvidas as JSPs, explicadas na seção seguinte deste livro.
2.2 JavaServer Pages (JSP) As JavaServer Pages (JSPs) são uma extensão dos servlet (DEITEL; DEITEL, 2010). Esta extensão facilita o desenvolvimento de interfaces para sistemas web programados em Java, misturando a programação em linguagem Java com as tags HTML/XHTML. Esta mistura é feita da seguinte forma: O código HTML é escrito livremente no arquivo JSP; O código Java é escrito dentro de marcadores: ; Existem tags próprias do JSP para facilitar acesso a alguns recursos; Classes Java que forem utilizadas nas páginas devem ser devidamente importadas. •
•
•
•
As páginas JSP também são processadas no lado servidor, pelo contêiner servlet, gerando como saída um código HTML que é interpretado pelo navegador (BASHAM; SIERRA; BATES, 2010). Um exemplo básico de página JSP e o código HTML gerado é dado na listagem 2.4.
32
•
capítulo 2
Título do JSP
Contar até 10: Consumindo Web Service
Listagem 5.4 – Código completo da página JSP (index.jsp) que consome o web
service e
exibe o resultado.
capítulo 5 •
109
A explicação do código da listagem 5.4 por meio de suas marcações é: Marcação 1: neste trecho de código ocorre a importação das classes que serão utilizadas para o consumo do web service ; Marcação 2: esta linha de comando instancia um serviço da classe “ImprimirFrase_Service”, que posteriormente é utilizado para retornar a porta de conexão para que o web service seja consumido; Marcação 3: neste comando o serviço retorna uma porta de conexão com o web service para que a interface “ImprimirFrase” possa chamar o método “hello” que aceita chamada remota; Marcação 4: aqui o método “hello” é invocado e o parâmetro é passado para que seja processado pelo web service e gere uma resposta que é atribuída a uma variável do tipo String chamada “frase”; Marcação 5: neste momento o resultado do web service é apresentado ao usuário que acessou a página JSP. •
•
•
•
•
Para se executar o projeto e verificar se a aplicação está funcionando, devese primeiramente executar a função “Clean” no projeto, assim se houver deploys anteriores, estas são apagadas. Após, selecionar a opção “Build” para que este seja recompilado. Estas opções são acessadas clicando com o botão direito na raiz do projeto, na árvore da estrutura. Após executados os passos, clicar em “Executar Projeto” (botão verde na parte superior do NetBeans) e esperar o navegador abrir a página “index.jsp” criada. Se a aplicação foi corretamente construída, o resultado é semelhante ao apresentado na figura 5.13.
Figura 5.13 – Resultado do consumo do web service com o parâmetro “João Paulo” exibido para o usuário por meio de uma página JSP.
110
•
capítulo 5
Com este exemplo é encerrado o tema de web services e também este livro. Lembre-se que é importante executar os exemplos apresentados e se possível a partir deles construir aplicações cada vez mais complexas, o que é um ótimo método de aprendizado, além de se adquirir experiência com o desenvolvimento de sistemas web .
CURIOSIDADE Muitos sistemas web disponibilizam serviços para que sejam consumidos por aplicações que rodam em dispositivos móveis, deste modo, as funcionalidades não precisam ser redesenvolvidas.
ATIVIDADES 01. Qual o componente utilizado para a criação de objetos distribuídos em sistemas corporativos utilizando a tecnologia Java? 02. Do que é constituído um web service em Java? 03. O NetBeans facilita o desenvolvimento de web services, assim como o consumo, inclusive gerando o arquivo WDSL do web service construído. Qual o nome do repositório no qual pode-se armazenar descrições de web services (WSDL) a fim de disponibilizá-lo para uso?
REFLEXÃO Caro aluno, Chegamos ao fim desta agradável disciplina. Eu digo agradável, pois par a maioria das pessoas é muito mais interessante estudar algo concreto e que se pode utilizar diretamente no trabalho ou no dia-a-dia, e este é o caso da programação para servidor em sistemas web. Neste último capítulo foram abordados alguns temas mais avançados e muito interessantes, destaco entre eles os web services, que são uma realidade no desenvolvimento de sistemas para web, inclusive muitos sistemas são desenvolvidos inteiramente em cima de serviços, seguindo a arquitetura SOA (Service Oriented Architecture).
capítulo 5 •
111
Espero que o aproveitamento dos conceitos e práticas apresentados neste livro tenham sido satisfatórios e principalmente, tenham incentivado o constante estudo que é necessário para quem vai atuar na área de desenvolvimento de sistemas, pois bibliotecas, tecnologias e procedimentos estão em constante atualização, e esta atualização é rápida!
LEITURA Para complementar os estudos deste capítulo e de muitos outros, o livro de Deitel e Deitel (2010) intitulado “Java: Como Programar” serve de referência para o desenvolvimento de aplicações em Java. Mesmo sem ser focado em desenvolvimento para a internet, seu vasto conteúdo (incluindo web services ) oferece uma grande fonte de consulta para desenvolvedores Java. DEITEL, Paul; DEITEL, Harvey. Java: Como Programar. 8. ed. São Paulo: Pearson, 2010. Outra recomendação, para quem quer se aprofundar no tema EJB, é o livro da série Use a Cabeça! Intitulado EJB e escrito por Sierra e Bates (2003) traz uma abordagem didática para o uso desta tecnologia. Ainda não existe uma versão em português, mas para quem entende um pouco de inglês vale a pena a leitura. SIERRA, Kathy; BATES, Bert. Head First EJB. [s.i.]: O'reilly, 2003. 734 p.
REFERÊNCIAS BIBLIOGRÁFICAS DEITEL, Paul; DEITEL, Harvey. Java: Como Programar. 8. ed. São Paulo: Pearson, 2010. NAGAPPAN, Ramesh; SKOCZYLAS, Robert; SRIGANESH, Rima Patel. Developing Java Web Services. Indianapolis: John Wiley & Sons, 2003. 758 p.
ORACLE. The Java EE 6 Tutorial. Disponível em: . Acesso em: 16 mar. 2016. PANDA, Debu et al. EJB 3 in action. 2. ed. Shelter Island: Manning, 2014. SHKLAR, Leon; ROSEN, Richard. Web Application Architecture: Principles, Protocols and Practices. Chichester: John Wiley & Sons, 2003. SIERRA, Kathy; BATES, Bert. Head First EJB. [s.i.]: O'reilly, 2003. 734 p.
112
•
capítulo 5
ANOTAÇÕES
capítulo 5 •
113
ANOTAÇÕES
114
•
capítulo 5
ANOTAÇÕES
capítulo 5 •
115
ANOTAÇÕES
116
•
capítulo 5
ANOTAÇÕES
capítulo 5 •
117
ANOTAÇÕES
118
•
capítulo 5
ANOTAÇÕES
capítulo 5 •
119
View more...
Comments