Distributed Systems and Applications Dr. E. Tuosto Computer
networks and distributed applications have a paramount role in
all-day life. Nowadays, it is hard to imagine stand-alone
systems or applications. Practically, any modern computing
device offers the possibility of being connected with other
devices. At higher level, applications aim at exploiting
networking capabilities of systems and tend to be more and more
interconnected and communicating themselves. Programming this
kind of distributed applications can result a hard task if not
done at the appropriate level of abstraction. There are two main
complex aspects to face with: (i) distributed systems are
frequently made of heterogeneous devices and interact through
many different communication infrastructure; (ii) modern
distributed systems have different tiers (e.g., TCP/IP level,
operating system, network system, etc.). Middlewares provide an
abstraction of many low-level details of systems. They are meant
to simplify software development and applicat