• Nenhum resultado encontrado

Para implementação dos componentes desenvolvidos por este projeto será utilizada a linguagem Java, por ter esta a vantagem de ser utilizada em uma multiplicidade de plataformas operacionais. Para facilitar o desenvolvimento, outras facilidades oferecidas pela Sun Microsystems serão utilizadas, a saber: Enterprise Java Beans (EJB) [21], Java 2 Enterprise Edition (J2EE ) [22] e Java Media Framework (JMF) [23]. Estas facilidades são apresentadas a seguir.

3.5.1. Enterprise Java Beans

Enterprise Java Beans (EJB) [21] é uma arquitetura para computação distribuída baseada em componentes. EJB é uma especificação, e não um produto, que define uma arquitetura de componentes e as interfaces entre estes e um servidor EJB.

Enterprise beans são componentes de aplicações empresariais distribuídas, orientados à transação e funcionam como um servidor de camada intermediária em um sistema cliente/servidor de três camadas, escondendo a complexidade das aplicações distribuídas. As principais características de um enterprise bean são:

• um enterprise bean tipicamente contém a lógica empresarial da aplicação;

• as instâncias de um enterprise bean são criadas e gerenciadas em tempo de execução por um container; o acesso dos clientes é gerenciado através deste container;

• vários serviços, tais como transação e segurança, são providos pela plataforma, independentemente de um enterprise bean;

• um enterprise bean pode ser incluído em uma aplicação sem que sejam necessárias mudanças em seu código fonte ou mesmo sua recompilação.

EJB é a arquitetura de componentes utilizada na plataforma Java 2, Enterprise Edition (J2EE) [22], conforme representado na figura 3.4.

3.5.2. Java 2 Enterprise Edition

A plataforma Java 2 Enterprise Edition (J2EE) [22] define um padrão para desenvolvimento de aplicações comerciais multi-camadas. É uma arquitetura baseada em componentes para a criação, desenvolvimento e execução de aplicações no nível empresarial, orientada a objeto, em um ambiente distribuído. A figura 3.4 ilustra a arquitetura da plataforma J2EE.

J2EE simplifica o desenvolvimento das aplicações empresariais tratando-as como componentes padronizados e modulares, oferecendo um conjunto de serviços para estes componentes e definindo muitos detalhes do comportamento da aplicação automaticamente, sem a necessidade de uma programação complexa. Isto é, as camadas da funcionalidade são encapsuladas em tipos específicos de componentes: a lógica empresarial é encapsulada em componentes Enterprise Java Beans (EJB), as interações com o cliente podem ser apresentadas através de páginas web HTML (Hyper Text Markup Language) e a comunicação entre os componentes acontece transparentemente através do uso de vários padrões, tais como HTML, XML (Extensible Markup Language), http (HyperText Transfer Protocol), SSL (Secure Sockets Layer), RMI (Remote Method Invocation) e IIOP (Internet Inter-Orb Protocol), dentre outros.

O modelo J2EE divide as aplicações empresariais em três partes principais: componentes, containers e conectores. Componentes são de grande interesse para os desenvolvedores de aplicações, enquanto os containers e conectores são implementados pelos fornecedores de tecnologia para esconder a complexidade e promover a portabilidade. Os containers agem entre os clientes e os componentes, provendo serviços transparentemente para ambos, incluindo suporte à transação. Os conectores localizam-se abaixo da plataforma J2EE, definindo uma API (Application Programming Interface – Interface para Programação de Aplicação) que permite utilizar os vários

Capítulo III – Desenvolvimento de Software Baseado em Componentes

_____________________________________________________________________________________ 34

serviços oferecidos por diversos fornecedores, promovendo a flexibilidade por possibilitar a implementação de uma variedade de serviços específicos.

Camada 1 Camada 2 Camada 3

Clientes Clientes Servidor J2EE Container EJB Container Web Arquivo JSP Enterprise Bean Servlet Enterprise Bean Enterprise Bean Servidor de dados

Figura 3.4. Arquitetura da plataforma J2EE.

Esta arquitetura está dividida de acordo com três camadas: cliente (camada 1), servidor (camada 2) e banco de dados (camada 3). O servidor J2EE oferece serviços, tais como

naming e directory, os quais permitem localizar serviços e componentes através da

interface de programação de aplicações Java Naming e Directory InterfaceTM (JNDI);

autenticação, que garante a segurança da aplicação por exigir identificação dos clientes, e serviços para a chamada dos métodos de um enterprise bean.

O container é um ambiente de execução que controla o enterprise bean e fornece um conjunto de serviços de sistema para este bean. Instâncias de um enterprise bean são executadas dentro de um container EJB, cujos serviços oferecidos incluem o gerenciamento de transações, segurança, a conexão com clientes remotos, o gerenciamento do ciclo de vida de um componente bean, a conexão com bases de dados, entre outros.

3.5.3. Java Media Framework

Java Mídia Framework (JMF) [23] é uma API (Application Programming Interface –

Interface para Programação de Aplicação) para incorporar mídia temporal em applets e aplicações Java. JMF provê uma arquitetura unificada e interface de programação para gerenciar a captura, processamento, sincronização e transmissão de dados de mídia

temporal (áudio e vídeo) através da tecnologia Java, possibilitando, portanto, sua utilização em uma grande variedade de plataformas. JMF deve suportar a maioria dos tipos de mídia padrão, tais como AIFF (Audio Interchange File Format), AVI (Audio Vídeo Interleaved), JPG (Joint Photographic Experts Groups), MIDI (Musical Instrument Digital Interface), MPEG (Motion Picture Expert Group), PCM (Pulse Code Modulation), QuickTime, RMF (Rich Music Format), WAV (Wave), etc. A figura 3.5 ilustra a arquitetura em alto nível de JMF.

A API JMF consiste, principalmente, de interfaces que definem o comportamento e a interação dos objetos e são usadas para capturar, processar e apresentar a mídia temporal. Implementações destas interfaces operam em uma estrutura de framework. São características desta API:

• permitir o desenvolvimento de programas em Java que utilizam mídia temporal; • oferecer suporte para capturar, armazenar e transmitir mídia;

• controlar o tipo de processamento a ser realizado durante a transmissão; • realizar processamento personalizado sobre mídias contínuas;

• manter a flexibilidade e extensão necessárias para suportar aplicações de mídia avançadas e futuras tecnologias de mídia, pois define uma arquitetura de plug-in que permite acesso direto aos dados de mídia.

JMF provê uma API Java para acessar frameworks de mídia básicos. Assim, a utilização desta API facilita a individualização e extensão das funcionalidades de JMF para suportar formatos e tipos adicionais, otimizar o tratamento aos formatos suportados e criar novos mecanismos de apresentação.

Capítulo III – Desenvolvimento de Software Baseado em Componentes

_____________________________________________________________________________________ 36

É através da utilização da metodologia para desenvolvimento de software [6, 7], apresentada neste capítulo, que se pretende identificar e desenvolver os componentes para o sistema de conferência multimídia, de forma que estes componentes apresentem como características fundamentais a generalidade, o reuso e a flexibilidade. Além disso, com a utilização de Java como a linguagem para desenvolvimento, Enterprise Java Beans [21] como a arquitetura para computação distribuída baseada em componentes, Java 2 Enterprise Edition [22] como uma plataforma para desenvolvimento de aplicações comerciais multi-camadas e Java Media Framework [23] como uma API que permite a utilização de mídia temporal em aplicações Java, espera-se que a implementação dos componentes identificados por este trabalho possa ter sua complexidade e seu tempo de desenvolvimento reduzidos.

De acordo com a metodologia para desenvolvimento de software baseado em componentes, cada domínio das aplicações CSCW deve ser estudado a fim de se conhecer o vocabulário dessas aplicações – nível de empresa – prosseguindo, para cada aplicação, a modelagem nos demais níveis – de sistema, de componentes e de objetos, a fim de se identificar componentes genéricos para aplicações cooperativas. Por ser o escopo de CSCW tão amplo, seria um trabalho exaustivo analisar cada uma das aplicações cooperativas e modelá-las em todos os níveis de abstração propostos pela metodologia para desenvolvimento de software baseado em componentes. Assim, uma variedade de aplicações CSCW foi analisada e somente uma foi escolhida para ser detalhada: um sistema de conferência multimídia. Após identificados os componentes da aplicação cooperativa específica, uma tarefa de abstração é realizada para se determinar quais destes são comuns a várias aplicações cooperativas. Estes componentes compõem o toolkit para aplicações cooperativas resultante deste trabalho e são genéricos e flexíveis, permitindo sua reutilização em várias aplicações CSCW.

O próximo capítulo apresenta a utilização da metodologia para desenvolvimento de software baseado em componentes [6, 7] em um estudo de caso envolvendo o sistema de conferência multimídia. Primeiramente, uma descrição informal da aplicação cooperativa será apresentada e, num segundo momento, serão apresentadas partes da modelagem dessa aplicação conforme os níveis de abstração propostos pela metodologia.

Capítulo IV

Aplicação da Metodologia – Sistema de Conferência Multimídia

Este capítulo descreve como aplicar a metodologia para desenvolvimento de software baseado em componentes [6, 7] para identificação e desenvolvimento de componentes. É apresentada uma descrição sobre a aplicação a ser modelada e partes da modelagem conforme os níveis de abstração propostos pela metodologia.

Documentos relacionados