Initially when software programming started applications were of monolithic type with minimum or no re-usability.
Later object oriented programs evolved with reusability as the main consideration.By the development of Object Orientation re-usability of classes and polymorphism of functional units improved the reusable aspects of programming.But still language inter operability was not there.Means,re-usability inside an application came in to existance and reusability across applications or platforms were still a limitation.
With the introduction of Component Object Module(COM) by Microsoft, Language interoperability and re-usability across applications become a reality.
With COM you can have independent component module developed and that can be used by various applications irrespective of language.so an entire rebuild or re-installation was not required always when only the components need to be upgraded. But here the Component also existed in the same system where the consumer application is.Remote access of the components over network was not possible.
Then came DCOM(Distributed Component Object Module) for distributed component usage where in components can exist in other systems across network and can be consumed remotely.But Transaction services were not possible with DCOM and was having performance and other limitations.
COM+ was introduced to overcome these limitations of distributed component modules over network.COM+ support transaction using Microsoft Transaction Server and also having Object Pooling facilities.
With the introduction of Microsoft.NET new distributed application services came in to existance..NET Remoting applications and WebServices came in to usage extensively.
.NET remoting is for component services within the local network..NET remoting supports only message transfer via TCP.Also in .NET remoting applications both the component service and consumer application need to be in .NET.
Web Services are ASP.NET based applications used for web based services.Webservices transfer messages via HTTP.Webservices are language independent.
Windows Communication Foundation is the next level webservices with message transfer support via various protocols.