O que é CORBA? Sistemas Distribuídos Baseads em Objetos. Objetivos. Características. CORBA e DCOM

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

Download "O que é CORBA? Sistemas Distribuídos Baseads em Objetos. Objetivos. Características. CORBA e DCOM"

Transcrição

1 O que é CORBA? Sistemas Distribuídos Baseads em Objetos CORBA e DCOM Common Object Request Broker Architecture Estrutura para comunicação entre objetos distribuídos OMG (Object Management Group) ONG com sede nos EUA e representações em vários países Fundada em abril de 1989 Mais de 800 membros Dedicada à criação e popularização de padrões industriais de orientação a objetos para integração de aplicações, por exemplo: CORBA, UML, MDA, CWM Objetivos Prover suporte à interação entre objetos, de maneira distribuída, heterogênea e transparente ao usuário. Os objetos não precisam ser codificados na mesma linguagem, bastando que suas interfaces sejam descritas de uma maneira padronizada. Facilitar a integração de novos componentes com componentes legados Padrão aberto e de livre acesso Baseado em amplo consenso na indústria Características CORBA separa a implementação propriamente dita de um objeto de sua interface. CORBA provê interoperabilidade. CORBA abstrai do programador a comunicação de redes.

2 Overview of CORBA Object Model The global architecture of CORBA. The general organization of a CORBA system. IDL Interface Definition Language Linguagem para a definição da interface de estruturas, classes e objetos de uma aplicação Independente de linguagem de programação Sintaxe semelhante à de C++ Puramente declarativa (i.e., não define implementação) São encontrados padrões de tradução de IDL para a várias das linguagens convencionais C, C++, Java, Ada, COBOL, etc. IDL Compiladores realizam as traduções automaticamente: idlj (Java) idl2pas (Borland Delphi) Visibroker (Borland C++ Builder) midl (Microsoft Visual C++) Exemplo module NossoBanco { interface Conta { exception zerou_conta {; void deposito(in float qtd); void retirada(in float qtd) raises zerou_conta; float saldo();

3 Passagem de parâmetros em IDL Exceções em IDL in : conteúdo não modificado. out : conteúdo modificado pelo método remoto. Estado do parâmetro deve ser atualizado na aplicação cliente. inout : não se tem certeza sobre alteração no conteúdo do parâmetro. IDL provê suporte completo à declaração e ao disparo de exceções. No entanto, não é definida uma hierarquia de exceções (como em Java, por exemplo). Portanto, não é possível efetuar-se um tratamento genérico como por exemplo catch(networkexception e). Exemplo em Uso O Modelo de Objetos de CORBA: Objetos Organization #name:string Cada objeto tem um identificador que é único dentro do contexto de um ORB Club -noofmembers:int -location:address +transfer(p:player) 1 Trainer 1 1..* -name:string works for +train() 1..* has coaches * 1..* Team plays in -name:string +bookgoalies() Player -name:string -Number:int +book() uses Suporte a múltiplas referências para o mesmo objeto Referências suportam transparência de localização Referências de objetos são persistentes Válidas mesmo que o objeto em questão tenha sido desativado

4 O Modelo de Objetos de CORBA: Tipos O Modelo de Objetos de CORBA: Módulos Tipos estruturados Tipo de Objeto typedef struct _Address { string street; string postcode; string city; Address; Tipos Atômicos typedef sequence<address> AddressList; interface Team {... ; Módulos module Soccer { typedef struct _Address { string street; string postcode; string city; Address; ; module People { typedef struct _Address { string flat_number; string street; string postcode; string city; string country; Address; ; Soccer::Address People::Address O Modelo de Objetos de CORBA: Atributos O Modelo de Objetos de CORBA: Operações Clientes não podem mudar o valor Atributos mutáveis interface Player; typedef sequence<player> PlayerList; interface Trainer; typedef sequence<trainer> TrainerList; interface Team { readonly attribute string name; attribute TrainerList coached_by; attribute Club belongs_to; attribute PlayerList players;... ; Tipo do Atributo Nome do Atributo Categoria de Parâmetro Lista de Parâmetros interface Team { Tipos de Retorno... void bookgoalies(in Date d); string print(); ; Tipo do parâmetro Nome da operação (usado em requisições) Nome do Parâmetro

5 O Modelo de Objetos de CORBA: Exceções O Modelo de Objetos de CORBA: Sub-tipos Exceções genéricas (ex.: rede fora do ar, ref. de objeto inválida, esgotou a memória) Exceções específicas de determinados tipos Nome da Exceção Dados da Exceção exception PlayerBooked{sequence<Date> free;; interface Team {... void bookgoalies(in Date d) raises(playerbooked); ; Operações declaram as exceções que podem gerar Super-tipo implícito: Object Herdado por Club interface Organization { readonly attribute string name; ; Supertipo interface Club : Organization { exception NotInClub{; readonly attribute short noofmembers; readonly attribute Address location; attribute TeamList teams; attribute TrainerList trainers; void transfer(in Player p) raises NotInClub; ; ORB Object Request Broker Componente central do CORBA. Provê toda a infra-estrutura necessária à identificação e localização dos objetos. Gerencia a comunicação entre uma aplicação-cliente e um objeto-servidor, abstraindo-a através da invocação de métodos. Funções do ORB Localiza e instancia objetos em aplicações remotas. Empacota e transmite (Marshals) parâmetros em uma invocação de método. Trata questões relativas à segurança na comunicação entre as máquinas cliente e servidor. Recupera e disponibiliza dados na máquina local para que outro ORB os utilize. Instancia automaticamente objetos que não estão em execução. Suporta chamada a métodos callback de maneira transparente. Comunica-se com outros ORB s utilizando o protocolo IIOP.

6 Hierarquia de protocolos do CORBA A arquitetura CORBA CORBA GIOP IIOP Protocolo baseado em mensagens do CORBA, requer um protocolo de transporte como o TCP Faz a tradução do GIOP para o TCP Repositório de interfaces Dynamic Interface Invocation (DII) Cliente Stubs de IDLs de cliente Interface do ORB Implementação do objeto CORBA servidor Skeletons estáticos Dynamic Skeleton Invocation (DSI) Adaptador de Objeto Repositório de implementação TCP/IP Núcleo central do ORB (IIOP) Interface idêntica em todas as implementações do ORB Stubs e skeletons são específicos para cada classe Pode haver vários adaptadores de objeto Interface dependente do ORB O Modelo de Objetos de CORBA: Requisições Invocação estática de interfaces (SII) Requisições iniciadas por objetos clientes Uma requisição consiste de uma referência ao objeto servidor o nome da operação requisitada argumentos da requisição (parâmetros reais) informação de contexto Requisições podem ser definidas de duas formas: estaticamente dinamicamente Para que uma aplicação cliente realize invocações de métodos sobre um objeto, ela precisa estar estaticamente ligada a um stub. O stub define uma interface para o objeto.

7 Invocação estática de interfaces (SII) Vantagem: Uma aplicação cliente baseada em SII é mais fácil de programar. Desvantagem : O programador da aplicação cliente precisa conhecer previamente quais objetos e seus respectivos métodos que ele pode invocar. É o que acontece na maioria das aplicações Invocação dinâmica de interfaces (DII) A DII fornece mecanismos de especificação e construção de invocações em tempo de execução Através de acesso direto aos serviços do providos pelo ORB descobrir um dado objeto e sua interface construir dinamicamente uma invocação a um objeto sem que seja necessário um conhecimento prévio de quais objetos ou métodos estão disponibilizados. Aplicação-cliente não precisa estar associada com quaisquer stubs usa a mesma semântica Mas em uma invocação dinâmica, os parâmetros repassados são obtidos e verificados em tempo de execução Repositório de Interfaces Implementa um armazenamento persistente de interfaces declaradas em IDL. Ferramenta para programadores. Funciona como um banco de dados de interfaces de objetos e hierarquia de herança. Oferece suporte à invocação dinâmica de interfaces (DII). Adaptador de Objetos Oferece uma camada entre chamadas remotas a métodos, e objetos no lado do servidor que atendem a estas chamadas. Suas funções incluem: gerar referências a objetos despachar cada invocação remota através de skeletons referentes a cada objeto ativar os objetos

8 Skeletons Invocação dinâmica de skeletons (DSI) Localizam-se no lado do servidor, sob o Object Adapter e correspondem aos stubs do cliente. Não é necessário, para cada skeleton, um stub correspondente no lado do cliente, se este estiver usando invocação dinâmica de interfaces. Semelhante ao recurso de invocação dinâmica de interfaces. Constrói uma invocação no objeto servidor com base na mensagem enviada pelo cliente, e no conteúdo do repositório de interfaces. Repositório de implementações Suporta um modo de registro de objetos no lado do servidor, que os carrega no momento da invocação. Permite a replicação de objetos servidores, oferecendo assim suporte a tolerância a falhas. Escrevendo uma aplicação CORBA 1. Defina em IDL o conjunto de módulos, interfaces e estruturas a ser utilizado. 2. Utilize um compilador IDL (idlj, Visibroker etc.) para gerar, stubs, skeletons, esqueletos de código, estruturas para os repositórios de interface. O compilador é específico para um linguagem de programação. 1. O compilador pode gerar também arquivos contendo classes de suporte que facilitam a interação com o ORB. 3. Escreva o código para a implementação do objeto servidor. 4. Escreva o código da aplicação no lado do servidor, que vai carregar a classe no ORB e definie a forma como os objetos deverão ser localizados e acessados por um eventual cliente. 5. Escreva o código da aplicação cliente. 6. Compile tudo.

9 Exemplo Hello World Especificação em IDL da interface Hello: Implementação em java da classe Hello: Código-fonte em java da aplicação servidor: Código-fonte em java da aplicação cliente: Exemplo Hello World Compilamos a descrição Hello.idl para a linguagem Java: idlj fall Hello.idl Alguns arquivos em Java serão gerados, sob um diretório HelloApp, que representa o módulo especificado na IDL HelloPOA.java é o adaptador de objetos sobre o qual se instala o skeleton no lado do servidor. _HelloStub.java éo stub do cliente. Hello.java representa a interface IDL traduzida para Java. Estende HelloOperations. HelloHelper.java inclui métodos genéricos do CORBA, que são invocados indiretamente. HelloHolder.java provê um método de solicitação público (como uma operação de cast) do tipo Hello. HelloOperations.java contém as operações declaradas na especificação IDL do objeto (sayhello() e shutdown()). Exemplo Hello World O próximo passo é compilar todos os arquivos: javac *.java HelloApp/*.java Usamos a ferramenta tnameserv para instalar um ORB numa porta qualquer, e automaticamente inicializar seu servidor de nomes. tnameserv ORBInitialPort 2000 Em outra janela de console, executamos a aplicação servidor na mesma máquina onde o ORB está ativo. java HelloServer ORBInitialPort 2000 Executamos a aplicação cliente numa máquina remota, especificando o endereço e a porta do ORB. java HelloClient ORBInitialHost ORBInitialPort 2000 Stringified Reference Também conhecida como Inter Operable Reference (IOR). Representa uma referência a uma instância de objeto qualquer como uma string. Útil quando recebemos uma referência a um objeto distribuído como retorno de um método.

10 Object Invocation Models Passos de uma invocação dinâmica Request type Synchronous One-way Deferred synchronous Failure semantics At-most-once Best effort delivery At-most-once Description Caller blocks until a response is returned or an exception is raised Caller continues immediately without waiting for any response from the server Caller continues immediately and can later block until response is delivered 1.Identificar o Objeto Alvo do qual queremos obter uma referência 2.Pegar a interface do Objeto no Repositório de Interfaces 3.Construir uma invocação ou chamada 4.Invocar a requisição 5.Receber o resultado (quando houver) Invocation models supported in CORBA. DII - exemplo passo a passo The first step in building the request is to initialize the Object Request Broker (ORB) in the DynamicRequest.buildRequest() method. Properties orbproperties = new Properties(); orbproperties.put ( "org.omg.corba.orbinitialhost", getnameserverhost() ); orbproperties.put ("org.omg.corba.orbinitialport", Integer.toString(getNameServerPort() ) ); ORB orb = ORB.init ( new String[ 0 ] /* args */, orbproperties ); The InitialHost and InitialPort properties with which the ORB is initialized tell it where the CORBA NameService is. This NameService is later used to find the CORBA server object on which we want to make a request. The String array argument used to initialize the ORB is used to convey application-specific arguments to the ORB. In this case, none exist. DII - exemplo passo a passo The next step is to get an object reference for the NameService as follows. Note that the NameService has the standard name "NameService" by convention. org.omg.corba.object namingserviceobjref = orb.resolve_initial_references( "NameService" ); NamingContext namecontextref = NamingContextHelper.narrow ( namingserviceobjref ); Using the object reference for the NameService, we can then get an object reference for the server on which we want to make a request. NameComponent path[] = {new NameComponent ( getserverobjectname(), "" ) ; org.omg.corba.object serverobjref = namecontextref.resolve( path ); Using the object reference we obtained for the CORBA server, a DII request object is created for the method we want to invoke. request = serverobjref._request ( getmethodname() );

11 DII - exemplo passo a passo This request object is then configured to reflect the signature of the method we want to invoke. The first step to achieve this is to set the return parameter type. request.set_return_type(getreturnparameter().getcorbatypecode( orb ) ); Note that this call uses polymorphism through the abstract Parameter class to get the CORBA type code for the particular type of the return parameter. For example, for a return parameter with a boolean type, the getcorbatypecode() call is implemented in the BooleanParameter.get CORBATypeCode() method as: return orb.get_primitive_tc (org.omg.corba.tckind.tk_boolean ); DII - exemplo passo a passo Finally, the method arguments of the request may be configured. int numberofargs = getnumberofarguments(); for( int i = 0; i < numberofargs; ++i ) { Parameter argument = getargumentparameter( i ); org.omg.corba.any argumentvalue = argument.addtorequestarguments( request ); argument.initcorbaany( argumentvalue ); The Parameter.addToRequestArguments() makes use of polymorphism through the abstract Flag class to add a new argument to the request according to its direction flag. For example, for an "in" argument, the addtorequestarguments() call on the Parameter class calls the InFlag.add RequestArgument() method, which is implemented as: return request.add_named_in_arg (argumentname); DII - exemplo passo a passo Once the argument is added to the request, its value is set using the Parameter.initCORBAAny() method, which makes use of polymorphism through the abstract Parameter class to set the value according to the type of the parameter. For example, for a string parameter, this method is implemented in the StringParameter.init-CORBAAny() method as: void initcorbaany (org.omg.corba.any any) { any.insert_string( (String) getvalue() ); DII - exemplo passo a passo At this point, the dynamic request is completely configured and may be invoked. After invocation is complete, the results of the request are extracted for the return parameter and arguments with "inout" and "out" flags as shown in DynamicRequest.extractRequestResults(). int numberofarguments = getnumberofarguments(); for( int i = 0; i < numberofarguments; ++i ) { if( getargumentparameter( i ).hasreturnvalue() ) { try { getargumentparameter( i ). setcorbavalue (request.arguments().item( i ).value()); catch(org.omg.corba.bounds e) { e.printstacktrace();

12 DII - exemplo passo a passo The Parameter.hasReturnValue() and Parameter.setCORBAValue() use polymorphism through the abstract Parameter class to determine if a given parameter has a return value and, if so, to set that value respectively. This allows other components to retrieve these values as properties on the DynamicRequest class. For example, the "totalprice" argument in the server method we are invoking has a direction of "out" and is of type Double. The OutFlag.hasReturnValue() is therefore called and is implemented simply as: DII - exemplo passo a passo Finally, after the request results are extracted, components listening to the DynamicRequest bean are notified that a new request has been completed via the DynamicRequest.fireDynamic-RequestEvent() method. These components can then get and process the results of the request as properties on the DynamicRequest bean without concerning themselves with any of the details of the JDK 1.2 CORBA DII implementation. boolean hasreturnvalue() { return true; For a Parameter of type Double the DoubleParameter.setCORBAValue() is called and is implemented as: void setcorbavalue( org.omg.corba.any value ) { setvalue( new Double( value.extract_double() ) ); Client Using DII to Make Remote Method Call import org.omg.corba.*; //mapping of the OMG CORBA APIs to the Java import org.omg.cosnaming.*; //provides the naming service public class DIISimpleClient { public static void main(string argv[]) { ORB myorb = ORB.init(argv, null); //new ORB instance for a standalone application. ORB singleorb = ORB.init(); //new ORB instance for a standalone application. try { // Get a reference to the object convenção org.omg.corba.object ncref = myorb.resolve_initial_references("nameservice"); NamingContext nc = NamingContextHelper.narrow(ncRef); NameComponent ncomp = new NameComponent("ThisOrThatServer", ""); NameComponent[] path = {ncomp; org.omg.corba.object objref = nc.resolve(path); // referência para Object Client Using DII to Make Remote Method Call // Now make a dynamic call to the dothis method. The first step is // to build the argument list. In this case, there's a single String // argument to the method, so create an NVList of length 1. Next // create an Any object to hold the value of the argument and insert // the desired value. Finally, wrap the Any object with a NamedValue // and insert it into the NVList, specifying that it is an input // parameter. NVList arglist = myorb.create_list(1); //Allocates an NVList with Any arg1 = myorb.create_any(); arg1.insert_string("something"); NamedValue nvarg = arglist.add_value ("what", arg1, org.omg.corba.arg_in.value); // Create an Any object to hold the return value of the method and // wrap it in a NamedValue Any result = myorb.create_any(); result.insert_string("dummy"); NamedValue resultval = myorb.create_named_value ("result", result, org.omg.corba.arg_out.value);

13 Client Using DII to Make Remote Method Call // Get the local context from the ORB. // NOTE: This call does not work in Java 1.2, and returns a // NOT_IMPLEMENTED exception. To make this work in Java 1.2, simply // remove this call to get_default_context(), and pass a null pointer // into the _create_request() call below. This example should work // as is with any compliant Java CORBA environment, however. Context ctx = myorb.get_default_context(); // Create the method request using the default context, the name of // the method, the NVList argument list, and the NamedValue for the // result. Then invoke the method by calling invoke() on the Request. Request thisreq = objref._create_request(ctx, "dothis",arglist, resultval); thisreq.invoke(); // Get the return value from the Request object and output results. result = thisreq.result().value(); System.out.println("doThis() returned: " + result.extract_string()); catch (Exception e) { e.printstacktrace(); Service Collection Query Concurrency Transaction Event Notification Externalization Life cycle Licensing Naming Property Trading Persistence Relationship Security Time Corba Services Description Facilities for grouping objects into lists, queue, sets, etc. Facilities for querying collections of objects in a declarative manner Facilities to allow concurrent access to shared objects Flat and nested transactions on method calls over multiple objects Facilities for asynchronous communication through events Advanced facilities for event-based asynchronous communication Facilities for marshaling and unmarshaling of objects Facilities for creation, deletion, copying, and moving of objects Facilities for attaching a license to an object Facilities for systemwide name of objects Facilities for associating (attribute, value) pairs with objects Facilities to publish and find the services on object has to offer Facilities for persistently storing objects Facilities for expressing relationships between objects Mechanisms for secure channels, authorization, and auditing Provides the current time within specified error margins Overview of CORBA services. Serviços CORBA Serviços CORBA Serviço de nomes: Define uma forma mais amigável de referenciar objetos CORBA, através de nomes simbólicos. Ciclo de vida do objeto: Define como os objetos CORBA são criados, removidos, movidos e copiados. Serviço de eventos: Oferece um método assíncrono de comunicação (callback) entre objetos, com o uso de objetos fornecedores e consumidores, que comunicamse através de um canal de eventos.

14 Serviços CORBA Serviço de Relacionamentos: Provê relacionamentos arbitrários entre objetos CORBA. Externalização: Coordena a transformação de objetos CORBA de/para diversos formatos de mídia. Serviço de Transações: Coordena acesso atômico a objetos CORBA. Serviços CORBA Controle de Concorrência: Assegura que a consistência de um objeto não seja comprometida por invocações concorrentes. Serviço de Propriedade: Suporta a associação de tuplas <nome, valor> com objetos CORBA. Serviço de Consultas: Suporta consultas em coleções de objetos CORBA. Serviços CORBA Persistência: Possibilita aos clientes localizar o objeto servidor e invocá-lo somente na hora em que for necessário. Serviço de Negociação: Provê a busca de objetos CORBA baseada nas propriedades que descrevem o serviço oferecido pelo respectivo objeto. Serviço de Nomes O serviço de nomes é organizado de forma hierárquica, definido como um grafo acíclico que possui uma raiz. As conexões entre os nomes registrados podem transcender os limites de um ORB, fornecendo interoperabilidade de maneira transparente.

15 Serviço de Nomes Exemplo de estrutura: Serviço de Negociação Estrutura: Contexto de nomes inicial Contexto de nomes inicial NEGOCIADOR A AnotherORB D Exportação (Oferta de serviço) Importação (Requisição de serviço) B C Hello E F SERVIDOR Utilização de serviço CLIENTE Serviço de Negociação Serviço de Segurança Um serviço de negociação pode ser particionado, segundo um critério qualquer. Diversos negociadores (de diferentes ORB s), que ofereçam serviços num contexto comum, podem organizar-se em federações, de forma a atender as necessidades de uma comunidade de clientes e servidores. Identificação e autenticação de usuários (humanos ou objetos) para verificar se são quem eles dizem ser. Autorização e controle de acesso de usuários, decidindo quais deles devem acessar determinado objeto através de sua identificação ou de seus privilégios.

16 Serviço de Segurança Event and Notification Services (1) Mecanismos de auditoria para identificar corretamente o usuário, mesmo depois de um conjunto de chamadas a vários objetos. Segurança de comunicação entre objetos que estejam executando sobre camadas de comunicação inseguras. Prova a ocorrencia de uma ação através de serviços de não-repudiação que provê a geração de uma evidência de ações e a verificação posterior desta evidência. The logical organization of suppliers and consumers of events, following the push-style model. Event and Notification Services (2) Messaging (1) The pull-style model for event delivery in CORBA. CORBA's callback model for asynchronous method invocation.

17 Messaging (2) Interoperability Message type Request Reply LocateRequest LocateReply CancelRequest CloseConnection MessageError Fragment Originator Client Server Client Server Client Both Both Both Description Contains an invocation request Contains the response to an invocation Contains a request on the exact location of an object Contains location information on an object Indicates client no longer expects a reply Indication that connection will be closed Contains information on an error Part (fragment) of a larger message CORBA'S polling model for asynchronous method invocation. GIOP message types. Portable Object Adaptor (1) Portable Object Adaptor (2) My_servant *my_object; // Declare a reference to a C++ object CORBA::Objectid_var oid; // Declare a CORBA identifier my_object = new MyServant; // Create a new C++ object oid = poa ->activate_object (my_object); // Register C++ object as CORBA OBJECT Mapping of CORBA object identifiers to servants. a) The POA supports multiple servants. b) The POA supports a single servant. Changing a C++ object into a CORBA object.

18 Programação de meta-nível em CORBA In the context of CORBA, there are various mechanisms that can implement the MOP: Smart Proxies, which are application-defined stub implementations that transparently override the default stubs created by an ORB to customize client behavior on a perinterface basis. Portable Interceptors, which are objects that an ORB invokes in the path of an operation invocation to monitor or modify the behavior of the invocation transparently. Servant Managers, which allow server applications to register objects that activate servants on demand, rather than creating all servants before listening for requests. Extensible Transports, which decouple the ORB's transport protocols from its component architecture so that developers can add new protocols without requiring changes to the ORB or application software. CORBA interceptor An object implementing the interceptor interface extending the functionality of the ORB using callback methods without actually modifying the ORB Callback methods Client Server Client Client Request Interceptor Proxy Skeleton Server Request Interceptor Servant methodx() send_request() receive_request() methodx() Portable Interceptors The JavaTM CORBA Object Request Broker (ORB) provides hooks, or interception points, through which ORB services can intercept the normal flow of execution of the ORB. These Portable Interceptors provide a mechanism for plugging in additional ORB behavior, or, by modifying the communications between client and server, for modifying the behavior of the ORB. The example that follows shows different ways of using Portable Interceptors. receive_reply() send_reply() Support for Portable Interceptors is a major recent addition to the CORBA specification. Using RequestInterceptors, one can easily write and attach portable ORB hooks that will intercept any ORBmediated invocation. Using IORInterceptors, one can write code to annotate CORBA object references.

19 Interception Points Clients Logical placement of interceptors in CORBA.

20 Basic and Extended Interceptors Portable Interceptors Application developers can customize the behavior of their software at interception points as follows: Criando uma subclasse da classe base apropriada, tal como PortableInterceptor::ClientRequestInterceptor or PortableInterceptor::ServerRequestInterceptor, and overriding the appropriate hook method(s), such as send_request() or receive_request(). Criando uma instância da subclasse e registrando a mesma no ORB. Interceptors are installed in the ORB via an ORBInitializer object and registered by implementing its pre_init() or post_init() method and calling PortableInterceptor::register_orb_initializer() prior to calling CORBA::ORB_init(). Interceptor: pontos de interceptação Request interception points occur at four points along the end-to-end invocation path from client to server. There are a total of 10 different interception hook methods that can be called at different points in this interceptor chain, including: When a client sends a request (e.g., the send_request() hook is called on the client before the request is marshaled). When a server receives a request (e.g., the receive_request() hook is called on the server after the request is demarshaled). When a server sends a reply (e.g., the send_reply() hook is called on the server before the reply is marshaled). When a client receives a reply (e.g., the receive_reply() hook is called on the client after the reply is demarshaled). Client Request Interceptor A request Interceptor is designed to intercept the flow of a request/reply sequence through the ORB at specific points so that services can query the request information and manipulate the service contexts which are propagated between clients and servers. The primary use of request Interceptors is to enable ORB services to transfer context information between clients and servers.

21 Server Request Interceptor A ServerRequestInterceptor intercepts the flow of a request/reply sequence through the ORB on the server side. IOR Interceptor In some cases, a portable ORB service implementation may need to add information describing the server's or object's ORB service-related capabilities to object references in order to enable the ORB service implementation in the client to function properly. This is supported through the IORInterceptor and IORInfo interfaces. The IOR Interceptor is used to establish tagged components in the profiles within an Interoperable Object Reference (IOR). Interceptor At run time, an interceptor can examine the state of the request that it is associated with and perform various actions based on the state. For example, interceptors can invoke other CORBA operations, access information in a request, insert/extract piggybacked messages in a request's service context list, redirect requests to other target objects, and/or throw exceptions based on the object the original request is invoked upon and the type of the operation. Nested invocations. A request interceptor can invoke operations on other CORBA objects before the current invocation it is intercepting completes. For example, monitoring and debugging utilities can use this feature to log information associated with each operation invocation. To avoid causing infinite recursion, developers must be careful. when performing nested invocations in an interceptor. Accessing request information. Request interceptors can access information associated with an invocation, such as the operation name, parameters, exception lists, return values, and the request id via the MOP interface as defined in the Portable Interceptor specification. Interceptors cannot, however, modify parameters or return values. Request/reply information is encapsulated in an instance of ClientRequestInfo or ServerRequestInfo classes, which derive from the RequestInfo class and contain the information listed above for each invocation. For example, client request interceptors are passed ClientRequestInfo and server request interceptors are passed ServerRequestInfo. Interceptors Service context manipulation. Request interceptors cannot change parameters or the return value of an operation. They can, however, manipulate service contexts that are piggybacked in operation requests and replies exchanged between the clients and servers. A service context is a sequence field in a GIOP message that can transmit "out-of-band" information, such as authentication credentials, transaction contexts, operation priorities, or policies associated with requests. Each service context entry has a unique service context identifier that applications and CORBA components can use to extract the appropriate service context. CORBA Security Service uses request interceptors to insert user identity via service contexts. CORBA Transaction Service uses request interceptors to insert transactionrelated information into service contexts so it can perform extra operations, such as commit/rollback, based on the operation results in a transaction.

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

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

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

Objetos distribuídos. Roteiro. Java IDL

Objetos distribuídos. Roteiro. Java IDL Objetos distribuídos Java IDL Roteiro Java IDL Definindo a interface IDL Compilando a interface IDL Criando o servidor Criando o cliente Rodando a aplicação Rodando a aplicação em duas máquinas Java IDL

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

Java RMI. Alcides Calsavara

Java RMI. Alcides Calsavara Java RMI Alcides Calsavara Objetivos Permitir que um método de uma classe Java em execução em uma máquina virtual JVM chame um método de um objeto (instância de uma classe Java) situado em outra máquina

Leia mais

Computational viewpoint. Engineering Viewpoint

Computational viewpoint. Engineering Viewpoint Processamento Paralelo RM-ODP Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2007/0 - INF02799 RM-ODP Reference Model for Open Distributed Processing Contém conceitos para a especificação de sistemas

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

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company www.iportalmais.pt. Manual

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainware» company www.iportalmais.pt. Manual IPortalMais: a «brainware» company FUNAMBOL FOR IPBRICK MANUAL Easy Linux! Title: Subject: Client: Reference: Funambol Client for Mozilla Thunderbird Doc.: Jose Lopes Author: N/Ref.: Date: 2009-04-17 Rev.:

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

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

Laboratório 3. Base de Dados II 2008/2009

Laboratório 3. Base de Dados II 2008/2009 Laboratório 3 Base de Dados II 2008/2009 Plano de Trabalho Lab. 3: Programação em Transact-SQL MYSQL Referências www.mysql.com MICROSOFT SQL SERVER - Procedimentos do Lado do Servidor (Stored Procedures)

Leia mais

Desenvolvimento de Aplicações Java/CORBA

Desenvolvimento de Aplicações Java/CORBA Tutorial Desenvolvimento de Aplicações Java/CORBA Emerson Ribeiro de Mello, Fábio Favarim e Joni da Silva Fraga {emerson, fabio, fraga@das.ufsc.br Este tutorial ensina como criar uma aplicação distribuída

Leia mais

Cliente/Servidor. Objetos Distribuídos. Graça Bressan. Graça Bressan/LARC 2000 1

Cliente/Servidor. Objetos Distribuídos. Graça Bressan. Graça Bressan/LARC 2000 1 Cliente/Servidor Objetos Distribuídos Graça Bressan Graça Bressan/LARC 2000 1 Objetos São entidades de software que encapsulam dados, ou atributos, e código e que são acessados através de funções ou métodos.

Leia mais

Caracterização dos servidores de email

Caracterização dos servidores de email Caracterização dos servidores de email Neste documento é feita a modulação de um servidor de email, com isto pretende-se descrever as principais funcionalidades e características que um servidor de email

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

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla

COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC. Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1 1. Conceitos Básicos a. Invocação remota (RPC/RMI)

Leia mais

Object Brokers. Tecnologias de Middleware 2004/2005 André Santos

Object Brokers. Tecnologias de Middleware 2004/2005 André Santos Object Brokers Tecnologias de Middleware 2004/2005 André Santos Resumo O que são Object Brokers? Como surgiu o conceito? CORBA Exemplos de utilização Comparação com Java RMI Actualidade (J2EE,.NET) O que

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 Aula 17-18: Middleware: Implementação de RMI (cont.), RPC, Modelo de Eventos, Exemplo com Java RMI Chamadas dinâmicas

Leia mais

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI)

1 a. Sumário. 1. Conceitos Básicos a. Invocação remota (RPC/RMI) b. Semântica de invocação remota c. Invocação remota de métodos (RMI) PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ COMUNICAÇÃO INTER-PROCESSOS JAVA RMI e RPC Prof. Cesar Augusto Tacla http://www.dainf.ct.utfpr.edu.br/~tacla 1. Conceitos Básicos a. Invocação remota (RPC/RMI)

Leia mais

Middleware de Aplicações Paralelas/Distribuídas

Middleware de Aplicações Paralelas/Distribuídas Computação Paralela Middleware de Aplicações Paralelas/Distribuídas João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Outubro 2005 Principais aspectos a gerir pelo Middleware

Leia mais

Serviços: API REST. URL - Recurso

Serviços: API REST. URL - Recurso Serviços: API REST URL - Recurso URLs reflectem recursos Cada entidade principal deve corresponder a um recurso Cada recurso deve ter um único URL Os URLs referem em geral substantivos URLs podem reflectir

Leia mais

Objetos Distribuídos CORBA. Sumário... Comunicação entre processos. Sockets RPC RMI. Arquitetura OMA Vantagens IDL. Eduardo Nicola F.

Objetos Distribuídos CORBA. Sumário... Comunicação entre processos. Sockets RPC RMI. Arquitetura OMA Vantagens IDL. Eduardo Nicola F. Objetos Distribuídos CORBA Sumário... Comunicação entre processos Sockets RPC RMI Arquitetura OMA Vantagens IDL Eduardo Nicola F. Zagari CORBA 2 Sumário... Arquitetura CORBA Interoperabilidade Processo

Leia mais

SISTEMAS DISTRIBUÍDOS

SISTEMAS DISTRIBUÍDOS SISTEMAS DISTRIBUÍDOS CUP Disk Memoey CUP Memoey Disk Network CUP Memoey Disk Remote Method Invocation (RMI) Introdução Solução JAVA para Objetos Distribuídos Um objeto existe em uma máquina É possível

Leia mais

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br

Java 2 Standard Edition. Fundamentos de. Objetos Remotos. Helder da Rocha www.argonavis.com.br Java 2 Standard Edition Fundamentos de Objetos Remotos Helder da Rocha www.argonavis.com.br 1 Sobre este módulo Este módulo tem como objetivo dar uma visão geral, porém prática, da criação e uso de objetos

Leia mais

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainmoziware» company www.iportalmais.pt. Manual Jose Lopes

Easy Linux! FUNAMBOL FOR IPBRICK MANUAL. IPortalMais: a «brainmoziware» company www.iportalmais.pt. Manual Jose Lopes IPortalMais: a «brainmoziware» company www.iportalmais.pt FUNAMBOL FOR IPBRICK MANUAL Easy Linux! Title: Subject: Client: Reference: Funambol Client for Microsoft Outlook Doc.: Author: N/Ref.: Date: 2009-04-17

Leia mais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais

MIDDLEWARE Aplicativos RMI, RPC e eventos Camadas Protocolo Requesição-Respostal Middleware Representação Externa dos Dados Sistemas Operacionais RMI JAVA MIDDLEWARE Aplicativos RMI, RPC e eventos Protocolo Requesição-Respostal Camadas Middleware Representação Externa dos Dados Sistemas Operacionais RMI REMOTE METHOD INVOCATION Invocação remota

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

RPC - CORBA Tecnologias de Middleware

RPC - CORBA Tecnologias de Middleware RPC - CORBA Tecnologias de Middleware 2006/2007 Fernando Martins - fmp.martins@gmail.com Tópicos RPC CORBA Conclusões RPC Remote Procedure Call (RPC) RFC 707 - A High-Level Framework for Network-Based

Leia mais

Invocação de Métodos Remotos

Invocação de Métodos Remotos Invocação de Métodos Remotos Java RMI (Remote Method Invocation) Tópicos Tecnologia RMI Introdução Modelo de camadas do RMI Arquitetura Fluxo de operação do RMI Passos para implementação Estudo de caso

Leia mais

Sistemas Distribuídos Arquiteturas Middlewares

Sistemas Distribuídos Arquiteturas Middlewares Sistemas Distribuídos Arquiteturas s Arquitetura Arquitetura de um sistema é sua estrutura em termos dos componentes e seus relacionamentos Objetivo: garantir que a estrutura satisfará as demandas presentes

Leia mais

Web Services. José Mocito. Web Services. Tecnologias de Middleware 2004/2005. Universidade de Lisboa. 11 de Novembro, 2004

Web Services. José Mocito. Web Services. Tecnologias de Middleware 2004/2005. Universidade de Lisboa. 11 de Novembro, 2004 Tecnologias de 2004/2005 Universidade de Lisboa 11 de Novembro, 2004 ? Parte I Porquê os?? Importantes em cenários de integração entre negócios (B2B - business to business) Necessidade de automatização

Leia mais

Project Management Activities

Project Management Activities Id Name Duração Início Término Predecessoras 1 Project Management Activities 36 dias Sex 05/10/12 Sex 23/11/12 2 Plan the Project 36 dias Sex 05/10/12 Sex 23/11/12 3 Define the work 15 dias Sex 05/10/12

Leia mais

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes

Objetos Distribuídos - Programação Distribuída Orientado a Objetos. Luiz Affonso Guedes Objetos Distribuídos - Programação Distribuída Orientado a Objetos Luiz Affonso Guedes Introdução Conceitos básicos programação distribuída + programação orientada a objetos = Objetos distribuídos Motivação

Leia mais

Service Oriented Architecture SOA

Service Oriented Architecture SOA Service Oriented Architecture SOA Arquitetura orientada aos serviços Definição: Arquitetura de sistemas distribuídos em que a funcionalidade é disponibilizada sob a forma de serviços (bem definidos e independentes)

Leia mais

30/11/2011. DataSnap e Cloud. Deep Dive. Agenda. RAD Cloud Overview DBExpress Novo API Cloud Novidades no DataSnap

30/11/2011. DataSnap e Cloud. Deep Dive. Agenda. RAD Cloud Overview DBExpress Novo API Cloud Novidades no DataSnap DataSnap e Cloud Deep Dive Agenda RAD Cloud Overview DBExpress Novo API Cloud Novidades no DataSnap 1 API Cloud 2 O que é novo no API Cloud? Delphi API for accessing cloud application services from Amazon

Leia mais

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos

Middleware. Camada Intermediária de Suporte a Sistemas Distribuídos Middleware Camada Intermediária de Suporte a Sistemas Distribuídos Alternativas de comunicação entre processos (IPC) Mecanismos de IPC tradicionais (ou de baixo nível) Memória compartilhada, filas de mensagens,

Leia mais

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Invocação de Métodos Remotos RMI (Remote Method Invocation) Invocação de Métodos Remotos RMI (Remote Method Invocation) Programação com Objetos Distribuídos Um sistema de objetos distribuídos permite a operação com objetos remotos A partir de uma aplicação cliente

Leia mais

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5

Princípios de Sistemas Distribuídos. Tecnologias utilizadas em sistemas distribuídos Aula 5 Princípios de Sistemas Distribuídos Tecnologias utilizadas em sistemas distribuídos Aula 5 Conceitos de comunicação entre processos Interprocess Communication (IPC) Sistemas distribuídos são construídos

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 (continuação) WSDL - Web Service Definition Language WSDL permite descrever o serviço que será oferecido

Leia mais

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução Chamadas Remotas de Chamada Remota de Procedimento (RPC) ou Chamada de Função ou Chamada de Subrotina Método de transferência de controle de parte de um processo para outra parte Procedimentos => permite

Leia mais

SISTEMAS DISTRIBUÍDOS 1º EXAME

SISTEMAS DISTRIBUÍDOS 1º EXAME SISTEMAS DISTRIBUÍDOS 1º EXAME Ano Lectivo: 2005/2006 Data: 12 de Junho de 2006 Ano Curricular: 4º Ano 2º Semestre Duração: 2h00 INFORMAÇÕES GERAIS 1. O exame encontra-se em Inglês devido à existência

Leia mais

Questão 1. Benefícios. Benefícios. Desafios. Desafios. 1. Quais são os desafios e benefícios em potencial da computação distribuída?

Questão 1. Benefícios. Benefícios. Desafios. Desafios. 1. Quais são os desafios e benefícios em potencial da computação distribuída? Questão 1 1. Quais são os desafios e benefícios em potencial da computação distribuída? Processamento Paralelo Correção Simulado Prof. João Paulo A. Almeida (jpalmeida@inf.ufes.br) 2008/01 - INF02799 Com

Leia mais

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25

SUMÁRIO CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 SUMÁRIO LISTA DE FIGURAS LISTA DE TABELAS LISTA DE SIGLAS E ABREVIATURAS Pág. CAPÍTULO 1 - INTRODUÇÃO 19 CAPÍTULO 2 - CONCEITOS 25 2.1 A tecnologia de orientação a objetos 25 2.1.1 Projeto de software

Leia mais

Tolerância a Faltas nos Web Services

Tolerância a Faltas nos Web Services Tolerância a Faltas nos Web Services Reliable Messaging Protocol - RMP RMP Tolerar faltas temporárias na comunicação Garantir a semântica da invocação do Web Service independentemente do protocolo de transporte

Leia mais

CORBA (Common Object Request Broker Architecture)

CORBA (Common Object Request Broker Architecture) CORBA (Common Object Request Broker Architecture) Sistemas Distribuídos Desafios para a realização de sistemas Distribuídos Exemplos de Sistemas Distribuídos CORBA Evolução Histórica OMA (Object Management

Leia mais

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS

Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Prof. Marcelo de Sá Barbosa SISTEMAS DISTRIBUIDOS Objetos distribuídos e invocação remota Introdução Comunicação entre objetos distribuídos Chamada de procedimento remoto Eventos e notificações Objetos

Leia mais

Remote Procedure Call

Remote Procedure Call Remote Procedure Call O aumento de complexidade das aplicações, torna desejável um paradigma que permite software distribuído ser programado de maneira similar a aplicações convencionais que executam em

Leia mais

Laboratório 5. Base de Dados II 2008/2009

Laboratório 5. Base de Dados II 2008/2009 Laboratório 5 Base de Dados II 2008/2009 Plano de Trabalho Lab. 4: Programação em Transact-SQL Referências MICROSOFT SQL SERVER - Triggers (gatilhos). - Exercícios 1. Conceito. - Os Stored Procedures permitem

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

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Invocação de Métodos em Objectos Remotos

Invocação de Métodos em Objectos Remotos Invocação de Métodos em Objectos Remotos Invocações de métodos remotas e locais A remote invocation B local C invocation local E invocation local invocation D remote invocation F Page 1 1 Invocação de

Leia mais

Desenvolvimento Web com Framework Demoiselle versão 1.1

Desenvolvimento Web com Framework Demoiselle versão 1.1 Desenvolvimento Web com Framework Demoiselle versão 1.1 Módulo 10: Monitoração de Ambientes Autor: Rodrigo Hjort SERPRO / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br

Leia mais

Capítulo V Sistemas de Objectos Distribuídos

Capítulo V Sistemas de Objectos Distribuídos From: Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 3, Addison-Wesley 2001 From: Wolfgang Emmerich Engineering Distributed Objects John Wiley & Sons, Ltd 2000 1 O modelo

Leia mais

Curso CP100A - Google Cloud Platform Fundamentals (8h)

Curso CP100A - Google Cloud Platform Fundamentals (8h) Curso CP100A - Google Cloud Platform Fundamentals (8h) Este curso virtual liderado por um instrutor, com 8 horas de duração, introduz os participantes aos produtos e serviços do Google Cloud Platform.

Leia mais

O modelo de arquitetura CORBA e suas aplicações

O modelo de arquitetura CORBA e suas aplicações ABR. MAI. JUN. 2004 ANO X, N º 37 157-163 INTEGRAÇÃO 157 O modelo de arquitetura CORBA e suas aplicações ANA PAULA GONÇALVES SERRA* Resumo Nos últimos anos, os sistemas de informação nas empresas têm evoluído

Leia mais

Plataforma para Agentes

Plataforma para Agentes Plataforma para es JATLite - Java Template, Lite O que é o JATLite? http://java.stanford.edu/ http://www.fe.up.pt/~eol/aiad/jatlite/doc/index.html Pacote de programas em Java permitindo: rápida criação

Leia mais

3 Propostas de Travessias de Firewalls/NAT

3 Propostas de Travessias de Firewalls/NAT 3 Propostas de Travessias de Firewalls/NAT Este capítulo irá apresentar as propostas deste trabalho para que aplicações que utilizem CORBA como plataforma de comunicação possam atravessar firewalls/nat.

Leia mais

Modelos de Consistência e Replicação de Dados

Modelos de Consistência e Replicação de Dados Modelos de Consistência e Replicação de Dados Prof. Raul Ceretta Nunes Curso de Ciência da Computação ELC1018 - Sistemas Distribuídos 1 Introdução SD é adequado para replicação de dados Replicas devem

Leia mais

LICENCIATURA EM ENG. DE SISTEMAS E INFORMÁTICA Redes e Serviços de Banda Larga. Laboratório 4. OSPF Backbone

LICENCIATURA EM ENG. DE SISTEMAS E INFORMÁTICA Redes e Serviços de Banda Larga. Laboratório 4. OSPF Backbone Laboratório 4 OSPF Backbone Equipamento necessário: Três OmniSwitches Objectivo: Este laboratório tem como objectivo familiarizar os alunos com as configurações RIP em comutadores OmniSwitch. Sintaxe dos

Leia mais

Desenvolvendo uma aplicação CORBA utilizando Java

Desenvolvendo uma aplicação CORBA utilizando Java Desenvolvendo uma aplicação CORBA utilizando Java Tecgraf PUC-Rio fevereiro de 2011 Exemplo passo-a-passo Veremos um exemplo, passo-a-passo, de desenvolvimento de aplicações CORBA usando Java Para desenvolver

Leia mais

OMA (Object Management Arquitecture): Application Interfaces. Domain Interfaces. Domain. Interfaces. Object Request Broker (ORB) Object Services

OMA (Object Management Arquitecture): Application Interfaces. Domain Interfaces. Domain. Interfaces. Object Request Broker (ORB) Object Services 1 Copyright 1998, 1999 Francisco Reverbel OMA (Object Management Arquitecture): Application Interfaces Domain Domain Interfaces Interfaces Object Request Broker (ORB) Object Services 2 Copyright 1998,

Leia mais

Componentes para Computação Distribuída

Componentes para Computação Distribuída Componentes para Computação Distribuída Conceitos Foi a partir do fenômeno da Internet (WWW), no início dos anos noventa, que a computação distribuída passou a ter relevância definitiva, a ponto de a Internet

Leia mais

Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures

Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures GeoInfo - 2006 Interoperability through Web Services: Evaluating OGC Standards in Client Development for Spatial Data Infrastructures Leonardo Lacerda Alves Clodoveu A. Davis Jr. Information Systems Lab

Leia mais

User interface evaluation experiences: A brief comparison between usability and communicability testing

User interface evaluation experiences: A brief comparison between usability and communicability testing User interface evaluation experiences: A brief comparison between usability and communicability testing Kern, Bryan; B.S.; The State University of New York at Oswego kern@oswego.edu Tavares, Tatiana; PhD;

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

Desenvolvimento em CORBA. Novos Desenvolvimentos em CORBA

Desenvolvimento em CORBA. Novos Desenvolvimentos em CORBA Desenvolvimento em CORBA Onde utilizar CORBA? CORBA é uma arquitetura para sistemas distribuídos, tipicamente utilizada em: novos desenvolvimentos; integração de produtos e sistemas legados ; hooks e gateways

Leia mais

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP).

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP). EN3610 Gerenciamento e interoperabilidade de redes Prof. João Henrique Kleinschmidt Prática SNMP Net-SNMP (http://www.net-snmp.org) é um conjunto de aplicações usado para implementar SNMPv1, SNMPv2 e SNMPv3.

Leia mais

CMDB no ITIL v3. Miguel Mira da Silva. mms@ist.utl.pt 919.671.425

CMDB no ITIL v3. Miguel Mira da Silva. mms@ist.utl.pt 919.671.425 CMDB no ITIL v3 Miguel Mira da Silva mms@ist.utl.pt 919.671.425 1 CMDB v2 Configuration Management IT components and the services provided with them are known as CI (Configuration Items) Hardware, software,

Leia mais

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA

OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA OBJETOS DISTRIBUÍDOS E INVOCAÇÃO REMOTA SUMÁRIO Introdução Comunicação entre objetos distribuídos Eventos e Notificações 1.INTRODUÇÃO Middleware oferece: Transparência de localização Independência de protocolos

Leia mais

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP).

Para iniciar um agente SNMP, usamos o comando snmpd. Por padrão, aceita requisições na porta 161 (UDP). EN3610 Gerenciamento e interoperabilidade de redes Prof. João Henrique Kleinschmidt Prática SNMP 1 MIBs RMON No Linux os arquivos MIB são armazenados no diretório /usr/share/snmp/mibs. Cada arquivo MIB

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 ao CORBA

Uma Introdução ao CORBA Uma Introdução ao CORBA Eduardo Link, Everton Batista Petró Alexandre, Joe Luiz Wolf, Marcelo da Silva Strzykalski Resumo. A heterogeneidade dos ambientes de hardware e software empregados em sistemas

Leia mais

CAPÍTULO 5 CORBA 5.1 MODELO DE OBJETO

CAPÍTULO 5 CORBA 5.1 MODELO DE OBJETO 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

Leia mais

APÊNDICE A EXEMPLO DE APLICAÇÃO

APÊNDICE A EXEMPLO DE APLICAÇÃO APÊNDICE A EXEMPLO DE APLICAÇÃO Para ilustrar os três métodos de distribuição de objetos apresentados nesta dissertação iremos, a seguir, mostrar um exemplo de implementação de uma aplicação. São apresentadas

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

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos Marcelo Lobosco DCC/UFJF Comunicação em Sistemas Distribuídos Aula 06 Agenda Modelo Cliente-Servidor (cont.) Invocação Remota de Método (Remote Method Invocation RMI) Visão Geral

Leia mais

Sistemas Distribuídos

Sistemas Distribuídos Sistemas Distribuídos LICENCIATURA EM COMPUTAÇÃO Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Relembrando... Mecanismos de Comunicação Middleware Cenário em uma rede Local

Leia mais

5/10/10. Implementação. Building web Apps. Server vs. client side. How to create dynamic contents?" Client side" Server side"

5/10/10. Implementação. Building web Apps. Server vs. client side. How to create dynamic contents? Client side Server side 5/10/10 Implementação Mestrado em Informática Universidade do Minho! 6! Building web Apps How to create dynamic contents?" Client side" Code runs on the client (browser)" Code runs on a virtual machine

Leia mais

Processes. Chapter 3 PROCESSOS. O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos.

Processes. Chapter 3 PROCESSOS. O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos. Processes Chapter 3 PROCESSOS O capitulo anterior concentrou-se na comunicação em Sistemas Distribuídos. Essa comunicação acontece entre processos e eles são fundamentais em SDs. O conceito de processos

Leia mais

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science (Tradução e Adaptação Ricardo Anido - IC/Unicamp) Capítulo 04: Comunicação Versão: 20 de março de 2014

Leia mais

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos

UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA. Sistemas Distribuídos UNIVERSIDADE FEDERAL DE GOIÁS INSTITUTO DE INFORMÁTICA Sistemas Distribuídos Mestrado em Ciência da Computação 1o. Semestre / 2006 Prof. Fábio M. Costa fmc@inf.ufg.br www.inf.ufg.br/~fmc/ds-msc2006 Aula

Leia mais

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services

Livro de Receitas. Modelação Engenharia de Software Sistemas Distribuídos. 2009-04-17 Versão 1.1. Framework de aplicações com Web Services Modelação Engenharia de Software Sistemas Distribuídos Departamento Engenharia Informática Livro de Receitas Framework de aplicações com Web Services 2009-04-17 Versão 1.1 Índice Índice... 2 Nota prévia...

Leia mais

Capítulo 2. Charm++ 16

Capítulo 2. Charm++ 16 2 Charm++ O Charm++ é uma linguagem orientada a objetos para programação paralela baseada em C++ (34). Ela possui uma biblioteca de execução para suporte a computação paralela que se chama Kernel do Charm

Leia mais

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Tutorial RMI (Remote Method Invocation) por Alabê Duarte Tutorial RMI (Remote Method Invocation) por Alabê Duarte Este tutorial explica basicamente como se implementa a API chamada RMI (Remote Method Invocation). O RMI nada mais é que a Invocação de Métodos

Leia mais

Comunicação. Parte II

Comunicação. Parte II Comunicação Parte II Carlos Ferraz 2002 Tópicos Comunicação Cliente-Servidor RPC Comunicação de objetos distribuídos Comunicação em Grupo Transações Atômicas Comunicação Stream 2 Comunicação cliente-servidor

Leia mais

É a associação de mais de um fluxo de execução em um único processo.

É a associação de mais de um fluxo de execução em um único processo. Profa. Rita Rodorigo Threads Um processo é uma abstração que reúne uma série de atributos como espaço de endereçamento descritores de arquivos abertos, quotas, etc. Um processo possui ainda uma área de

Leia mais

Aplicação de design patterns no desenvolvimento de sistemas distribuídos

Aplicação de design patterns no desenvolvimento de sistemas distribuídos Aplicação de design patterns no desenvolvimento de sistemas distribuídos Fabiano Oss (FURB) fabiano.oss@benner.com.br Everaldo Artur Grahl (FURB) egrahl@furb.br Maurício Capobianco Lopes (FURB) mclopes@furb.br

Leia mais

Tese / Thesis Work Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java

Tese / Thesis Work Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java Licenciatura em Engenharia Informática Degree in Computer Science Engineering Análise de desempenho de sistemas distribuídos de grande porte na plataforma Java Performance analysis of large distributed

Leia mais

Adriano Reine Bueno Rafael Barros Silva

Adriano Reine Bueno Rafael Barros Silva Adriano Reine Bueno Rafael Barros Silva Introdução RMI Tecnologias Semelhantes Arquitetura RMI Funcionamento Serialização dos dados Criando Aplicações Distribuídas com RMI Segurança Exemplo prático Referências

Leia mais

Sistemas Distribuídos. Web Services. Edeyson Andrade Gomes. www.edeyson.com.br

Sistemas Distribuídos. Web Services. Edeyson Andrade Gomes. www.edeyson.com.br Sistemas Distribuídos Web Services Edeyson Andrade Gomes www.edeyson.com.br SUMÁRIO Visão geral Arquitetura Web Services Desenvolvimento 2 Visão Geral Web Services Usados para disponibilizar serviços na

Leia mais

Aplicações e Arquitetura CORBA. Edvar Oliveira edvar@ufpa.br

Aplicações e Arquitetura CORBA. Edvar Oliveira edvar@ufpa.br Aplicações e Arquitetura CORBA Edvar Oliveira edvar@ufpa.br setembro/ 2004 Tópicos Modelo Cliente/Servidor; Comunicação no modelo cliente/servidor; A arquitetura CORBA; Componentes da arquitetura CORBA;

Leia mais

É o resultado da execução do seguinte comando.

É o resultado da execução do seguinte comando. Rotinas RRN 05194 Causa da Ativação da Mensagem É o resultado da execução do seguinte comando. CRN 05454 HANDLE-RESTORE-DATA O informe de resultados também é exibido como um informe não solicitado, se

Leia mais

Solicitação de Mudança 01

Solicitação de Mudança 01 Solicitação de Mudança 01 Refatorar a especificação da linha de produtos Crisis Management System permitindo que o suporte ao registro de LOG seja opcional. Isso significa que o comportamento descrito

Leia mais

Sistemas Distribuídos Java Sockets

Sistemas Distribuídos Java Sockets Sistemas Distribuídos Java Sockets Departamento de Informática, UFMA Graduação em Ciência da Computação Francisco José da Silva e Silva 1 Introdução a Java Sockets Socket é o ponto final de um enlace de

Leia mais

Objetos Distribuídos. Nazareno Andrade

Objetos Distribuídos. Nazareno Andrade Objetos Distribuídos Nazareno Andrade O Problema Orientação a objetos é um paradigma poderoso Modularidade, extensibilidade, manutenibilidade Porque distribuir os objetos: Localidade dos objetos Tolerância

Leia mais

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática

Sistemas Paralelos e Distribuídos - 2003/2004 Curso: Matemática /Informática Sistemas Distribuídos - 2003/2004 Curso: Ensino da Informática Java RMI - Remote Method Invocation Folha 5-1 No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Métodos Formais em Engenharia de Software. VDMToolTutorial

Métodos Formais em Engenharia de Software. VDMToolTutorial Métodos Formais em Engenharia de Software VDMToolTutorial Ana Paiva apaiva@fe.up.pt www.fe.up.pt/~apaiva Agenda Install Start Create a project Write a specification Add a file to a project Check syntax

Leia mais

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Num sistema de objectos distribuídos, dois conceitos são fundamentais. Folha 10-1 Java RMI - Remote Method Invocation No modelo de programação orientada a objectos, vimos que um programa consiste numa colecção de objectos que comunicam entre si através da invocação dos seus

Leia mais

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos Descrição Implemente nesta atividade de laboratório um programa em Java utilizando threads

Leia mais