Virtuale

Notes taken by Luizo ( @LuigiBrosNin on Telegram)

Notes

Won’t be frequenting this course sadly :,)

1. Distributed systems and SOAs

Distributed system a network of endpoints that communicate by exchanging messages Examples: your OS, a browser with a Tab manager

Programming distributed systems tasks:

  • handling communications ability to exchange messages
  • handling heterogeneity base standards to make sure different endpoints can communicate (eg. C# on Win / C++ on Linux), aka speak a common tongue
  • handling faults Make sure to avoid crashes when errors occur, since it’s expected (eg. an endpoint can go down)
  • handling the evolution of systems update without “turning off” an endpoint

Always remember to close channels and catch exceptions, error handling

Faults can affect multiple endpoints (eg. in a client/store transaction, many things can go wrong from any client/bank/store endpoint)

Things can be made easier by hiding low level details, abstracting. It can be done with libraries, tools, frameworks or by making new programming languages

Service-oriented Computing (SOC) A design paradigm for distributed systems. A service-oriented system is a network of services. Services communicate through message passing.

Service-Oriented Architecture (SOA) architecture based of the Service-oriented computing paradigm.

Services in SOA offer operations, as Objects offer methods