EVOLUÇÃO DA PLATAFORMA DE DESENVOLVIMENTO CORPORATIVO JEE

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

Download "EVOLUÇÃO DA PLATAFORMA DE DESENVOLVIMENTO CORPORATIVO JEE"

Transcrição

1 EVOLUÇÃO DA PLATAFORMA DE DESENVOLVIMENTO CORPORATIVO JEE Nigini Abilio Oliveira 1 Emanuell Faustino Henrique de Lucena 2 ;Edmilson Pereira Lima Neto 3 Resumo - Atualmente, Java é uma das tecnologias mais difundidas no mundo do desenvolvimento de sistemas computacionais. Quando o sistema a ser criado é destinado à utilização corporativa, faz-se necessária a utilização de ferramentas e padrões específicos. A Java Entreprise Edition (JEE) é um conjunto de especificações da tecnologia Java para esta finalidade. Este artigo visa expor os principais pontos de evolução da nova versão da plataforma JEE, a JEE 5, dando ênfase ao processo de padronização realizado pela mesma e sua relação com as tecnologias e conceitos nos quais este processo se baseia. Palavras-chave: desenvolvimento; corporativo; sistemas; informação. Abstract - These days Java is one of the more spread computational systems development tools in the world. When the system is an enterprise one, it is required that specific design patterns and resources be used. The Java Enterprise Edition (JEE) is a set of Java technology specifications for that type of software. This paper looks at the new JEE's (the JEE 5) evolution, focusing at the standardization process, and the relations between its specifications and the already developed technologies and concepts. Keywords: development; enterprise; systems; information. 1. Introdução No primeiro semestre de 2006 foi finalizada pela Java Community Process (JCP) (jcp.org) a especificação da denominada Java Enterprise Edition 5 (JEE 5) (JENDROCK, 2007), referenciada pelo código 244 (JCP, 2006). Desde então, o círculo de desenvolvedores de Sistemas de Informação transformou-se num campo de valiosas batalhas ideológicas: de um lado, o JCP e seus defensores - normalmente vistos como o interesse do mundo corporativo convencional; e do outro, os defensores dos vários frameworks competidores, quase sempre de código aberto e vistos como defensores do free software (FSF, 1996). A visão dos autores deste trabalho não se aterá a nenhum dos grupos por dois motivos: em primeiro lugar, acredita-se que a batalha ideológica citada é importante para a evolução do processo de desenvolvimento de sistemas computacionais, e em segundo lugar, porque os ideais de cada grupo serão utilizados, muitas vezes sem distinção, para caracterizar a evolução 1 Professor do Curso de Bacharelado em Sistemas de Informação das Faculdades Integradas de Patos FIP. Doutorando em Engenharia Elétrica pela UFCG. nigini@ffm.com.br 2 Estudante do Curso de Bacharelado em Sistemas de Informação das Faculdades Integradas de Patos FIP. Graduando. emanuell@ffm.com.br 3 Estudante do Curso de Bacharelado em Sistemas de Informação das Faculdades Integradas de Patos FIP. Graduando. edmilson@ffm.com.br

2 da plataforma JEE. Desta forma, o posicionamento aqui assumido é o de considerar os pontos positivos de cada ideal defendido em busca de ferramentas de trabalho cada vez melhores. Este artigo aceita como verdade que a padronização de soluções é sempre uma vantagem para a comunidade de desenvolvedores. A única questão em aberto é como esse processo se dá. Um dos melhores exemplos disso é a Internet. Para que todos mantenham-se em contato via a grande rede de computadores, uma antepassada guerra de especificações de protocolos foi travada. De um lado, o comitê hoje conhecido como ISO-OSI (ISO 8602) definiu um modelo "de referência" para o funcionamento da rede, enquanto que os padrões TCP/IP (RFC 1180) surgiam e dominavam a rede, tornando-se o padrão adotado "de fato". A questão desse artigo não envolve a vitória ou derrota de um ou outro grupo, mas cita-se o caso acima apenas para denominar os grupos e suas ideologias: o JCP é o comitê que buscaria o padrão "de referência", enquanto que os mais variados projetos de código aberto estariam criando o padrão "de fato". É nesta denominação que surgem as primeiras diferenças do exemplo anterior. A primeira é que o JCP funciona de forma aberta, significando que os parceiros são livres para se associarem ao processo de criação das especificações. Uma outra peculiaridade da padronização que envolve o JEE, é o fato de que há inúmeros "projetos concorrentes", e espera-se deixar claro neste trabalho que, quando os mesmos se destacam na sua área de atuação, logo são fonte de inspiração para as especificações do JCP. Assim, o principal objetivo deste artigo é estabelecer uma visão da tecnologia definida pela versão 5 da Java Enterprise Edition como um captador das grandes idéias arquiteturais existentes na comunidade de desenvolvedores de sistemas computacionais. Para isso, a plataforma de desenvolvimento Java/JEE será explicitada de forma geral na seção 2, seguida de uma análise da criação de algumas das suas especificações mais populares na seção 3. Na conclusão, serão levantados os principais pontos em aberto a serem avaliados como complementação deste trabalho, dado que os autores o vêem muito mais como uma fundamentação teórica para a área do desenvolvimento de sistemas corporativos em Java. 2. A Plataforma JEE A Java Enterprise Edition (JEE 5) é um conjunto de especificações construídas sobre um cerne tecnológico denominado Java Standard Edition (JSE). Esta "distribuição padrão" é composta por três partes: uma linguagem de programação Orientada a Objetos, um conjunto de APIs (bibliotecas) construído para esta linguagem, e um conjunto de aplicativos, dentre os quais destaca-se a Java Virtual Machine (JVM), o qual é uma máquina virtual responsável por executar o código criado para esta tecnologia. Dentre outras vantagens, a tecnologia Java visa

3 uma portabilidade de código, que era impossível antes do advento das máquinas virtuais. Além de possibilitar a execução de sistemas em qualquer plataforma suportada, a JVM também atua como gerenciador de alto nível desse código, provendo serviços tais como gerenciamento de memória, segurança e perfilamento do sistema. Por ser desenvolvida sobre a JSE, a plataforma JEE herda as vantagens acima citadas. Seu principal objetivo é expandir os serviços da plataforma Java para o desenvolvimento de sistemas baseados no modelo cliente-servidor. Visando facilitar o desenvolvimento da lógica e as várias formas da acesso a esta, as solução JEE são voltadas a componentes de software que podem ser construídos separadamente, montados e executados em um servidor capaz de gerenciá-los, provendo uma maior escalabilidade e acessibilidade. Por este motivo, uma das principais adições providas pela Java Enterprise Edition é o servidor de aplicação, ou Container. 2.1 Arquitetura da Plataforma A arquitetura em camadas é hoje um padrão comum para todo sistema computacional complexo, pois o isolamento das funcionalidade em módulos e sua associação visando alto grau de desacoplamento, são duas das principais características de sistemas de qualidade. A Figura 1 mostra a arquitetura da plataforma JEE 5 dividida em 3 partes lógicas: camada do cliente, camada lógica e camada de persistência. Figura 1: Arquitetura simplificada da Plataforma JEE

4 Apesar da Figura 1 trazer uma versão simplificada da arquitetura, priorizando sistemas de informação mais comuns, esta auxiliará o posicionamento correto das outras várias especificações da 244 de acordo com sua finalidade, a saber, JSF e JPA, explicadas em detalhes em seções subseqüentes. Na camada cliente estão localizados todos os aplicativos capazes de submeter requisições à lógica de negócio do sistema. Estes aplicativos podem ser simples interfaces gráficas com usuário, formulários web, sistemas legados ou outros sistemas de informação; e ainda utilizando procolos de comunicação proprietários, HTTP, RMI, etc. Esta camada reúne as várias formas de requisições aos serviços providos pela lógica. As especificações JEE relacionadas a esta camada são, na verdade, padronizações para a comunicação entre camadas como por exemplo, a implementação do padrão Model-View-Controller (MVC) (REENSKAUG, 2003). É no servidor, ou camada lógica, que está o foco do JEE. É nesta camada que estão centralizadas tarefas como recepção, tratamento, processamento e resposta a requisições dos clientes. Como pode ser visto na Figura 1 anterior, esta unidade lógica ainda pode ser divida em outras duas camada: Na camada Web, estão serviços direcionados a interface do sistema com os clientes. Pela nomenclatura, pode-se imaginar que esta comunicação é sempre pelos padrões web, como o protocolo HTTP, mas esta não é a realidade, pois qualquer outro serviço de interfaceamento pode ser adicionado a esta camada de interface. Na camada de negócio estão os componentes lógicos relacionados à execução das regras de negócio mais básicas. Ela abrange os Objetos Java Simples (POJOs), responsáveis por armazenar informações, e as entidades gestoras deste conhecimento, implementadoras dos algoritmos de processamento dos dados. Da mesma forma que a camada cliente, a camada de persistência (ou dados) é uma abstração de encapsulamento das várias fontes de dados necessárias ao funcionamento do sistema, sejam arquivos, sistemas gerenciadores de banco de dados (SGBD), sistemas legados, redes P2P ou sistemas de arquivo distribuídos. O objetivo das especificações disponíveis neste nível da arquitetura visam a homogeneização do acesso aos dados, visando a implementação de padrões de projeto como o Data Acess Object (DAO) (DEEPAK, 2001) ou DataMapper (FOWLER, 2002).

5 2.2 As Especificações da JEE 5 Padrões não devem ser revolucionários, mas sim evolucionistas. (Autor desconhecido) A especificação 244 é um arcabouço que reúne cerca de duas dezenas de especificações divididas em quatro pacotes. Os pacotes e algumas de suas s são citados no Quadro 1 a seguir: Web Layer Servlets Java Server Pages (JSP) Java Server Faces (JSF) Business Layer JavaMail Java Message Service (JMS) Enterprise Java Beans (EJB) Java Persistence API (JPA) Web-Services Java API for XML-Based Web-services (JAX-WS) Java API for XML-Based RPC (JAX-RPC) Componente web capaz de responder a requisições ao servidor, tendo como mais comum representando a versão para protocolo HTTP. Componente web para a construção de páginas dinâmicas baseada em tags facilmente injetadas em páginas HTML. Framework web que implementa o padrão MVC baseado na configuração de um controlador para o fluxo de informações entre as camadas de visão e web. Facilitador para a utilização dos protocolos relacionados ao sistema de . Framework que implementa a arquitetura de sistemas distribuídos com comunicação assíncrona, provendo um servidor de filas de mensagens. Framework que provê uma infraestrutra de desenvolvimento baseado em componentes de software desacoplados e reusáveis. API de alto nível para a persistência de informações, solucionando o problema da conversão objeto-relacional. Criação de Web-services baseados em comunicação XML. Criação de serviços baseados em chamadas remotas a métodos. Mangement and Security s 88, 77, 115 Deploy, Management e Authorization Especificações relacionadas a tarefa de gerenciamento dos aplicativos dentro do container e acesso a serviços do aplicativo por usuários do mesmo. Quadro 1. Algumas das principais especificações da JEE 5 3. Evolução da Plataforma O desenvolvimento da versão 5 do JEE tem como principal objetivo alcançar melhor produtividade e maior velocidade de implementação. Para cumprir esta meta, várias diretrizes

6 foram seguidas, assim como alguns padrões arquiteturais e tecnológicos foram implementados. Esta seção visa esclarecer as forças que moldaram as mudanças de três das especificações mais populares da JEE 5 e fazer observações sobre a aceitação das mesmas pela comunidade de desenvolvedores. A escolha das s para a avaliação proposta neste trabalho se deu com base em dois pontos: sua popularidade no meio dos desenvolvedores de sistemas e as características que guiaram seu desenvolvimento. Quanto à popularidade, a escolha se baseou na enquete disponível em (JAVA.NET, 2006), respondida por centenas de desenvolvedores usuários da plataforma JEE sobre as especificações da versão 5 que mais lhes chamaram a atenção. Do total, 35.4% votaram nas inovações do EJB 3, outros 17.4% na JPA e ainda 15% na JSF. As duas primeiras são parte integrante da 220 e serão comentadas nas seções 3.3 e 3.2, enquanto a última é padronizada na 252 comentada na seção 3.1. A 252 pertence ao grupo de especificações da "camada web", enquanto a 220 padroniza dois importantes frameworks da "camada de negócio". Com relação às características de desenvolvimento, a escolha destas s foi fortalecida pela relação existente entre as mesmas e melhorias relacionadas à: produtividade, através da utilização eficiente de configurações; injeção de dependências, que é um padrão tecnológico envolvendo conceitos como POJO e Spring; e a implementação de padrões de projeto, como o famoso MVC. Cada uma destas melhorias será abordada nas sub-seções a seguir. 3.1 JSF A Java Server Faces (JSF) é a mais nova integrante do conjunto de padrões para a camada web da plataforma JEE. Para entender o seu desenvolvimento faz-se necessário um rápido retrospecto sobre a evolução de soluções para esta camada. A primeira solução é o Servlet, a estrutura básica para o desenvolvimento de aplicações web em Java. Através dele o desenvolvedor recebe uma requisição, geralmente HTTP, realiza algum processamento e produz um retorno para o cliente. A resposta de uma requisição HTTP é escrita em HTML, o que exige a geração de retornos relativamente longos dado que a resposta buscada na camada lógica deve ser encrustada em um envelope HTML. Além disso, este método em épocas mais remotas, não permitia grande flexibilidade e manutenibilidade. Qualquer alteração na apresentação no design das interfaces com o usuário exigiam reescrita de código JAVA, o que normalmente não está nas responsabilidade de um profissional de design. Buscando sanar esse problema

7 surgiram as Java Server Pages (JSP), uma forma de implementar a camada web criando um documento útil para ambos os mundos, o do desenvolvedor da lógica e o do designer, facilitando a manutenção e o reaproveitamento. Como o simples fato de utilização destas tecnologias não implica em sistemas de qualidade, neste caso um bom nível de desacoplamento entre a camada de visão e a de lógica, torna-se importante a utilização/implementação de padrões de projeto. Por volta de 1978, o padrão arquitetural Model-View-Controller foi criado e usado em aplicativos desenvolvidos em liguagens de programação Orientadas a Objetos. O MVC surgiu exatamente com o objetivo de separar a View (User Interface) do Model (Business Logic), o que pôde ser aplicado também em sistemas web desenvolvidos com Servlets e JSPs. Esse padrão baseia-se em três definições: i) o Model é a lógica da aplicação em questão e livre de apresentação; ii) a View implementa a interação entre o usuário e a aplicação não exigindo outro conhecimento do Model senão a definição de seus serviços; iii) um Controller deve existir para intermediar a comunicação entre as definições anteriores, como por exemplo, receber requisições da visão, gerenciar sincronização de estados entre as duas camadas, entre outras. Para atacar a problemática do acoplamento entre as camadas de apresentação e do modelo em sistemas web, surgiram implementações deste padrão através de frameworks, sendo o caso de tecnologias Java atacado inicialmente pelo Struts (struts.apache.org). Por ser a primeira iniciativa de unificar em um framework algumas das boas práticas padronizadas ou "ad hoc" já utilizadas por vários desenvolvedores, o Struts tornou-se uma ferramenta muito utilizada em todo o mundo, sendo então doada à Fundação Apache (apache.org) para uma manutenção mais cuidadosa. Hoje em sua segunda versão, o Struts continua buscando a adição de formas de desenvolvimento difundidas dentro da comunidade. Mas como o Struts é uma ferramenta mantida por terceiros, a JCP decidiu criar uma especificação, com o nome de Java Server Faces (JSF), para padronizar a utilização de serviços similares aos já providos pelo Struts. Alguns objetivos do JSF são: criar componentes de interface com usuário (UI) de alta qualidade e que possam se conectar ao comportamento de qualquer aplicação; possibilitar a fácil integração de ferramentas Rapid Application Development (RAD) para aumentar a produtividade; forçar a utilização do padrão MVC no projeto de sistemas web promovendo maior qualidade inerente; facilitar a gerência de fluxos entre os componentes de visão, entre outros. Dentre as três especificações aqui discutidas, esta é a menos complexa e passível de poucos questionamentos, dado que a visão da mesma é de padronização de tendências já

8 adotadas pela comunidade de desenvolvedores. Acredita-se que o processo iniciado pela 252 busca reunir as boas soluções que envolvem a camada de visão (e sua integração com o modelo) o que não a impede, ou mesmo a obriga, de aproximar-se de soluções já existentes. A competição existente entre Struts e JSF é no mínimo benéfica para a construção de frameworks mais completos. 3.2 JPA Como já foi dito no início deste trabalho a tecnologia Java é baseada em conceitos de Orientação a Objetos (OO). Pela sua clareza e expressividade na modelagem da relação entre as entidades do domínio dos Sistemas de Informação, este é o paradigma de linguagem de programação mais utilizado neste contexto. No entanto, por questões que não convêm discutir neste trabalho, o mundo dos Sistemas Gerenciadores de Banco de Dados (SGBD) é dominado pelo paradigma relacional de modelagem de dados. Como quase todos os SIs são compostos por uma lógica de negócio escrita em modelo OO, e os dados desta são armazenados em um banco de dados (BD), surge a necessidade de construir soluções para realizar o mapeamento objeto-relacional (O-R). A primeira e mais simples dentre as soluções é a API JDBC (SUN, 2002). Ela é composta por um conjunto de interfaces de programação que definem, entre outras coisas: como um sistema desenvolvido em linguagem Java realiza uma conexão com o banco de dados, como comandos SQL podem ser executados, e como os resultados de tais comandos podem ser acessados. A responsabilidade de implementar estas funcionalidades pode ser delegada a terceiros, como os próprios desenvolvedor de SGBD. As soluções finais para o JDBC são compostas pelos denominados drivers, capazes de conectar o sistema Java a um SGBD específico. A JDBC é a solução padrão para todo mapeamento objeto-relacional, seja através de sua utilização direta, seja através da utilização de camadas de mais alto nível. Sua principal vantagem é a simplicidade arquitetural e facilidade de utilização. Mas por lidar com linguagem SQL, que é uma especificação de mais baixo nível esta solução pode tornar-se improdutiva ao ser utilizada em sistemas de grande porte. Para solucionar a questão da produtividade do uso direto do JDBC e ainda tornar o mapeamento O-R transparente ao desenvolvedor da lógica de negócio, surgiram frameworks tais como o Hibernate (struts.apache.org) e o Toplink (ORACLE, 2007). Em termos gerais, estas soluções fazem uso de um sistema paralelo de configuração do mapeamento desejado.

9 Um aplicativo interno ao framework fica responsável por traduzir, automaticamente, operações de criação, edição, busca e remoção de objetos dentro do banco de dados. O Hibernate é um framework que se tornou o padrão de fato neste contexto. Percebendo esta realidade, a versão 5 da plataforma JEE criou a especificação denominada Java Persistence API (JPA), a qual é parte integrante da 220. Este talvez seja o componente mais acessível do JEE 5, dado que sua implementação pode ser utilizada independente do servidor de aplicações permitindo inclusive o seu uso por aplicativos JSE. A JPA é um padrão com fortes indícios de aceitação pelo mercado dada a sua consideração de conceitos tecnológicos já existentes e a sua busca por uma maior produtividade. Um ponto a somar na sua aceitação é a pronta implementação das interfaces definidas pela JPA pela tecnologia Hibernate (na sua versão 3). As principais críticas envolvem não os conceitos existentes na, mas sim a falta de alguns recursos já existentes nas soluções não padronizadas. Um dos exemplos é a facilidade de utilizar objetos como parâmetro em operações com o banco de dados, e.g. uma busca (select) onde os filtros são objetos do tipo do retorno. Mas dado que o processo de padronização é inerentemente evolutivo, os autores deste trabalho consideram a implementação (ou exclusão consciente) de tais recursos uma questão de tempo e de estudo mais cuidadoso. Esta espera permite uma maturação de conceitos mais recentes e diminui as chances de absorção de recursos tecnicamente desvantajosos quando aplicados e avaliados em contextos mais amplos. No campo da produtividade e simplicidade a JPA possibilita realizar configurações via Annotations ( 175), uma linguagem para a escrita de meta-dados da tecnologia Java passível de checagem em tempo de compilação. Este formato para a definição do mapeamento OR não substitui a utilização do XML, dado que a inserção de "anotações" no código fonte da aplicação pode prejudicar a legibilidade do mesmo. Este trabalho não aborda profundamente esta questão, mas julga que a avaliação do uso das várias formas de escrita de meta-dados em sistemas Java é uma importante linha de pesquisa a ser atacada. Por fim, a realidade de que o processo de padronização possui um caráter evolucionista e não revolucionário fica clara nesta especificação. Há de se considerar que a migração de tecnologias em sistemas reais deve passar por forte análise, mesmo sendo uma questão de usar tecnologias padronizadas ou não. Mas como deixa claro Christian Bauer - desenvolvedor do Hibernate em fórum de discussão on-line mantido pela Hibernate.org, é muito importante manter seu sistema compatível com APIs padronizadas, mesmo que parte das funcionalidades utilizadas ainda não estejam especificadas. Isso porque os padrões de

10 mercado tendem a possuir um melhor suporte de ferramentas e opções de escolha entre soluções concorrentes; e, dada uma maior quantidade de usuários, tende a aumentar a qualidade e confiabilidade das opções. 3.3 EJB O Enterprise JavaBeans (EJB) é uma arquitetura para o desenvolvimento e a implantação de aplicativos baseados em componentes. Sistemas construídos sobre esta plataforma devem levar em consideração os seguintes conceitos: o componente de software desenvolvido para resolver problemas da lógica de negócio; a montagem do sistema sob uma infraestrutura capaz de gerenciar os componentes; a configuração do container, que é capaz de prover serviços adicionais como segurança, gerência de ciclo de vida de objetos, persistência, etc. A idéia de infraestruturas baseadas em componentes desacoplados, porém facilmente encaixáveis, é uma das questões arquiteturais abertas por muito tempo. Durante anos, várias ferramentas buscaram prover esta facilidade e a especificação EJB, já em sua terceira versão, é mais uma delas. A importância da 220 no contexto histórico é a busca "das pazes" com os usuários do modelo de sistemas baseados em componentes. Em suas duas primeiras versões o EJB tornou-se pouco popular por conta de sua arquitetura complexa e altamente dependente do container, significando que componentes criados para a plataforma dificilmente seriam reusáveis ou mesmo testáveis fora da mesma Evolução por Concorrência - O Framework Spring Em 2002 foi disponibilizado o framework Spring (JOHNSON; 2002, 2007), desenvolvido por um especialista em EJB 2, bastante descontente com o encaminhamento da especificação. O Spring é um framework que constrói uma infraestrutura para a gerência de componentes de software baseada em vários padrões tecnológicos "de fato". Baseado em um core/container, provê vários outros módulos que, quando comparados às especificações JEE, é visível a concorrência direta. Sua aceitação em detrimento da J2EE (versão anterior da plataforma) é uma importante questão a ser analisada. Tendências tecnológicas que vinham ganhando o mercado desde o início da década tornavam-se padrão. A injeção de dependência, programação declarativa, desenvolvimento baseado em POJOs, Programação Orientada a Aspectos (POA), e inversão de controle foram alguns dos principais conceitos utilizados. Talvez por ser um framework idealizado por um

11 único especialista na área, o Spring foi capaz de absorver todas estas tendências rapidamente tornando-se um framework conceituado como simples, modular, testável, de infraestrutura leve e "não-intrusivo" Um EJB Completamente Novo "O propósito do EJB 3 é melhorar a arquitetura do modelo reduzindo sua complexidade do ponto de vista do programador." (-220) Como a EJB 3.0 é uma especificação, que envolve o trabalho de um comitê, foi necessário um tempo maior desde o processo de idealização, formação de comitê, finalização e implementação do padrão. Num processo que leva cerca de 3 anos, esta nova versão do modelo de sistemas componentizados buscou praticamente os mesmos avanços já atingidos pelo Spring anteriormente, com a vantagem de ser um padrão de referência. A importância de ser um padrão de comitê é uma questão que pode ser respondida apenas com o tempo de maturação e índices de aceitadação do mercado. Uma realidade importante é o fato de que o Spring ganhou adeptos baseado em um destaque real de inovação tecnológica e arquitetural, vantagem esta que, se não já recuperada pela JEE 5, já não as mantêm em patamares diferentes. A nova versão do EJB já provê especificações desacopláveis do container, possui arquitetura simplificada e, comparativamente, possui alto grau de produtividade baseada nas facilidade de configuração. As principais mudanças relativas à simplificação da arquitetura EJB seguem abaixo: nenhum requisito de herança de classe ou interface é exigido, tornando o modelo EJB menos intrusivo; contrato com o container reduzido à anotação/configuração de métodos; possibilidade de uso de anotações para reduzir a necessidade de XML; persistência de objetos baseada no mapeamento O-R da JPA. Trabalhos futuros serão realizados visando uma comparação mais minuciosa entre as duas opções de modelo de software, baseado em componentes, para a tecnologia Java. Mas a impressão obtida ao acompanhar várias comunidades de desenvolvedores é a de que a especificação EJB 3.0 resolveu os seus problemas arquiteturais e pode agora continuar com sua evolução competitiva (a versão 3.1 terá a finalizada ainda deste ano).

12 4. Considerações Finais Este artigo buscou apresentar um panorama da plataforma de desenvolvimento Java Enterprise Edition, com foco nas tendências de mercado que guiaram a evolução para a última versão da mesma. Para isso mostrou-se alguns detalhes das três especificações mais populares da plataforma: JSF, JPA e EJB. Enquanto todas seguem o princípio de aumentar a produtividade da plataforma JEE, as duas primeiras buscam a facilitação do uso de padrões de projeto - como MVC. Já a terceira sofreu influências diversas dado um histórico de baixa aceitação da versão anterior. Para trabalhos futuros os autores e outros colaboradores pretendem executar pesquisas que quantifiquem a aceitação das mudanças aqui demonstradas. Um dos pontos já em estudo é a avaliação da aplicabilidade das Annotations em detrimento a outras formas de configuração e meta-dados. A análise dos reais ganhos de produtividade da JSF com relação ao Struts também está início de estudo, assim como, uma avaliação entre os containers providos pelo EJB e pelo Spring. 5. Referências DEEPAK, Alur; CRUPI, Jonh; MALKS, Dan. Core J2EE Patterns - Data Access Object. In.:, Core J2EE Patterns: Best Practices and Design Strategies. 1st edition. New Jersey: Prentice Hall / Sun Microsystems Press, Disponível:< > Acesso em: 01 jun FOWLER, Martin. Patterns of Enterprise Application Architecture. Addison-Wesley, Nov p JENDROCK, Eric et al. The Java EE 5 Tutorial, Santa Clara, EUA, Sept Disponível: < Acesso em: 02 jun FSF - Free Software Foundation, INC. About Free Software, Disponível: < Acesso em: 01 jun JCP Java Community Process. 244: JavaTM Platform, Enterprise Edition 5 (Java EE 5) Specification, May Disponível: < Acesso em: 01 jun JAVA.NET. Which Java EE 5 feature appeals to you most?, Disponível: < Acesso em: 01 jun JOHNSON, Rod. Expert One-on-One J2EE Design and Development. Birmingham, UK: Wrox Press Ltd, 2002.

13 JOHNSON, Rod. Introduction to the Spring Framework. Oct, Disponível: < Acesso em: 03 jun ORACLE. TopLink, Disponível: Acesso em: 01 jun REENSKAUG, Trygve. The Model-View-Controller (MVC) Its Past and Present. University of Oslo, Aug, Disponível:. < > Acesso em: 01 jun SUN - Sun Microsystems, INC. JDBC Documentation Disponível: < Acesso em: 01 jun. 2008

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural

Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Resumo: Perguntas a fazer ao elaborar um projeto arquitetural Sobre entidades externas ao sistema Quais sistemas externos devem ser acessados? Como serão acessados? Há integração com o legado a ser feita?

Leia mais

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE

ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE ABORDAGEM DE FRAMEWORKS PARA JSF QUE AUXILIAM O DESENVOLVIMENTO DE SOFTWARE Amarildo Aparecido Ferreira Junior 1, Ricardo Ribeiro Rufino 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil aapfjr@gmail.com

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 10 Persistência de Dados

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

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

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS

SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS SISTEMA DE AGENDAMENTO E GERENCIAMENTO DE CONSULTAS CLÍNICAS Pablo dos Santos Alves Alexander Roberto Valdameri - Orientador Roteiro da apresentação Introdução Objetivos Motivação Revisão bibliográfica

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

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores

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

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki

Prevayler. Perola. André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Perola André Luís Sales de Moraes Juliana Keiko Yamaguchi Tatiana Yuka Takaki Prevayler Prevayler é a implementação em Java do conceito de Prevalência. É um framework que prega uma JVM invulnerável

Leia mais

Desenvolvimento de aplicações web com JSP

Desenvolvimento de aplicações web com JSP Desenvolvimento de aplicações web com JSP Leandro Soares de Sousa, Paulo Henrique de Sousa Sistemas de Informação Centro Universitário Luterano de Palmas (CEULP/ULBRA) Cx. Postal 160 77054-970 Palmas TO

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

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

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br

SCE-557. Técnicas de Programação para WEB. Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br SCE-557 Técnicas de Programação para WEB Rodrigo Fernandes de Mello http://www.icmc.usp.br/~mello mello@icmc.usp.br 1 Cronograma Fundamentos sobre servidores e clientes Linguagens Server e Client side

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

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

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

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate

Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Desenvolvimento de aplicação web com framework JavaServer Faces e Hibernate Tiago Peres Souza 1, Jaime Willian Dias 1,2 ¹Universidade paranaense (Unipar) Paranavaí PR Brasil tiagop_ti@hotmail.com 2 Universidade

Leia mais

HIBERNATE EM APLICAÇÃO JAVA WEB

HIBERNATE EM APLICAÇÃO JAVA WEB HIBERNATE EM APLICAÇÃO JAVA WEB Raul Victtor Barbosa Claudino¹, Ricardo Ribeiro Rufino¹ ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil victtor.claudino@gmail.com, ricardo@unipar.br Resumo: Este

Leia mais

Framework. Marcos Paulo de Souza Brito João Paulo Raittes

Framework. Marcos Paulo de Souza Brito João Paulo Raittes Framework Marcos Paulo de Souza Brito João Paulo Raittes Sobre o seu surgimento A primeira versão do spring foi escrita por Rod Johnson em 2002, quando ele estava Lancando o seu livro Expert One-on-One

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

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

SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE. Aluno: Roberto Reinert Orientador: Everaldo A. Grahl SISTEMA DE WORKFLOW PARA MODELAGEM E EXECUÇÃO DE PROCESSOS DE SOFTWARE Aluno: Roberto Reinert Orientador: Everaldo A. Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Workflow Processo

Leia mais

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

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho Banco de Dados de Músicas Andre Lima Rocha Campos Osório Pereira Carvalho Definição Aplicação Web que oferece ao usuário um serviço de busca de músicas e informações relacionadas, como compositor, interprete,

Leia mais

3 Serviços na Web (Web services)

3 Serviços na Web (Web services) 3 Serviços na Web (Web services) 3.1. Visão Geral Com base na definição do Word Wide Web Consortium (W3C), web services são aplicações autocontidas, que possuem interface baseadas em XML e que descrevem

Leia mais

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate

Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Uma Abordagem sobre Mapeamento Objeto Relacional com Hibernate Luis Gustavo Zandarim Soares 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paraná PR Brasil luisgustavo@live.co.uk,

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

Universidade da Beira Interior

Universidade da Beira Interior Universidade da Beira Interior Relatório Apresentação Java Server Pages Adolfo Peixinho nº4067 Nuno Reis nº 3955 Índice O que é uma aplicação Web?... 3 Tecnologia Java EE... 4 Ciclo de Vida de uma Aplicação

Leia mais

J2EE TM Java 2 Plataform, Enterprise Edition

J2EE TM Java 2 Plataform, Enterprise Edition CURSO DE GRADUAÇÃO J2EE TM Java 2 Plataform, Enterprise Edition Antonio Benedito Coimbra Sampaio Junior abc@unama.br OBJETIVOS DO CURSO Capacitar os alunos no desenvolvimento de aplicações para a WEB com

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

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44

Etc & Tal. Volume 2 - Número 1 - Abril 2009 SBC HORIZONTES 44 Armazenando Dados em Aplicações Java Parte 2 de 3: Apresentando as opções Hua Lin Chang Costa, hualin@cos.ufrj.br, COPPE/UFRJ. Leonardo Gresta Paulino Murta, leomurta@ic.uff.br, IC/UFF. Vanessa Braganholo,

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

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

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures

Leia mais

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert: BRAlarmExpert Software para Gerenciamento de Alarmes A TriSolutions conta com um produto diferenciado para gerenciamento de alarmes que é totalmente flexível e amigável. O software BRAlarmExpert é uma

Leia mais

Documento de Arquitetura

Documento de Arquitetura Documento de Arquitetura A2MEPonto - SISTEMA DE PONTO ELETRÔNICO A2MEPonto - SISTEMA DE PONTO ELETRÔNICO #1 Pág. 1 de 11 HISTÓRICO DE REVISÕES Data Versão Descrição Autor 28/10/2010 1 Elaboração do documento

Leia mais

Linguagem de Programação Introdução a Linguagem Java

Linguagem de Programação Introdução a Linguagem Java Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,

Leia mais

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

Ferramenta de apoio a gerência de configuração de software. Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Ferramenta de apoio a gerência de configuração de software Aluno: Rodrigo Furlaneto Orientador: Everaldo Artur Grahl Roteiro de apresentação Introdução Objetivos Fundamentação Teórica Gerência de Configuração

Leia mais

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO

MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO MAPEAMENTO OBJETO RELACIONAL: UM ESTUDO DE CASO UTILIZANDO O HIBERNATE Rafael Laurino GUERRA, Dra. Luciana Aparecida Martinez ZAINA Faculdade de Tecnologia de Indaiatuba FATEC-ID 1 RESUMO Este artigo apresenta

Leia mais

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1.

UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL. Java Peristence API 1. UNIVERSIDADE FEDERAL DA BAHIA INSTITUTO DE MATEMÁTICA CIÊNCIA DA COMPUTAÇÃO LINGUAGENS PARA APLICAÇÃO COMERCIAL Java Peristence API 1.0 Salvador-Ba Março/2009 1 RAMON PEREIRA LOPES Java Peristence API

Leia mais

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma

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

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB

UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB UM ESTUDO SOBRE OS FRAMEWORKS JSF E PRIMEFACES NO DESENVOLVIMENTO DE SOFTWARE WEB Adriano Schulter Moenster 1, Tiago Piperno Bonetti 1 ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil adrmoenster@gmail.com,

Leia mais

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA

APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA APLICATIVO WEB PARA O SETOR DE EXTENSÃO IFC VIDEIRA Autores: Claudiléia Gaio BANDT; Tiago HEINECK; Patrick KOCHAN; Leila Lisiane ROSSI; Angela Maria Crotti da ROSA Identificação autores: Aluna do Curso

Leia mais

Daniel Wildt dwildt@gmail.com. FACENSA Grupo de Estudos Java - FUJA Slide: 1

Daniel Wildt dwildt@gmail.com. FACENSA Grupo de Estudos Java - FUJA Slide: 1 Apresentação Tecnologia Java Daniel Wildt dwildt@gmail.com FACENSA Grupo de Estudos Java - FUJA Slide: 1 1. Java 2. JCP 3. Tecnologia Java 4. J2ME/J2SE/J2EE 5. Certificações 6. JUG 7. RSJUG Agenda 8. Ambiente

Leia mais

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

Spring: Um suite de novas opções para Java EE Spring: Um suite de novas opções para Java EE Alberto J Lemos (Dr. Spock) Instrutor Globalcode Ricardo Jun Taniguchi Instrutor Globalcode 1 Agenda > Sobre o Spring Framework > Escopo de integração com

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

Programação para Web Artefato 01. AT5 Conceitos da Internet

Programação para Web Artefato 01. AT5 Conceitos da Internet Programação para Web Artefato 01 AT5 Conceitos da Internet Histórico de revisões Data Versão Descrição Autor 24/10/2014 1.0 Criação da primeira versão HEngholmJr Instrutor Hélio Engholm Jr Livros publicados

Leia mais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA RESUMO Ricardo Della Libera Marzochi A introdução ao Service Component Architecture (SCA) diz respeito ao estudo dos principais fundamentos

Leia mais

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB)

PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) RELATÓRIO DE ENTREGA DO PRODUTO 1 (CONSTRUÇÃO DE PORTAL WEB) PARA A ELABORAÇÃO DOS PLANOS MUNICIPAIS DE GESTÃO INTEGRADA DE RESÍDUOS SÓLIDOS PMGIRS PARA OS MUNICÍPIOS DE NOVO HORIZONTE, JUPIÁ, GALVÃO,

Leia mais

Varejo Digital Automação Comercial para Cupom Fiscal Eletrônico

Varejo Digital Automação Comercial para Cupom Fiscal Eletrônico TechnoCorp White Paper Março 2012 Varejo Digital Automação Comercial para Cupom Fiscal Eletrônico Resumo Executivo O Varejo Digital é uma solução de automação comercial focada no uso do Cupom Fiscal Eletrônico,

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

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

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

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado

gerenciamento de portais e websites corporativos interface simples e amigável, ágil e funcional não dependendo mais de um profissional especializado O NetPublisher é um sistema de gerenciamento de portais e websites corporativos (intranets ou extranets), apropriado para pequenas, médias e grandes empresas. O conteúdo do website pode ser atualizado

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração O livro Ambiente Web É o ambiente

Leia mais

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração

Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Desenvolvimento em PHP usando Frameworks Elton Luís Minetto Agenda Ambiente Web PHP Problemas Frameworks CakePHP Symfony Zend Framework Prado CodeIgniter Demonstração Ambiente Web É o ambiente formado

Leia mais

JPA: Persistência padronizada em Java

JPA: Persistência padronizada em Java JPA: Persistência padronizada em Java FLÁVIO HENRIQUE CURTE Bacharel em Engenharia de Computação flaviocurte.java@gmail.com Programação Orientada a Objetos X Banco de Dados Relacionais = Paradigmas diferentes

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 11 Arquitetura do sistema Nada que é visto, é visto de uma vez e por completo. --EUCLIDES

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Modelo Cliente- Servidor Modelo de Aplicação Cliente-servidor Os

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

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Curso de Aprendizado Industrial Desenvolvedor WEB

Curso de Aprendizado Industrial Desenvolvedor WEB Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos II Professor: Cheli dos S. Mendes da Costa Servidor de Aplicações WEB Tomcat Servidor Tomcat Foi desenvolvido

Leia mais

CURSO DESENVOLVEDOR JAVA Edição 2010

CURSO DESENVOLVEDOR JAVA Edição 2010 CURSO DESENVOLVEDOR JAVA Edição 2010 O curso foi especialmente planejado para os profissionais que desejam trabalhar com desenvolvimento de sistemas seguindo o paradigma Orientado a Objetos e com o uso

Leia mais

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br

EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br EJB ainda tem vez no Java EE 6? Fernando Lozano Consultor 4Linux lozano@4linux.com.br Você Gosta do EJB? O EJB esteve por muito tempo na berlinda do mundo Java É pesado... É complicado... Código muito

Leia mais

Figura 1 - Arquitetura multi-camadas do SIE

Figura 1 - Arquitetura multi-camadas do SIE Um estudo sobre os aspectos de desenvolvimento e distribuição do SIE Fernando Pires Barbosa¹, Equipe Técnica do SIE¹ ¹Centro de Processamento de Dados, Universidade Federal de Santa Maria fernando.barbosa@cpd.ufsm.br

Leia mais

Programação para Internet II

Programação para Internet II Programação para Internet II Aulas 01 e 02 Prof. Fernando Freitas Costa http://professor.fimes.edu.br/fernando nando@fimes.edu.br Prof. Fernando 1 Ementa Instalação e configuração básica do NetBeans e

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 13 Web Services Web Services

Leia mais

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão

Definição de Padrões. Padrões Arquiteturais. Padrões Arquiteturais. Arquiteturas de Referência. Da arquitetura a implementação. Elementos de um Padrão DCC / ICEx / UFMG Definição de Padrões Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para problemas recorrentes

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

Documento de Projeto de Sistema

Documento de Projeto de Sistema Documento de Projeto de Sistema 1 IFES / Serra Projeto: Gerenciador de Pelada - Oasis Registro de Alterações: Versão Responsável Data Alterações 0.1 Eduardo Rigamonte, Geann Valfré, João Paulo Miranda,

Leia mais

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

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

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins

GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD. Acadêmico: Maicon Klug Orientadora: Joyce Martins GERADOR DE CÓDIGO JSP BASEADO EM PROJETO DE SGBD Acadêmico: Maicon Klug Orientadora: Joyce Martins Roteiro Introdução Objetivos do trabalho Fundamentação teórica Desenvolvimento do trabalho Conclusão Extensões

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

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Integração de sistemas utilizando Web Services do tipo REST

Integração de sistemas utilizando Web Services do tipo REST Integração de sistemas utilizando Web Services do tipo REST Jhonatan Wilson Aparecido Garbo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil jhowgarbo@gmail.com jaime@unipar.br

Leia mais

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

Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net. www.serpro.gov. Para perguntas e respostas, utilizem a lista de discussões de usuários da comunidade: demoiselle-users@lists.sourceforge.net www.serpro.gov.br Agenda História Introdução Objetivos técnicos Modelo de aplicação

Leia mais

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha

Desenvolvimento WEB II. Professora: Kelly de Paula Cunha Desenvolvimento WEB II Professora: Kelly de Paula Cunha O Java EE (Java Enterprise Edition): série de especificações detalhadas, dando uma receita de como deve ser implementado um software que utiliza

Leia mais

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza

Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I. Prof. MSc. Hugo Souza Sistemas Distribuídos Arquitetura de Sistemas Distribuídos I Prof. MSc. Hugo Souza Como já vimos, os sistemas distribuídos são apresentados considerando um planejamento bem mais complexo relacionado aos

Leia mais

Anexo I Formulário para Proposta

Anexo I Formulário para Proposta PLATAFORMA CGI.br Solicitação de Propostas SP Anexo I Formulário para Proposta Data: 05/07/2013 Versão: 1.1 Plataforma CGI.br Solicitação de Propostas - SP Anexo I Formulário para Proposta 1. Estrutura

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 6 EJB Enterprise Java

Leia mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS

SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS SISTEMA DE GESTÃO DE PRODUÇÃO DE EVENTOS Rodrigo das Neves Wagner Luiz Gustavo Galves Mählmann Resumo: O presente artigo trata de um projeto de desenvolvimento de uma aplicação para uma produtora de eventos,

Leia mais

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR

IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR IMPLEMENTAÇÃO DAS CAMADAS Inference Machine e Message Service Element PARA UM SERVIDOR DE SISTEMA DE GERENCIAMENTO DE Workflow HOSPITALAR Jeferson J. S. Boesing 1 ; Manassés Ribeiro 2 1.Aluno do Curso

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

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

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

3 Arquitetura do Sistema

3 Arquitetura do Sistema 3 Arquitetura do Sistema Este capítulo irá descrever a arquitetura geral do sistema, justificando as decisões de implementação tomadas. Na primeira seção iremos considerar um conjunto de nós interagindo

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas

GUIA DE CURSO. Tecnologia em Sistemas de Informação. Tecnologia em Desenvolvimento Web. Tecnologia em Análise e Desenvolvimento de Sistemas PIM PROGRAMA DE INTEGRAÇÃO COM O MERCADO GUIA DE CURSO Tecnologia em Sistemas de Informação Tecnologia em Desenvolvimento Web Tecnologia em Análise e Desenvolvimento de Sistemas Tecnologia em Sistemas

Leia mais