Распределенные объекты везде


Distributed Objects Everywhere ( DOE ) был длительным проектом Sun Microsystems по созданию распределенной вычислительной среды на основе системы CORBA в «серверной части» и OpenStep в качестве пользовательского интерфейса. Впервые запущенный в 1990 году и анонсированный вскоре после этого, он оставался бесполезным в течение многих лет, прежде чем он был наконец выпущен как NEO в 1995 году. Он продавался только в течение короткого периода времени, прежде чем был прекращен (вместе с OpenStep) в 1996 году. На его месте есть то, что есть. сегодня известный как Enterprise JavaBeans .

В начале 1990-х годов «следующим большим событием» в вычислительной технике стало использование настольных микрокомпьютеров для отображения и редактирования данных, предоставляемых мейнфреймами и миникомпьютерами . Хотя уже существовал ряд способов такого доступа, разделение труда было далеко не равномерным. Например, SQL требовал, чтобы рабочая станция загружала огромные наборы данных и затем обрабатывала их локально, тогда как при использовании эмуляторов терминала вся работа возлагалась на сервер и не предоставлялся графический интерфейс .

Казалось, что правильным разделением обязанностей было бы иметь совместный набор объектов, при этом рабочая станция отвечала бы за отображение и взаимодействие с пользователем, а обработка выполнялась бы на сервере. На пути такого решения стояли огромные различия в операционных системах и языках программирования между платформами. Хотя можно построить такую ​​систему, которая будет работать на любой комбинации рабочей станции и сервера, то же самое решение не будет работать ни на одной другой системе.

Как ни странно, различия между любыми двумя языками программирования на одной платформе были почти столь же велики. У каждого языка был свой формат передачи параметров в вызовы процедур , форматы файлов, которые они генерировали, часто сильно различались. В общем, не всегда было возможно написать разные части программы на разных языках, хотя это часто имеет реальную пользу. Проблема не была столь острой для мини -компьютеров и мейнфреймов, где производители часто указывали стандарты для своих библиотек, но для микрокомпьютеров системы программирования обычно поставлялись различными сторонними компаниями, не заинтересованными в стандартизации.

Тем не менее, эта проблема решалась в начале 1990-х путем введения различных систем общих библиотек . На самом деле они были предназначены для облегчения использования ресурсов на небольших платформах, позволяя ряду программ, использующих общий ресурс, такой как графический интерфейс, совместно использовать одну копию кода вместо того, чтобы каждая загружать отдельную копию в память. В качестве побочного эффекта возможности вызова из многих программ эти системы также определили стандартный способ их вызова с использованием языка определения интерфейса или IDL, чтобы любой язык на платформе мог понимать код внутри библиотеки.

Расширение этих систем для поддержки удаленных вызовов процедур за кулисами рассматривалось как естественная эволюция, обеспечивающая решение проблемы программирования клиент/сервер. В то время существовало несколько крупных проектов по созданию такой системы, включая System Object Model (SOM/DSOM) IBM, Portable Distributed Objects NeXT , Component Object Model (COM / DCOM) Microsoft и множество CORBA . вкусы. Sun, пытаясь позиционировать себя как будущую IBM в плане поддержки бэк-офиса, чувствовала, что им необходимо атаковать и этот рынок.