Comet: Comet é uma técnica de programação web similar ao AJAX, que utiliza XMLHttpRequest no qual permite os usuários emitir dados entre cliente e o servidor web através do protocolo HTTP. A entrega dos dados para o cliente e efetuada assim após a solicitação. Pode chamar Ajax com timeout pequeno (budywaiting).Pode iframe escondido (servere segura conexão longae passa JS). XmlHttpRequest com req longa. XmlHttpRequest com Multipart Request com delimitador.
Cloud Computing: Dados, ficheiros e aplicações residem em servidores físicos ou virtuais, acessíveis por meio de uma rede em qualquer dispositivo compatível. Dentro desse contexto, o PC será apenas um chip ligado à internet, a "grande nuvem" de computadores. Não há necessidade de instalação de programas, serviços e armazenamento de dados, mas apenas os dispositivos de entrada (teclado, mouse) e saída (monitor) para os usuários.
DAO: um padrão para persistência de dados que permite separar regras de negócio das regras de acesso a banco de dados. Numa aplicação que utilize a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como obter as conexões, mapear objetos Java para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes de DAO.
Framework de integração Os frameworks de integração middleware são usados para integrar aplicações e componentes distribuídos. Eles são projetados para melhorar a habilidade de desenvolvedores em modularizar, reutilizar e estender sua infra-estrutura de software para funcionar de forma integrada em um ambiente distribuído. Ele nos permite construir adapters, que são componentes de software que conectam sistemas empresariais com aplicações do servidor.
JSON (com a pronuncia djeisón), um acrônimo para "JavaScript Object Notation", é um formato leve para intercâmbio de dados computacionais. JSON é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente. A simplicidade de JSON tem resultado em seu uso difundido, especialmente como uma alternativa para XML em AJAX. Uma das vantagens reinvindicadas de JSON sobre XML como um formato para intercâmbio de dados neste contexto, é o fato de ser muito mais fácil escrever um analisador JSON. Em JavaScript mesmo, JSON pode ser analisado trivialmente usando a função eval(). Isto foi importante para a aceitação de JSON dentro da comunidade AJAX devido a presença deste recurso de JavaScript em todos os navegadores web atuais.
Mapeamento objeto-relacional: Mapeamento objeto-relacional é uma técnica de programação utilizada para converter dados de tabelas de banco de dados relacionais para objetos e vice-versa. . As tabelas do banco de dados são representadas através de classes e os registos de cada tabela são representados como instâncias das classes correspondentes.
Mashup: Um Mashup pode ser um site ou uma aplicação web que é composta da união de funcionalidades e conteúdo existentes em outras fontes. Através de mashups o conteúdo dos sites cresceu bastante, já que ficou muito mais fácil aproveitar os recursos de outras fontes. O uso de mashups aumenta bastante as possibilidades que os desenvolvedores passam a ter para agregar valor às suas aplicações, uma vez que o número de combinações entre as funcionalidades é enorme. Um mashup possui 3 elementos básicos: os provedores de conteúdo, a aplicação mashup e a aplicação cliente. Os provedores de conteúdo geralmente disponibilizam seu conteúdo através de uma API, outras vezes, disponibilizam através de widgets, que são pedaços de códigos que podem ser incorporados pelas aplicações mashup. A aplicação mashup é quem cuida da lógica, integrando os dados dos provedores de conteúdo. A aplicação cliente é, tipicamente, o navegador do usuário, que também pode ser usado para processar algum dado além da apresentação propriamente dita.
Mock Object é uma simulação de um objeto que minimiza as caraterísticas do objeto real (complexo) em forma controlada, muito útil para o desenvolvimento de testes.
NamedQuery versus usar consultas encapsuladas em DAOs
Como vantagem é possível citar que fica mais fácil alterar, criar e compreender as queries dado que estas são expressadas em metadados e abstrações disponibilizadas pelo framework JPA. Além disso o seu uso deixa transparente o método de persistência legando ao framework (através do EntityManager) a responsabilidade do acesso ao banco de dados e possíveis otimizações como cache por exemplo. A vantagem das DAOs onde o gerenciamento do banco de dados é feita pelo programador é que queries mais otimizadas podem ser criadas e outros tratamentos paraotimização da consultas e operações de persistência podem ser realizados.
Hibernate JPA JPA é uma especificação de Persistência da plataforma Java, para persistir as classes java em bancos de dados relacionais.Hibernate é a implementação dessa especificação. O padrão definido por EJB-JPA disponibiliza metodos de acesso e manipulação de dados persistidos em banco de dadosde maneira transparente facilitanto o mapeamento objeto relacional (ORM). Além disso os frameworks podem disponibilizar diversos metodos de optimização como cache e consultas postergadas.
Interoperabilidade de sistema Web: A interoperabilidade de sistemas Web pode ser feita através dos Web Services. Cada sistema fornece seus serviços disponibilizando uma API (Application Programming Interface) para que os outros sistemas possam utilizá-los. Assim, os sistemas que estão acessando o serviço não precisam saber como está implementado, nem qual linguagem está sendo utilizada.
Inversão de Controles: 1) padrão é muito usado em projetos orientados a objeto e utiliza conceitos como interface, herança e polimorfismo e tem como objetivo reduzir o acoplamento, facilitar o reuso e os testes no projeto de software. Técnica de desenvolvimento de software que serve para delegar o controle da execução da aplicação (sequencia de chamadas dos metodos) para outros componentes, já que normalmente esse controle seria feito pelo prórpio programador. Trata-se de uma caracteristica comum a diversos frameworks, vc coloca o componente la e o framework se encarrega de chama-lo.
2)
Inje Indep: é um padrão de desenvolvimento de programas de computadores utilizado quando é necessário manter baixo o nível de acoplamento entre diferentes módulos de um sistema. Nesta solução as dependências entre os módulos não são definidas programaticamente, mas sim pela configuração de uma infraestrutura de software (container) que é responsável por "injetar" em cada componente suas dependências declaradas. A Injeção de dependência se relaciona com o padrão Inversão de controle mas não pode ser considerada um sinônimo deste.
JSF: JavaServer Faces é um framework MVC para o desenvolvimento de aplicações Web, que permite o desenvolvimento de aplicações para a internet tal como fazíamos com Delphi ou Visual Basic, ou seja, arrastanto e soltando os componentes na tela (JSP), definindo propriedades dos mesmos, etc. O JSF é atualmente considerado por muitos como a última palavra em termos de desenvolvimento de aplicações Web, resultado da experiência e maturidade adquiridas com o JSP/Servlet (Model1), Model2 (MVC) e Struts.
* Permite que o desenvolvedor crie UIs através de um conjunto de componentes UIs pré-definidos;
* Fornece um conjunto de tags JSP para acessar os componentes
* Reutiliza componentes da página;
* Associa os eventos do lado cliente com os manipuladores dos eventos do lado do servidor (os componentes de entrada possuem um valor local representando o estado no lado servidor);
* Fornece separação de funções que envolvem a construção de aplicações Web.
JUnit e com Selenium
Com o JUnit você basicamente escreve testes de unidade, onde você testa cada classe do seu sistema como se fosse uma unidade isolada. Já o Selenium é utilizado para ajudar no processo de criação e automatização de testes de aceitação e integração.
JPA e como eles simplificam o desenvolvimento
O padrão definido por EJB-JPA disponibiliza metodos de acesso e manipulação de dados persistidos em banco de dados de maneira transparente facilitanto o mapeamento objeto relacional (ORM). Além disso os frameworks podem disponibilizar diversos metodos de optimização como cache e consultas postergadas.OGNL é uma linguagem de expressão simples que é usada para referenciar e manipular propriedades dos objetos, em struts2 é utilizado juntamente com o ValueStack (área de armazenamento que abrange todos os dados associados ao request) para referenciar os dados dos formulários e classes associados por uma request.
manytomany: Um relacionamento muitos para muitos é mapeado na JPA através da annotation @ManyToMany ou do elemento many-to-many no xml. Todos os relacionamentos manyToMany precisam de uma tabela de relacionamento. Esta é especificada através da propriedade JoinTable esta por sua vez não precisa ser uma entidade JPA. De maneira transparente são vistos como coleções de cada lado do relacionamento.
Orientação a aspectos e para que serve
A Programação Orientada a Aspecto (AOP) complementa a Programação Orientada a Objetos (OO), permitindo que o desenvolvedor modifique um modelo OO para criar um sistema que pode crescer para cumprir novos requerimentos. Assim como os objetos do mundo real podem mudar de estado durante seu ciclo de vida, uma aplicação pode adotar novas característica segundo a evolução. AOP nos ajuda a modificar dinamicamente nosso modelo estático para incluir um código requerido para cumprir os requerimentos secundários sem ter que modificar o modelo estático original (de fato, nem sequer necessitamos ter o código original). Melhor ainda, normalmente podemos ter esse código adicional em uma única localização em vez de tê-lo repartido pelo modelo existente, como haveríamos feito se estivéssemos usando só OO.
Orquestração de serviços
Processo de sequenciar serviços e prover uma lógica adicional para processar dados. Não inclui uma representação de dados.
Pointcut Pointcut especifica um conjunto de join points, que, por sua vez, especificam quando e onde o advice será executado. O advice possui o código a ser executado. Serve para a adição de aspectos.
POJOS: Plain Old Java Objects, são objetos Java que seguem um desenho simplificado em contraposição aos EJBs, por exemplo. Um JavaBean é um POJO que segue definições rígidas de estrutura (construtor default sem argumentos e métodos que seguem o padrão de getters e setters para seus atributos). Este padrão é baseado na idéia de que quanto mais simples o projeto, melhor.
SOAP é um protocolo para troca de informações estruturadas em uma plataforma descentralizada e distribuída, utilizando tecnologias baseadas em XML. Sua especificação define um framework que provê maneiras para se construir mensagens que podem trafegar através de diversos protocolos e que foi especificado de forma a ser independente de qualquer modelo de programação ou outra implementação específica. Por não se tratar de um protocolo de acesso a objetos, o acrônimo não é mais utilizado.
SOA Server Object Arquitetura (Não seria Service Oriented Architecture ?), Arquitetura orientada a Serviços, foi desenvolvida para permitir a integração de diferentes aplicações baseado em o uso de serviços.
SOAP VS REST
- Pontos para o SOAP
Mais antigo, portanto, mais bem documentado e mais aplicado.
Bastante completo e complexo.
- Pontos para o REST
Simples, mais fácil de utilizar.
Dito simples até demais por alguns.
Independe da linguagem ou de negociações mais complexas, como firewalls, proxies e portas.
Struts é um framework de desenvolvimento da camada controladora, numa estrutura seguindo o padrão Model 2 (uma variante do MVC oficializada pela Sun), de aplicações web (principalmente) construído em Java para ser utilizado em um container web em um servidor J2EE. Este framework foi originalmente desenvolvido por Ted Husted e doado para a Apache Software Foundation, onde continua sendo desenvolvido segundo o padrão desta fundação.
* Facilita a população de beans
* Simplifica o uso de servlets, necessitando apenas a criação de classes Action
* Com suas tags dispensa o uso de scriptlets em 98% dos casos.
Struts VS JSF
A configuração do arquivo xml do jsf é mais simples que a do Struts.
O struts suporta validação de campos de um formulário baseada em javascript, o jsf não.
Struts possui uma aplicação padrão na instalação para auxiliar a criação de um novo projeto. O JSF não.
O que são Interceptors do Strutrs é um componente arquitetural que define vários workflows que podem ser executados antes e depois de cada request. eles podem fazer trabalhos como validação de dados, conversão de tipos e upload de arquivos.
Rich Internet Application: são Aplicações Web que tem características e funcionalidades de softwares tradicionais do tipo aplicativo. RIA típicos transferem todo o processamento da interface para o navegador da internet, porém mantém a maior parte dos dados (como por exemplo, o estado do programa, dados do banco) no servidor de aplicação (Java applets, Flash, Flex)
XHTML: regras de validação são mais rígidas do que no HTML. Melhorar a acessibilidade, a padronização entre renderizações, o processamento automatizado, processamento e renderização mais rápidos. Foi removido o atributo name dos elementos a e map e também o atributo lang. Além desse, foram removidos os elementos depreciados do HTML, tais como: applet, basefont, center, dir, font, isindex, menu, s, strike e u.
WebService Web Service é um componente que permite que uma aplicação envie e receba dados em XML. Através dessa tecnologia, é possível que aplicações distintas interajam entre si, independentemente da plataforma e linguagem utilizadas.
WSDL e SOAP A WSDL (Web Services Description Language) serve para descrever os serviços do Web Service, e suas mensagens, segundo um formato XML, independentemente dos formatos de mensagem e dos protocolos de rede que sejam usados. O SOAP é um protocolo comumente utilizado. Ele é baseado em XML e HTTP e serve para fazer as requisições dos serviços disponíveis.