Jetty o pequeno grande servidor Java para web



Documentos relacionados
Como sobreviver com Java 2? Saulo Arruda

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container TomCat Aula 05

Ricardo R. Lecheta. Novatec

J2EE TM Java 2 Plataform, Enterprise Edition

SCC Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Procedimentos para Configuração do Ambiente J2EE e J2SE em Ambiente Windows

Curso de Extensão Programação Orientada a Objetos com Java. Última atualização: 25/05/2010

Mini-curso Gratuíto.

Heroku. Implantando Aplicações Java no. heroku_. Descubra como é fácil ter sua aplicação rodando em Cloud Computing

TDC2012. EJB simples e descomplicado, na prática. Slide 1

JPA Passo a Passo. Henrique Eduardo M. Oliveira henrique@voffice.com.br. Globalcode Open4Education

SUN Camilo Lopes -Sun Certified Programmer Java

MANUAL DE INSTALAÇÃO JBOSS-JOSSO

Google App Engine. André Gustavo Duarte de Almeida. Computação Ubíqua e Nuvens. Natal, 24 de maio de 2012 andregustavoo@gmail.com

Plataforma Open Source de Desenvolvimento e Sustentação de Sistemas. Daniel Darlen Lucius Curado Ridai Pombo

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse

NOME DA APRESENTAÇÃO

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello

Curso de Aprendizado Industrial Desenvolvedor WEB

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04

Spring: Um suite de novas opções para Java EE

Integração Contínua com Jenkins

IplanRio DOP - Diretoria de Operações GIT - Gerência de Infraestrutura Tecnológica Gerente da GIT

Mini-curso Gratuito Globalcode Slide 1

Criação de um novo projeto no Eclipse utilizando Maven

Java e Banco de Dados: JDBC, Hibernate e JPA

Integração contínua com Hudson - Configuração, Extensão e Diversão! Fabiane Bizinella Nardon fabiane.nardon@zilics.com.br Zilics

Integrando Eclipse e Websphere Application Server Community Edition

Java II. Sérgio Luiz Ruivace Cerqueira

Cronograma de Aulas 2º Módulo 11/07/2009 a 05/09/2009

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M

Grails: o que isso quer dizer? Gilliard Cordeiro

Programação para Internet II

Agenda. Desenvolvimento um aplicativo completo usando JSF, EJB e padrões Rodrigo Cândido e Vinny Nunes Instrutores Globalcode / VOffice.

Analista de Negócio Pleno

Uma introdução ao Google App Engine com GWT

ARQUITETURA DO SISTEMA ERP PEGASUS

Builds com Gradle: programativo e declarativo. Conheça a ferramenta de build para a JVM que está ganhando muita popularidade.

Utilizando JMeter para realizar testes de carga em aplicações Web. Robinson Castilho Bacarin Software Ltda JUGMS

Sistema Gerenciador de Conteúdo OpenCms: um caso de sucesso no CEFET-MG

O nome ANT é uma sigla para another neat tool (mais uma ferramenta organizada), segundo seu autor James Duncan Davidson.

Ensino Superior: IESB Instituto de Educação Superior de Brasília Ciências da Computação - Cursando

TECNOLOGIA JAVA TENDÊNCIAS, MERCADO E FUTURO

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática

J2EE. J2EE - Surgimento

Demoiselle Tutorial Módulo 1 Arquitetura

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

MÓDULO Programação para Web 2

Listando, gravando, alterando e excluindo registro do banco de dados com JSP

Melhoria no Desenvolvimento Ágil com Implantação de Processo de Integração Contínua Multiplataforma para Java e.net. Hudson

Fabio Velloso Lançamento WildFly 8

Vivência profissional: Experiência com análise de sistemas, arquitetura e análise orientada a objetos;

ANEXO 09 PERFIS PROFISSIONAIS MÍNIMOS

Aula 03 - Projeto Java Web

Aula 4. Objetivos. Conteúdo dinâmico na internet.

VRAPTOR: O FRAMEWORK DE APRENDIZADO JAVA WEB AUGUSTO BEVILAQUA RAFAEL CIRINO LACERDA SAULO ALMEIDA LIMA

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

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados:

JVM s Livres. Paloma Costa. javawoman@portaljava.com.br

Desenvolvimento Flex com Maven

O Struts morreu. Como escolher um novo framework Web.

Guilherme Augusto de Assis

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl

RestFull WebServices. Rafael Nunes Arquiteto de Software / Instrutor Globalcode. Globalcode Open4Education

Universidade Federal de Campina Grande Departamento de Sistemas e Computação Ciência da Computação. alyssonfm@lcc.ufcg.edu.br

Conceitos de Ajax Exemplos de uso do Ajax no braço, muitos exemplos, muito código (HTML, CSS, JavaScript, PHP, XML, JSON)

LISTA DE QUESTÕES SERVIDORES DE APLICAÇÃO BANCA FCC CONCURSO TRT 2014

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

Associação Carioca de Ensino Superior Centro Universitário Carioca

EJB 3.1: A Community Update

Este livro é dedicado a minha esposa Edna e a todos os desenvolvedores que fizeram do software livre um meio profissional levado a sério.

Projeto da Certificação SCEA 5 Um estudo de caso de um projeto fictício para obter a certificação de arquiteto Java EE

Facebook. Java com o. Integrando Aplicações. Descubra como é fácil criar uma aplicação para rodar no Facebook. _capa

Integrações e o ecossistema Java. Fabric8 ao Resgate!

Java Programação para Fábrica de Software. Fernando Lozano Consultor 4Linux

Enterprise JavaBeans. Java Deployment Course. por Jorge H. C. Fernandes DI-UFPE Julho de 1999

JobScheduler Empresa: Assunto: Responsável: Dados de Contato: Suporte: Comercial: Financeiro:

Enterprise Java Beans

Gerenciando conteúdo em Portais Java usando Portlets

MANUAL DE INSTALAÇÃO CONFIGURAÇÃO IDE ECLIPSE

SenchaTouch + PhoneGap

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web:

Linguagem de Programação Para Internet II

Sistemas Distribuídos

Introdução ao kit J2EE SDK (Sun)

Integrando Flex + Java + BlazeDS

DWR DIRECTED WEB REMOTING

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Administração de Banco de Dados

Sistema de Gestão Comercial Plataforma GSAN. Documento de Procedimento de Instalação

2.4. Carregamento de classes e classloader hell

Transcrição:

Jetty o pequeno grande servidor Java para web Julio Viegas Arquiteto de software/sistemas - SPC Brasil Instrutor Java - Fontoura Education/Sun Microsystems http://creativecommons.org/licenses/by/3.0/

Perfil profissional +10 anos na area de tecnologia. Desenvolvedor, Instrutor, Mentor. SCJP 5, SCJA 1, SCEA 1 e 5, SCDJWS 1.4 e 5, SCWCD 1.4, SCBCD 5, Sun T3(Sun Certified Java Instructor). Atualmente atua como arquiteto de software e sistemas no SPC Brasil e como Instrutor Sun Microsystems/Fontoura. Hobista em eletronica analogica e digital. MCUs 8051 e Renesas M16C. Viciado em Unix, Wii, Twitter e blogueiro ocasional. Colaborador em diversas comunidades relacionadas a desenvolvimento de tecnologia. Mais em julioviegas.com.

Agenda O projeto Jetty Funcionalidades Arquitetura básica do container Instalando e executando o Jetty Configuração Realizando deploy i-jetty Continuations/Comet Cluster com Terracotta Extras e referências adicionais

O projeto Jetty Um container servlet 2.5, APENAS ISSO! Desenvolvido por um time estavel desde 1995. Comunidade vibrante e de alto nivel! Foi o container web padrao do JBoss. Grande suporte a Web 2.0: AJAX e Web Assincrona. Adotado pelo Google App Engine e GWT, Yahoo Zimbra, Eclipse Foundation... Embutido em varios outros produtos: Cisco, Hadoop, Android... Suporte comercial fornecido por Webtide Hack friendly!

O projeto Jetty Market share em crescimento

Funcionalidades Pequeno em tamanho e footprint. Performático. Simples. Baseado em POJO! Configuracao: programatica e XML. Estavel - sem memory leaks. Gratis, aberto e livre. Escolha padrao quando o assunto eh Web Assincrona! Threadpool simples com suporte a queue. DI/IoC(antes mesmo do spring popularizar a coisa!). Graceful stop & star.

Funcionalidades adicionais MultiPartFilter. JNDI (para quem ainda precisa disso). Modularizacao Maven. Integracao com OSGi(bundles a partir da versao 6.1.15). QoS Filter: evolucao do DoSFilter. SSO via SPI SSORealm; Implementacao padrao HashSSORealm. Plugin para Eclipse. JTS: Atomikos, JOTM... Terracotta session cluster(cache com persistencia, grid, cluster lock). Adicionais: gzip, ssl, plugin ant, jaas provider...

Arquitetura HandlerCollection, ContextHandler, SessionHandler, ResourceHandler, ServletHandler WebInfConfiguration Configuration TagLibConfiguration SelectChannelConnector host port forwarded idlems acceptors queuesize lowresourcesconnections lowresourcesmaxidletime QueuedThreadPool low/max idlems

Instalando download e unzip(jetty-6.1.xx.zip)! contexts: hotdeploy! etc: config examples extras: integraçoes opcionais(terracotta,jboss, spring) lib modules: fontes mavenizados patches: "mods" nos fontes webapps/webapps-plus: aplicacoes start.jar deb, rpm, windows service wrapper... compile via maven

Executando Via xml: java -jar start.jar etc/jetty.xml Via codigo: server.start(); Teste em http://localhost:8080/test Graceful stop: kill -TERM pid

Configuracao XML com DI/IoC <Configure id="server" class="org.mortbay.jetty.server"> <Set name="threadpool"> <New class="org.mortbay.thread.queuedthreadpool"> <Set name="maxthreads">1000</set> </New>... Programatico Server server = new Server(8080); Context root = new Context(server,"/",Context.SESSIONS); root.addservlet(new ServletHolder(new HelloServlet("Ciao")), "/*"); server.start();

Realizando deploy Estatico: WebAppDeployer Diretorio: webapps/${contexto} War: webapps/${contexto}.war Zip: webapps/${contexto}.war Root: webapps/root Hot deploy: ContextDeployer atualize a configuracao do contexto <?xml version="1.0" encoding="iso-8859-1"?> <Configure class="org.mortbay.jetty.webapp.webappcontext"> <Set name="contextpath"><property name="foo"/></set> <Set name="war">./webapps/foo.war</set> </Configure> Demo hello

i-jetty Android Demo

Continuations Request > Connection > Thread AJAX Pooling? NAO! Devolva as threads para o ThreadPool! HTTP stateless HTTP stateful: isso nao existe! Comet + Bayeux WebSockets? Demo pooling vs continuations vs comet

Cluster Terracotta Escalabilidade simples Cluster: várias JVM como uma única! NAM Network-Attached Memory Grid(paradigma Master/Worker com TIM Messaging) Grátis e aberto O particionamento é pago!

Cluster Terracotta DSOs Distributed Shared Objects = Cluster HEAP DMI Distributed Method Invocation = Distributed Notification/Listener Synchronized em cluster: synchronized, wait, notify, java.util.concurrent Integrações: Spring(Web Flow e Security), Ehcache, Hibernate, Tomcat, Jetty, Cglib...

Cluster Terracotta Demo Terracotta Demo Jetty + Terracotta

Perguntas? Obrigado!