Integra - PowerPoint PPT Presentation

About This Presentation
Title:

Integra

Description:

... Common Object Request Broker Architecture Ambiente flex vel e port vel para desenvolvimento Java ... o neg cio depende do sistema e_bussiness: ... – PowerPoint PPT presentation

Number of Views:102
Avg rating:3.0/5.0
Slides: 104
Provided by: JoseE90
Category:

less

Transcript and Presenter's Notes

Title: Integra


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

2
Objetivos do Tutorial
  • Observando que tudo esta orientado a objetos
  • Análise/Modelagem.UML
  • Projeto.UML e CORBA
  • ImplementaçãoIDL 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

3
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

4
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

5
A arquitetura de n camadas
6
Convergência para objetos
Análise e Modelagem
UML
Projeto e Arquitetura
CORBA
Implementação
Java
Lente convergente Da Orientação a Objetos
7
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)

8
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?

9
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)

10
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?

11
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

12
Integração entre as tecnologias
13
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

14
Seqüência de diagramas
Casos de Uso
Comportamento Externo
Eventos
Colaboração
Atividades
Estados
Comportamento interno
Pacotes
Classes
Estrutura
Componentes
Distribuição
Implementação
esta seqüência não faz parte da UML é apenas
uma sugestão
15
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

16
Diagramas de Casos de Uso
17
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

18
Exemplos de representação
Pessoa abstrata, autorJEDeboni
Pessoa
nome Texto RG inteiro casado booleanfalse
Pessoa
nome Texto idade inteiro
cadastra() criar(RGinteiro)
cadastrar()
19
Modelo de Classes
20
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

21
Diagrama de seqüência de eventos
22
Diagrama de Estados
DataReservaltHoje
Disponível
Devolver
Retornar
AvisarGerente
Reservado
Emprestar
Retornar
ExisteReserva
Emprestado
Emprestar
Devolver
ExisteReserva
DataEmprestimogtHoje
/AvisarUsuario
/AvisarUsuário
Atrasado
23
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

24
Diagrama de Componentes
GUI
Libs
BancoDeDados
25
Diagrama de Dsitribuição
ServidorHost1
Impressora
ClientePC
26
Integração da implementação
ClientePC
GUI
Libs
ServidorUnix
BancoDeDados
27
Pacotes
Agrupam os objetos Pode-se usar para
identificar as camadas
28
Integração entre os diagramas
29
Mapeamento de um URL
www.empresa.com.br
http//www.empresa.com.br/aplic/horas/index.html
30
Integração entre as tecnologias
31
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

32
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

33
Mapeamento em uma classe java
public class Funcionario private
String nome "" private int telefone
0 private boolean ativo false
public void novo ()
34
Mapeamento de uma Applet java
Applet
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 ()

abstract
Funcionario
final
-nomeString
-telefoneint
-ativoboolean
novo( )void
35
Exemplo de diagrama de estado
36
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" ) ( teste1true ) )
currentState "ListandoItens" modificafalse
return if ( ( currentState
"ListandoItens" ) ( anEvent "fechar" ) (
teclaCanceltrue ) ) currentState "CLOSE"
BD.fechar() return if ( (
currentState "ListandoItens" ) ( anEvent
"editar" ) ( teclaEdit()true ) )
currentState "EditandoItens" BD.abrir()
return else return
37
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

38
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

39
Interfaces UML e Java
public interface ClasseModelo public
void criar (String p1)
public class impClasse implements ClasseModelo
public void criar (String p) //
// aqui devem ser inserido o código // do
método //
40
Herança
public class classeFilha extends
classeMae Toda a funcionalidade da mãe
é Transferida para a classe filha como Se fosse
dela.
41
Agregação
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
42
Todas as opções juntas
public class minhaClasse extends
classeMae implements ClasseModelo
private Recursos oRec new
Recursos()
43
Integração entre as tecnologias
44
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.

45
Integração Cliente/Servidor
ORB barramento de objetos Object Request
Broker Os serviços são distribuidos na forma
de Objetos em um barramento
46
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)

47
Anatomia do CORBA 2.0
48
A UML modela as interfaces
Account
A linguagem IDL suporta Os princípios da
Orientação a Objetos
float balance
makeDeposit makeWithdrawal
49
Exemplo de interface IDL
// IDL interface Account //Attributes attribute
float balance readonly attribute string
owner //Operations void makeDeposit(in float
amount, out float newBalance) void
makeWithdrawal(in float amount, out float
newBalance)
Account
float balance
makeDeposit makeWithdrawal
50
A interface IDL faz a ligação
Cliente
IDL
compiler
Cliente
Stub
Interface IDL
Server
Stub
Compilador
em
linguagem
Servidor
nativa
51
idl2java
InterfaceHolder.java
Cliente
InterfaceHelper.java
_st_Interface
Interface.idl
idl2java
_sk_Interface
_InterfaceImplBase.java
Interface.java
Servidor
_exemplo_Interface.java
52
Distribuição da aplicação
org.omg.CORBA.ORB
org.omg.CORBA.ORB
org.omg.CORBA.Object
Interface.java
_InterfaceImplBase.java
Cliente
Servidor
ImplementacaoInterface.java
53
Passos para a criação de
Ling
.
Nativa
Cliente
7
Cria
aplicação
9
6
8
ORB
Cliente
1
Stub
Definição
das
2
Interfaces IDL
Implementação
Server
dos
métodos
Stub
Servidor
(
ling
.
nativa)
4
5
3
54
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

55
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)

56
Metodo para desenvolvimento
ServidorJava/outras
Negócio
Análise
Interface IDL
Codigo
Modelo
ORB
Projeto
Cliente Java/outras
Servidor Web
Modelagem UML/CORBA
Implementação CORBA/Java
Browser
57
Seqüência de passos
Análise
Projeto
Implementação
58
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

59
Análise
  • Entendimento do problema
  • Modelagem Conceitual
  • Modelo de Casos de Uso
  • Modelo se Eventos
  • Modelo Conceitual de Classes
  • Produtos da análise.

60
Analise
  • Desenvolver Modelos em um CASE
  • Com a UML (Linguagem padronizada)
  • Representar o sistema (problema)

Criar um Modelo de Interfaces
61
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)

62
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) com as classes da arquitetura e da
linguagem de programação
63
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

64
Implementação
  • Programas Java
  • Geração de Códigos
  • Criação dos componentes e dos programas

Gerar código dos modelos Complementar os códigos
com programação Fazer a Engenharia Reversa para
atualizar os modelos
65
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

66
Importância de um CASE
  • CASE Computer-Aided Software Engineering
  • Funçõ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)

67
Exemplo de Aplicação
  • Demonstrar que a UML é capaz de ajudar na
    modelagem e projeto de aplicações distribuidas
    pela tecnologia CORBA

68
Receita
  • Aplicação Local (UML ltgt 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 ltgt CORBA ltgt 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

69
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)

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

71
Exemplo de Ferramenta CASE
72
Ambiente Java
  • JDK1.1.X (JDK1.1.5)
  • JDK1.2, JDK 1.3,
  • Visual Café (Symantec)
  • Jbuilder (Imprise)
  • Visual Age (IBM)
  • FreeJava (RealJ)

73
Editor Java
74
Ferramentas
  • CASE WithCLASS 99
  • JDK 1.1.5 (com jdbc)
  • FreeJava 3.0 (RealJ) editor Java shareware
  • JBuilder (opcional para o projeto gráfico)

75
Ambiente de rede - execução
  • VisiBroker for Java 3.1
  • VisiBroker Naming Service fo Java 3.0
  • Internet Explorer 5.0
  • Windows 98

76
Arquitetura
Servidor
Servidor WEB Servidor ORB Servidor BD
Desenvolvedor
Cliente
CASE Ambiente Desenv. Bibliotecas
navegador
77
O prato principal
  • Sistema para consulta em uma lista de telefones

78
Diagrama de Caso de Uso
O usuário entra com um nome e consulta o telefone
de uma lista de telefones armazenada em um
arquivo
79
Diagrama de Classes (inicial)
80
Diagrama de seqüência de eventos
81
Modelo de estados do Usuario
82
Modelo de Classes final
83
Diagrama de Implementação
84
Exemplo da apresentação
85
Código da aplicação
import 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) alinhalinha
ds.close() is.close()
catch (IOException e)
System.out.println("Erro "e)
return(alinha)
86
Aplicação distribuida
87
Tradução da interface para IDL
Código gerado pelo CASE

interface

Lista
   


string procura(in string texto)









88
Pré-compilador idl2java
89
Classes analise (UML)
Classes CORBA
Classes de implementação Java
90
Interface Lista.java (gerada)
public interface Lista extends org.omg.CORBA.Objec
t / ltpgt Operation ltbgtListaprocuralt/
bgt. ltpregt string procura( in string
texto ) lt/pregt lt/pgt / public
java.lang.String procura( java.lang.String
texto )    
91
A interface Lista
  • Deve ser traduzida para IDL
  • Pre compilada pelo idl2java

92
A implementação da interface
  • Deve herdar da classe gerada pelo idl2java

public class aLista extends _ListaImplBase
93
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 BOA boa orb.BOA_init() // criar o
objeto l new aLista("minha lista") //
exportar o objeto criado boa.obj_is_ready(l) //
Pronto para atender os pedidos boa.impl_is_ready
() catch (org.omg.CORBA.SystemException e)
System.err.println(e)
94
Inicilização do serviço
95
Classes analise (UML)
Classes CORBA
Classes de implementação Java
96
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")
97
Modificações na classe Usuario
public 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()
...
98
Sequencia para execução
  • Cgt start osagent
  • Coloca no ar o ORB e os seus serviços
  • Cgt start java DOAidTsession ListaServer
  • Coloca no ar o serviço de Lista
  • Cgt java Usuario
  • Executa a aplicação no cliente

99
Seqüência de execução
100
Exemplo de resultado
101
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

102
Conclusão
  • Demanda crescente por
  • Flexibilidade
  • Desempenho
  • Baixo custo
  • Leva à distribuição dos negócios
  • Padrões vão garantir os investimentos em
    sistemas distribuídos

103
Dúvidas?
  • para não perder o contato
  • José Eduardo Zindel Deboni
  • deboni_at_voxxel.com.br
  • www.voxxel.com.br/deboni
Write a Comment
User Comments (0)
About PowerShow.com