Últimas notícias do evento

Aplicativos Web com Java

Postado em Atualizado em

Atualmente podemos encontrar aplicações web em todos os lugares, em todas a empresas, de vários tipos diferentes como, por exemplo: blogs, fotologs, sites de vendas de todo e qualquer tipo de produtos, pedidos/reservas de passagens de ônibus, avião, hotel e até aplicativos de alto risco e desempenho como aplicações corporativas, bancarias, leilões etc etc etc e muitooo etc aqui !!! Não economize imaginação, qualquer coisa pode estar disponível na web !!!!

Entrando na parte técnica da coisa, aplicativos web são por natureza APLICAÇÕES DISTRIBUÍDAS. Ou seja, são pedaços de um mesmo programa que de forma combinada executam em diferentes lugares em maquinas separadas denominados clientes e servidores, interconectados através de uma rede comum.

Porque então a web se tornou tudo isso que é hoje ? Dentre tantos motivos podemos destacar as seguintes mais importantes:

  1. Pode ser acessados em qualquer lugar do mundo, a qualquer hora, a qualquer dia, ou seja, 100% de disponibilidade, desde de que tenha acesso a web.
  2. Não importa qual é a maquina ou sistema operacional, aplicativos web são implementados em cima de tecnologias padronizadas como HTTP e HTML que são reconhecidos e utilizadas em qualquer plataforma.
  3. Os clientes acessam via aplicativos browsers (Navegadores de Internet) que é fácil de usar e atualmente estão 100% popularizados.
  4. Não precisa ser instalados nada nas maquinas clientes para usar os sistemas.
  5. Milhões de pessoas podem acessar o mesmo sistema ao mesmo tempo.
  6. Atualizações dos sistemas nas maquinas servidores não refletem nenhuma mudança necessária nas maquina clientes, quando o responsável mudar os sistema o mundo inteiro é automaticamente atualizado.

E sempre a pergunta vem a tona: Mas como eu posso fazer um aplicação web com Java ? Quais classes usar? E é nesse ponto que os iniciantes se perdem dentro tantas siglas existentes dentro das tecnologias Java. Antes de tudo, deve ser entendido que: “Existe uma série de tipos diferentes de aplicações Web e que Java oferece um kit de ferramentas e tecnologias para todos eles”. Por isso que encontramos um monte de sigla nos livros, artigos, revistas, tutoriais no mundo afora.

Vamos fazer uma simples brincadeira: “Uma pessoa precisa fazer um bolo de chocolate com cobertura de morango. Esta pessoa se dirige até o supermercado adquire todos os ingredientes necessários para se fazer este bolo, como por exemplo farinha, açúcar, ovos, chocolate em pó e principalmente os morangos e as ferramentas para a confecção auxiliares como por exemplo panelas, batedeiras, colheres etc.”

O que acontece com o desenvolvimento de aplicativos web em Java é simplesmente a mesma coisa !!!!!!!

Para o desenvolvimento de diferentes tipos de aplicativos web, a tecnologia Java disponibiliza um conjunto extenso de tecnologias e ferramentas agrupadas em um pacote chamado atualmente de Java Platform, Enterprise Edition 5 ou JEE 5 + um conjunto de ferramentas e padronizações com o objetivo exclusivo de economizar tempo e dinheiro no ciclo de desenvolvimento.

Com base no discernimento DO TIPO E AS CARACTERÍSTICAS DA APLICAÇÃO WEB que necessite desenvolver é que se seleciona as tecnologias e ferramentas a serem utilizadas para este fim.

Os problemas dos iniciantes no JEE é que eles NÃO DETEM O CONHECIMENTO DE TODAS AS POSSIBILIDADES REFERENTES AOS DIFERENTES TIPOS DE APLICATIVO WEB que possam ser desenvolvido e muito menos QUAIS SÃO AS TECNOLOGIAS E FERRAMENTAS EXISTENTES USADAS EM CADA CASO.

E pior, tem iniciante que não tem nem o mínimo de conhecimento referente ao fundamento primordial de Java que é a programação orientada a objetos,herança, polimorfismo, programação baseado em interfaces etc….e tb não conseguindo abstrair a motivação por de traz de uma simples e básica tecnologia…..como por exemplo: existe pessoas que não consegue entender “o por que” deve ser colocado o IP da maquina em um conexão JDBC. 😦

Reunindo todos estes fatos………..seria como o camarada chegando no hipermercado com 2 andares e um milhão de anúncios de produtos e ferramentas disponíveis, mas ele NÃO SABE QUAL É O DOCE QUE ELE PRECISA FAZER, NÃO SABE QUAIS SÃO E NEM PARA QUE SERVE CADA INGREDIENTE NAS PRATELEIRAS E MUITO MENOS QUAL FERRAMENTA ADQUIRIR !

Quem não se sentiu assim lendo uma revista Java ou navegando no site da sun, vendo aquela sopa de letrinhas tudo começando com Jnão sei oque, Jpara la, Jpara ca…..????? 🙂

Outro fator de peso nestes momentos de desespero é o fato desconhecido de muitos “é que construir sistemas no paradigma web é indiscutivelmente muito mais difícil do que seu correspondente no desktop”, que por enquanto ainda é mais popular. O desenvolvimento web requer uma grande versatilidade no domínio de muitas e diferentes tecnologias e linguagens que podem ser resumidas em tecnologias que rodam no cliente como: HTML, CSS, JavaScript, DHTML e AJAX e tecnologias rodam na parte do servidor como páginas dinâmicas, componentes de negocio e mecanismos de persistência Objeto/Relacional………e principalmente de ter concretos conhecimentos sobre conceitos básicos de engenharia de software como por exemplo: desenvolvimento baseado em camadas lógicas, físicas, distribuídas, concorrências, transações etc….que normalmente não usados em desenvolvimento desktop, sem mencionar uso de ferramentas RAD aonde o foco é arrastar e soltar, resultando em muito desenvolvedores folgados, burro e com uma serie de vícios.

As famílias de produtos disponíveis no atual JEE se resume assim:

Web Application Technologies
JavaServer Faces 1.2 (JSR 252)
JavaServer Pages 2.1 (JSR 245)
JavaServer Pages Standard Tag Library (JSR 52)
Java Servlet 2.5 (JSR 154)

Enterprise Application Technologies
Common Annotations for the Java Platform (JSR 250)
Enterprise JavaBeans 3.0 (JSR 220)
J2EE Connector Architecture 1.5 (JSR 112)
JavaBeans Activation Framework (JAF) 1.1 (JSR 925)
JavaMail (JSR 919)
Java Data Objects (JDO) (JSR 243)
Java Message Service API (JSR 914)
Java Persistence API (JSR 220)
Java Transaction API (JTA) (JSR 907)

Web Services Technologies
Implementing Enterprise Web Services (JSR 109)
Java API for XML-Based Web Services (JAX-WS) 2.0 (JSR 224)
Java API for XML-Based RPC (JAX-RPC) 1.1 (JSR 101)
Java Architecture for XML Binding (JAXB) 2.0 (JSR 222)
SOAP with Attachments API for Java (SAAJ) (JSR 67)
Streaming API for XML (JSR 173)
Web Service Metadata for the Java Platform (JSR 181)

Management and Security Technologies
J2EE Application Deployment (JSR 88)
J2EE Management (JSR 77)
Java Authorization Contract for Containers (JSR 115)

Cada um destes podem possuir subdivisões e tecnologias internas, constituindo uma extensa opções de produtos e ferramentas. Mas a boa notícia é que ninguém tem que saber tudo ou dificilmente vai ter que deter o conhecimento de tudo ou utilizar tudo ao mesmo tempo para a construção de um aplicação web. Provavelmente será usado duas a cinco tecnologias combinas para construir uma grande, boa, robusta e confiável solução.

Este post não tem o objetivo de descrever todos os tipos/características que podem diferenciar um aplicativo web de outro e nem contrastá-lo com as tecnologias certas disponíveis dentro do JEE, mas se caso vc esteje iniciando, não se desespere e nem perca seus cabelos 🙂 o lugar indicado para começar é na especificação de WEB APPLICATION TECHNOLOGIES constituído pelas tecnologias Servlets, JSP, Filters, Web Listeners, TagLibs e JSF. Aqui vc se deparara com todas as mudanças de paradigma necessárias para iniciar sua carreira de desenvolvimento de aplicativos web, podendo posteriormente entrar em outras tecnologias como JPA, EJB e JMS e SOA.

Na série Head First existe um ótimo livro que aborda este conteúdo, podendo atualmente ser adquirido em português. Segue os links abaixo:

Head Fist Servlet e JSP

Use a cabeça Servlet e JSP em Português

Bons estudos para todos.

“Não recorram aos médiuns, nem busquem a quem consulta espíritos, pois vocês serão contaminados por eles. Eu sou o Senhor, o Deus de vocês.” Levítico 19:31

Artigos sobre JPA

Postado em Atualizado em

Continuando com uns dos assuntos mais badalado do momento, segue ai mais alguns artigos previamente selecionados com dicas importantes JPA:

Para aqueles quem tem o interesse comprar um bom livro como referencia completa pode sem receio adquirir o Enterprise JavaBeans 3.0 que tem 6 capítulos (5,6,7,8,9,10) totalmente dedicados para JPA (tanto para containers EJB e aplicativos standalone) que na minha modesta opinião o melhor material que estudei.

Com o post de JPA anterior + este, tem material de sobra para detonar seu SGBD com OBJETOS JAVA 🙂

Análise e Projeto OO – Head First OOA&D

Postado em Atualizado em

Após ler mais um grande livro da série Head First, agora o Object-Oriented Analysis & Design não poderia deixar de elogiar e de fazer um comentário 🙂 !!! Para quem ainda não teve o nenhum contato com a série, os livros se resumem em uma abordagem totalmente específica de apresentação de conteúdo técnico chamada de Metacognição. Eu não conheço ninguém que tenha lido algum e não tenho gostado…e o melhor…..que não tenha apreendido !!!
Para quem já encaro o famoso livro de Analise e Projeto OO do Craig Larman pode agora também se divertir com este head first e complementar seus conhecimentos.

Se caso vc ainda não leu nenhum dos dois, inicie com o da head first que apresenta conceitos, exemplos e praticas básicas e depois encare o do Larman que diferentemente apresenta os mesmos conceitos em níveis bem mais aprofundados, bem menas didática, porém com um profissionalismo indiscutível.

Mesmos aqueles não ainda não se sente confortável com o idioma inglês tb pode adquirir o livro em português aqui.

Há um tempo que vinha usando um modelo próprio de analise e projeto OO baseado no livro do Larman que acabei modificando totalmente após ler esse grande livro…Para quem tem interesse esta segue abaixo os arquivos dos resumos:
Resumo de Análise e Projeto OO
Princípios Básicos OO

JSE M1 – Adetec 21/08/07

Postado em Atualizado em

Neste post podemos trocar informações, comentários, sugestões e criticas durante o curso.

Persistência com JPA

Postado em Atualizado em

Para quem sempre foi muito cuidadoso e desconfiado como eu na utilização de frameworks ORM proprietários, hoje temos a nova especificação exclusiva garantindo portabilidade e funcionalidade das aplicações. E para quem ainda não acredita na coisa, podem agora concerteza confiar na especificação do JEE 5 e desfrutar desta grande maravilha sem restrições. Após 3 semanas de estudos coletando e lendo diversos materiais, pude comprovar que para se aprender tudo o necessário do JPA apenas obtenha e leia os seguintes materiais:

1. Tutorial Oficial JEE 5 – aqui
Tutorial basicão fazendo o overview geral apresentando algumas dicas em como usar em ambientes diferentes dekstop, web e ejb container.

2. PDF Mastering Enterprise Java Bean 3.0 – aqui
Este livro é simplesmente o best seller relacionado com ambiente EJB, porém contém 2 capítulos (9 e 6) apresentando todo conteúdo necessário para se usar JPA, com vários exemplos e comentários relevantes.

Ambos materiais podem ser baixados em PDF !!

Eu como todo javaveiro assino as famosas revistas brazileiras Java Magazine e Mundo Java que ultimamente tem bombardiado a galera com JPA. Este materiais são muitos bons para iniciar o aprendizado, mas não aborda todas as funcionalidades. Apesar de eu ter gostado muito daquele poster do JPA na ultima edição do Mundo Java…muito 10 !!

Também achei diversos PDF e tutoriais na web mas todos superficiais tb.

Fica minha dica ai, lendo estes dois materias vc concerteza pode compreender e começar a utilizar o JPA !! Eu não veja a hora do proximo projeto começar a usar.

Diga vc também adeus a nossas amigas Connection, Statements, ResultSet e principalmente SQL !!!!!!

Kit JavaServer Faces

Postado em Atualizado em

O pessoal sempre tem me perguntado sobre os componentes JSF que eu tenho usado nos meus projetos…segue a lista com os links:
Apache Tomahawk – http://myfaces.apache.org/tomahawk/index.html
JBoss RichFaces – http://labs.jboss.com/jbossrichfaces/
JBoss Ajax4JSF – http://labs.jboss.com/jbossajax4jsf/
Jenia Faces – http://www.jenia.org/
Web Galileo Faces – http://www.javawebcomponents.com/content/products/webGalileoFaces.html MAIS NOVO KIT JSF OPEN SOURCE !!!
Agora esta mais facil do que nunca construir aplicações WEB 2.0 com Java !!!

Especificação Servlet 3.0 Assyncrono

Postado em Atualizado em

Para quem esta ligado na web 2.0, acompanhando o crescimento e a utilização de Ajax em aplicativos servlets – JavaServer Faces, Struts, WebWork, SpringMVC etc…., já podemos ver indícios que funcionalidades Ajax poderão ser tornar parte da especificação servlets 3.0. Veja aqui a proposta de Greg Wilkins para JSR 315.