Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio

Tamanho: px
Começar a partir da página:

Download "Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio"

Transcrição

1 Roberto Perillo é bacharel em Ciência da Computação e está atualmente cursando mestrado no ITA, onde já concluiu o curso de especialização em Engenharia de Software. Trabalha com Java há mais de 5 anos, possui as certificações SCJP, SCWCD, SCJD e SCBCD, e é moderador no JavaRanch, onde participa ativamente dos fóruns. Já trabalhou com JEE em grandes empresas, como Avaya e IBM. Nesta última, foi co-fundador do time de inovação de ibm.com GWPS LA. Atualmente, trabalha na GSW Soluções Integradas como líder técnico de desenvolvimento OO e Senior Java Developer. Transaction Scripts: Uma Forma mais Simples de Organizar Lógica de Domínio Uma opção simples quando não é possível (ou necessário) utilizar um modelo de domínio Existem alguns padrões arquiteturais que objetivam organizar a lógica de domínio de aplicações, dois que se destacam são o Domain Model e o Transaction Script. O padrão Domain Model organiza a lógica de domínio através de um modelo de objetos rico e é indicado principalmente quando essa lógica é complexa. Entretanto, existem algumas situações nas quais um modelo de domínio não se aplica. Na maioria dessas situações, o padrão Transaction Script pode ser utilizado. Ele propõe uma abordagem mais procedural, mas que pode ser considerada mais adequada nesses casos. Neste artigo, o padrão Transaction Script é apresentado e é exemplificado como ele pode ser utilizado, e são ilustrados alguns benefícios que podem ser alcançados com a sua utilização. o excelente livro Patterns of Enterprise Application Architecture, Martin Fowler aborda alguns padrões de organização de lógica de domínio, sendo que os que mais se destacam por serem amplamente utilizados na indústria são o Domain Model e o Transaction Script. O Domain Model é uma excelente forma de organizar lógica de domínio, pois sugere uma estrutura que permite refletir efetivamente o modelo de domínio no código, utilizando assim todas as forças e benefícios que a orientação a objetos oferece. Consequentemente, o desenvolvimento se torna mais produtivo e o código fica mais fácil de manter e evoluir com o passar do tempo. O Domain Model é indicado principalmente quando a lógica de domínio é complexa. Entretanto, existem algumas situações em que o Domain Model não é o padrão mais indicado, como quando a lógica de domínio é simples, ou a equipe de desenvolvimento não possui a maturidade necessária em relação à orientação a objetos, por exemplo. Na maioria desses casos, o padrão Transaction Script, que é uma abordagem mais procedural, pode ser considerado o padrão mais apropriado. O objetivo deste artigo é introduzir o padrão Transaction Script como uma forma mais simples de se organizar lógica de domínio e está organizado da seguinte forma: primeiramente, é apresentada uma discussão sobre design orientado a objetos versus design procedural. 16

2 Em seguida, é apresentado o padrão Transaction Script, no qual são apresentadas considerações sobre organização em camadas da arquitetura de aplicações e uma breve discussão sobre quando o padrão Transaction Script pode ser o padrão de organização de lógica de domínio mais apropriado a ser aplicado. Logo após, é apresentado um exemplo de aplicação do padrão Transaction Script e é mostrado como um projeto que o utiliza normalmente é organizado. Em seguida, é apresentado um exemplo de como ele pode ser utilizado em uma aplicação real. E, finalmente, são apresentadas as considerações finais, finalizando o presente trabalho. Apresentação Negócios Persistência Base de Dados Figura 1. Organização da arquitetura tradicional de quatro camadas. Para Saber Mais Consulte o artigo Domain Model: Uma Forma Mais Eficiente de Construir Aplicações Enterprise, publicado na edição 42 da revista MundoJ, para ter uma visão mais detalhada sobre o padrão Domain Model. Design Orientado a Objetos Vs. Design Procedural Existem algumas formas de organizar a arquitetura de uma aplicação orientada a objetos, mas a indústria convergiu para a arquitetura em camadas. O grande benefício da organização em camadas é que cada camada pode ser projetada especificamente para cada interesse, promovendo assim um design mais coeso. A essência dessa organização é que elementos das camadas superiores comuniquem-se somente entre si ou que sejam auxiliados pelas camadas inferiores. As camadas inferiores não devem saber que as camadas superiores existem, para que haja mais flexibilidade e coesão e para que o acoplamento seja baixo. Em algumas situações, pode ser necessário que uma camada de nível inferior se comunique com uma camada de nível superior, por exemplo, em um cenário no qual clientes estão conectados a um servidor e a camada de domínio precisa comunicar a todos os clientes que os dados sendo exibidos foram alterados por um determinado cliente. Nesses casos, pode-se utilizar mecanismos de callback ou o padrão Observer. No excelente livro EJB 3 In Action, os autores abordam um estilo de arquitetura chamado arquitetura tradicional de quatro camadas, que é bastante conhecido entre designers de aplicações enterprise. As quatro camadas que compõem este estilo de arquitetura são: camada de apresentação, camada de negócios, camada de persistência e camada de banco de dados, como é mostrado na figura 1. A camada de apresentação é responsável por lidar com interesses de UI (User Interface), como exibir mensagens visuais para o usuário, habilitar ou desativar campos-texto, lidar com botões do tipo radio etc. Esta camada deve conter somente lógica de UI, e não propriamente de negócios, que deve se concentrar somente na camada de negócios (ou domínio). Essa camada representa o coração deste estilo de arquitetura e é responsável por concentrar todas as regras de negócio implementadas pela aplicação. Esta camada não recupera ou persiste informações no banco de dados; ao invés disso, todas as operações de banco de dados são intermediadas pela camada de persistência, que é uma abstração orientada a objetos sobre a camada de banco de dados. Esta camada não deve conter regras de negócio, e deve burramente obedecer a todas as requisições da camada de negócio. Assim, a camada de negócios/domínio concentra todas as regras de negócio implementadas em uma aplicação. Para a organização dos componentes dessa camada, existem alguns padrões de organização de lógica de domínio que podem ser utilizados, sendo que os mais utilizados na indústria são o Domain Model e o Transaction Script. O Domain Model sugere implementar um modelo de domínio através de um modelo de objetos rico que utiliza plenamente todas as forças que a orientação a objetos oferece, e é adequado principalmente quando a lógica de domínio é complexa. Ele permite refletir efetivamente o modelo de domínio no código, que é o princípio do Model-Driven Design. Basear a implementação do código em um modelo proporciona alguns benefícios. A conexão entre o modelo e o código permite verificar se a análise feita no modelo se aplica no código criado, facilitando assim a contínua evolução e manutenção do modelo e do software criado. Entretanto, existem algumas situações em que utilizar o Domain Model pode não ser o mais adequado. Basear a implementação em um modelo é uma tarefa difícil que exige experiência em modelagem de sistemas e orientação a objetos. Em algumas situações, não é necessário basear a implementação em um modelo, pelo fato de que a lógica é muito simples (como CRUDs, por exemplo). Para esses casos, o padrão Transaction Script pode ser utilizado. Ele propõe organizar a lógica de domínio de uma forma mais procedural, porém simples e que existe especificamente para esses casos. O Padrão Transaction Script O padrão Transaction Script organiza a lógica de domínio em um conjunto de métodos, em que cada método lida com uma requisição da camada de apresentação e organiza a lógica de negócios implementada pela aplicação. Idealmente, os transaction scripts devem ser agrupados em classes que lidam com tarefas similares. Essas classes conterão somente os transaction scripts, e assim possuirão somente comportamento. Por exemplo, em um cadastro de funcionários, poderia existir uma classe chamada TransactionScriptsCadastroFuncionarios que conteria métodos como cadastrarfuncionario(funcionario), alterarda dosfuncionario(funcionario) etc. Martin Fowler deu esse nome a esse padrão porque, na maioria dos casos, haverá um transaction script por transação de banco de dados. Logo, na maioria dos casos, o tratamento de cada requisição da camada de apresentação implica em uma transação, ou um conjunto atômico de operações. Em um projeto usual, os Transaction Scripts efetuam computações e podem lidar diretamente com o banco de dados. No entanto, uma forma mais eficiente é utilizar DAOs para encapsular o acesso a dados. Cada Transaction Script utiliza objetos burros que existem somente 17

3 para transferir dados entre as camadas (os chamados DTOs). Dessa forma, dada uma requisição da camada de apresentação, um Transaction Script preenche ou recebe um DTO, utiliza seus dados para efetuar computações, podendo passá-lo para um DAO caso o método lide com persistência, e pode devolver um DTO para a camada de apresentação. Um modelo de domínio que contém somente DTOs que só existem para a transferência de dados entre as camadas e não possuem nenhuma inteligência é chamado de modelo de domínio anêmico. A utilização do padrão Transaction Script é bastante simples, pois sua aplicação é direta e não é preciso se preocupar em identificar classes e atribuir a elas responsabilidades, como acontece quando o padrão Domain Model é utilizado. Assim, não é necessário possuir muita experiência com orientação a objetos. Ao mesmo tempo, a simplicidade desse padrão também é uma limitação. Pelo fato de que transaction scripts são rotinas que tratam requisições da camada de apresentação, o código pode ficar difícil de manter e entender. Além disso, é bastante comum ter código duplicado quando esse padrão é utilizado. Por isso, sua utilização é indicada principalmente quando a lógica de domínio for simples. Para Saber Mais No artigo Desmistificando a Certificação SCJD: a certificação que merece mais atenção da comunidade Java, publicado na edição 40 da revista MundoJ, é apresentada uma forma de resolver a atribuição dessa certificação utilizando o padrão Transaction Script. Um exemplo de aplicação do Padrão Transaction Script da aplicação é efetuar reservas de quartos de hotel para clientes online. Embora seja perfeitamente válido aplicar na mesma aplicação o Domain Model (para lidar com a lógica de domínio complexa) e o Transaction Script (para lidar com a lógica de domínio simples) em conjunto, a lógica de domínio nesse caso é simples; logo, somente o padrão Transaction Script se faz necessário.o modelo apresentado na figura 2 corresponde a um modelo de domínio anêmico, pois não contém nenhuma inteligência. As classes que o compõem existem somente para a transferência de dados entre as camadas, e toda a inteligência da aplicação é concentrada nos transactions scripts. Na Listagem 1 é apresentada a classe que contém o transaction script que reserva o quarto de hotel para um determinado cliente. Caso novas funcionalidades referentes a reservas precisassem ser adicionadas, elas seriam naturalmente adicionadas à classe apresentada na Listagem 1. Listagem 1. Classe que contém o transaction script que efetua a reserva do quarto de hotel. package br.com.mj.hotel.business; // imports omitidos... public class TransactionScriptsReservasQuartosDefault implements TransactionScriptsReservasQuartos { private DaoReservas daoreservas; private DaoClientes daoclientes; private DaoQuartos daoquartos; public TransactionScriptsReservasQuartosDefault( DaoReservas daoreservas, DaoClientes daoclientes, DaoQuartos daoquartos) { super(); this.daoreservas = daoreservas; this.daoclientes = daoclientes; this.daoquartos = daoquartos; public void reservarquarto(int idcliente, int numeroquarto, Date inicioreserva, Date fimreserva) throws QuartoJaReservadoException { Reserva reserva = daoreservas.find(numeroquarto, inicioreserva, fimreserva); if (reserva!= null) { String mensagem = Este quarto já contem uma reserva + no período indicado. ; throw new QuartoJaReservadoException(mensagem); Cliente cliente = daoclientes.find(idcliente); Quarto quarto = daoquartos.find(numeroquarto); 18 Figura 2. Modelo de domínio utilizado na aplicação de reservas de quartos de hotel. Para exemplificar a utilização do padrão Transaction Script, consideremos o exemplo apresentado a seguir. Pelo fato de que cada Transaction Script lida com uma requisição da camada de apresentação, não importa se a aplicação é web ou desktop, mas o exemplo proposto pelo presente artigo apresenta uma aplicação web. O objetivo Periodo periodo = new Periodo(inicioReserva, fimreserva); Reserva novareserva = new Reserva(); novareserva.setcliente(cliente); novareserva.setquarto(quarto); novareserva.setperiodo(periodo); daoreservas.save(novareserva);

4 Por exemplo, supondo-se que as informações de pagamento seriam adicionadas somente no momento do check-in ou check-out, o método reservarquarto efetuaria a reserva com as informações de pagamento nulas, e poderiam ser adicionados mais dois métodos à interface TransactionScriptsReservasQuartos, checkin e checkout, que receberiam as informações de pagamento e atualizaram corretamente o registro da reserva. Assim, transaction scripts são métodos que compõem classes de negócios de granularidade grossa e cada transaction script lida com uma requisição da camada de apresentação. Esse estilo pode ser considerado procedural, pois, nesse caso, a classe de negócios possui interesses que deveriam estar distribuídos em classes do modelo de domínio implementado, onde cada classe cuidaria de interesses específicos. Um transaction script pode não ser um método de uma classe Java; pode ser uma rotina de um script CGI, por exemplo. Se existe uma rotina que lida com uma requisição da camada de apresentação e implementa regras de negócio, sendo que essa rotina cuida de interesses que deveriam estar distribuídos em classes (ou outras estruturas), em que cada classe (ou estrutura) cuidaria somente dos interesses que fossem de sua competência, então essa rotina pode ser considerada um transaction script. Em uma aula da disciplina de Fundamentos de Engenharia de Software do curso de mestrado do ITA, o professor Clovis Torres Fernandes falou sobre atribuição de responsabilidades. Uma responsabilidade é tudo que uma classe sabe ou faz. No exemplo apresentado acima, a classe TransactionScriptsReservasQuartosDefault efetua a reserva de um quarto para um cliente. Caso o Domain Model estivesse sendo utilizado, essa responsabilidade seria da classe Quarto (que seria uma entidade) e seria invocada a partir de uma classe de serviços. As classes seriam mais coesas e de granularidade menor, e cada classe do modelo teria somente as responsabilidades que fossem de sua competência. Utilizando os Transaction Scripts Para exemplificar a utilização do transaction script proposto pelo presente artigo, consideremos sua utilização a partir de um Controller (Servlet), que recebe requisições da tela de reservas de quartos de hotel. Idealmente, poderia ser construído um Front Controller (padrão do catálogo Core J2EE Patterns), que receberia todas as requisições da aplicação e delegaria a descoberta do componente responsável pelo tratamento de cada requisição a um Application Controller (outro padrão do catálogo Core J2EE Patterns), que também seria responsável por direcionar o usuário ao componente de visualização correto, mas como o exemplo proposto aborda uma aplicação simples, tal modelagem não se faz necessária. Embora atualmente não seja mais tão comum a utilização direta desses padrões, pode-se observar sua utilização em vários frameworks que objetivam controlar aplicações web. Por exemplo, o padrão Application Controller pode ser observado no framework Struts, que utiliza mapeamento declarativo para facilitar o gerenciamento de ações e componentes de visualização. Para promover flexibilidade, a aplicação pode se utilizar de injeção de dependência via construtor, que é uma das três formas possíveis de injeção de dependência. Para arranjar os objetos no momento em que a aplicação é iniciada, o framework Spring pode ser utilizado. Ele também pode ser utilizado para tornar cada transaction script transacional, para que as operações realizadas por eles sejam processadas de forma atômica. Nesse caso, deve-se definir um arquivo XML e definir algumas configurações no web.xml da aplicação, para que objetos sejam corretamente instanciados e arranjados pelo Spring quando a aplicação for iniciada. Na Listagem 2, é apresentado o Servlet que corresponde ao Controller que recebe as requisições da tela de reservas de quartos de hotel e, na Listagem 3, é apresentado o XML consumido pelo Spring no momento em que a aplicação é iniciada. Listagem 2. Controller que recebe as requisições de reservas de quartos de hotel. package br.com.mj.hotel.controllers; // imports omitidos... public class ControllerReservasQuartos extends HttpServlet public void dopost(httpservletrequest request, HttpServletResponse response) throws ServletException, IOException { String xmlspring = getservletconfig().getinitparameter( xmlspring ); ApplicationContext context = new ClassPathXmlApplicationContext(xmlSpring); TransactionScriptsReservasQuartos scripts = (TransactionScriptsReservasQuartos) context.getbean( transactionscriptsreservasquartos ); int idcliente = Integer.parseInt(request.getParameter( idcliente )); int numeroquarto = Integer.parseInt(request.getParameter( numeroquarto )); Date inicioreserva = converterparadata(request.getparameter( inicioreserva )); Date fimreserva = converterparadata(request try {.getparameter( fimreserva )); scripts.reservarquarto(idcliente, numeroquarto, inicioreserva, fimreserva); RequestDispatcher dispatcher = request.getrequestdispatcher( /SucessoReserva.jsp ); dispatcher.forward(request, response); catch (QuartoJaReservadoException exception) { request.setattribute( mensagem, exception.getmessage()); RequestDispatcher dispatcher = request.getrequestdispatcher( /QuartoJaReservado.jsp ); dispatcher.forward(request, response); private Date converterparadata(string data) {... 19

5 20 Listagem 3. XML de arranjo de objetos consumido pelo Spring. <?xml version= 1.0 encoding= UTF-8?> <beans...> <bean id="sessionfactory" class="org.springframework.orm.hibernate3.localsessionfactorybean"> <property name="configlocation"> <value>classpath: hibernate.cfg.xml</value> <bean id="hibernatetemplate" class="org.springframework.orm.hibernate3.hibernatetemplate"> <property name="sessionfactory" ref="sessionfactory" /> <bean id="daoreservas" class="br.com.mj.hotel.persistence.daoreservasdefault"> <bean id="daoclientes" class="br.com.mj.hotel.persistence.daoclientesdefault"> <bean id="daoquartos" class="br.com.mj.hotel.persistence.daoquartosdefault"> <bean id="transactionscriptsreservasquartos" class="br.com.mj.hotel.business.transactionscriptsreservasquartosdefault"> <constructor-arg ref="daoreservas" /> <constructor-arg ref="daoclientes" /> <constructor-arg ref="daoquartos" /> <bean id="transactionmanager" class="org.springframework.orm.hibernate3.hibernatetransactionmanager"> <property name="sessionfactory" ref="sessionfactory" /> <bean id="matchallmethods" class="org.springframework.transaction.interceptor.matchalwaystran sactionattributesource" /> <bean id="transactioninterceptor" class="org.springframework.transaction.interceptor.transactioninterceptor"> <property name="transactionmanager"> <ref bean="transactionmanager" /> <property name="transactionattributesource"> <ref bean="matchallmethods" /> <bean id="transactionproxycreator" class="org.springframework.aop.framework.autoproxy. BeanNameAutoProxyCreator"> <property name="beannames"> <list> <idref bean="transactionscriptsreservasquartos" /> </list> <property name="interceptornames"> <list> <idref bean="transactioninterceptor" /> </list> </beans> A modelagem proposta pelo presente artigo também atende ao padrão MVC, pois o Controller recebe a requisição do componente de visualização, delega seu tratamento ao componente de negócios apropriado (no caso, uma instância da classe TransactionScriptsReservasQuartosDefault) e despacha os objetos HttpServletRequest e HttpServletResponse ao componente de visualização que será exibido ao usuário como resposta à requisição feita. Do ponto de vista da arquitetura tradicional em quatro camadas, o Controller também faz parte da camada de apresentação. Nesse caso, como a criação do Servlet não é controlada pelo Spring, não é possível se utilizar de injeção de dependência. Por isso, o bean de id transactionscriptsreservasquartos, criado pelo Spring, é recuperado no Servlet através do objeto de contexto do Spring. Os parâmetros da requisição são então recuperados e passados ao objeto da classe TransactionScriptsReservasQuartosDefault que contém a lógica de negócios de reserva de quartos. Esse objeto conta com a colaboração de DAOs para recuperar e persistir informações no banco de dados. Caso fosse uma aplicação Swing, o objeto da classe TransactionScriptsReservas- QuartosDefault poderia ser, por exemplo, injetado em um objeto ActionListener através de seu construtor e utilizado para tratar ações a partir do clique do usuário em um botão. Considerações finais Neste artigo, foi apresentado o padrão Transaction Script, que é um padrão de organização de lógica de domínio indicado quando não é possível (ou necessário) utilizar um modelo de domínio. A chave desse padrão é a simplicidade e sua utilização é indicada principalmente quando a lógica de domínio é simples. Os principais padrões de organização de lógica de domínio são o Domain Model e o Transaction Script. O Domain Model, apesar de ser uma excelente forma de organizar a lógica de domínio através de um modelo de objetos rico, requer experiência em modelagem OO e é indicado quando a lógica de domínio é complexa. Em contrapartida, o Transaction Script sugere uma forma simples de lidar com a lógica de domínio, em que as classes contêm rotinas que tratam requisições da camada de apresentação. Deve-se avaliar com cuidado quando sua aplicação é apropriada, pois esse padrão é a abordagem procedural da orientação a objetos e tende a levar a duplicação de código Referências FOWLER, Martin. Patterns of Enterprise Application Architecture. Boston: Addison- Wesley Professional, PANDA, Debu; RAHMAN, Reza; LANE, Derek. EJB 3 In Action. Greenwich, CT: Manning Publ., PERILLO, Roberto. Desmistificando a Certificação SCJD: A Certificação Que Merece Mais Atenção da Comunidade Java. Revista MundoJ, Edição 40, PERILLO, Roberto. Domain Model: Uma Forma Mais Eficiente de Construir Aplicações Enterprise. Revista MundoJ, Edição 42, 2010.

Domain Model: Uma Forma Mais Eficiente de Construir Aplicações Enterprise

Domain Model: Uma Forma Mais Eficiente de Construir Aplicações Enterprise Roberto Perillo (jrcperillo@yahoo.com.br) é bacharel em Ciência da Computação e está atualmente cursando mestrado no ITA, onde já concluiu o curso de especialização em Engenharia de Software. Trabalha

Leia mais

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC

Arquitetura de Aplicações JSP/Web. Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Padrão Arquitetural MVC Arquitetura de Aplicações JSP/Web Ao projetar uma aplicação Web, é importante considerála como sendo formada por três componentes lógicos: camada

Leia mais

MVC e Camadas - Fragmental Bliki

MVC e Camadas - Fragmental Bliki 1 de 5 20-03-2012 18:32 MVC e Camadas From Fragmental Bliki Conteúdo 1 Introdução 2 Camadas: Separação Entre Componentes 3 MVC: Interação Entre Componentes 4 Conclusão 5 Referências Introdução A Arquitetura

Leia mais

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

Como criar um EJB. Criando um projeto EJB com um cliente WEB no Eclipse Como criar um EJB Criando um projeto EJB com um cliente WEB no Eclipse Gabriel Novais Amorim Abril/2014 Este tutorial apresenta o passo a passo para se criar um projeto EJB no Eclipse com um cliente web

Leia mais

J550. Model View Controller

J550. Model View Controller J550 Model View Controller 1 Design de aplicações JSP Design centrado em páginas Aplicação JSP consiste de seqüência de páginas (com ou sem beans de dados) que contém código ou links para chamar outras

Leia mais

Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções

Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções 1/ Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções Adote as melhores práticas de reuso de soluções com a abordagem de Padrões de Projeto (Design

Leia mais

!" # # # $ %!" " & ' ( 2

! # # # $ %!  & ' ( 2 !"# # #$ %!" "& ' ( 2 ) *+, - 3 . / 4 !" 0( # "!#. %! $""! # " #.- $ 111.&( ( 5 # # 0. " % * $(, 2 % $.& " 6 # #$ %% Modelo (Encapsula o estado da aplicação) Implementado como JavaBeans Responde a consulta

Leia mais

Padrões de Interação com o Usuário

Padrões de Interação com o Usuário Padrões de Interação com o Usuário Granularidade dos Padrões Padrões estão relacionados a 3 elementos: Contexto ocorre Problema resolve Solução Problemas e Soluções podem ser observados em diferentes níveis

Leia mais

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

PadrãoIX. Módulo II JAVA. Marcio de Carvalho Victorino. Servlets A,L,F,M JAVA Marcio de Carvalho Victorino 1 Servlets 2 1 Plataforma WEB Baseada em HTTP (RFC 2068): Protocolo simples de transferência de arquivos Sem estado (não mantém sessão aberta) Funcionamento (simplificado):

Leia mais

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP

Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Use a Cabeça! FREEMAN, Eric e Elisabeth. HTML com CSS e XHTML BASHMAN, Brian / SIERRA Kathy / BATES, Bert. Servlets & JSP Software cliente: browser e outros Protocolo HTTP Infraestrutura de transporte

Leia mais

Lidando de Forma Eficiente com Validações Locais de Objetos

Lidando de Forma Eficiente com Validações Locais de Objetos Lidando de Forma Eficiente com Validações Locais de Objetos Aprenda a construir um mini-framework para validar objetos locais sem afetar a complexidade do código. Autor Paulo César M. N. A. Coutinho (pcmnac@gmail.com):

Leia mais

Prof. Roberto Desenvolvimento Web Avançado

Prof. Roberto Desenvolvimento Web Avançado Resposta exercício 1: Configuração arquivo web.xml helloservlet br.com.exercicios.helloservlet

Leia mais

Arquitetura de uma Webapp

Arquitetura de uma Webapp Arquitetura de uma Webapp Arquitetura J2EE Containers e componentes MVC: introdução Frederico Costa Guedes Pereira 2006 fredguedespereira@gmail.com Plataforma J2EE World Wide Web e a Economia da Informação

Leia mais

Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA)

Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA) Padrões Arquiteturais Pattern-Oriented Software Architecture (POSA) Prof. Alberto Costa Neto DComp/UFS Padrões Arquiteturais Expressam esquemas fundamentais de organização estrutural do software. Provêem

Leia mais

Programação Web Aula 12 - Java Web Software

Programação Web Aula 12 - Java Web Software Programação Web Aula 12 - Java Web Software Bruno Müller Junior Departamento de Informática UFPR 25 de Maio de 2015 1 Java 2 Java Web Software 3 Servlets Modelo de Trabalho Funcionamento API Java Código

Leia mais

Autenticação e Autorização

Autenticação e Autorização Autenticação e Autorização Introdução A segurança em aplicações corporativas está relacionada a diversos aspectos, tais como: autenticação, autorização e auditoria. A autenticação identifica quem acessa

Leia mais

Java para WEB. Servlets

Java para WEB. Servlets Servlets Servlets são classes Java que são instanciadas e executadas em associação com servidores Web, atendendo requisições realizadas por meio do protocolo HTTP. Servlets é a segunda forma que veremos

Leia mais

Curso de Introdução ao

Curso de Introdução ao Curso de Introdução ao Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br O que é? Struts Struts é um framework gratuito para construção de aplicações web implementadas em Java.

Leia mais

Desmistificando a Certificação SCJD

Desmistificando a Certificação SCJD a r t i g o Desmistificando a Certificação SCJD Roberto Perillo (jrcperillo@yahoo.com.br) é bacharel em Ciência da Computação e está atualmente concluindo o curso de especialização em Engenharia de Software

Leia mais

Unidade 9: Middleware JDBC para Criação de Beans

Unidade 9: Middleware JDBC para Criação de Beans Programação Servidor para Sistemas Web 1 Unidade 9: Middleware JDBC para Criação de Beans Implementando MVC Nível 1 Prof. Daniel Caetano Objetivo: Preparar o aluno para construir classes de entidade com

Leia mais

Enterprise Java Beans

Enterprise Java Beans Enterprise Java Beans Prof. Pasteur Ottoni de Miranda Junior DCC PUC Minas Disponível em www.pasteurjr.blogspot.com 1-O que é um Enterprise Java Bean? O Entertprise Java Bean (EJB) é um componente server-side

Leia mais

MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis

MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis MAC-0462 Padrões arquiteturais para sistemas baseados em componentes reconfiguráveis Microkernel Service Locator Dependency Injection Exemplo Classe Auditor Salva registros de eventos no banco de dados

Leia mais

Padrões Arquiteturais no Java EE 7

Padrões Arquiteturais no Java EE 7 Padrões Arquiteturais no Java EE 7 Vagner F. Le Roy Júnior Curso de Pós Graduação em Arquitetura de Software Distribuído Pontifícia Universidade Católica de Minas Gerais Belo Horizonte, MG Brasil vagnerleroy@gmail.com

Leia mais

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior

Desenvolvimento WEB em JAVA. Palestrante: Lourival F. de Almeida Júnior Desenvolvimento WEB em JAVA Palestrante: Lourival F. de Almeida Júnior Agenda Introdução Servlet Arquitetura de Software Velocity Struts Conclusão Referências Introdução (antes) Programador Produto Introdução

Leia mais

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

Associação Carioca de Ensino Superior Centro Universitário Carioca Desenvolvimento de Aplicações Web Lista de Exercícios Métodos HTTP 1. No tocante ao protocolo de transferência de hipertexto (HTTP), esse protocolo da categoria "solicitação e resposta" possui três métodos

Leia mais

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado

ARQUITETURA SISGRAD. Manual de Utilização. Versão: 2.0. Criação: 05 de julho de 2007 Autor: André Penteado ARQUITETURA SISGRAD Manual de Utilização Versão: 2.0 Criação: 05 de julho de 2007 Autor: André Penteado Última Revisão: 09 de outubro de 2009 Autor: Alessandro Moraes Controle Acadêmico - Arquitetura SISGRAD

Leia mais

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO.

Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Persistência de Objetos no SGBD PostgreSQL, Utilizando as APIs: JDBC, JDK, Swing e Design Patteners DAO. Robson Adão Fagundes http://robsonfagundes.blogspot.com/ Mini curso Desenvolvimento de aplicação

Leia mais

Desenvolvendo Aplicações Web com NetBeans

Desenvolvendo Aplicações Web com NetBeans Desenvolvendo Aplicações Web com NetBeans Aula 3 Cap. 4 Trabalhando com Banco de Dados Prof.: Marcelo Ferreira Ortega Introdução O trabalho com banco de dados utilizando o NetBeans se desenvolveu ao longo

Leia mais

WebApps em Java com uso de Frameworks

WebApps em Java com uso de Frameworks WebApps em Java com uso de Frameworks Fred Lopes Índice O que são frameworks? Arquitetura em camadas Arquitetura de sistemas WEB (WebApps) Listagem resumida de frameworks Java Hibernate O que são frameworks?

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Java na WEB Servlet. Sumário

Java na WEB Servlet. Sumário 1 Java na WEB Servlet Objetivo: Ao final da aula o aluno será capaz de: Utilizar Servlets para gerar páginas web dinâmicas. Utilizar Servlets para selecionar páginas JSPs. Utilizar Servlets como elemento

Leia mais

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

Facebook. Java com o. Integrando Aplicações. Descubra como é fácil criar uma aplicação para rodar no Facebook. _capa _capa Integrando Aplicações Java com o Facebook Descubra como é fácil criar uma aplicação para rodar no Facebook Desde o lançamento oficial do Facebook, em 2004, o número de usuários vem aumentando a cada

Leia mais

Guia para Iniciantes do WebWork

Guia para Iniciantes do WebWork Guia para Iniciantes do WebWork Marcelo Martins Este guia descreve os primeiros passos na utilização do WebWork Introdução Desenvolver sistemas para Web requer mais do que simplesmente um amontoado de

Leia mais

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Apache Struts. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Apache Struts Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este é um módulo opcional. Apresenta uma visão geral do framework Struts, usado para desenvolver aplicações

Leia mais

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim

Introdução. Servlet. Ciclo Vida. Servlet. Exemplos. Prof. Enzo Seraphim Introdução Servlet Ciclo Vida Exemplos Servlet Prof. Enzo Seraphim Visão Geral São objetos de uma subclasse de javax.servlet (javax.servlet.httpservlet). Possuem um ciclo de vida. Incluem em seu código,

Leia mais

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio [Web Boas Práticas Design Patterns Orientação a Objetos AOP Spring.NET] Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações

Leia mais

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br)

Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) Marcos Kalinowski (kalinowski@ic.uff.br) Arquitetura JEE Introdução à Camada de Negócios: Enterprise Java Beans (EJB) (kalinowski@ic.uff.br) Agenda Arquiteturas Web em Java (Relembrando) Arquitetura Java EE Introdução a Enterprise Java Beans

Leia mais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais

Curso de Java. Geração de Páginas WEB. TodososdireitosreservadosKlais Curso de Java Geração de Páginas WEB Aplicação WEB Numa aplicação WEB de conteúdo dinâmico As páginas são construídas a partir de dados da aplicação (mantidos num banco de dados). Usuários interagem com

Leia mais

Java para Desenvolvimento Web

Java 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 mais

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS

DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS DESENVOLVIMENTO WEB UTILIZANDO FRAMEWORK PRIMEFACES E OUTRAS TECNOLOGIAS ATUAIS Emanuel M. Godoy 1, Ricardo Ribeiro Rufino 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil godoymanel@gmail.com,

Leia mais

Java e Banco de Dados: JDBC, Hibernate e JPA

Java e Banco de Dados: JDBC, Hibernate e JPA Java e Banco de Dados: JDBC, Hibernate e JPA 1 Objetivos Apresentar de forma progressiva as diversas alternativas de persistência de dados que foram evoluindo na tecnologia Java, desde o JDBC, passando

Leia mais

Padrões de Projeto WEB e o MVC

Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC Padrões de Projeto WEB e o MVC O que são padrões? "Cada padrão descreve um problema que ocorre freqüentemente em seu ambiente, e então descreve o cerne da solução para aquele

Leia mais

J550. Helder da Rocha (helder@acm.org) www.argonavis.com.br

J550. Helder da Rocha (helder@acm.org) www.argonavis.com.br J550 Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 O que são Filtros Um filtro éum componente Web que reside no servidor Intercepta as requisições e respostas no seu caminho até o servlet e de

Leia mais

MÓDULO Modelagem de classes de projeto

MÓDULO Modelagem de classes de projeto MÓDULO Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há nada mais para adicionar, mas quando não há nada mais para retirar. -Eric Raymond, The Cathedral and the Bazaar

Leia mais

Evolução do Design através de Testes e o TDD

Evolução do Design através de Testes e o TDD c a p a Lucas Souza (lucas.souza@caelum.com.br): é bacharel em Engenharia da Computação pela Universidade de Ribeirão Preto, possui a certificação SCJP e trabalha com Java há 4 anos. Atualmente é desenvolvedor

Leia mais

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS

UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS UM ESTUDO SOBRE ARQUITETURA PARA DESENVOLVIMENTO DE SOFTWARE WEB UTILIZANDO NOVAS TECNOLOGIAS Edi Carlos Siniciato ¹, William Magalhães¹ ¹ Universidade Paranaense (Unipar) Paranavaí PR Brasil edysiniciato@gmail.com,

Leia mais

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android

Android Binding. Implementando o padrão de projeto MVVM com MVVM_. Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android MVVM_ Implementando o padrão de projeto MVVM com Android Binding Saiba como criar um projeto utilizando o padrão de projeto MVVM no Android O padrão de projeto MVVM O MVVM (Model-View-ViewModel) foi divulgado

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

MÓDULO Programação para Web 2

MÓDULO Programação para Web 2 MÓDULO Programação para Web 2 USANDO O JSF Continuação Interdependência e Injeção Instâncias de Managed Beans podem conversar entre si para dividir o processamento das requisições dos usuários de acordo

Leia mais

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr

J2EE. Exemplo completo Utilização Servlet. Instrutor HEngholmJr J2EE Exemplo completo Utilização Servlet Instrutor HEngholmJr Page 1 of 9 AT09 Exemplo complete Utilização Servlet Version 1.1 December 5, 2014 Indice 1. BASEADO NOS EXEMPLOS DE CÓDIGO DESTA APOSTILA,

Leia mais

Um Framework MVC para. Aplicações em Java utilizando Swing.

Um Framework MVC para. Aplicações em Java utilizando Swing. Um Framework MVC para Aplicações em Java utilizando Swing. Alessandro Lemser Curso de Ciência da Computação Universidade do Vale do Itajaí Campus São José São José, SC 88115-100, Brasil alemser@brturbo.com

Leia mais

Padrão Arquitetura em Camadas

Padrão Arquitetura em Camadas Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização

Leia mais

UFG - Instituto de Informática

UFG - Instituto de Informática UFG - Instituto de Informática Especialização em Desenvolvimento de Aplicações Web com Interfaces Ricas EJB 3.0 Prof.: Fabrízzio A A M N Soares professor.fabrizzio@gmail.com Aula 5 Servidores de Aplicação

Leia mais

Prática da Disciplina de Sistemas Distribuídos Serviços Web IFMA DAI Professor Mauro Lopes C. Silva

Prá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 mais

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES

DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES DESENVOLVENDO APLICAÇÃO UTILIZANDO JAVA SERVER FACES Alexandre Egleilton Araújo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil araujo.ale01@gmail.com, jaime@unipar.br Resumo.

Leia mais

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64

Geração e execução de scripts de teste em aplicações web a partir de casos de uso direcionados por comportamento 64 direcionados por comportamento 64 5 Estudo de caso Neste capítulo serão apresentadas as aplicações web utilizadas na aplicação da abordagem proposta, bem como a tecnologia em que foram desenvolvidas, o

Leia mais

Desenvolvimento Web TCC-00.226 Turma A-1

Desenvolvimento Web TCC-00.226 Turma A-1 Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Arquitetura de Aplicações Distribuídas na Web Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos.

Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos. Há várias práticas e abordagens que facilitam a separação de responsabilidades, como veremos nos próximos tópicos. 4.2. Gerencie suas dependências através de injeção Mesmo com o baixo acoplamento haverá

Leia mais

Boas Práticas no desenvol Aprenda a desenvolver componentes e serviços

Boas Práticas no desenvol Aprenda a desenvolver componentes e serviços SEÇÃO BOAS PRÁTICAS: NESTA SEÇÃO VOCÊ ENCONTRA ARTIGOS SOBRE TÉCNICAS QUE PODERÃO AUMENTAR Boas Práticas no desenvol Aprenda a desenvolver componentes e serviços A tecnologia EJB permite a construção de

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

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

Web Browser como o processo cliente. Servidor web com páginas estáticas Vs. Aplicações dinâmicas para a Web: Web Browser como o processo cliente Servidor web com páginas estáticas Vs Aplicações dinâmicas para a Web: 1 Cliente Web browser HTTP porto 80 Servidor web... JDBC RMI XML... Base de Dados Aplicação em

Leia mais

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br

Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br Prof. Fellipe Araújo Aleixo fellipe.aleixo@ifrn.edu.br A arquitetura Enterprise JavaBeans é uma arquitetura de componentes para o desenvolvimento e a implantação de aplicativos de negócio distribuídos

Leia mais

4 - Padrões da Camada de Integração. Introdução

4 - Padrões da Camada de Integração. Introdução Padrões de Projeto J2EE J931 Padrões da Camada de Integração Helder da Rocha (helder@acm.org) argonavis.com.br Introdução A camada de integração encapsula a lógica relacionada com a integração do sistema

Leia mais

Java Servlets. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Java Servlets. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Java Servlets Leonardo Gresta Paulino Murta leomurta@ic.uff.br Especificação/IDE/Implementação Esse curso foi preparado em 03/2015 usando a seguinte especificação, IDE e implementação Especificação Java

Leia mais

UNIDADE II JAVA SERVLETS

UNIDADE II JAVA SERVLETS UNIDADE II JAVA SERVLETS INTERNET É uma rede de redes, reunindo computadores do Governo, de universidades e empresas fornecendo infra-estrutura para uso de bancos de dados, correio eletrônico, servidores

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Web Container: e JSP Sumário Protocolo HTTP Exemplos de JSP (Java Server Pages) Exemplos JSP 2 Protocolo HTTP URL: Um URL (Uniform

Leia mais

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1

PROGRAMAÇÃO SERVIDOR PADRÕES MVC E DAO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1 PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB PADRÕES MVC E DAO Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o conceito de Padrões de Projeto Compreender o Padrão MVC Conhecer o princípio de alguns dos

Leia mais

Tecnologias Web. Java Enterprise Edition

Tecnologias Web. Java Enterprise Edition Tecnologias Web Java Enterprise Edition Cristiano Lehrer, M.Sc. Introdução Java Enterprise Edition (JEE): Plataforma de tecnologias para o desenvolvimento de aplicações corporativas distribuídas. É uma

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

J550 Testes em Aplicações Web com Cactus

J550 Testes em Aplicações Web com Cactus J550 Testes em Aplicações Web com Cactus Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Sobre este módulo Este módulo descreve um framework - o Jakarta Cactus - que pode ser utilizado para testar

Leia mais

Web Services. (Introdução)

Web Services. (Introdução) Web Services (Introdução) Agenda Introdução SOA (Service Oriented Architecture) Web Services Arquitetura XML SOAP WSDL UDDI Conclusão Introdução Comunicação distribuída Estratégias que permitem a comunicação

Leia mais

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition)

Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) Sumário. Java 2 Enterprise Edition. J2EE (Java 2 Enterprise Edition) Sistemas Distribuídos na WEB (Plataformas para Aplicações Distribuídas) J2EE () Sumário Introdução J2EE () APIs J2EE Web Container: Servlets e JSP Padrão XML 2 J2EE é Uma especificação para servidores

Leia mais

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma:

Apesar de existirem diversas implementações de MVC, em linhas gerais, o fluxo funciona geralmente da seguinte forma: 1 Introdução A utilização de frameworks como base para a construção de aplicativos tem sido adotada pelos desenvolvedores com três objetivos básicos. Primeiramente para adotar um padrão de projeto que

Leia mais

Gerador de código JSP baseado em projeto de banco de dados MySQL

Gerador de código JSP baseado em projeto de banco de dados MySQL Gerador de código JSP baseado em projeto de banco de dados MySQL Juliane Menin Orientanda Prof. Alexander Roberto Valdameri Orientador Roteiro Introdução e Objetivos Fundamentação Teórica Especificação

Leia mais

PROJETO PEDAGÓGICO DE CURSOS

PROJETO PEDAGÓGICO DE CURSOS 1 de 6 PROJETO PEDAGÓGICO DE CURSOS BURITREINAMENTOS MANAUS-AM MARÇO / 2015 2 de 6 PACOTES DE TREINAMENTOS BURITECH A Buritech desenvolveu um grupo de pacotes de treinamentos, aqui chamados de BuriPacks,

Leia mais

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br

WebWork 2. João Carlos Pinheiro. jcpinheiro@cefet-ma.br WebWork 2 João Carlos Pinheiro jcpinheiro@cefet-ma.br Versão: 0.5 Última Atualização: Agosto/2005 1 Agenda Introdução WebWork 2 & XWork Actions Views Interceptadores Validação Inversão de Controle (IoC)

Leia mais

Como sobreviver com Java 2? Saulo Arruda

Como sobreviver com Java 2? Saulo Arruda Como sobreviver com Java 2? Saulo Arruda Agenda Apresentação Contexto do mercado Soluções para Java 5+ Soluções para Java 2 Conclusões Apresentação Saulo Arruda (http://sauloarruda.eti.br) Trabalha com

Leia mais

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br)

Fundamentos da Plataforma Java EE. Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Fundamentos da Plataforma Java EE Prof. Fellipe Aleixo (fellipe.aleixo@ifrn.edu.br) Como a plataforma Java EE trata o SERVIÇO DE NOMES Serviço de Nomes Num sistema distribuído os componentes necessitam

Leia mais

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

Projeto Demoiselle. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge. Projeto Demoiselle Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net Palestrantes: Antônio Carlos Tiboni Luciana Campos Mota 20/07/2009

Leia mais

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com

Java II. Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Java II Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Por quê JSP? Com Servlets é fácil Ler dados de um formulário Recuperar dados de uma requisição Gerar informação de resposta Fazer gerenciamento

Leia mais

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET

MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET MedEl: Uma solução de E-Learning utilizando tecnologia Microsoft ASP.NET Átila Correia Cunha 1, 2, Glaucon Henrique Mauricio Maia 1, 2, Waner Ferreira Tavares 1, 2, Jorge Bergson¹, Rui Gomes Patrício 3

Leia mais

Tutorial - Programando com o MIOLO

Tutorial - Programando com o MIOLO Tutorial - Programando com o MIOLO Conceitos Básicos Antes de iniciar a programação com o Miolo é fundamental compreender alguns conceitos básicos: - Uma aplicação no Miolo é constituída de um ou mais

Leia mais

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br

Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia

Leia mais

J550 Integração com Bancos de Dados

J550 Integração com Bancos de Dados J550 Integração com Bancos de Dados Helder da Rocha (helder@acm.org) www.argonavis.com.br 1 Objetivos Este módulo apresenta estratégias para conectar servlets com a camada de dados usando um DAO - Data

Leia mais

Anotações Próximas ao Domínio da Sua Aplicação

Anotações Próximas ao Domínio da Sua Aplicação Atualmente, a comunidade de desenvolvimento de software entende que, ao se desenvolver software, a verdadeira complexidade está, na maioria das vezes, no domínio onde a aplicação se encaixa. A intenção

Leia mais

Universidade Federal de Goiás Instituto de Informática Sistemas de Informação Código da Matriz Curricular: 109P1NB

Universidade Federal de Goiás Instituto de Informática Sistemas de Informação Código da Matriz Curricular: 109P1NB Universidade Federal de Goiás Instituto de Informática Sistemas de Informação Código da Matriz Curricular: 109P1NB Plano de Disciplina Ano Letivo: 2012-2 º Semestre Dados da Disciplina Código Disc. Nome

Leia mais

Prova Específica Cargo Desenvolvimento

Prova Específica Cargo Desenvolvimento UNIVERSIDADE FEDERAL DO PIAUÍ Centro de Educação Aberta e a Distância CEAD/UFPI Rua Olavo Bilac 1148 - Centro CEP 64.280-001 Teresina PI Brasil Fones (86) 3215-4101/ 3221-6227 ; Internet: www.uapi.edu.br

Leia mais

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES

JAVA COM BANCO DE DADOS PROFESSORA DANIELA PIRES Conteúdo O Projeto... 2 Criação de Pacotes... 4 Factory:... 6 DAO:... 15 GUI (Graphical User Interface ou Interface Gráfica de Cadastro)... 18 Evento SAIR... 23 Evento CADASTRAR... 24 1 O Projeto Arquivo

Leia mais

Curso - Padrões de Projeto Módulo 5: Model-View- Controller

Curso - Padrões de Projeto Módulo 5: Model-View- Controller Curso - Padrões de Projeto Módulo 5: Model-View- Controller Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java:

Leia mais

Padrões de Projeto e Persistência com DAO

Padrões de Projeto e Persistência com DAO Curso de Análise de Sistemas Análise de Sistemas II Padrões de Projeto e Persistência com DAO Prof. Giuliano Prado de Morais Giglio, M.Sc. Introdução a Padrões de Projeto Padrões de Projeto foram inicialmente

Leia mais

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância

5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância 5 Framework para coordenação e mediação de Web Services para ambientes de aprendizado à distância O capítulo anterior apresentou uma discussão sobre a inclusão dos chamados learning services no processo

Leia mais

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert

Sistema Gerenciador de Hotel. Adriano Douglas Girardello. Ana Paula Fredrich. Tiago Alexandre Schulz Sippert UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Sistema Gerenciador de Hotel Adriano Douglas Girardello

Leia mais

20/08/14 JAVA SERVLETS CONCEITOS CONTEÚDO ARQUITETURA DE UMA APLICAÇÃO WEB ARQUITETURA DA APLICAÇÃO WEB

20/08/14 JAVA SERVLETS CONCEITOS CONTEÚDO ARQUITETURA DE UMA APLICAÇÃO WEB ARQUITETURA DA APLICAÇÃO WEB CONTEÚDO TECNOLOGIA EM INFORMÁTICA PARA NEGÓCIOS JAVA CONCEITOS Prof. Dr. Henrique Dezani dezani@fatecriopreto.edu.br Arquitetura de uma aplicação Web HTTP (HyperText Transfer Protocol) Métodos HTTP GET

Leia mais

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE Padrões de Projeto J2EE J931 Introdução Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos de aprender padrões J2EE Conhecer padrões para uso na plataforma J2EE Padrões permitem maior reuso, menos

Leia mais

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

Java EE 6. A revolução do. Um overview sobre as novidades da JSR 316. a r t i g o a r t i g o Pedro Henrique S. Mariano (pedro.mariano@caelum.com.br) técnologo em Análise e Desenvolvimento de Sofware pela FIAP, possui as certificações SCJP 6 e SCRUM master.trabalha como consultor e

Leia mais

Tutorial Jogo da Velha WEB

Tutorial Jogo da Velha WEB Tutorial Jogo da Velha WEB Criação do Projeto 1- Inicie o Eclipse 2- Crie um novo projeto Web dinâmico. 3- Na tela seguinte, digite o nome do projeto e caso no campo Target Runtime não estiver aparecendo

Leia mais

Padronização e Reuso de Aplicações Web com Demoiselle Framework

Padronização e Reuso de Aplicações Web com Demoiselle Framework c o l u n a Made in Brazil Padronização e Reuso de Aplicações Web com Demoiselle Framework Uma plataforma de desenvolvimento do governo para toda a sociedade Flávio Gomes da Silva Lisboa (flavio.lisboa@serpro.gov.br):

Leia mais

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

Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Tencologia em Análise e Desenvolvimento de Sistemas Disciplina: WEB I Conteúdo: WEB Container Aula 04 Agenda 1. 2. Web Container TomCat 2 3 J2EE permite criar aplicações Web dinâmicas (com conteúdo dinâmico)

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais