 Protocols involved may include one or more of SNMP, CORBA, Java RMI, .NET Remoting, Windows Communication Foundation, sockets, UDP, web services or other standard or proprietary protocols.Often middleware is used to connect the separate tiers.Separate tiers often (but not necessarily) run on separate physical servers, and each tier may itself run on a cluster.