Modelo de Componentes CORBA
|
|
|
- Raphael Weber
- 7 Há anos
- Visualizações:
Transcrição
1 Modelo de Componentes CORBA Cláudia Brito L. N. da Silva
2 Roteiro 1. Visão geral 2.! Definindo componentes! Implementando componentes! Empacotando componentes! Instalando componentes! Executando componentes 3. Utilizando Componentes CCM 4. Considerações finais
3 Visão Geral O que é CCM? O CCM representa um modelo de componente do lado do servidor, cuja finalidade é facilitar o desenvolvimento e a instalação de aplicações distribuídas compostas por componentes heterogêneos.
4 Visão Geral Padrão OMG - Faz parte da especificação CORBA 3 Supre as limitações do modelo de objetos CORBA falta de um mecanismo padrão de implantação (deployment) dos objetos; falta de flexibilidade para estender as funcionalidades dos objetos, sendo possível apenas através de herança; dificuldade de utilizar e configurar aplicações e serviços CORBA; as conexões entre os objetos não são visíveis requisitos não funcionais da aplicação, como transações, segurança, persistência etc., são codificados juntamente com os métodos de negócio.
5 Visão Geral É dividido em dois níveis de componentes: básico: provêem uma forma simples de transformar um objeto CORBA em componente; estendido: fornecem um conjunto maior de funcionalidades, como as portas de comunicação, que representam pontos de conexão entre os componentes
6 Visão Geral É estruturado em cinco modelos: modelo abstrato: definição dos atributos, portas de comunicação e homes dos componentes modelo de programação: composto pela CIDL (Component Implementation Definition Language) e pelo CIF (Component Implementation Framework)
7 Visão Geral É estruturado em cinco modelos: modelo de empacotamento: especifica como os componentes e suas implementações devem ser empacotados modelo de instalação: define um mecanismo padrão para a instalação de aplicações modelo de execução: define o ambiente de execução para as instâncias do componente container
8 (Definindo Componentes) Definição do componente em IDL3 ILD3 estende a IDL2 de forma a suportar conceitos relacionados ao CCM (portas, homes etc.) A definição agrupa a declaração dos atributos e das interfaces (portas de comunicação) Portas: facetas: interfaces oferecidas receptáculos: referências para outros objetos produtores de eventos: utilizados para produzir eventos consumidores de eventos: utilizados para consumir eventos
9 (Definindo Componentes) Interface equivalente Mapeamento de IDL3 para IDL2 Expõe as características do componente aos clientes
10 (Definindo Componentes) interface do componente facetas receptáculos Componente Componente produtores de eventos consumidores de eventos atributos
11 (Definindo Componentes) Componente Forma simples Interface suportada component C1 { //definicao de portas e atributos Forma de definir um componente básico objeto CORBA: interface I1 { void methodx(); string methody(); componente CORBA: component C1 supports I1 { //definicao de atributos
12 (Definindo Componentes) Componente Herança Um componente pode herdar de um outro componente component C1 supports I1 { //definicao de atributos component C2: C1 { //definicao de portas e atributos Interfaces suportadas e herança interface I2 { void methodz(); string methodw(); component C3: C1 supports I2 { //definicao de portas e atributos
13 (Definindo Componentes) Faceta Serviço fornecido pelo componente Declaração: provides <tipodainterface> <nomedafaceta>; Exemplo: interface I3 { void methoda(); int methodb(in string name); provides I3 facetone;
14 (Definindo Componentes) Receptáculo Referências para outros objetos com os quais o componente interage Declaração: simples: uses <tipodainterface> <nomedoreceptaculo>; Exemplo: interface I3 { void methoda(); int methodb(in string name); uses I3 receptacleone;
15 (Definindo Componentes) Receptáculo múltiplo: uses multiple <tipodainterface> < nomedoreceptaculo >; Exemplo interface I3 { void methoda(); int methodb(in string name); uses multiple I3 receptacleone;
16 (Definindo Componentes) Eventos Estabelecem uma comunicação assíncrona entre os componentes Produtores de eventos Expõem a capacidade do componente em produzir eventos Dois tipos: publisher: 1 para n (vários consumidores por vez) emitter: 1 para 1 (apenas um consumidor) Consumidores de eventos Expõem a capacidade do componente em consumir eventos
17 (Definindo Componentes) Eventos Declaração: Produtor (publisher) publishes <tipodoevento> <nomedoprodutor>; Produtor (emitter) emits <tipodoevento> <nomedoemissor>; Consumidor consumes <tipodoevento> <nomedoconsumidor>;
18 (Definindo Componentes) Eventos Exemplo: eventtype E1 { public string name;» Produtor (publisher) publishes E1 eventprodutor;» Produtor (emitter) emits E1 eventemitter;» Consumidor consumes E1 eventconsumer;
19 (Definindo Componentes) Homes Responsáveis pelo gerenciamento do ciclo de vida das instâncias de um determinado componente Podem associar chaves primárias às instâncias do componente Provêem operações para criar, localizar e remover instâncias de componentes Gerencia apenas um único tipo de componente
20 (Definindo Componentes) Homes Declaração sem chave primária home <nomedahome> manages <tipodocomponente> { Exemplo: component C4 { //definicao de atributos e portas home H1 manages C4 {
21 (Definindo Componentes) Homes Declaração com chave primária home <nomedahome> manages <tipodocomponente> primarykey <tipodachave>{ Exemplo: component C4 { //definicao de atributos e portas valuetype Id : Components::PrimaryKeyBase{ public string value; home H1 manages C4 primarykey K1 {
22 (Implementando Componentes) CIF (Component Implementation Framework) Automatiza o processo de desenvolvimento de componentes Skeletons gerados a partir das descrições em CIDL automatizam muito dos comportamentos básicos dos componentes (parte não-funcional) CIDL (Component Implementation Definition Language) É uma linguagem descritiva assim como a IDL Descreve composições (agregação de elementos) composition: entidade que descreve todos os elementos requeridos para implementar um componente e sua home
23 (Implementando Componentes) Elementos da composition: Categoria do componente service, session, process, entity Nome do skeleton a ser gerado para o home executor Tipo da home implementada Nome do skeleton a ser gerado para o component executor Declaração de uma composição composition <categoria> <nomedacomposicao>{ home executor <nomedohomeexecutor> { implements <tipodahome>; manages <nomedoexecutor>; composition session Comp1{ home executor he1 { implements H1; manages ce1;
24 (Implementando Componentes) Component Executors e Home executors elementos de programação que implementam o comportamento dos componentes e de suas homes, respectivamente O compilador CIDL gera: Skeleton do componente: código para navegação, identificação, ativação e gerenciamento de estado Descritor do componente em XML
25 (Empacotando Componentes) Pacote Facilita o processo de instalação do componente Arquivo ZIP: Implementações do componente Descritores XML Descritores Gerados automaticamente ou através de ferramentas Tipos: Software Package Descriptor (.csd) Informações gerais sobre o pacote (autor, descrição etc.) Informações sobre as implementações (SO, linguagem de programação etc.)
26 (Empacotando Componentes) Descritores Tipos (cont ): CORBA Component Descriptor (.ccd) Descreve um componente» Portas e interfaces» Tipo do componente (service, session, process e entity)» Características de transação, persistência etc. Determina o tipo de container no qual o componente precisa ser instalado
27 (Empacotando Componentes) Descritores Tipos (cont ): Component Assembly Descriptor (.cad) Descreve os componentes utilizados no assembly Informações de conexões entre os componentes Property File Descriptor (.cpf) Define os parâmetros de configuração de componentes e homes Utilizado para configurar uma instância de um componente ou de uma home (atribuindo valores aos atributos)
28 (Instalando Componentes) Processo padronizado Ferramentas de instalação Automatizar o processo de instalação Tendo informações sobre os hosts, se encarrega do processo restante Passos para a instalação 1. identificar os hosts onde os componentes serão instalados; 2. instalar as implementações dos componentes; 3. instanciar homes e componentes nos hosts; 4. conectar os componentes como especificado nos descritores.
29 (Executando Componentes) Container Ambiente de execução das instâncias Esconde a complexidade relacionada ao gerenciamento do POA, e à associada à utilização dos serviços de sistema (transação, persistência, segurança) Interação com as instâncias do componente Interfaces internas: providas pelo container Interfaces callback: providas pelo componente Interfaces externas: acessadas pelo cliente, implementadas pelo componente
30 (Executando Componentes) Container Tipos de API Depende da categoria do componente APIs: Service: sem estado e identidade, tempo de vida transiente Session: estado, identidade e tempo de vida transiente Process: estado, identidade e tempo de vida persistente Entity: mesmas caracterísitcas do process, identidade exposta ao clientes através de uma chave primária Session: referências transientes (service, session) Entity: referências persistentes (process, entity)
31 (Utilizando Componentes) Obter referência para o componente Localizar a home do componente Interface HomeFinder CORBA::ORB::resolve_initial_references("ComponentHomeFinder") Utilizar operações da HomeFinder para localizar a home desejada ServiçodeNomes Utilizar operações da home para criar ou localizar a instância do componente Utilizar a referência para invocar operações no componente
32 Considerações Finais Processo de desenvolvimento Aspectos não-funcionais Distribuição e configuração CORBA 2.X ad hoc codificados com os ad hoc métodosdenegócio CCM padronizado descritos utilizando descritores XML padronizado
33 Considerações Finais Implementações existentes OpenCCM Primeira implementação disponível Java / Código aberto EJCCM Java / Código aberto CIAO Otimizada para sistemas distribuídos embarcados e de temporeal C++ / Código aberto MicoCCM C++/ Código aberto
34 FIM... Perguntas?!?!?!?!
Principais conceitos de CORBA
Principais conceitos de CORBA Tecgraf PUC-Rio fevereiro de 2011 Common Object Request Broker Architecture Uma arquitetura aberta para o desenvolvimento de aplicações distribuídas em um ambiente multilinguagem
Prof. Me. Sérgio Carlos Portari Júnior
Prof. Me. Sérgio Carlos Portari Júnior Ambientes que visam desenvolver aplicações que precisam de um processamento paralelo e distribuído deverão saber lidar com algumas dificuldades. Isto decorre da heterogeneidade
Objetos e Componentes Distribuídos: EJB e CORBA
: EJB e CORBA Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
INTRODUÇÃO. RPC x RMI
1 INTRODUÇÃO RPC x RMI 2 INTRODUÇÃO RPC Remote procedure call Este termo é utilizado para aplicativos clientes que fazem normalmente chamadas a procedimentos remotos que estão em outro processo e hosts.
Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/ v0.1
Revisão de conceitos Tópicos Avançados em TI Prof. Rossano Pablo Pinto Fevereiro/2013 - v0.1 Orientação a objetos Classe Métodos Visibilidade Tipo de retorno Tipo dos parâmetros Atributos Tipo Visibilidade
Sistemas Distribuídos
Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: [email protected] 1. Que são sistemas abertos? É um sistema que oferece serviços de acordo com
Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes
Ferramenta MVCASE - Estágio Atual: Especificação, Projeto e Construção de Componentes Antônio Francisco do Prado Daniel Lucrédio e-mail: [email protected] Resumo Este artigo apresenta a ferramenta CASE
CBSE. Independência e Padronização. Características da CBSE. Fundamentos da CBSE. Middleware e Processo 22/05/2013
DCC / ICEx / UFMG CBSE Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo A CBSE foi proposta na década de 90 Foi motivado pelo limitado suporte
Reuso de Software Aula Maio 2012
Reuso de Software Aula 19 Tópicos da Aula Engenharia de Software baseada em Componentes (CBSE) Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo [email protected] Componentes Modelos de Componentes
Objetos e Componentes Distribuídos: EJB
: EJB Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta
Técnicas para Reutilização de Software
DCC / ICEx / UFMG Técnicas para Reutilização de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Panorama de Reutilização Frameworks Padrões de projeto Aplicações configuráveis Padrões de
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 [email protected] Aula 12 Beans Orientados a
PCS3413 Engenharia de Software e Banco de Dados
PCS3413 Engenharia de Software e Banco de Dados Aula 23 Escola Politécnica da Universidade de São Paulo 1 Acoplamento! Indica dependência entre classes.! Deve ser o menor possível.! Direcionar associações
Java RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto
Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2006 Profa. Dra. Itana Gimenes RUP: Projeto Artefatos Modelo de Projeto: Lista de classes de
Web Services REST JAX-RS
Web Services REST JAX-RS Professor: Ricardo Luis dos Santos IFSUL 2015 Agenda Principais tecnologias envolvidas Testando os serviços desenvolvidos JAX-RS Principais anotações JAX-RS Principais anotações
Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero
Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio
RPC e RMI. Sistemas Distribuídos. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Sistemas Distribuídos Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos Nesta aula
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.
Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado
Introdução. descrever os tipos de interfaces e linguagens oferecidas por um SGBD. mostrar o ambiente de programas dos SGBD s
Introdução Contribuição do Capítulo 2: discutir modelos de dados definir conceitos de esquemas e instâncias descrever os tipos de interfaces e linguagens oferecidas por um SGBD mostrar o ambiente de programas
Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.
Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Desenvolvimento de Software Baseado em Componentes. Paulo C. Masiero
Desenvolvimento de Software Baseado em Componentes Paulo C. Masiero 1 Introdução Frustração com as promessas da Orientação a objetos em relação ao reuso de classes. Frameworks são uma solução para um domínio
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Classe Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite [email protected] 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
Invocação Remota. Prof. Leonardo Barreto Campos. 1/29
Invocação Remota Prof. Leonardo Barreto Campos 1/29 Sumário Introdução Chamada de Procedimento Remoto Invocação a Método Remoto Leitura Complementar Bibliografia 2/29 Introdução Essa aula trata como os
PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS
PADRONIZAÇÃO 10. INTERFACES No dia-a-dia lidamos com diversos aparelhos elétricos Diversas empresas fabricam aparelhos elétricos com plugues E se cada empresa decidisse por conta própria o formato dos
AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.
AULA 02 OBJETIVO: Características da Linguagem Orientada a Objetos. HABILIDADES TRABALHADAS: Comparação das características das linguagens orientadas a objetos frente às linguagens estruturadas. Conhecimentos
Introdução à orientação a objetos. João Tito Almeida Vianna 18/05/2013
Introdução à orientação a objetos João Tito Almeida Vianna 18/05/2013 Roteiro Aula 1 Introdução: Programação estruturada x Orientação a objetos Orientação a objetos Classe e objeto Encapsulamento Herança
CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO
CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que
Requisitos de sistemas
Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento
EA975 - Laboratório de Engenharia de Software
EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 7 Componentes de Software Um componente de software é um segmento de código que pode ser reusado, eventualmente após um processo de
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP:
Apresentação do Capítulo 4 MDA (Model-Driven Archtecture) ALUNO: DOMENICO SCHETTINI FILHO NÚMERO USP: 8429016 Definição de MDA OMG (Object Management Group) propôs uma aplicação abrangente das práticas
1) DADOS DA OBRA: Programando em Java 2 Teoria e Aplicações Rui Rossi dos Santos 2004 Axcel Books (
1) DADOS DA OBRA: Título: Programando em Java 2 Teoria e Aplicações Autor: Rui Rossi dos Santos Ano: 2004 Editora: Axcel Books (http://www.axcel.com.br) Páginas: 580 Encadernação: Capa dura 2) DESCRIÇÃO
Arquitetura e Objetos Distribuídos em CORBA. Aula 3. Especificações OMA Object Web
Arquitetura e Objetos Distribuídos em CORBA Aula 3 Especificações OMA Object Web The Client/Server Evolution O que é a tecnologia CORBA? CORBA Common Object Request Broker Architecture Uma camada de software
Modelo do Mundo Real. Abstração. Interpretação
Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema
EA975 - Laboratório de Engenharia de Software
EA975 - Laboratório de Engenharia de Software Turmas K/L - 2017 Aula 1 O que vamos desenvolver? Vamos desenvolver uma aplicação distribuída, empregando a arquitetura 3-Tier segundo o estilo REST/HTTP (Respresentational
Engenharia de Software Orientada a Serviços
Engenharia de Software Orientada a Serviços Paulo Cesar Masiero Engenharia de Software Roteiro Contexto Arquiteturas Orientadas a Serviços Serviços como componentes reusáveis Engenharia de Serviços Desenvolvimento
Programação Orientada a Objetos
Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,
Java RMI Remote Method Invocation
Java RMI Remote Method Invocation Prof. Tiago Garcia de Senna Carneiro Sistemas Distribuídos - 2006 Conteúdo Passos para implementar um aplicação RMI Executando e compilando uma aplicação RMI Exemplo:
Linguagem de Programação I Apresentação da Disciplina
Linguagem de Programação I Apresentação da Disciplina Apresentação da Disciplina Conteúdo: 1) Orientação a Objetos - Características da OO - Reutilização de código 2) Introdução à Linguagem Java - Histórico
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE
PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO
Visões Arquiteturais. Visões Arquiteturais
Visões Arquiteturais Separar diferentes aspectos em visões separadas com o objetivo de gerenciar complexidade. Cada visão descreve diferentes conceitos da Engenharia. Visões permitem reduzir a quantidade
Interfaces e Classes Abstratas
Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos
Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )
ELEMENTOS BÁSICOS DA LINGUAGEM JAVA Patricia Della Méa Plentz INE-CTC-UFSC E-Mail: [email protected] URL: http://moodle.ufsc.br INE5605-Turma 0238B Sumário 2.1 Classes e Objetos na POO 2.2 2 Revisão da
Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva [email protected] br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
ADMINISTRANDO O WINDOWS SERVER 2012
20411 - ADMINISTRANDO O WINDOWS SERVER 2012 CONTEÚDO PROGRAMÁTICO Módulo 1: Configurando e Solucionando problemas de sistema de nome de domínio Este módulo explica como configurar e solucionar problemas
