a. A server program written in one language (for example, C++) provides the implementation of a Person object (class) that is intended to be accessed by clients that may be written in a different language (for example, Java, PHP, C#). The client and server computers may have different hardware, but all of them are attached to an internet. Describe the problems due to each of the five aspects of heterogeneity that need to be solved to make it possible for a client object to invoke a method on the server object.
b. Compare connectionless (UDP) and connection-oriented (TCP) communication for distributed computing. Use human interactions to differentiate between the two types of communications. In your response, include real world scenarios where one is advantageous over the other.
c. Discuss the reasons why system calls from processes must be made to the kernel and not to the resources directly.