CAPÍTULO 5 CORBA 5.1 MODELO DE OBJETO

Tamanho: px
Começar a partir da página:

Download "CAPÍTULO 5 CORBA 5.1 MODELO DE OBJETO"

Transcrição

1 CAPÍTULO 5 CORBA Um dos grandes problemas das empresas é, utilizando seus recursos de hardware e o software, integrar vários elementos de trabalho diferentes de maneira a resolver problemas de negócios atuais e futuros. Uma parcela significante deste problema é integrar aplicações existentes em mainframes com os novos ambientes de estações de trabalho. As soluções são caras e demoradas. O padrão Common Object Request Broker Architecture (CORBA) é uma das formas usadas para solucionar estes problemas. CORBA é baseado em orientação a objeto e no de modelo computação distribuída cliente/servidor. 5.1 MODELO DE OBJETO CORBA está fundamentado nos conceitos de orientação a objeto (objeto, classe, encapsulamento, herança e polimorfismo), assim, todas as aplicações num sistema CORBA são constituídas por coleções de objetos. Algumas vezes, existem diferenças na interpretação destes conceitos de orientação a objeto gerando diferentes implementações e possíveis conflitos. Por este motivo, foi definido pelo CORBA um modelo de objeto comum para implementações que seguem este padrão. Deste modo, evita-se que produtos fornecidos por diferentes empresas apresentem incompatibilidades entre si. O modelo de objeto CORBA define limites e significados, permitindo, assim, uma interpretação sem ambigüidades destes conceitos. 5.2 COMPUTAÇÃO DISTRIBUÍDA CORBA é baseado no modelo cliente/servidor. Na computação distribuída uma requisição de um serviço é feita de um componente de software (cliente) para 105

2 outro (servidor) através da rede. CORBA acrescenta a este modelo as características descritas a seguir (Otte et al, 1996) ADIÇÃO DE BROKER ENTRE CLIENTES E SERVIDORES CORBA adiciona ao modelo convencional um broker entre o cliente e o servidor, Figura 5.1. Este broker ( Object Request Broker - ORB) tem a função de reduzir a complexidade da implementação necessária para permitir a interação entre cliente e servidor (CORBA, 1998) (Mowbray e Ruh, 1997). Cliente Requisição Servidor Relacionamento cliente/servidor Cliente ORB Servidor Relacionamento cliente/servidor mais broker Fig. 5.1 Relacionamentos clientes e servidores FONTE: Adaptada de Otte et al (1996, p.1.7 e 1.8) A redução de complexidade é obtida primeiramente porque o ORB provê serviços comuns que incluem troca de mensagens (comunicação) entre cliente e servidor, serviços de diretório, descrição de meta-dados, serviços de segurança e transparência de localização. Ele também isola os objetos da aplicação das configurações específicas de um sistema, tais como, plataformas de hardware e sistemas operacionais, protocolos de rede e linguagens de programação (CORBA, 1998). 106

3 ORBs podem ser vistos como um meio ( hub ) de comunicação para todos os objetos/componentes num sistema distribuído, tendo uma função análoga a de um bus de hardware, isto é, provendo um caminho para o fluxo de toda a informação que flui entre os objetos. ORB se encarrega de enviar uma requisição aonde ela deva ser atendida bem como prover os serviços auxiliares necessários para realizá-la. A adição do ORB apresenta vantagens como (Otte et al, 1996): O cliente e o servidor CORBA não precisam se conhecer diretamente. O cliente e o servidor CORBA se encontram através do ORB. Desta forma, somente o ORB precisa conhecer a localização e as capacidades dos clientes e servidores CORBA da rede, assim, evita-se que clientes ou servidores contenham estas informações. CORBA não necessita que exista uma relação um para um entre clientes e servidores, como acontece no ambiente tradicional cliente/servidor, assim, com a adição do ORB múltiplos servidores podem trabalhar com um único cliente ou um único servidor pode trabalhar com múltiplos clientes, como mostrado na Figura 5.2. Cliente Servidor Cliente ORB Servidor Cliente Servidor Fig. 5.2 Múltiplos clientes e servidores com ORB FONTE: Otte et al (1996, p.1-9) 107

4 Clientes CORBA podem localizar e interagir com novos objetos e servidores em tempo de execução. No ambiente tradicional cliente/servidor a invocação de uma requisição, isto é, o envio de uma mensagem do cliente para o servidor pedindo para que ele execute uma operação é predefinido, existindo um conjunto de procedimentos que permitem ao cliente fazer requisições aos servidores. No CORBA os clientes podem enviar requisições dinamicamente em tempo de execução PROCESSOS SERVIDORES O cliente CORBA é tipicamente um processo único, mas o servidor CORBA pode ser: um processo único, um servidor intermediário que requisita a outros servidores que realizem as tarefas requisitadas pelos clientes ou um trecho de código compartilhado, como por exemplo, uma biblioteca carregada dinamicamente em tempo de execução SUPORTE À COMUNICAÇÃO SÍNCRONA E ASSÍNCRONA CORBA suporta tanto comunicação síncrona como assíncrona. A comunicação síncrona acontece quando um software envia uma mensagem a um outro software e espera pelo retorno, enquanto na comunicação assíncrona um software envia uma mensagem a um a outro software e continua executando aguardando um posterior retorno. No CORBA a comunicação assíncrona, chamada de deferred synchronous, constitui-se de um modelo de polling, isto é, o cliente pergunta se a operação foi completada. CORBA também define requisições do tipo one way, nas quais o cliente não precisa esperar pelo término da operação, neste caso não existe retorno. 108

5 5.3 CONCEITOS E TERMOS ASSOCIADOS AO CORBA Com a utilização do ORB os clientes e servidores são formalmente separados, assim, mudanças em um não afetam o outro. O cliente CORBA sabe somente pedir que algo seja realizado pelo servidor CORBA e esse sabe somente realizar a tarefa a ele requisitada. Isso significa que se pode mudar a forma com a qual um servidor executa uma tarefa sem afetar a maneira com que o cliente requisita a tarefa. Por exemplo, se pode evoluir e criar uma nova implementação de um servidor CORBA sem necessidade de alterar o cliente ou se pode criar novos clientes que façam uso de interfaces já existentes de servidores CORBA sem alterá-los REQUISIÇÕES No CORBA, cliente e servidor comunicam-se através de mensagens chamadas requisições. Toda a interação em um sistema CORBA é baseada num cliente enviando uma requisição ou num servidor respondendo a uma requisição. Uma requisição é um evento (algo que acontece num determinado espaço de tempo em particular). O processo de enviar uma requisição é chamado de invocação. Todas as requisições devem conter (Otte et al, 1996): A indicação de qual operação o servidor deverá realizar para atender a requisição do cliente, isto é, a indicação de qual método o objeto deverá executar. A referência a um objeto específico que realizará a operação. O mecanismo de retorno da informação de sucesso ou falha na execução de uma requisição. Essa informação é chamada de exceção ( exception ). O Capítulo 3 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve os tipos de exceções possíveis. 109

6 Opcionalmente, a referência ao objeto de contexto. Essa referência contém informações adicionais propagadas pelo cliente ao servidor. Objetos de contexto armazenam suas informações como uma lista de propriedades, consistindo de um identificador e um string associado. Por exemplo, um objeto de contexto teria um identificador display para indicar o dispositivo de display que um usuário final está utilizando e associado a esse identificador o string PC. O servidor receberia junto a requisição a informação que um determinado usuário final está utilizando como display um PC. Os argumentos específicos, zero ou mais, da operação que está sendo requisitada. Assim, a informação associada a uma requisição consiste da identificação do objeto alvo, da identificação do serviço e dos parâmetros (zero ou mais) necessários para sua realização IDL Em qualquer aplicação distribuída o cliente e o servidor necessitam de algumas informações básicas para comunicarem-se; como exemplo, o cliente precisa conhecer quais operações e seus respectivos argumentos estão disponíveis para serem requisitadas. No CORBA essa informação é incluída na interface. A interface define as características e o comportamento de objetos, incluindo as operações que podem ser requisitadas a esses objetos. Usando a terminologia de orientação a objeto uma interface é similar a uma classe (Otte et al, 1996). Para definir interfaces, o CORBA utiliza a linguagem de definição de interfaces ( Interface Definition Language - IDL). IDL é uma linguagem puramente declarativa, isto é, ela declara o conjunto dos nomes dos métodos do objeto e seus respectivos parâmetros. IDL é uma linguagem de definição e não de 110

7 programação. A IDL é utilizada para definir interfaces e estruturas de dados e não para escrever algoritmos (Otte et al, 1996). Clientes e objetos podem ser implementados em qualquer linguagem de programação, pois os clientes, através da utilização das interfaces em IDL, possuem todas as informações necessárias para requisitar uma operação ao objeto. Clientes não precisam conhecer os detalhes da implementação do objeto (Orfali et al, 1996). Diferentes linguagens de programação, orientadas ou não a objetos, apresentam maneiras diferentes de acessar objetos CORBA. Para as linguagens orientadas a objeto, os objetos CORBA podem ser vistos como objetos da linguagem de programação utilizada, enquanto para linguagens não orientadas a objeto é interessante esconder referências a objetos, nomes de métodos, etc. Para conseguir estes diferentes tipos de acesso, faz-se um mapeamento da IDL para diferentes linguagens de programação. Este mapeamento, por exemplo, permite que tipos de dados específicos da linguagem de programação utilizada para desenvolver um cliente tenham uma correspondência em IDL. IDL suporta mapeamento para várias linguagens de programação, tais como: Java, C, C++, Smalltalk, Cobol e Ada95.. A Figura 5.3 mostra um exemplo da IDL CORBA mapeada para a linguagem de programação C. Os Capítulos de 19 a 24 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descrevem os mapeamentos da IDL a várias linguagens de programação. 111

8 Parâmetro definido pelo usuário IDL Interface foo { void operation ( inout long param ) raises ( USER_EXCEPTION ) context ( LOCAL_SYSTEM_CONTEXT ); } Parâmetro definido pelo usuário C typedef CORBA_Object foo; void foo_operation ( foo o, long *param, Context col, Enviroment *ev ); Object Parameter (especifica a aplicação servidora) 2. Informação de contexto (informação adicional - opcional) 3. Informação de retorno de exceção (exceçôes padrão e definidas pelo usuário) Fig. 5.3 Exemplo de IDL CORBA mapeada para C FONTE: Mowbray e Ruh (1997, p.74) Na Figura 5.3 nota-se que o parâmetro definido pelo usuário é de entrada e saída (inout), isto porque, os parâmetros são identificados por três posições. Pode haver um parâmetro de entrada (in) onde o argumento é passado do cliente para o servidor; um parâmetro de saída (out) onde o argumento é passado do servidor para o cliente e um parâmetro de entrada ou saída (inout) onde um valor é passado para o servidor, possivelmente modificado para ser retornado para o cliente. Uma requisição também pode retornar um único valor como resultado ou o resultado pode estar armazenado num parâmetro de saída ou num parâmetro de entrada ou saída (CORBA, 1998). IDL é considerada, no padrão CORBA, como um item fundamental sendo também um padrão ISO de número IDL CORBA é uma linguagem 112

9 independente, possuindo características sintáticas e semânticas próprias. IDL obedece a algumas regras léxicas do C++ com novas palavras chaves para permitir o conceito de distribuição. Mantém todas as características de préprocessamento padrão do C++. A sua gramática é um subconjunto do padrão ANSI C++ com construções adicionais para suportar mecanismos de invocação. IDL CORBA se encontra descrita, de forma detalhada, no Capítulo 3 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998). O arquivo escrito em IDL CORBA, Figura 5.4, define os tipos de dados, operações e objetos que o cliente pode utilizar para fazer suas requisições e que o servidor deve prover para a implementação de um dado objeto. Por exemplo, um arquivo IDL CORBA descreve uma interface Empregado que define as operações promoção e demissão, tipos de dados definidos pelo usuário e uma constante. A aplicação do cliente que utiliza esse arquivo deve ser capaz de requisitar as operações promoção e demissão, utilizar os tipos de dados especificados e a constante. O servidor que satisfará a requisição deste cliente deve ser capaz de realizar o trabalho associado as operações promoção e demissão, manipular os tipos de dados especificados e a constante. Interface Empregado { void promoção ( in char nova_colocação ); void demissão ( in Cod_Demissão razão, in string descrição ); }; Fig. 5.4 Exemplo de uma definição de interface FONTE: Otte et al (1996, p.2-4) 113

10 5.3.3 INSTÂNCIAS E REFERÊNCIAS DE OBJETOS Para identificar uma instância de objeto o CORBA utiliza uma referência de objeto para essa instância. Por exemplo, um cliente para requisitar uma operação de promoção num determinado objeto Empregado deverá identificar esse objeto especificando na requisição sua referência de objeto. A representação interna da referência de objeto depende da implementação do fornecedor do produto que segue as especificações CORBA, entretanto todas as referências de objetos tem a mesma representação externa para uma dada linguagem de programação (Orfali et al, 1996). Isso torna a aplicação portável entre diferentes produtos. O fato do CORBA passar a referência do objeto ao invés do objeto específico permite aos desenvolvedores usar linguagens de programação não orientadas a objeto, assim como, diferentes linguagens de programação para escrever aplicações clientes e servidoras (Otte et al, 1996) IMPLEMENTAÇÂO DE OBJETOS A implementação de um objeto é parte da aplicação servidora que realiza a requisição de uma operação num objeto específico. A implementação do objeto existe na aplicação servidora e contém um ou mais métodos, os quais são trechos de código que realizam o trabalho requisitado a ela. Por exemplo, se o cliente requisita a operação de promoção num Empregado específico, a implementação do objeto utiliza seus métodos para realizar a promoção desse Empregado. A Figura 5.5 ilustra um cliente associado e a uma implementação no servidor. 114

11 Aplicação Cliente Aplicação Servidora Refência de Objeto do Empregado A Operação de Promoção Operação de Demissão Definição de Interface Interface Empregado { void promoção (in char nova_colocação); void demissão (in Cod_Demissão razão, in string descrição); }; Implementação de Empregado Método Promoção Método Demissão Fig. 5.5 Um cliente associado a uma implementação no servidor FONTE: Otte et al (1996, p.2-5) 115

12 5.4 ARQUITETURA CORBA A Figura 5.6 mostra a arquitetura CORBA. Cliente Implementação do objeto Interface de Invocação Dinâmica Stubs Interface ORB Skeleton Estático Skeleton Dinâmico Adaptador de Objeto Core ORB Repositório de Interfaces Repositório de Implementação Interface idêntica para todas as implementações de ORB. Podem existir múltiplos adaptadores de objetos. Existem stubs e skeletons para cada tipo de objeto. Interface que depende do ORB. Fig. 5.6 Arquitetura CORBA FONTE: Adaptada de CORBA (1998, p.2.3) 116

13 No topo da Figura 5.6, fora do ORB, estão representados o cliente e a implementação do objeto. O restante na Figura 5.6 representa elementos pertencentes ao ORB. Abaixo na Figura 5.6 está o core (núcleo) do ORB, cujos detalhes não são controlados pela especificação CORBA. O core do ORB pode ser implementado da maneira que o seu fornecedor desejar (Mowbray e Ruh, 1998). Um cliente pode tomar um dos dois caminhos para fazer uma invocação ao objeto: via stubs ou através da Interface de Invocação Dinâmica. Utilizando stubs um cliente acessa um método de um objeto remoto da mesma maneira que acessaria um outro residindo no seu próprio espaço de endereçamento. As rotinas dos stubs são geradas, automaticamente, no momento da compilação do arquivo contendo a descrição em IDL da interface do objeto CORBA a ser invocado, devendo ser linkado com a aplicação do cliente. Os stubs acessam as referências do objeto e interagem com o ORB para realizar a invocação requisitada. Os stubs dependem do ORB, pois, utilizam-se de mecanismos otimizados para interagir com ele e do mapeamento da linguagem de programação do cliente em IDL. Diferentes fornecedores de ORB apresentam diferentes stubs. Quando utiliza stubs o CORBA suporta somente comunicação síncrona. Utilizando a Interface de Invocação Dinâmica ( Dynamic Invocation Interface - DII) um cliente, em tempo de execução, invoca um objeto CORBA sem o auxílio dos stubs. Para isto, é necessário especificar, na invocação dinâmica do objeto CORBA, o método a ser executado e o seu conjunto de parâmetros. Tal recurso é necessário quando não se tem acesso aos arquivos com os stubs criados em tempo de compilação. O Capítulo 5 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve, de forma detalhada, esta interface. Essa interface é de especial interesse para certos tipos de aplicações que precisam ter acesso a objetos remotos em tempo de execução, porém necessita do auxílio do Repositório de Interfaces descrito a 117

14 seguir. CORBA suporta tanto comunicação síncrona quanto assíncrona quando utiliza DII. No CORBA para a implementação do objeto não existe diferença se a requisição feita pelo cliente utilizou stub ou DII (Mowbray e Ruh, 1997) (Orfali et al, 1996). O Repositório de Interfaces contém a descrição das interfaces dos objetos CORBA nele registrados, isto é, possuem o mesmo tipo de informação contido nos stubs. As suas APIs permitem o acesso, o registro e atualização destas informações, auxiliando a construção de invocações dinâmicas através da DII. Tais informações contidas no repositório podem ser consideradas como metadados dos objetos CORBA (Queiroz e Madeira, 1998). O Capítulo 8 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve, de forma detalhada, este repositório. A Figura 5.7 mostra a invocação via stubs e DII. 118

15 Invocação via Stub Adaptador de Objeto Aplicação Cliente Aplicação Servidora Refência de Objeto do Empregado A Operação de Promoção Stub do Cliente ORB Skeleton do Servidor Implementação de Empregado Método Promoção Operação de Demissão Método Demissão Invocação Dinâmica Associado a Repositório de Interface Usada para Gerar Usada para Gerar Carregada no Definição de Interface Interface Empregado { void promoção ( in char nova_colocação ); void demissão ( in Cod_Demissão razão, in string descrição ); Fig. 5.7 Invocação via stubs e DII FONTE: Otte et al (1996, p.8.8) Um servidor é composto de uma aplicação servidora contendo uma ou mais implementações de um determinado objeto executando a requisição do cliente. 119

16 Quando o cliente envia uma requisição para o ORB, este seleciona a implementação que satisfaz a requisição e usa o Adaptador de Objeto ( Object Adapter - AO) para direcionar a requisição para a implementação correspondente. O Adaptador de Objeto utiliza dos skeletons para chamar os métodos na implementação. Skeletons estáticos são responsáveis por prover uma conexão entre os Adaptadores de Objeto e os métodos que executam as operações num objeto. Eles contêm as informações necessárias para mapear uma operação, num objeto, na implementação e método apropriados. São similares aos stubs do cliente, sendo gerados, automaticamente, no momento da compilação do arquivo contendo a descrição em IDL de cada método do objeto CORBA. São dependentes do Adaptador de Objeto. Caso objetos CORBA não possuam os correspondentes skeletons estáticos os skeletons dinâmicos serão responsáveis por oferecer um mecanismo de acesso a esses objetos. Tal recurso inspeciona os valores dos parâmetros da mensagem recebida para determinar o objeto destinatário e o correspondente método, ele pode utilizar para obter informações o Repositório de Interfaces (CORBA, 1998). O Capítulo 6, da especificação The Common Objet Request Broker: Architecture and Specification, (CORBA, 1998) descreve, de forma detalhada, esta interface. No CORBA, os clientes não sabem se a implementação utilizada pelo objeto está recebendo a sua requisição de forma estática ou dinâmica (Mowbray e Ruh, 1997) (Orfali et al, 1996). Um Adaptador de Objeto Básico ( Basic Object Adapter BOA), mostrado na Figura 5.8, é responsável por (CORBA, 1998) (Orfali et al, 1996): Gerar e interpretar referências de objetos. 120

17 Invocar métodos. Garantir segurança. Ativar e desativar objetos. Mapear as referências dos objetos às suas correspondentes implementações. Registrar implementações. Implementação do objeto Métodos da interface A Métodos da interface B Skeleton dinânico Skeleton interface A Skeleton interface B Interface do Adaptador de Objeto Core ORB Fig. 5.8 Estrutura típica do Adaptador de Objeto FONTE: CORBA (1998, p.2.14) Podem existir vários adaptadores de objeto, mas como a interface do Adaptador de Objeto é algo que depende da implementação do objeto é interessante que não existam diferentes tipos de adaptadores para a mesma implementação. A maioria dos Adaptadores de Objeto são projetados para cobrir uma faixa larga de implementações, objetivando restringir o projeto de um novo adaptador. Isto ocorrerá somente quando uma implementação requeira um serviço ou uma interface muito diferente. O Adaptador de Objeto Portável ( Portable Object Adapter POA) foi especificado de forma a prover 121

18 um Adaptador de Objeto que possa ser usado em múltiplos ORBs, isto é, um Adaptador de Objeto que, com um mínimo de alteração, possa interagir com diferentes ORBs. O Capítulo 9 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve o POA de forma detalhada (projeto, modelo abstrato, interfaces, etc.). O Repositório de Implementação contém informações que permite ao ORB localizar e ativar implementações de objetos. CORBA usa esse repositório para associar referências de objetos à implementações, assim como, ele usa o Repositório de Interface para associar referências de objetos à suas interfaces. O Adaptador de Objeto utiliza as informações sobre as implementações nele contidas, mas a maior parte da informação é específica de um determinado fornecedor de ORB, como por exemplo, implementações utilizadas para instalar ou administrar o servidor. CORBA não apresenta especificações rígidas para o Repositório de Implementação. A Figura 5.9 mostra como as informações das interfaces e das implementações do objeto se relacionam. A interface é definida em IDL e/ou está presente no Repositório de Interface. A definição é usada para gerar os stubs do cliente e os skeletons da implementação do objeto. A informação das possíveis implementações do objeto são providas em tempo de instalação, estando armazenadas no Repositório de Implementação para uso durante o envio de uma requisição (CORBA, 1998). 122

19 Definições em IDL Implementação instalada Repositório de Interface Stubs Skeletons Repositório de Implementação Cliente Implementação do objeto Fig. 5.9 Relacionamento entre Repositórios de Interface e Implementação FONTE: CORBA (1998, p.2.6) Finalizando, tem-se a Interface ORB. Esta interface não depende de nenhum Adaptador de Objeto. Suas operações são as mesmas para todos os ORBs podendo atender tanto clientes como implementações de objetos. São operações implementadas pelo próprio ORB, como exemplo, operaçôes com referências de objetos, inicialização do ORB, etc. O Capítulo 4 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve, de forma detalhada, esta interface. 5.5 INTEROPERABILIDADE CORBA As especificações CORBA possibilitam a comunicação ORB a ORB, isto é, a interoperabilidade entre ORBs ( interorbability ). Um ORB, como já descrito, provê mecanismos pelos quais objetos, de forma transparente, enviam requisições e recebem respostas. Um ORB permite interoperabilidade entre 123

20 aplicaçôes executando em diferentes máquinas em ambientes distribuídos heterogêneos. A interoperabilidade entre ORBs estende esta definição para o caso em que o cliente e o objeto servidor estejam em diferentes ORBs, isto é, de forma transparente, objetos enviam requisições e recebem respostas. CORBA especifica uma abordagem detalhada e flexível para dar suporte a objetos distribuídos, através de redes, gerenciados por ORBs heterogêneos. Esta abordagem permite que seus elementos possam ser combinados de várias maneiras a satisfazer uma ampla faixa de necessidades (CORBA, 1998) (Stone et al, 1998). Alguns dos elementos de possibilitam interoperabilidade são (CORBA, 1998): Protocolo Geral inter-orb ( General inter-orb Protocol GIOP): especifica uma sintaxe padrão de transferência (representação de dados em baixo nível) e um conjunto de formatos de mensagens para comunicação entre ORBs. GIOP é construído especificamente para interações entre ORBs e projetado para trabalhar diretamente sobre qualquer protocolo de transporte orientado a conecção. Este protocolo não requer o uso de mecanismos RPC nem se baseia nele. Ele é relativamente simples, pode ser ampliado e facilmente implementado. O Capítulo 13 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve de forma detalhada este protocolo. Protocolo Internet inter-orb ( Internet inter-orb Protocol - IIOP): especifica como as mensagens GIOP são trocadas usando conecções TCP/IP. IIOP especifica um protocolo de interoperabilidade padrão para Internet, provendo uma caixa de saída (uma forma de conecção) para interoperabilização com outros ORBs compatíveis baseados neste meio de transporte. O Capítulo 13 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve de forma detalhada este protocolo. 124

21 Protocolo de Ambiente Específico Inter-ORB ( environment-specific inter-orb protocol - ESIOP): este protocolo é usado como uma caixa de saída para interoperabilização com usuários que se utilizam de uma rede particular ou uma infra-estrutura de distribuição computacional diferente, por exemplo, o ambiente DCE (DCE ESIOP). O Capítulo 14 da especificação The Common Objet Request Broker: Architecture and Specification (CORBA, 1998) descreve de forma detalhada este protocolo. A Figura 5.10 mostra o relacionamento entre os protocolos inter-orb. CORBA/IDL Mandatórios para o CORBA GIOP ESIOPs IIOP Outros mapeamentos GIOP Fig Relacionamento entre os protocolos inter-orb FONTE: CORBA (1998, p.10-4) 125

22 5.6 OBJECT MANAGEMENT ARCHITECTURE O nível mais alto das especificações CORBA é a Arquitetura de Gerenciamento de Objeto ( Object Management Architecture - OMA). Ela constitui-se de (Otte et al, 1996) (Mowbray e Ruh, 1997): Serviços CORBA: são objetos que provêm um conjunto padrão de funções para a criação e controle de acesso aos objetos, rastreamento de objetos e referências de objetos, etc. Estes serviços são essencialmente um conjunto de funções criados para facilitar o desenvolvimento de aplicações, assim, o desenvolvedor pode chamar estas funções ao invés de criar as suas próprias. Como exemplo tem-se: serviço de identificação de objetos por nomes utilizados para localizar objetos, serviços de eventos utilizados para comunicação entre objetos, serviço de ciclo de vida utilizado para controle da criação de objetos, serviço de persistência utilizado para armazenagem de objetos, etc. Facilidades CORBA: são coleções de objetos que provêm um conjunto de funções de alto nível de propósito geral para serem utilizadas em diferentes aplicações, tais como, facilidades para gerenciar a composição de documentos, acessar banco de dados, imprimir arquivos, gerenciar a temporização em um ambiente distribuído, etc. Domínios CORBA: suportam tarefas de domínios específicos associados a segmentos de mercado como manufatura, finanças e telecomunicações. Objetos aplicativos: provêm um conjunto de objetos que executam tarefas específicas para usuários finais. São essencialmente aplicações orientadas a objeto desenvolvidas para prover capacidades de negócios ( bussiness capabilities ). A OMG não padroniza estes objetos. A Figura 5.11 mostra a arquitetura OMA, onde o ORB possui o papel de roteador das requisições entre os serviços CORBA (CORBAservice), as 126

23 facilidades CORBA (CORBAfacilities) e os domínios CORBA (CORBAdomains). Objetos Aplicativos Domínios CORBA Facilidades CORBA ORB Serviços CORBA Fig Arquitetura de Gerenciamento de Objeto (OMA) FONTE: Mowbray e Ruh (1997, p.9) 5.7 SERVIÇOS CORBA Os serviços CORBA são fundamentais e globalmente aceitos. São úteis a todos os tipos de aplicação e independentes do domínio da aplicação. Os serviços CORBA compreendem quatro categorias (Mowbray e Ruh, 1997): Serviços de gerenciamento de informação. Serviços de gerenciamento de tarefas. Serviços de gerenciamento de sistema. Serviços de infra-estrutura. 127

24 5.7.1 SERVIÇOS DE GERENCIAMENTO DE INFORMAÇÃO Os serviços de gerenciamento de informação são constituídos de: SERVIÇO DE PROPRIEDADE Uma propriedade é similar a um atributo. Propriedades são conjuntos de valores que podem ser associados dinamicamente a objetos. Como exemplos de propriedade (CORBAservices, 1998): Propriedade de classificação de objeto: por exemplo, um documento pode ser classificado como sendo importante e deve ser lido ao final do dia. Outro documento pode ser classificado como menos importante e será lido somente ao final do mês, enquanto um outro pode ser classificado como não importante. A classificação dos documentos é arbitrada pelo usuário, não fazendo parte do tipo do documento, entretanto, por se tratar de uma propriedade, pode-se utilizar utilitários para manusea-las, como por exemplo, encontrar todos os documentos considerados importantes. Propriedade que contém um contador de uso do objeto: um utilitário incrementa um contador toda vez que um objeto é utilizado pelo usuário. Esta informação é associada ao objeto, mas não faz parte do tipo do objeto. O Capítulo 13 da especificação CORBAservices: Common Object Services Specification (CORBAservices, 1998) descreve este serviço de forma detalhada. 128

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008.

Capítulo VI CORBA. Common Object Request Broker Architecture. [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. Common Object Request Broker Architecture [Cardoso2008] Programação de Sistemas Distribuídos em Java, Jorge Cardoso, FCA, 2008. From: Fintan Bolton Pure CORBA SAMS, 2001 From: Coulouris, Dollimore and

Leia mais

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP) Hardware (Nível 0) Organização O AS/400 isola os usuários das características do hardware através de uma arquitetura de camadas. Vários modelos da família AS/400 de computadores de médio porte estão disponíveis,

Leia mais

INE5380 - Sistemas Distribuídos

INE5380 - Sistemas Distribuídos INE5380 - Sistemas Distribuídos Object Request Broker e CORBA Por: Léo Willian Kölln - 0513227-4 Novembro de 2006 ORB Object Request Broker ORB aqui será tratado como um Middleware que permite a construção

Leia mais

3 SCS: Sistema de Componentes de Software

3 SCS: Sistema de Componentes de Software 3 SCS: Sistema de Componentes de Software O mecanismo para acompanhamento das chamadas remotas se baseia em informações coletadas durante a execução da aplicação. Para a coleta dessas informações é necessário

Leia mais

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB)

Uma Introdução à Arquitetura CORBA. O Object Request Broker (ORB) Uma Introdução à Arquitetura Francisco C. R. Reverbel 1 Copyright 1998-2006 Francisco Reverbel O Object Request Broker (ORB) Via de comunicação entre objetos (object bus), na arquitetura do OMG Definido

Leia mais

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br

CORBA. Common Object Request Broker Architecture. Unicamp. Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br CORBA Common Object Request Broker Architecture Unicamp Centro de Computação Rubens Queiroz de Almeida queiroz@unicamp.br Objetivos Apresentação Tecnologia CORBA Conceitos Básicos e Terminologia Considerações

Leia mais

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9

Laboratório de Computação VI JAVA IDL. Fabricio Aparecido Breve - 981648-9 Laboratório de Computação VI JAVA IDL Fabricio Aparecido Breve - 981648-9 O que é Java IDL? Java IDL é uma tecnologia para objetos distribuídos, ou seja, objetos em diferentes plataformas interagindo através

Leia mais

SISTEMAS DISTRIBUIDOS

SISTEMAS DISTRIBUIDOS 1 2 Caracterização de Sistemas Distribuídos: Os sistemas distribuídos estão em toda parte. A Internet permite que usuários de todo o mundo acessem seus serviços onde quer que possam estar. Cada organização

Leia mais

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados

Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Sistema Gerenciador de Banco de Dados Banco de Dados Aula 1 Introdução a Banco de Dados Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído por um conjunto de dados associados a um conjunto de programas para acesso a esses

Leia mais

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos

CORBA Common Object Request Broker Architecture. Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos CORBA Common Object Request Broker Architecture Carolina de Oliveira Cunha Lenita Martins Ambrosio Victor da Fonseca Santos Introdução OMG (Object Management Group): uma organização formada por empresas

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: Introdução aos tipos de servidores e clientes Prof. MSc. Hugo Souza Iniciando o módulo 03 da primeira unidade, iremos abordar sobre o Modelo Cliente-Servidor

Leia mais

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

4 O Workflow e a Máquina de Regras

4 O Workflow e a Máquina de Regras 4 O Workflow e a Máquina de Regras O objetivo do workflow e da máquina de regras é definir um conjunto de passos e regras configuráveis. Ao longo de sua execução, um usuário consegue simplificar o seu

Leia mais

Sistemas Distribuídos Comunicação entre Processos em Sistemas Distribuídos: Middleware de comunicação Aula II Prof. Rosemary Silveira F. Melo Comunicação em sistemas distribuídos é um ponto fundamental

Leia mais

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira IFPE Disciplina: Sistemas Operacionais Prof. Anderson Luiz Moreira SERVIÇOS OFERECIDOS PELOS SOS 1 Introdução O SO é formado por um conjunto de rotinas (procedimentos) que oferecem serviços aos usuários

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Comunicação- Protocolos, Tipos, RPC Capítulo 4 Agenda Protocolos em Camadas Pilhas de Protocolos em Sistemas Distribuídos Tipos de Comunicação

Leia mais

Sistemas distribuídos:comunicação

Sistemas distribuídos:comunicação M. G. Santos marcela@estacio.edu.br Faculdade Câmara Cascudo - Estácio de Sá 16 de abril de 2010 Formas de comunicação Produtor-consumidor: comunicação uni-direccional, com o produtor entregando ao consumidor.

Leia mais

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064 Sistemas Distribuídos Professora: Ana Paula Couto DCC 064 Processos- Clientes, Servidores, Migração Capítulo 3 Agenda Clientes Interfaces de usuário em rede Sistema X Window Software do lado cliente para

Leia mais

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio 32 3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio Este capítulo apresenta o framework orientado a aspectos para monitoramento e análise de processos de negócio

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Aula 19-20: Arquitetura CORBA (continuação) Exemplo de cliente e servidor em CORBA Interfaces IDL Shape e ShapeList Exemplo de cliente e servidor

Leia mais

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br

Sistemas Distribuídos RPC x RMI. Edeyson Andrade Gomes www.edeyson.com.br Sistemas Distribuídos RPC x RMI Edeyson Andrade Gomes www.edeyson.com.br Roteiro da Aula Chamada Remota a Procedimento Definição Passagem de Parâmetros STUBS Semântica de Falhas 2 RPC Chamada Remota a

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos melissa@inf.puc-rio.br Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

Leia mais

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc. MODELAGEM DE DADOS PROF. RAFAEL DIAS RIBEIRO, M.Sc. @ribeirord MODELAGEM DE DADOS Aula 2 Prof. Rafael Dias Ribeiro. M.Sc. @ribeirord 1 Objetivos: Revisão sobre Banco de Dados e SGBDs Aprender as principais

Leia mais

2 Ferramentas Utilizadas

2 Ferramentas Utilizadas 2 Ferramentas Utilizadas Esta dissertação utiliza vários outros trabalhos para implementar os mecanismos de adaptação abordados. Essas ferramentas são descritas nas seções seguintes. 2.1 Lua Lua [7, 8]

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais

Notas da Aula 15 - Fundamentos de Sistemas Operacionais Notas da Aula 15 - Fundamentos de Sistemas Operacionais 1. Software de Entrada e Saída: Visão Geral Uma das tarefas do Sistema Operacional é simplificar o acesso aos dispositivos de hardware pelos processos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 6 Estrutura de Sistemas Operacionais Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso

Leia mais

Faculdade Lourenço Filho - ENADE 2011-1

Faculdade Lourenço Filho - ENADE 2011-1 1. Quando se constrói um banco de dados, define-se o modelo de entidade e relacionamento (MER), que é a representação abstrata das estruturas de dados do banco e seus relacionamentos. Cada entidade pode

Leia mais

Usando Borland DELPHI para implementar aplicações CORBA

Usando Borland DELPHI para implementar aplicações CORBA Página 1 de 10 USANDO BORLAND DELPHI PARA IMPLEMENTAR APLICAÇÕES CORBA por Simone Vey Dutra e César Bridi Introdução A Arquitetura CORBA Criando uma Aplicação CORBA em Delphi Criando um Servidor CORBA

Leia mais

3. Comunicação em Sistemas Distribuídos

3. Comunicação em Sistemas Distribuídos 3. Comunicação em 3.1.Troca de mensagens As mensagens são objetos de dados cuja estrutura e aplicação são definidas pelas próprias aplicações que a usarão. Sendo a troca de mensagens feita através de primitivas

Leia mais

5 Mecanismo de seleção de componentes

5 Mecanismo de seleção de componentes Mecanismo de seleção de componentes 50 5 Mecanismo de seleção de componentes O Kaluana Original, apresentado em detalhes no capítulo 3 deste trabalho, é um middleware que facilita a construção de aplicações

Leia mais

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial 1 of 14 27/01/2014 17:33 Sistema de Paginação de Esportes Universitários Documento de Arquitetura de Software Versão 1.0 Histórico da Revisão Data 30 de novembro de 1999 Versão Descrição Autor 1.0 Versão

Leia mais

Processos e Threads (partes I e II)

Processos e Threads (partes I e II) Processos e Threads (partes I e II) 1) O que é um processo? É qualquer aplicação executada no processador. Exe: Bloco de notas, ler um dado de um disco, mostrar um texto na tela. Um processo é um programa

Leia mais

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido

Roteiro. Arquitetura. Tipos de Arquitetura. Questionário. Centralizado Descentralizado Hibrido Arquitetura Roteiro Arquitetura Tipos de Arquitetura Centralizado Descentralizado Hibrido Questionário 2 Arquitetura Figura 1: Planta baixa de uma casa 3 Arquitetura Engenharia de Software A arquitetura

Leia mais

UFG - Instituto de Informática

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 professor.fabrizzio@gmail.com Aula 13 Web Services Web Services

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Faculdades SENAC Análise e Desenvolvimento de Sistemas 28 de abril de 2010 Principais suportes de Java RMI (Remote Method Invocation), da Sun Microsystems DCOM (Distributed Component Object Model), da

Leia mais

Engenharia de Software III

Engenharia de Software III Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

Padrões de Projeto Implementados em Infraestrturas de Componentes

Padrões de Projeto Implementados em Infraestrturas de Componentes Padrões de Projeto Implementados em Infraestrturas de Componentes Paulo Pires paulopires@nce.ufrj.br http//genesis.nce.ufrj.br/dataware/hp/pires 1 distribuídas baseadas em componentes Comunicação transparente,

Leia mais

UNIVERSIDADE. Sistemas Distribuídos

UNIVERSIDADE. Sistemas Distribuídos UNIVERSIDADE Sistemas Distribuídos Ciência da Computação Prof. Jesus José de Oliveira Neto Web Services Web Services Existem diferentes tipos de comunicação em um sistema distribuído: Sockets Invocação

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS OPERACIONAIS ABERTOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 2-1. PRINCÍPIOS DE SOFTWARE DE ENTRADA E SAÍDA (E/S) As metas gerais do software de entrada e saída é organizar o software como uma série de camadas, com as mais baixas preocupadas em esconder as

Leia mais

4 Um Exemplo de Implementação

4 Um Exemplo de Implementação 4 Um Exemplo de Implementação Neste capítulo será discutida uma implementação baseada na arquitetura proposta. Para tanto, será explicado como a arquitetura proposta se casa com as necessidades da aplicação

Leia mais

Roteiro 2 Conceitos Gerais

Roteiro 2 Conceitos Gerais Roteiro 2 Conceitos Gerais Objetivos: UC Projeto de Banco de Dados Explorar conceitos gerais de bancos de dados; o Arquitetura de bancos de dados: esquemas, categorias de modelos de dados, linguagens e

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

Padrões Arquiteturais. Sistemas Distribuídos: Broker

Padrões Arquiteturais. Sistemas Distribuídos: Broker Padrões Arquiteturais Sistemas Distribuídos: Broker Sistemas Distribuídos Tendências: Sistemas Comp. com múltiplas CPUs Redes locais com centenas de hospedeiros Benefícios Economia Desempenho e escalabilidade

Leia mais

Considerações no Projeto de Sistemas Cliente/Servidor

Considerações no Projeto de Sistemas Cliente/Servidor Cliente/Servidor Desenvolvimento de Sistemas Graça Bressan Graça Bressan/LARC 2000 1 Desenvolvimento de Sistemas Cliente/Servidor As metodologias clássicas, tradicional ou orientada a objeto, são aplicáveis

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais

Banco de Dados Orientado a Objetos

Banco de Dados Orientado a Objetos Banco de Dados Orientado a Objetos MODELAGEM, ANÁLISE, PROJETO e CLASSIFICAÇÃO Interação combinando lógica, através de objetos que contém os dados. Estes divididos conforme seus tipos e métodos (classe),

Leia mais

Capítulo 9. Gerenciamento de rede

Capítulo 9. Gerenciamento de rede 1 Capítulo 9 Gerenciamento de rede 2 Redes de computadores I Prof.: Leandro Soares de Sousa E-mail: leandro.uff.puro@gmail.com Site: http://www.ic.uff.br/~lsousa Não deixem a matéria acumular!!! Datas

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

Leia mais

Service Oriented Architecture (SOA)

Service Oriented Architecture (SOA) São Paulo, 2011 Universidade Paulista (UNIP) Service Oriented Architecture (SOA) Prof. MSc. Vladimir Camelo vladimir.professor@gmail.com 04/09/11 vladimir.professor@gmail.com 1 04/09/11 vladimir.professor@gmail.com

Leia mais

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback

SMTP, POP, IMAP, DHCP e SNMP. Professor Leonardo Larback SMTP, POP, IMAP, DHCP e SNMP Professor Leonardo Larback Protocolo SMTP O SMTP (Simple Mail Transfer Protocol) é utilizado no sistema de correio eletrônico da Internet. Utiliza o protocolo TCP na camada

Leia mais

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira.

Faculdades Santa Cruz - Inove. Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Período letivo: 4 Semestre. Quinzena: 5ª. Faculdades Santa Cruz - Inove Plano de Aula Base: Livro - Distributed Systems Professor: Jean Louis de Oliveira. Unidade Curricular Sistemas Distribuídos Processos

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Categorias de Padrões

Categorias de Padrões Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas

Leia mais

Análise de Ponto de Função

Análise de Ponto de Função Complemento para o Curso Análise de Ponto de Função FUNÇÕES DO TIPO DADO O termo Arquivo não significa um arquivo do sistema operacional, como é comum na área de processamento de dados. Se refere a um

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

Desenvolvimento Cliente-Servidor 1

Desenvolvimento Cliente-Servidor 1 Desenvolvimento Cliente- 1 Ambiienttes de Desenvollviimentto Avançados Engenharia Informática Instituto Superior de Engenharia do Porto Alexandre Bragança 1998/99 Ambientes de Desenvolvimento Avançados

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

Leia mais

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi 5 Conclusão Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi permitir que scripts Lua instanciem e usem

Leia mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Modelo Cliente-Servidor: comunicação orientada por mensagem e comunicação orientada por fluxo Prof. MSc. Hugo Souza Continuando o módulo 03 da primeira unidade, iremos abordar sobre

Leia mais

Fundamentos de Banco de Dados

Fundamentos de Banco de Dados Fundamentos de Banco de Dados SISTEMAS BASEADOS NO PROCESSAMENTO DE ARQUIVOS Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Sistema

Leia mais

Lista 3 Exercícios de Gestão de Redes

Lista 3 Exercícios de Gestão de Redes 1. Quais os fatores que contribuem para o sucesso de uma operação de gerenciamento? O sucesso de uma operação de Gerenciamento depende dos seguintes fatores: O sistema de gerenciamento invocador deve ter

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

Leia mais

ISO/IEC 12207: Gerência de Configuração

ISO/IEC 12207: Gerência de Configuração ISO/IEC 12207: Gerência de Configuração Durante o processo de desenvolvimento de um software, é produzida uma grande quantidade de itens de informação que podem ser alterados durante o processo Para que

Leia mais

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO

FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO FAÇA FÁCIL: DRIVER IGS PARA COMUNICAÇÃO DE PROTOCOLOS PROPRIETÁRIOS INTRODUÇÃO O Driver IGS possui um módulo de configuração que possibilita a comunicação com protocolos proprietários. Trata-se do Driver

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Comunicação Remota Gustavo Reis gustavo.reis@ifsudestemg.edu.br 1 Comunicação entre processos está no coração de todo sistema distribuído. Não tem sentido estudar sistemas distribuídos

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Padrões Arquiteturais e de Integração - Parte 1

Padrões Arquiteturais e de Integração - Parte 1 1 / 58 - Parte 1 Erick Nilsen Pereira de Souza T017 - Arquitetura e Design de Aplicações Análise e Desenvolvimento de Sistemas Universidade de Fortaleza - UNIFOR 11 de fevereiro de 2015 2 / 58 Agenda Tópicos

Leia mais

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho vi http://aurelio.net/vim/vim-basico.txt Entrar neste site/arquivo e estudar esse aplicativo Administração de Redes de Computadores Resumo de Serviços em Rede Linux Controlador de Domínio Servidor DNS

Leia mais

UFG - Instituto de Informática

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 professor.fabrizzio@gmail.com Aula 10 Persistência de Dados

Leia mais

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.

? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase. ? O SQL SERVER é um sistema de gerenciamento de banco de dados relacional que foi desenvolvido inicialmente pela Microsoft em parceria com a Sybase.? Desde de 1994, a Microsoft lança versões do SQL SERVER

Leia mais

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia O Sistema Operacional que você usa é multitasking? Por multitasking, entende-se a capacidade do SO de ter mais de um processos em execução ao mesmo tempo. É claro que, num dado instante, o número de processos

Leia mais

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior

Prof. Antonio Almeida de Barros Jr. Prof. Antonio Almeida de Barros Junior Prof. Antonio Almeida de Barros Jr. Introdução Dados Informações Banco de Dados Conceitos Básicos em Bancos de Dados Definição BD - Banco de Dados SGBD - Sistema de Gerenciamento de BD Programa de Aplicação

Leia mais

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Sistema de Arquivos Ambientes Operacionais Prof. Simão Sirineo Toscani stoscani@inf.pucrs.br www.inf.pucrs.br/~stoscani Gerência de Arquivos É um dos serviços mais visíveis do SO. Arquivos são normalmente

Leia mais

Um Driver NDIS Para Interceptação de Datagramas IP

Um Driver NDIS Para Interceptação de Datagramas IP Um Driver NDIS Para Interceptação de Datagramas IP Paulo Fernando da Silva psilva@senior.com.br Sérgio Stringari stringari@furb.br Resumo. Este artigo apresenta o desenvolvimento de um driver NDIS 1 para

Leia mais

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes:

As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: SGBD Características do Emprego de Bancos de Dados As principais características da abordagem de um banco de dados versus a abordagem de processamento de arquivos são as seguintes: Natureza autodescritiva

Leia mais

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados. BANCO DE DADOS Universidade do Estado de Santa Catarina Centro de Ciências Tecnológicas Departamento de Ciência da Computação Prof. Alexandre Veloso de Matos alexandre.matos@udesc.br INTRODUÇÃO Hoje é

Leia mais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS) Definição Geral: Disciplina de Compiladores Prof. Jorge Bidarra (UNIOESTE) A especificação de requisitos tem como objetivo

Leia mais

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MINISTÉRIO DO DESENVOLVIMENTO AGRÁRIO SUBSECRETARIA DE PLANEJAMENTO, ORÇAMENTO E ADMINISTRAÇÃO COORDENAÇÃO-GERAL DE MODERNIZAÇÃO E INFORMÁTICA CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS MANUAL

Leia mais

Relatorio do trabalho pratico 2

Relatorio do trabalho pratico 2 UNIVERSIDADE FEDERAL DE SANTA CATARINA INE5414 REDES I Aluno: Ramon Dutra Miranda Matricula: 07232120 Relatorio do trabalho pratico 2 O protocolo SNMP (do inglês Simple Network Management Protocol - Protocolo

Leia mais

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de software AULA NÚMERO: 08 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir conceitos relacionados a modelos e especificações. Nesta aula

Leia mais

5 Estudo de caso: utilizando o sistema para requisição de material

5 Estudo de caso: utilizando o sistema para requisição de material 61 5 Estudo de caso: utilizando o sistema para requisição de material A fim de avaliar as características da arquitetura proposta e a corretude da implementação, realizamos experiências com cenários de

Leia mais