분산시스템 개념과 디자인 — Communication aspects of middleware

[ Commuication aspects of middelware ]1. Interprocess Communication2. Remote Invocation3. Indirect Communication

1. Interprocess Communication

  • protocols for communication between processes in a distributed system
  • provides both datagram and stream communication
  • all support point-to-point communication
  • useful to be able to send a message from one sender to a group of receivers

[ Sockets ]

[ Message Passing ]

[ Multicast support ]
must be provided even if underlying support for IP multicast is not available.
The Message Passing Interface (MPI) is a standard developed to provide an API

  • IP multicast provides a multicast service for both LAN and the Internet.
  • Multicast can also be supported by overlay networks in cases where, for example, IP multicast is not supported.
  • in spite of suffering from omission failures it is a useful tool for many applications of multicast.

[ Overlay Networks ]

  • UDP provides a simple message-passing facility
    → suffers from omission failures
    → carries no built-in performance penalties
  • TCP guarantees message delivery
    → at the expense of additional messages and higher latency and storage costs.
  • Marshalling
    객체의 메모리에서 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정
    → CORBA and its predecessors choose to marshal data for use by recipients that have prior knowledge of the types of its components.

2. Remote Invocation

  • request-reply communication
    → minor enhancements to the underlying interprocess communication primitives
    → provide lightweight and minimal support for client-server computing. 📍 overheads of communication must be minimized [ embedded systems ]
  • The remote procedure call (RPC)
    → allowing a calling process to call a procedure in a remote node as if it is local
    → Remote procedure calls provide a range of invocation semantics
  • Remote method invocation (RMI)
    → RPC but for distributed objects, with added benefits in terms of using object-oriented programming concepts in distributed systems and also extending the concept of an object reference to the global distributed environments, and allowing the use of object references as parameters in remote invocations.
    → Middleware implementations of RMI provide components (including proxies, skeletons and dispatchers) that hide the details of marshalling, message passing and locating remote objects from client and server programmers.
    → Programmers know when they make remote invocations or implement remote objects, enabling them to handle errors [ RemoteException ] or to design objects suitable for concurrent access.

3. Indirect communication

  • through an intermediary
    → uncoupling between producers and consumers of messages
    → dealing with change and establishing fault-tolerant strategies
  • group communication: via a group abstraction
  • publish-subscribe systems: disseminating events to multiple recipients
  • message queue systems: receivers extracting messages from such queues
  • shared memory–based approaches: distributed shared memory, tuple space approaches

❗️ quality of service remains a key challenge
→ space and time uncoupling by their very nature [ realtime behavior or security ]

--

--

--

Data Engineer interested in constructing Data-Driven Architecture with Cloud Service

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

| Engineering News-Record

Setting up Firebase App Distribution With Automatic Builds from Jenkins

Create a tutorial walkthrough of your iOS app

Laravel 8 | Multi Database Connection

Mannheim & Bitcoin Pizza Day

The Magic Behind UCL Library Seating

My First Blog Post

A: Earth, Wind, and Fire — Q: Name Three Things Air Force Infrastructure is Vulnerable To

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
SoniaComp

SoniaComp

Data Engineer interested in constructing Data-Driven Architecture with Cloud Service

More from Medium

Apache Kafka - Interview Questions

The 5 Major APIs in Apache Kafka

Kafka — Everything you need to know

Few practical Apache Kafka Tips