* Describe the following three methods of data sharing between software applications: the file-based method, the use of a common database, and sockets. What are the advantaged and the drawbacks of these methods? * Explain the concept of blocked and non-blocked TCP sockets. Explain the concept of blocked and non-blocked TCP sockets. How can you make a TCP socket non-blocked? * Describe the key features and advantages of Protocol Buffers (protobuf) for data serialization. Discuss the steps involved in integrating Protocol Buffers into a programming language or framework of your choice. Explain the role of message definitions (.proto files) in protobuf integration and how they are used to generate code. * Introduce the Java RMI software integration technique. What is the purpose of the registry? Compare this method with the socket based integration. * Describe the structure of an XML-RPC request and response message. How does XML-RPC handle data types and data serialization? * Describe the main features of web services. Registry, WSDL, UDDI, etc. * What are the differences between JAX_RS and JAX_WS web services? * What does "Service Oriented Architecture" mean? What are the differences between the traditional techniques? What are the advantages of the reusable software components? * What does "Interface and Payload semantics" means? Where we are using Payload semantics in software integration? * What does "Integration and Software Architecture mean? * Describe the term of "loose coupling". * "Loose Versus Tight Coupling". Show the learned 5 factors (TABLE 2.1) * Describe the main features of "Corba" systems.