Some applications may require both a client and a service component. Although it is possible for client applications to communicate directly with services using mechanisms such as the Microsoft remote procedure call (RPC) protocol, client application and server application components in the Microsoft Exchange Server environment do not often directly connect in this manner. Instead, client applications and services interact through messages that are sent to recipient objects in the information store. When developing an application with both a client application and a server application component, you must decide how to correctly divide the functionality between the client and server components to optimize the system's overall performance.