CORBA или более специализированный подход?
В настоящий момент самым серьезным недостатком CORBA является отсутствие собственной компонентной модели . Это означает, что CORBA берет на себя проблему создания и поддержки ОБЪЕКТОВ CORBA, но не КОМПОНЕНТОВ CORBA. Главным отличием компонента от объекта (объекта в смысле объектно-ориентированного программирования, а не в терминах технологии CORBA) является включенность компонента в некоторую стандартную среду со строго формализованными правилами поведения, в то время как объект склонен к определенной "анархии".
Вследствие этого, перед разработчиком (точнее, перед создателем проекта) в настоящее время стоит очень серьезная проблема выбора между двумя подходами: либо использовать "чистую" технологию CORBA, либо отказаться от многих ее возможностей, но приобреcти взамен готовые технологические решения, предлагаемые некоторой сторонней технологией, тоже основанной на CORBA (или активно использующей ее), но не совпадающей с ней. Читатель, который имеет представление о состоянии дел в современной компьютерной индустрии, поймет, что речь идет, скорее всего, о технологии Enterprise JavaBeans (EJB).
EJB предоставляет готовую компонентную модель для решения таких проблем, как эффективное управление ресурсами серверов (в первую очередь, оперативной памятью), сетевыми ресурсами, а также для универсального управления транзакциями. В качестве "платы" за предоставляемые удобства от проектировщика требуется подчиниться достаточно жестким требованиям этой компонентной модели, а именно: использование на стороне сервера только языка Java; ориентация на два фиксированных типа серверных компонентов, один из которых (так называемый "session bean") предназначен для формализации отношений между конкретным клиентом и сервером EJB, а второй ("entity bean") является объектным представлением данных в БД; следование жестким правилам создания EJB-приложений.
Технология EJB имеет свою философию, в общем, отличную от философии CORBA. EJB, бесспорно, предоставляет большие преимущества по сравнению с классической CORBA в случае создания систем, основанных на использовании той или иной базы данных в качестве ядра проекта (хорошим примером может служить бухгалтерская система или система автоматизации торговли). В то же время, подход в стиле EJB вряд ли может рассматриваться как по-настоящему универсальный в рамках создания распределенных систем вообще. Наверное, между EJB-проектами и проектами в классическом стиле CORBA существует такая же разница, как между приложениями, ориентированными на обслуживание БД, и произвольными приложениями для решения самых различных задач.