• Nenhum resultado encontrado

Aula 05

N/A
N/A
Protected

Academic year: 2021

Share "Aula 05"

Copied!
9
0
0

Texto

(1)

Servidores de Aplicação

Aula 05

(2)

Este material é parte integrante da disciplina oferecida pela UNINOVE.

O acesso às atividades, conteúdos multimídia e interativo, encontros virtuais, fóruns de discussão e a comunicação com o professor devem ser feitos diretamente no ambiente virtual de aprendizagem UNINOVE.

Uso consciente do papel.

(3)

Aula 05: Aplicativos distribuídos e computação em nuvem – parte II

Objetivo: Apresentar algumas tecnologias de Java EE que são usadas para o

desenvolvimento de aplicativos distribuídos.

Introdução

Como dito nas aulas anteriores, a plataforma Java EE foi projetada para facilitar e agilizar o desenvolvimento de aplicativos distribuídos. Por ter sido desenvolvida no final dos anos 1990, as primeiras tecnologias de Java EE não eram voltadas especificamente às aplicações web, mas sim à integração de novos aplicativos aos sistemas legados e à implementação de padrões de projetos que eram usados desde os anos de 1970.

No início da Java EE, as tecnologias mais usadas eram JDBC, JNDI, JTA, JPA, Java Security, EJB, RMI, Corba. Essas tecnologias evoluíram com o tempo e chegaram ao seu ponto máximo de desenvolvimento. Assim, elas ainda são distribuídas com a plataforma Java EE, mas não são atualizadas há vários anos, como é o caso de Corba e RMI.

JDBC (Java DataBase Connectivity)

JDBC é uma API desenvolvida para acessar bancos de dados relacionais, e é usada quando o desenvolvedor quer, ou precisa, escrever seus comandos SQL. Para ser usada, é necessário obter do fornecedor do banco de dados (Oracle, Microsoft, PostGres, etc.), os drivers de conexão ao banco e integrá-lo ao aplicativo através da linha de código a seguir:

Class.forName(nome_do_driver).

conexao = DriverManager.getConnection(parâmetros de conexão).

Os desenvolvedores podem usá-la para construir os componentes de que seu aplicativo necessita para acessar as bases de dados. Desse modo, esse

(4)

componente fica entre a aplicação Java e os drivers de conexão com os bancos de dados, conforme apresentado na Figura 1.

Figura 1 – Hierarquia da API JDBC.

JNDI (Java Naming and Directory Interface)

Essa API de Java é usada para acessar sistemas de diretório e de nomenclatura, procurando dados e objetos usando um nome, e pode ser usada para complementar diversas operações, como conectar componentes EJB ou outros recursos através da rede, como usuários do Microsoft Exchange.

Hierarquicamente, ele se comporta como a API JDBC na Figura 1, recebendo os dados a partir da aplicação e um gerenciador desses serviços.

JTA (Java Transaction API)

Esta tecnologia é uma especificação que define um modelo de programação para desenvolver componentes que executam transações distribuídas. Essas transações distribuídas se referem a componentes de software que acessam bases de dados, gerenciam o processamento de filas de mensagens, etc., a partir de componentes remotos que solicitaram esse processamento e coordenam o envio do resultado do processamento para os componentes que fizeram as solicitações.

(5)

JPA (Java Persistence API)

A JPA é um framework baseado na linguagem de programação Java que permite o gerenciamento de acesso a bases de dados. Esse framework é formado pela própria especificação, pelos componentes que executam as transações SQL e os mecanismos de gerenciamento de acesso.

Esse framework usa um mapa objeto-relacional que usa um tipo especial de classes escrita em Java, chamadas classes de entidade. As classes de entidade representam o modelo de tabelas que foi implementada no banco de dados. Esse modelo é escrito pelo desenvolvedor, que pode integrá-lo às APIs de acesso, às bases de dados, que são as responsáveis por gerenciar as transações SQL de atualização, consulta e inserção nas bases de dados.

Do mesmo modo que ocorre com JDBC, os componentes com a JPA devem receber as requisições da aplicação Java, e devolver o resultado do processamento para ela. Mas ao contrário de JDBC, o desenvolvedor não necessita escrever os vários comandos SQL e nem de integrar através de programação a API ao aplicativo. A JPA constrói os comandos SQL a partir da definição que ela encontra nas classes de entidade, agilizando o trabalho dos desenvolvedores, uma vez que eles somente deverão construir comandos bastante específicos às suas necessidades.

Java Security

Java Security é um conjunto de APIs desenvolvidos em Java que possui vários mecanismos de segurança usados pelo mercado, algoritmos de segurança, tratamento de protocolos de segurança, entre outros, com as seguintes finalidades: autenticação de usuários; autorização e controle de acesso; integridade dos dados; confidencialidade; autenticação de ações de modo que um usuário negue que executou alguma ação; qualidade de serviço (QoS) e auditoria.

(6)

EJB (Enterprise JavaBeans)

A especificação da Plataforma Java EE para os Entreprise Java Beans (EJB) define um framework que é executado no lado servidor da aplicação, simplificando o desenvolvimento de aplicações escritas em Java, cuja arquitetura se baseia em componentes distribuídos.

Um EJB deve ser implementado de modo a ser portável entre diferentes as mais plataformas computacionais e estar completamente desacoplado de qualquer aplicação que faça uso dele (aplicação cliente). Essas características garantem que eles sejam reutilizáveis, como as demais soluções de middleware disponíveis no mercado.

Isso permite o projeto de aplicações escalonáveis, confiáveis e seguras, sem a necessidade de realizar todo o trabalho de desenvolvimento a partir do zero. Além disso, os EJBs já dispõem de uma infraestrutura pré-escrita, acelerando o desenvolvimento das aplicações a serem executadas no lado do servidor.

Analisados os motivos que levaram à criação dos EJBs, vamos à definição apropriada dos mesmos: um padrão usado no desenvolvimento, instalação e execução de aplicações projetadas em arquiteturas baseadas em componentes distribuídos, escritos em Java, e componentes que serão executados no lado do servidor. Esse padrão define uma especificação que permite que qualquer componente possa ser executado em qualquer servidor de aplicações, desde que ambos sejam compatíveis com a especificação.

Os benefícios chave dos EJBs são:

 É um padrão industrial amplamente usado.

 Os componentes são portáveis entre vários ambientes operacionais: a especificação dos EJBs é pública, gratuita e está disponível a todos os desenvolvedores. Por ser um padrão de uso, a especificação garante que os EJBs não estejam ligados a nenhuma solução proprietária de um único fornecedor.

 Rapidez no desenvolvimento de aplicações corporativas: o desenvolvimento de uma aplicação ocorre mais rapidamente, pois os serviços de infraestrutura já estão disponibilizados pelos componentes do middleware do servidor de aplicações, que são: transações, pools, segurança, e outros.

(7)

Como visto na aula 4, com o advento da Web, os sites de e-commerce rapidamente se tornaram populares e cada vez mais complexos e, se no fim dos anos 1990 e início dos anos 2000 eles não era muito mais do que uma aplicação instalada e executada num servidor web, hoje em dia, são aplicações cuja regra de negócios são executadas em servidores, e essas regras são usadas pelos mais variados tipos de aplicações cliente: aplicações web, computação móvel, aplicações desktop, etc.

Com o advento da web, os sites de e-commerce rapidamente se tornaram populares. No fim dos anos 1990 e início dos anos 2000, um sistema de e-commerce não era muito mais do que uma aplicação instalada e executada num servidor web, que não se conectava a nenhum outro sistema ou aplicativo.

Isso fez com que várias tecnologias que compõem a plataforma Java EE fossem desenvolvidas separadamente e, no fim dos anos 1990, surgiu a especificação dos EJBs, que permite que o projetista do software especifique seus objetos (ou componentes) distribuídos, e integre nos EJBs todas essas tecnologias, fazendo com o EJB se tornasse uma parte fundamental de Java EE.

RMI (Remote Method Invocation) e RMI-IIOP

RMI é o modo nativo da linguagem Java para a comunicação de objetos distribuídos, por exemplo, dois objetos diferentes em execução em máquinas diferentes. RMI-IIOP é uma extensão de RMI e pode ser usado para integração com CORBA, oficialmente usado.

CORBA (Common Object Request Broker Architecture)

CORBA é um padrão definido pelo OMG (Object Management Group), que define um conjunto de regras para conectar componentes executados em máquinas diferentes. Além disso, os componentes também podem ser escritos em linguagens de programação diferentes, que se comunicam através de interfaces desenvolvidas com o fim de permitir a comunicação entre eles.

(8)

Java possui um conjunto de APIs que permite o desenvolvimento dessas interfaces, e esse conceito já foi amplamente usado até um passado recente. Entretanto, conforme o uso de EJBs e Web Services, foi popularizado; os desenvolvedores Java deixaram de usar CORBA como a interface de comunicação principal, pois é um mecanismo mais complexo de implementar.

Conclusão

Não é difícil perceber que um aplicativo distribuído depende de várias tecnologias que permitam seu desenvolvimento. Essa necessidade é antiga, e a plataforma Java EE foi a primeira a prover esses mecanismos no final dos anos 1990. As tecnologias mais antigas foram apresentadas aqui e podem ser usadas conforme os requisitos da aplicação.

* O QR Code é um código de barras que armazena links às páginas da web. Utilize o leitor de QR Code de sua preferência para acessar esses links de um celular, tablet ou outro dispositivo com o plugin Flash instalado.

(9)

REFERÊNCIAS

GONÇALVES, Antonio. Beginning Java EE 6 Platform with GlassFish 3: From Novice to Professional. United States of America: A Press, 2009.

PIMENTEL, Mariano; FUCKS, Hugo. Sistemas Colaborativos. Rio de Janeiro: Campus, 2011.

Referências

Documentos relacionados

Em relação aos objetivos, a pesquisa é do tipo exploratória (pretende discutir um problema relativamente pouco investigado) e descritiva (devida à caracterização

Cruzeiro no Lago Ashi (15m) e percurso pelo Vale Owakudani, desde onde em dias de céu está limpo pode avistar o Monte Fuji. Visita ao museu ao ar livre, almoço e viagem para

Utilizando-se da força de interação gravitacional entre dois corpos, mesmo sem entender de que maneira essa força se propagava de um corpo para outro, era possível

Padre- Carochinha, queres casar com o João Ratão.. Carochinha – Sim, quero casar

Mathes and Nahai 20 con- ducted a detailed study of the vascular anatomy of the muscles, where the blood configuration model of the muscle determines how safe it is to

Discute-se também qual seria o termo adequado para designar essa condição, pois, no final da década de 1990, a Organização Mundial de Saúde substituiu a

Os AVS da PHASE são uma linha de comutadores profissionais de áudio e vídeo, de alta performance, projetados principalmente para: Emissoras de Rádio e TV, Centros de Produção

Compensar as comunidades pesqueiras artesanais dos municípios da Área de Influência das Atividades de Pesquisa Sísmica Marítima 3D/4C nas Concessões de Produção de