В настоящее время я изучаю различные способы поддержки объектов распределенной модели (то есть вычислительной модели, которая выполняется на нескольких разных компьютерах) в проекте, который изначально ориентирован на Mac OS X (с использованием Cocoa). Насколько я знаю, есть возможность использовать кластер классов около NSProxy
. Но, кажется, также есть реализации CORBA с поддержкой Objective-C.
Позднее может возникнуть необходимость поддержки / включения машин Windows. В этом случае мне нужно будет использовать что-то вроде Gnustep на стороне Windows (что может быть хорошим вариантом, если это хорошо работает) или придумать комбинацию обеих технологий. Или напишите что-нибудь вручную (что, конечно, наименее желательный вариант).
Мои вопросы:
Если у вас есть опыт работы с обеими технологиями (нативная инфраструктура Какао против CORBA), можете ли вы указать на некоторые ключевые особенности / проблемы любого из этих подходов? ( EDIT: Как я уже указывал в , этот поток удаленные методы пока недоступны для iPhone и iPad. С другой стороны, существуют реализации CORBA, которые работают на платформа, например " AdORB - CORBA ORB для Mac OS X и iPhone OS ".)
Можно ли использовать Gnustep с какао способом, описанным выше?
[ РЕДАКТИРОВАТЬ: Согласно записи Gnustep FAQ 1.1.5 это невозможно, поэтому использование нативной инфраструктуры Cocoa блокирует меня в этой технологии.]
Возможно ли (и разумно выполнимо, то есть проще, чем написание сетевого уровня вручную) обмениваться данными между всеми клиентами Mac OS с использованием технологии Cocoa и с клиентами Windows через CORBA? [ РЕДАКТИРОВАТЬ: Из того, что я узнал сейчас, это возможно, но, конечно, не возможно. Сообщения должны пересылаться в обоих направлениях, т. Е. Нужен «прокси» для пересылки сообщений из одной системы в другую и наоборот. По сути это эквивалентно написанию сетевого уровня вручную без практической выгоды ни от кластера класса NSProxy
, ни от CORBA.]
ОБНОВЛЕНИЕ: CORBA, кажется, действительно лучше подходит, когда гибкость и расширяемость являются проблемой. Недостатком является то, что кажется более сложным в освоении и использовании на начальном этапе, см. эту ветку (ссылка предоставлена Кристофером Джонсоном - спасибо!) Для различных точек зрения на практические аспекты. Веб-сервисы являются жизнеспособным вариантом, если шаблон связи достаточно прост, см. этот поток , чтобы узнать о вариантах, которые хорошо работают на iOS. Я суммировал свои выводы в этой статье .