Совместное использование кода приложениями
В начале 90-х годов прошлого века интерес разработчиков привлекали две соперничающие компонентные технологии: архитектура компонентной объектной модели (Component Object Model, СОМ) компании Microsoft и обобщенная архитектура построения брокеров объектных запросов (Common Object Request Broker Architecture, CORBA), представленная компанией OMG (Object Management Group). Обе эти технологии предоставляют функции, которые можно многократно применять как двоичные объекты, а также программное обеспечение для совместного использования кода на одном компьютере.
Однако по мере того как распределенные сети приобретали все более широкую популярность, возникла необходимость в обеспечении возможности взаимодействия отдельных компьютеров. Разработчики могли создавать собственные решения, воспользовавшись сокетами, хотя это требовало от клиентов и серверов выполнения достаточно тяжелой работы, а для кодирования и декодирования сообщений нужны были высокоуровневые протоколы. Но не только в этом состояло неудобство для разработчиков: их программы получались громоздкими и могли содержать множество ошибок.