Middleware

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/52

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 9:32 AM on 12/7/25
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai

No analytics yet

Send a link to your students to track their progress

53 Terms

1
New cards

Quais são os problemas dos sockets?

A comunicação via sockets é de baixo nivel e exige que o programador trate de: definição de protocolos

  • serialização e desserialização

  • tratamento de erros

  • endereçamento e portas

  • representação de dados heterogéneos. REPETITIVO, ERROS, POUCO PRODUTIVO

2
New cards

Qual foi a solução encontrada?

O Middleware

3
New cards

O que é o Middleware?

Uma camada de software que abstrai detalhes de comunicação entre processos distribuídos, evitando que programadores lidem diretamente com sockets, protocolos e serialização.

4
New cards

Porque é que o MiddleWare é necessário?

Para evitar repetição de código genérico, reduzir erros, simplificar o desenvolvimento e aumentar produtividade em sistemas distribuídos.

Sistematiza tarefas como marshaling/unmarshaling, define uma representação externa de dados, define um protocolo de pedido-resposta

5
New cards

Quais as vantagens do Middleware?

Facilita desenvolvimento de aplicações distribuidas; Desenvolvilmento mais rápido; Menos propicio a erros; Complexidade das aplicações reduzida.

6
New cards

Quais as desvantagens?

Menos flexível (porque temos de aceitar o modelo importo), mais overhead (+ camadas), maior consumo de recursos devido a mais componentes ativos, mais custos de processamento de dados

7
New cards

Qual é o objetivo do RPC?

Permitir invocar procedimentos remotos como se fossem locais, permite que um cliente invoque processamentos num espaço de endereçamento distinto, na mesma máquina ou máquinas diferentes.

8
New cards

Quais foram os desafios tratados pelo RPC?

Como tornar a invocação remota transparente. (o programador não perceve que o procedimento é remoto)

A especificação das invocações suportadas por serviços (IDL)

Como trocar mensagens entre máquinas distintas que podem ter os seus dados representados de formas diferentes? (Representação externa de dados)

Como localizar o serviço? (binding)

Como lidar com erros (através de politicas)

9
New cards

Como é definida a interface num RPC?

Através de uma IDL, que é uma linguagem de definição de interface que descreve métodos, parâmetros e tipos usados no serviço.

10
New cards

Exemplos de IDL

COBRA IDL, SUN XDR…

11
New cards

Porque é que RPC usa apenas passagem por valor?

Porque apontadores locais não têm significado em espaços de endereçamento distintos. Também pode ser designada por cópia

12
New cards

Como são feitas as chamadas em RPC?

O middleware deve esconder a heterogeneidade dos vários sistemas que estão a comunicar, e a comunicação é através da representação externa

13
New cards

Como funciona a transparência de localização?

Através de binding, que é o processo de associar o cliente ao servidor. Pode ser estático (em compilação) ou dinâmico (via serviço de registo).

14
New cards

Qual tipo de binding é mais desejável?

O dinâmico, porque permite que os servidores registem os serviços que exportem e permite que os clientes procurem o serviço pelo nome

15
New cards

O que faz o Serviço de Registo RPC? E quais as vantagens?

Regista serviços, remove serviços e devolve porta/endereço de serviços registados (LookUp). Assim os servidores podem mudar de máquina, sem quebrar clientes

16
New cards

Explica como é feita a remote procedure call?

Aqui, o cliente e o servidor funcionam como dois processos separados, não é preciso que eles estejam na mesma máquina. Eles comunicam através de STUBS, o cliente tem um stub e o servidor outro.

O stub cliente prepara os argumentos e converte para XDR, depois cria uma mensagem de pedido, e entrega ao network para transportar.

Na rede, a mensagem entra no mundo distribuido e é enviada.

Chega ao Server Stub, onde é unmarshalized e é aqui que é invocado o processo real.

A mensagem chega finalmente ao Servidor

17
New cards

RPC gera código automático a partir de que?

A partir da linguagem de definição definida na imterface (IDL) para descrever serviços

18
New cards

O que distingue RMI de RPC?

RMI é orientado a objetos e permite invocar métodos remotos de objetos, não apenas procedimentos.

19
New cards

Como funciona o cliente-servidor em RMI?

Os servidores geram objetos remotos e os clientes invocam métodos dos objetos fazendo uma invocação remota.

20
New cards

Como é a interface remota de RMI?

Uma interface remota, declara as assinaturas dos métodos remotos, declara os métodos que podem ser invocados remotamente, define: nome, parâmetros,tipos…

Objetos em outros espaços de endereçamento apenas podem invocar métodos declarados na interface remota do objeto;

Objetos mo mesmo espaço de endereçamento podem invocar todos os métodos disponibilizados pelo objeto.

21
New cards

Há serialização de dados em RMI?

Sim, os argumentos de métodos remotos têm de ser serializados

22
New cards

Passagem de parâmetros

Aqui, os objetos que têm uma referencia remota e podem ser passados por referência, o que vai viajar pela rede são as referencias

23
New cards

Em que se baseia a referência remota?

Invocar um objeto implica ter uma referência para esse objeto, as referências remotas são REFERÊNCIAS para objetos remotos e permitem a invocação de método remotos, são referencaias para um serviço disponivel na rede

24
New cards

RMI - serviço de nomes

qualquer objeto remoto necessita de ter uma referência remota que permita a outros objetos fazer chegar as suas invocações ao local certo, e os serviços de nomes podem ajudar a encontrar a referência de um determinado objeto a partir do nome do seu serviço

25
New cards

Para que serve o RMI Registry?

Serviço de nomes que associa nomes a objetos remotos, permitindo lookup por clientes.

26
New cards

JAVA RMI?

Permite a um objeto numa java virtual machine invocar ps métodos de um objeto numa putra JVM de forma quase transparente para o programador

27
New cards

Como funciona o RMI?

Imaginemos que temos duas JVM, e temos dois objetos A e B, no objeto A encontra-se o cliente e no objeto B o servidor. O cliente pretende invocar um método num objeto remoto B.

Como o vai fazer?

Em cliente, vamos ter um proxy/stub de B que tem exatamente a mesma interface que o objeto real e finge ser esse objeto remoto, este proxy vai encaminhar o pedido do cliente numa mensagem para o objeto remoto de B artravés do módulo das comunicações.

Do lado do servidor temos o Skeleton que é responsável por desemoenhar o papel de um cliente que invoca os métodos no objeto remoto, quando chega um pedido de invocação de um cliente é necessário: interpretar os dados e construir as respetivas estrutt de dados (unmarsh), interpretar o mºetodo na verdadeira implem do obj remoto, depois serializa o resultado e devolvê-lo na mesnag para o cliente (marsh)

Os módulos de comunicação de ambos os lados cooperam na execução do protocolo pedido-resposta que suporta a invocação de métodos remotos, o tipo de protocolo determina o tipo de semântica de invocação

Módulo de transferências remotas é responsável por gerir a tradução entre referências locais para (obj proxys ou skelet) e referências remotas e tambem criar refer remotas, permite acima de tudo ao modulo de comunicações saber para onde encaminhar uma invocação remota ou entregar uma resposta.

28
New cards

Quando é que é criado um novo proxy?

sempre que o serviço devolve uma referência a um objeto remoto é criado um novo proxy, o proxy é destruido quando o cliente deixa de o usar

29
New cards

Como funciona a geração automática de código ?

Um interface remoto JAVA extende o interface java.rmi.remote, a partir da definição do interface remoto são gerados automat quase todos os componentes que suportam a comunicação RMI entre o cliente e o server.

O programador apenas tem de desenvolv o programa cliente e o prog servidor

30
New cards

Quando surge a necessidade de um carregamento dinâmico de código?

Caso não tenha classe, a classe tem de ser carregada a partir de URL

Caso a invocação de um método remoto num objeto do qual conhecemos a interface, mas não temos nenhuma implantação

31
New cards

Como é que o java faz esse carregamento?

A partir de um URL, usando codebase que identifica o endereço onde o bytecode de uma detrminada classe pode ser obtido

32
New cards

interfaces remotas

define os métofos que podem ser invocados remotamente através do RMI, todos os mºetodos devem lançar RemoteException para forçar o programador a tratar erris que n existem em chaamadas locais

33
New cards

O que é web service?

conjunto de operações que podem ser usadas por aplicações cliente usando protocolos da net

34
New cards

Como é a representação externa de dados em RPC Web Services?

As mensagens são representadas em XML

35
New cards

O que é SOAP?

Protocolo baseado em XML para pedidos e respostas estruturadas.

36
New cards

O que é WSDL?

Linguagem XML que descreve a interface do Web Service: operações, parâmetros, tipos, binding e endpoint.

37
New cards

O que é UDDI?

Diretoria/discovery service que permite publicar e descobrir Web Services dinamicamente.

38
New cards

Exemplo de invocação de web services?

O cliente questiona onde pode encontrar certo serviço (UDDI) e o server responde a localização desse serviço.

Depois, o cliente pergunta como é que exatamente deve fazer para o usar, o server responde com o WSDL.

Depois de saber, usa SOAP para os pedidos

39
New cards

Existe transparência direta nos Web Services?

Não, mas existem várias biblitoecas que permitem integrar o suporte a web services diretamente no ambiente de programação

Com base na descrição WSDL é gerado automaticamente um código necessário para interagir com esse serviço

40
New cards

Principais desvantagens de SOAP Web Services

Ineficientes, XML pesado, pobre escalabilidade, complexidade alta, HTTP usado apenas como transporte, difícil cache

41
New cards

Qual é a grande vantagem dos SOAP Web Services?

Interoperabilidade entre diferentes linguagens e plataformas.

Interoperabilidade entre diferentes linguagens e plataformas.

42
New cards

O que é REST?

Modelo arquitetural para sistemas distribuídos baseado na Web e nas capacidades do HTTP.

43
New cards

O que é uma API RESTful?

API que segue os princípios de REST: recursos, métodos HTTP, stateless, cache, interface uniforme, etc.

44
New cards

Modelo Cliente Servidor

Servidores lidam com lógica e persistência

Clientes lidam com a interface e experiência do utilizador

45
New cards

Stateless

Cada pedido contém toda a informação necessária; servidor não guarda estado.

46
New cards

Cacheable

Respostas devem indicar se podem ser cacheadas; aumenta eficiência e escalabilidade

47
New cards

Interface Uniforme

Recursos identificados por URI
Manipulados via métodos HTTP
Representações autodescritivas
Hypermedia (HATEOAS)

48
New cards

Sistema por Camadas

Cliente só conhece a camada com que comunica; oculta serviços internos (API gateways, microserviços).

49
New cards

O que é um recurso em REST?

Qualquer entidade com significado que possa ser identificada via URI e que tenha representações.

50
New cards

O que é uma representação em REST?

Estado serializado de um recurso (ex.: JSON, XML, HTML).

51
New cards

Porque é que REST é altamente escalável?

Porque é stateless, suportado por cache e baseado numa interface uniforme que simplifica o sistema.

52
New cards

Diferenças em REST e RPC na invocação de métodos remotos

RPC: Referência ao serviço + nome do método + parâmetros.

REST: referência é o URL do recurso + métodos standard do HTTP + parâmetros estão no URL ou no corpo da mensagem HTTP

53
New cards

Conectividade

O estado da aplicação é exposto por meio de um URI, as aplicações cliente devem seguir os links como forma de navegação no estado da aplicação