5 - Middleware Flashcards

1
Q

Middleware

A

Middleware is a type of software used to manage and facilitate interactions between applications across computing platforms

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is Middleware used for?

A

Middleware enables the distribution of applications to multiple computers in the network

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Middleware technologies (3)

A
  • Common Object Request Broker Architecture (CORBA)
  • Distributed Component Object Model (DCOM)
  • Remote Method Invocation (RMI)
  • Also: Web Services (extension of middleware concept)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Abstractions of middleware

A
  • Remote Procedure Call
  • Distributed Objects
  • Message Queues
  • Web Services
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Remote Procedure Calls (RPC)

A

A remote procedure call is the synchronous language level transfer of control between programs in disjoint address spaces whose primary communication medium is a narrow channel.
Ein Remote-Prozeduraufruf ist die synchrone Übertragung der Steuerung auf Sprachebene zwischen Programmen in disjunkten Adressräumen, deren primäres Kommunikationsmedium ein schmaler Kanal ist.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What are RPC used for?

A
  • RPC allows functions to be called from other address spaces (frequently on another computer on a shared network)
  • Usually, the called functions and the calling program are not executed on the same computer
  • The general idea of a procedure call fits the request response pattern
    -> The client makes a request to some external application, sleeps, and finds the result after
    control is returned to the procedure
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Client Stub

A
  1. Can be called via regular procedure call

2. Marshals (verpacken) arguments and sends request message to server

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Server stub

A
  1. Receives request message and unmarshals (entpacken)
    arguments
  2. Calls server procedure
  3. Marshals results and sends response message to client
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Marshalling: How is problem of serialization of Arguments and return values of procedures solved?

A
  • RPC defines application layer protocol above transport layer
    1. Format and sequence of messages (requests,
      response, binding, etc.)
    2. Mapping to transport protocol(s)
  • Additionally, specifies encoding of language types (XDR, XML, ..) to message payload

-> Standard protocols and encodings are key for interoperability between different middleware systems

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Binding: How is problem of specifying what server the client want to bind to solved?

A

Static Binding: Client statically bound to address of
server
+ Simple, No Overhead
- No load balancing, No failover (Ausfallversicherung)

Dynamic Binding: Client dynamically locates server before (first) call
+ enables load balancing, redundant servers provide failover
- Requires additional service, Overhead of lookup

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Portmapping and dispatching: How is problem of dispatching requests to correct process and procedure solved?

A

Portmapping in RPC:

  • Client specifies address, program, and version number of server
  • Portmapper returns port of server process
  • Server stub dispatches request message to correct method implementation
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What are the three types of Middleware?

A
  1. Message-Oriented Middleware
  2. Transaction-Oriented Middleware
  3. Object-Oriented Middleware
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Message oriented middleware (MOM)

A

Message oriented middleware (MOM) is any middleware infrastructure that provides messaging capabilities . It provides a means to build distributed systems, where distributed processes communicate through messages exchanged via message queuing or message passing

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How are messages exchanged?

A
  • Messages are exchanged peer to peer (mostly in XML format)
  • Asynchronous Message Passing
    or
  • Message queue as an intermediary (Message Queuing)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Massage passing (Asynchronous)

A
  • Client does not wait for response

- refers to transient communication between two processes that are active at the same time

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Message Queuing

A
  • Message queue accepts messages to different programs; addressed programs are activated as needed, answers can be fetched later from the queue
  • Queue manager can optimize the performance (e.g., prioritization, load allocation)
  • Queue manager utilizes persistence and transaction support to protect against loss

-The message queuing model requires an additional intermediary component, which is called the message queue (essentially a mailbox independent of the receiver)

17
Q

Message Broker

A
  • Sender does not need to be aware on which system the server is running
  • Receiver can change location during the runtime location dependency is reduced
  • Option to change to multicast or broadcast system (not deleting message after first deque operation) -> option for multiple receivers
18
Q

What are two MOM software examples

A

Microsoft Message Queue
- Used for simple integration of Windows applications

WebSphere MQ

  • Available on almost all platforms
  • Better scalable because available on more powerful platforms
  • Higher fault tolerance, greater reliability of delivery of messages, higher security, better database access
  • Broadcasting, publish/subscribe service
  • Mature, tested
  • Disadvantage: Installation consuming
19
Q

Transaction Oriented Middleware (TOM)

A

Transaction Oriented Middleware (TOM) is any middleware infrastructure that supports the execution of electronic transactions in a distributed setting

20
Q

Two-Phase commit

A
Prepare Phase:
A coordinator (usually the process that initiates the committing) obtains approval or denial to commit the data changes of all the processes involved

Commit Phase:
(When all participants agree) the coordinator decide to ‚Commit’. If the decision has been made, the coordinator informs the participants of the result in the second phase

21
Q

What does ACID (transactions) stand for?

A

atomicity, consistency, isolation, and durability

22
Q

Automicity

A

Each transaction is either fully executed or not at all (rollback if something fails)

23
Q

Consistency

A

Transaction leaves database in a consistent state given it was consistent before the transaction

24
Q

Isolation

A

Transactions cannot influence other transactions when

executed parallel

25
Q

Durability

A

Permanent storage in DB is guaranteed once a transaction is completed successfully

26
Q

Transaction Processing Monitor

A

coordinate the flow of requests between terminals or other devices and application programs that can process these requests

  • not developed for general program-to-program communication integration but provide solutions for transaction-type applications that utilize a database
27
Q

TP-Lite Monitor

A
  • integrated in database (for small applications)
  • Stored procedure invoked and executed
    according to ACID principles
  • Better for periodic data synchronisation
28
Q

TP-Heavy Monitor

A
  • Supports client server architecture
  • Allows for very complex transactions
  • Good when using multiple databases
29
Q

Transaction

A

a series of database operations that are executed either in full or not at all

30
Q

Object Oriented Middleware (OOM)

A

Object Oriented Middleware (OOM) is defined as a middleware infrastructure that offers object oriented principles for the development of distributed systems

  • Enables communication between objects within distributed systems
31
Q

Interface Description Language (IDL)

A

language syntax to describe a software component’s interfaces

32
Q

Common Object Request Broker Architecture (CORBA)

A

client can discover a service at runtime (Dynamic

Skeleton Interface)

33
Q

Components of TP Monitor

A
  • Transaction Management
  • interface (API, presentation, authentication)
  • program flow
  • Registered programs
  • TP Services
  • Resources
  • router
  • communication manager