integração de tecnologias uml – corba - java a convergência das tecnologias

103
Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias Tutorial por José Eduardo Zindel Deboni Voxxel Consultoria de Sistemas

Upload: pilis

Post on 11-Jan-2016

20 views

Category:

Documents


3 download

DESCRIPTION

Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias. Tutorial por José Eduardo Zindel Deboni Voxxel Consultoria de Sistemas. Objetivos do Tutorial. Observando que tudo esta orientado a objetos Análise/Modelagem……….UML Projeto…………………….UML e CORBA - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração de TecnologiasUML – CORBA - Java

A Convergência das Tecnologias

Tutorial

por José Eduardo Zindel Deboni

Voxxel Consultoria de Sistemas

Page 2: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Objetivos do Tutorial

Observando que tudo esta orientado a objetos Análise/Modelagem……….UML Projeto…………………….UML e CORBA Implementação……………IDL e Java

Analisar como o desenvolvimento de sistemas pode tirar vantagens da integração de tecnologias

Estudar através de um exemplo como a UML pode integrar-se a CORBA e Java

Page 3: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

O que é um Tutorial ?

Verbete: tutorial 2. Diz-se da modalidade de ensino exercido por

tutor (4).

Verbete: tutor [Do latim: tutore.] 4. Aluno designado como professor de outros

alunos, em formas alternativas de ensino.

Fonte: Dicionário Aurélio em CD-ROM V.1.4

Page 4: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Os sistemas atuais são…… complexos Negócios estão cada vez mais complexos Integração de mercados, globalização Competitividade crescente

… feitos para a internet Confiabilidade: o negócio depende do sistema e_bussiness: O negócio é o sistema

… distribuídos em n camadas Especialização de cada atividade do sistema Facilidade de manutenção e portabilidade e_business: O negócio é a rede

Page 5: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

A arquitetura de n camadas

ok

objetos

HTMLs CGIs

Camadade

Apresentação

Camadade Negócios

Camadade

Dados

webserver

Corba/iiop Corba/iiop

Corba/iiop

Http/cgi

RDBMSOODBMSArquivos

Page 6: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Convergência para objetos

Análise e Modelagem

Projeto e Arquitetura

Implementação

UML

CORBA

Java

Lente convergente Da Orientação a Objetos

Page 7: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Tecnologias Orientadas a Objeto

Linguagem de Modelagem Orientada a Objetos UML – Unified Modeling Language

Arquitetura de Aplicações de Objetos Distribuidos CORBA – Common Object Request Broker Architecture

Ambiente flexível e portável para desenvolvimento Java (Aplicações, Applets, Servlets, JDBC, Swing, RMI, EJB…)

Page 8: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Como fica a Engenharia de Software?

É necessário fazer Engenharia de Software?É possivel se fazer Engenharia do Software? Integrar :Analise – Projeto - Implementação Projetar a solução antes de construir Criar uma “planta” do software Utilizar um método para desenvolvimento de sistemas Simular, prever resultados antes da construção

Como desenvolver em tempo de internet?Com agregar as novas tecnologias disponíveis?

Page 9: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Respostas:Sim, é indispensável usar as técnicas da Eng. de Software, para atender à complexidade e garantir confiabilidade às soluções distribuidas.

Sim, é possível realizar a Eng. de Software porque tudo esta Orientado a Objetos.

Modelagem Orientada a Objetos (UML) Arquitetura de Objetos distribuidos (CORBA) Implementação para internet (Java)

Page 10: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Novas questões:

Como integrar estas novas tecnologias com os métodos de Engenharia de Software?

Como integrar a UML (analise/projeto) com CORBA (Arquitetura da solução) e com Java (implementação) serm perder as vantagens individuais de cada uma

A UML é capaz de modelar e dar uma visão completa do todo tão heterogêneo?

Page 11: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Abordagem

Analisar a UML e a sua integração com Java e CORBA

Propor um método para o trabalho em conjunto destas tecnologias

Exemplificar a integração

Page 12: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração entre as tecnologias

JavaAmbiente de Implementacao

CORBAArquitetura da Solucao

Dominio do Problema

UMLAnalise e Projeto

Page 13: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

O que é a UML?

UML

Unified Modeling Language É uma linguagem de modelagem de sistemas É orientada a objetos É padronizada pela OMG É suportada por diversas ferramentas CASE Ainda é pouco difundida, e utilizada

Page 14: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Seqüência de diagramas*

Comportamentointerno

ComportamentoExterno

Estrutura

Implementação

Casos de Uso

Eventos Colaboração Atividades Estados

Classes

Componentes Distribuição

Pacotes

* esta seqüência não faz parte da UML é apenas uma sugestão

Page 15: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Casos de Uso

Descreve os cenários de interação

Identifica elementos externos

Caracteriza os objetivos de cada um com o sistema

Um Ator se comunica com Casos de Uso

Define-se a fronteira do sistema

Page 16: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagramas de Casos de Uso

Cliente

Vendedor

Gerente

Fazer Pedidos

AprovarCrédito

EntregarMaterial

Sistema

Page 17: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagramas de Classes

Estrutura das partes que formam o sistema

Expõe os componentes internos

Estabelece as relações entre as classes

É um diagrama estrutural estático e não dinâmico

Possui uma relação direta com a estrutura dos códigos

Page 18: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplos de representação

Pessoa

Pessoa

nome: Textoidade: inteiro

cadastrar()

Pessoa {abstrata,

autor=JEDeboni}

+nome: Texto#RG : inteiro+casado : boolean=false

+cadastra()+criar(RG:inteiro)

Page 19: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

ReservasDataReservaDataValidadeCriarCancelar

UsuariosNomeLocalTelefoneSenhaFazReserva

MateriaisCodigoAssuntoTituloAutorEmprestarDevolver

LivrosEditoraEdiçãoISBNMostraDetalhes

1

Consultar

1

1

1

Empréstimo

DataEmpréstimoDataRetornoATRASONovo

Modelo de Classes

Page 20: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagramas de Interação

Diagramas de Seqüência de Eventos

Diagramas de Colaboração As classes se comunicam pelos métodos Descreve a troca de mensagens Mostra a dinâmica observável entre as classes Uma mensagem se da pela invocação de um

método de outra classe e pela passagem de parâmetros

Page 21: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de seqüência de eventos

Page 22: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de Estados

Emprestado

Disponível

Atrasado

Reservado

Emprestar

Retornar

Retornar[ExisteReserva]

Emprestar

[DataReserva<Hoje]

[DataEmprestimo>Hoje]/AvisarUsuário

Devolver[AvisarGerente]

Devolver[ExisteReserva]/AvisarUsuario

Page 23: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagramas de Implementação

Descrição dos componentes de software que formam o sistema e a arquitetura de hardware Diagramas de Componentes Diagramas de Distribuição

Page 24: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de Componentes

GUI

Libs

BancoDeDados

Page 25: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de Dsitribuição

Impressora

Cliente:PC

Servidor:Host1

Page 26: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração da implementação

GUI Libs

BancoDeDados

Cliente:PC

Servidor:Unix

Page 27: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Pacotes

interfaces

ClassesAulixiares

Classes Persistentes(Banco de Dados)

Classes deNegócio

Agrupam os objetos

Pode-se usar para identificar as camadas

Page 28: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração entre os diagramas

Page 29: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Mapeamento de um URL

http://www.empresa.com.br/aplic/horas/index.html

www.empresa.com.br

<<pagina>>index

\horas\

Page 30: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração entre as tecnologias

JavaAmbiente de Implementacao

CORBAArquitetura da Solucao

Dominio do Problema

UMLAnalise e Projeto

Page 31: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Modelo UML de sistemas Java

Representação gráfica dos sistemas Visão do todo, integrada e coerente Permite uma visão sistêmica Facilita o entendimento da arquitetura Permite esconde os detalhes do código

durante a visão da arquitetura UML + Java uma união vantajosa para os dois

Page 32: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

UML e Java – ida e volta

Geração de Código Tradução dos diagramas em código Java Os diagramas de classe geram estruturas Java

Engenharia Reversa Gerar modelo com base em código Java Identificar classes, componentes e relações

Page 33: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Mapeamento em uma classe java

Funcionario

nometelefoneativonovo

public class Funcionario { private String nome = ""; private int telefone = 0; private boolean ativo = false; public void novo () { } }

Page 34: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Mapeamento de uma Applet java

import java.applet.*;import java.awt.*;

public class Funcionario extends Applet { private String nome = ""; private int telefone = 0; private boolean ativo = false; public void novo () { } }

Applet

{abstract}

Funcionario

{final}

-nome:String-telefone:int-ativo:boolean+novo( ):void

Page 35: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplo de diagrama de estado

ListandoItens

INIT

CLOSE

EditandoItens

iniciar[teste1==true]/modifica=false

fechar[teclaCancel=true]/BD.fechar()

fechar[TeclaCancel()==true]/BD.fechar(

editar[teclaEdit()==true]/BD.abrir()

fechar[teclaOK()==true]/BD.fechar()

Page 36: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Código do diagrama de estado

class DEMO { private String currentState = "INIT" ; //States: INIT, CLOSE, ListandoItens, EditandoItens //Events: nullEvent, iniciar, fechar, editar

void process ( String anEvent ) {

if ( ( currentState == "INIT" ) && ( anEvent == "iniciar" ) && ( teste1==true ) ) { currentState = "ListandoItens" ; modifica=false return; }

if ( ( currentState == "ListandoItens" ) && ( anEvent == "fechar" ) && ( teclaCancel=true ) ) { currentState = "CLOSE" ; BD.fechar() return; } if ( ( currentState == "ListandoItens" ) && ( anEvent == "editar" ) && ( teclaEdit()==true ) ) { currentState = "EditandoItens" ; BD.abrir() return; } … else return; }}

Page 37: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Métodos para relacionar classes

Interfaces Uma descrição do que deve ser feito, sem se preocupar

com a implementação

Herança Trasferir para uma classe filha os métodos, atributos e

relacionamentos da classe mãe

Composição Criar uma instância de uma classe para poder utilizar os

serviços que ela dispõe

Page 38: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Interface UML, Java ou CORBA

Permite descrever como deve ser uma classe sem dizer como ela deve ser implementada.

Uma classe com assinaturas de operações

Uso: integrar análise/projeto e sistemas Pode usada para representar o resultado da análise, A análise define as assinaturas das operações, No projeto as assinaturas serão implementadas As classes devem implementar as interfaces

Page 39: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Interfaces UML e Java

ClasseModelo

+criar(String):void

impClasse

+criar(String):void

<<implementa>>

public class impClasse implements ClasseModelo{ public void criar (String p) { // // aqui devem ser inserido o código // do método //

}}

public interface ClasseModelo { public void criar (String p1); }

Page 40: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Herança

classeMae

classeFilha

public class classeFilha extends classeMae{ }

Toda a funcionalidade da mãe éTransferida para a classe filha comoSe fosse dela.

Page 41: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Agregação

Recursos

+funcao( ):void

ClasseA

1

1

oRec

public class ClasseA { private Recursos oRec = new Recursos() ; }

A ClasseA agora dispões dos recursos da classe Recursos atraves da instância oRec

A classe de Recursos deve estar diponível

Page 42: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Todas as opções juntas

minhaClasse

ClasseModelo

+criar(String):void

Recursos

+funcao( ):void

classeMae

<<implementa>>

1

1

oRec

public class minhaClasse extends classeMae implements ClasseModelo { private Recursos oRec = new Recursos() ; }

Page 43: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração entre as tecnologias

JavaAmbiente de Implementacao

CORBAArquitetura da Solucao

Dominio do Problema

UMLAnalise e Projeto

Page 44: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

O que é a tecnologia CORBA?

CORBA Common Object Request Broker Architecture Uma camada de software que distribui objetos Oferece uma série de serviços de objeto É padonizada pela OMG

IDL - Interface Definition Language Padrão para definição dos Serviços dos objetos Linguagem semelhate ao C Portabilidade para Java, C++, Delphi, VB etc.. Permite integração entre sistemas heterogêneos.

Page 45: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Integração Cliente/Servidor

Requisições de Objeto

Invocamétodo () no

objeto Z

Objeto Zmétodo()

IDLIDL

ORB – barramento de objetosObject Request BrokerOs serviços são distribuidos na forma deObjetos em um barramento

Page 46: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

CORBA algumas características

Invocação estática Os parâmetros podem ser conhecidos

Invocação dinâmica Os parâmetros podem ser “descobertos”

Escalabilidade Criação de uma rede de serviços intergalática

Segurança, Transparência e Controle Serviços disponíveis pela arquitetura

Coexistência com sistemas atuais (legados)

Page 47: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Anatomia do CORBA 2.0

Cliente

interface

Servico

_STUB _SKELTON

BOAORB

IIOP - Internet InterORB Protocol

Page 48: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

A UML modela as interfaces

float balance

Account

makeDepositmakeWithdrawal

A linguagem IDL suporta Os princípios da Orientação a Objetos

Page 49: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplo de interface IDL

// IDLinterface Account{//Attributesattribute float balance;readonly attribute string owner;//Operationsvoid makeDeposit(in float amount,out float newBalance);void makeWithdrawal(in float amount,out float newBalance);};

float balance

Account

makeDepositmakeWithdrawal

Page 50: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

A interface IDL faz a ligação

Interface IDL

Cliente

Servidor

ClienteStub

ServerStub

IDL compiler

Compiladorem linguagem

nativa

Page 51: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

idl2java

Interface.idl idl2java

InterfaceHolder.java

InterfaceHelper.java

_st_Interface

_sk_Interface

_InterfaceImplBase.java

Interface.java

Cliente

Servidor_exemplo_Interface.java

Page 52: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Distribuição da aplicação

org.omg.CORBA.Object

_InterfaceImplBase.java

Interface.java

ImplementacaoInterface.java

org.omg.CORBA.ORB

org.omg.CORBA.ORB

ClienteServidor

Page 53: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Passos para a criação de

Definição dasInterfaces IDL

Cliente

Servidor

ClienteStub

ServerStub

Implementaçãodos métodos(ling. nativa)

ORB

7

1

2

34

9

8

5

Ling. NativaCria aplicação

6

Page 54: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

CORBA e UML

O modelo da analise recebe elementos da arquitetura da solução na fase de projeto

Os modelos devem ser trabalhados para refletir a arquitetura do projeto

O resultado da análise deve ser preservado nas manipulações do projeto

Page 55: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

CORBA e Java

O uso de Java na Arquitetura CORBA ... ... Dá mobilidade de código portabilidade ... Facilita a ida do CORBA para a WEB ... Permite a construção de Agentes ... Permite a integração do mundo OO

Java “concorre” com CORBAno RMI e EJB (alternativas semelhantes)

Page 56: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Metodo para desenvolvimento

Análise

Projeto

CodigoModelo InterfaceIDL

ClienteJava/outras

Browser

ServidorJava/outras

Negócio

ModelagemUML/CORBA

ImplementaçãoCORBA/Java

ORB

ServidorWeb

Page 57: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Seqüência de passos

Cliente

interface

Servico

_STUB _SKELTON

BOAORB

IIOP - Internet InterORB Protocol

Projeto

Análise

Implementação

Page 58: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Apresentação do Problema

Levantar o problema a ser resolvido O que ? Porque?

e não da implementação Como?

Trabalho do Especialista da Aplicação e do Engenheiro de Software

CASOS DE USO

Page 59: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Análise

Entendimento do problema

Modelagem Conceitual Modelo de Casos de Uso Modelo se Eventos Modelo Conceitual de Classes

Produtos da análise.

Page 60: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Analise

Desenvolver Modelos em um CASE

Com a UML (Linguagem padronizada)

Representar o sistema (problema)

Criar um Modelo de Interfaces

Page 61: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Projeto

Aplicação de alguns padrões de projeto.

Modelagem da arquitetura

Componentização do sistema

Definir a Interfaces do negócio (IDL)

Definir a camada de apresentação (IHM)

Definir a camada de persistência (BD)

Page 62: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Projeto

Integrar a arquitetura CORBA ao modelo

Proposta de componentes e distribuição

Integração com Java em alto nível

Definição da estrutura das classes

Criar Classes de Implementação das Interfaces, Aplicar patterns e manipular o modelo de análise

Relacionar (herança, implementação ou composição) comas classes da arquitetura e da linguagem de programação

Page 63: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Implementação

Contrução dos componentes de negócio IDL2Java

Construção dos códigos do servidor

Integração com serviço de Banco de Dados

Teste local

Construção da Interface Homem Máquina

Integração com ORB

Page 64: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Implementação

Programas Java

Geração de Códigos

Criação dos componentes e dos programas

Gerar código dos modelosComplementar os códigos com programação

Fazer a Engenharia Reversa para atualizar os modelos

Page 65: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Resumo do Método

Análise Criar um Modelo de Interfaces do problema

Projeto Criar Classes de Implementação das Interfaces, Relacionar as classes com a arquitetura Aplicar patterns e manipular o modelo de projeto

Implementação Gerar código dos modelos Complementar os códigos com programação Fazer a Engenharia Reversa para atualizar os modelos

Page 66: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Importância de um CASE

CASE – Computer-Aided Software EngineeringFunções Principais Facilidade de Uso, interface gráfica amigável Aderência à UML, sem mudanças proprietárias Integração entre os diagramas Teste (cheklist) dos diagramas Geração de Relatórios (textos e gráficos) Geração de Código (linguagens OO, BD) Engenharia Reversa Repositório de Modelos e Objetos Controle de Versão (integração com software 3o)

Page 67: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplo de Aplicação

Demonstrar que a UML é capaz de ajudar na modelagem e projeto de aplicações distribuidas pela tecnologia CORBA

Page 68: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Receita …

Aplicação Local (UML <> Java) Projetar uma aplicação local com UML Gerar o código Java do projeto UML Construir a aplicação em Java Executar a aplicação local Fazer a atualização do modelo UML

Aplicação Distribuída (UML <> CORBA <> Java) Distribuir a aplicação com CORBA no modelo UML Construir os elementos auxiliares CORBA Construir os novos códigos em Java Executar a aplicação distribuída

Page 69: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Visitem nossa cozinha…

Ambiente de Desenvolvimento Ferramenta CASE Ambiente Java (jdk) Editor Java Banco de Dados (opcional) ORB com suporte Java (idl2java)

Ambiente de Processamento Navegador Internet (se for executar uma Applet) Servidor CORBA (ORB)

Page 70: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Ferramenta CASE

Produtos do Mercado, Shareware, Demos Rational Rose (www.rational.com) System Architect (www.choose.com.br) WithCLASS (www.microgold.com) ToghetherJ

Page 71: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplo de Ferramenta CASE

Page 72: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Ambiente Java

JDK1.1.X (JDK1.1.5)

JDK1.2, JDK 1.3, …

Visual Café (Symantec)

Jbuilder (Imprise)

Visual Age (IBM)

FreeJava (RealJ)

Page 73: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Editor Java

Page 74: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Ferramentas

CASE WithCLASS 99

JDK 1.1.5 (com jdbc)

FreeJava 3.0 (RealJ) – editor Java shareware

JBuilder (opcional para o projeto gráfico)

Page 75: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Ambiente de rede - execução

VisiBroker for Java 3.1

VisiBroker Naming Service fo Java 3.0

Internet Explorer 5.0

Windows 98

Page 76: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Arquitetura

Servidor

Desenvolvedor

Cliente

navegador

Servidor WEBServidor ORBServidor BD

CASEAmbiente Desenv.Bibliotecas

Page 77: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

O prato principal…

Sistema para consulta em uma lista de telefones

Page 78: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de Caso de Uso

Usuario

ConsultarTelefone

O usuário entra com um nome e consultao telefone de uma lista de telefones armazenada em um arquivo

Page 79: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de Classes (inicial)

Lista

+procura( )

Usuario

11

Page 80: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de seqüência de eventos

Usuario Lista

procura(nome)

Page 81: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Modelo de estados do Usuario

Procurando

EntrandoNome

OK

Fechar

Page 82: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Modelo de Classes final

oUsuario+lis:Lista+l:Label+b:Button+t:TextField+main( String):void+oUsuario( )+handleEvent( Event):boolean+action( Event, Object):boolean

Usuario Lista

-procura( String):String

aLista

+procura( String):String

1

1

lis

consulta

Page 83: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Diagrama de Implementação

Usuario Lista

lista.txt

Page 84: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplo da apresentação

Page 85: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Código da aplicaçãoimport java.io.*;public class aLista implements Lista{

public String procura(String texto){ String linha,alinha="não encontrei :"+texto; try { FileInputStream is = new FileInputStream("lista.txt"); DataInputStream ds = new DataInputStream(is); while ((linha = ds.readLine())!=null) { if(linha.indexOf(texto)!=-1) alinha=linha; } ds.close(); is.close(); } catch (IOException e) { System.out.println("Erro: "+e); } return(alinha);}}

Page 86: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Aplicação distribuida

CLIENTE

SERVIDOR

Lista

lista.txt

Usuario

Page 87: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Tradução da interface para IDL

  

Lista

-procura( string ):string

interface Lista{ string procura(in string texto); };

Código gerado pelo CASE

Page 88: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Pré-compilador idl2java

Interface.idl idl2java

InterfaceHolder.java

InterfaceHelper.java

_st_Interface

_sk_Interface

_InterfaceImplBase.java

Interface.java

Cliente

ServidorInterface.java

Page 89: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Classes de implementação Java

Classes CORBA

Lista{interface}

+procura( java.lang.String):java.lang.String

Usuario{interface}

oUsuario+lis:Lista {static}+l:Label+b:Button+t:TextField+orb:org.omg.CORBA.ORB {static}

+main( String):void {static}+Usuario( ){constructor}+handleEvent( Event):boolean+action( Event, Object):boolean

_ListaImplBase-__ids:java.lang.String[] {array}

#_ListaImplBase {abstract}#_ListaImplBase{constructor}+_ids:java.lang.String[]+_methods:org.omg.CORBA.portable.MethodPointer[]+_execute:boolean+_execute:boolean {static}

aLista

-aLista( String){constructor}+procura( String):String

ListaServer+l:aLista {static}+orb:org.omg.CORBA.ORB {static}+boa:org.omg.CORBA.BOA {static}

+main( String):void {static}

org.omg.CORBA.BOA {abstract}org.omg.CORBA.ORB

{abstract}

org.omg.CORBA.Object {abstract}

1 1l

1

1

orb1

1

orb

1

1

boa

Classes analise (UML)

Page 90: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Interface Lista.java (gerada)public interface Lista extends org.omg.CORBA.Object { /** <p> Operation: <b>::Lista::procura</b>. <pre> string procura( in string texto ); </pre> </p> */ public java.lang.String procura( java.lang.String texto );}  

Page 91: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

A interface Lista

Deve ser traduzida para IDL

Pre compilada pelo idl2java

_ListaImplBase

aListaLista{interface}

Page 92: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

A implementação da interface

Deve herdar da classe gerada pelo idl2java _ListaImplBase

aListaLista{interface}

public class aLista extends _ListaImplBase{

Page 93: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Criar uma aplicação servidora public static void main(String args[]){ try { // inicializa o ORB

orb = org.omg.CORBA.ORB.init(args,null);// inicializa o BOAboa = orb.BOA_init();// criar o objetol = new aLista("minha lista");// exportar o objeto criadoboa.obj_is_ready(l);// Pronto para atender os pedidosboa.impl_is_ready();

} catch (org.omg.CORBA.SystemException e) { System.err.println(e); }}

Page 94: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Inicilização do serviço

ORB aListaListaServerBOA

init

init

new

obj_is_ready

impl_is_ready

Page 95: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Classes de implementação Java

Classes CORBA

Lista{interface}

+procura( java.lang.String):java.lang.String

Usuario{interface}

oUsuario+lis:Lista {static}+l:Label+b:Button+t:TextField+orb:org.omg.CORBA.ORB {static}

+main( String):void {static}+Usuario( ){constructor}+handleEvent( Event):boolean+action( Event, Object):boolean

_ListaImplBase-__ids:java.lang.String[] {array}

#_ListaImplBase {abstract}#_ListaImplBase{constructor}+_ids:java.lang.String[]+_methods:org.omg.CORBA.portable.MethodPointer[]+_execute:boolean+_execute:boolean {static}

aLista

-aLista( String){constructor}+procura( String):String

ListaServer+l:aLista {static}+orb:org.omg.CORBA.ORB {static}+boa:org.omg.CORBA.BOA {static}

+main( String):void {static}

org.omg.CORBA.BOA {abstract}org.omg.CORBA.ORB

{abstract}

org.omg.CORBA.Object {abstract}

1 1l

1

1

orb1

1

orb

1

1

boa

Classes analise (UML)

Page 96: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Classe Usuario (cliente)

Deve se ligar ao ORB

Deve instanciar o objeto

// inicializa o orb orb = org.omg.CORBA.ORB.init(arg,null);

// liga no objeto lis = ListaHelper.bind(orb, "minha lista");

Page 97: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Modificações na classe Usuariopublic class oUsuario extends Frame{ public static Lista lis; public Label l = new Label("Procura :");

public Button b = new Button("Ok");public TextField t = new TextField(40);public static org.omg.CORBA.ORB orb;

public static void main(String arg[]) {

// inicializa o orb orb = org.omg.CORBA.ORB.init(arg,null);

// liga no objeto lis = ListaHelper.bind(orb, "minha lista");  Usuario u = new Usuario();

...

Page 98: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Sequencia para execução

C:> start osagent Coloca no ar o ORB e os seus serviços

C:> start java –DOAid=Tsession ListaServer Coloca no ar o serviço de Lista

C:> java Usuario Executa a aplicação no cliente

Page 99: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Seqüência de execução

oUsuario ORB ListaHelper aLIsta:ListaUsuario

init

bind

procura(nome)

procura(nome)

OK

TextField.SetText()

Page 100: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Exemplo de resultado

Page 101: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Leitura Recomendada

UML Jacobson, I; Rumbaugh, J; Booch, G. UML: Guia do

Usuário. Editora Campus, 2000.

CORBA com JAVA ORFALI, R. e HARKEY, D. Client/Server

Programming with Java and CORBA. 2nd Ed. John Wiley & Sons Ed. 1998. Excelente LIVRO e CD-ROM

OMG www.omg.org

Artigos e Documentação da UML, CORBA, IDL, etc…

Page 102: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Conclusão

Demanda crescente por Flexibilidade Desempenho Baixo custo

Leva à distribuição dos negóciosPadrões vão garantir os investimentos em sistemas distribuídos

Page 103: Integração de Tecnologias UML – CORBA - Java A Convergência das Tecnologias

Dúvidas?

para não perder o contato:

José Eduardo Zindel [email protected]

www.voxxel.com.br/deboni