Вопрос

Мы должны выполнить семестровый проект с распределенными вычислениями с использованием CORBA или ICE.Это проект для одного человека, и у нас есть пара месяцев времени.

Что касается языка программирования, я бы хотел сосредоточиться на c #, поскольку это может быть любой другой, подобный C ++.

Я не хочу писать генератор простых чисел на одну миллионную долю, может быть, есть что-то гораздо более интересное, о чем я еще не подумал..

Это было полезно?

Решение

На вашем месте, ....что бы я сделал, так это пошел к вашему профессору и попросил поработать за рамками.Попросите освободить вас от необходимости в КОРБЕ или ЛЬДУ.

Спросите, можете ли вы использовать что-то, что НЕ является Corba.Спросите, можете ли вы использовать REST, или веб-службы XML, или даже protobufs.

CORBA не является несущественной с точки зрения принципов, но она почти не имеет отношения к коммерческой привлекательности.Сделайте что-нибудь, что научит вас еще некоторым текущим навыкам.

Для меня это было бы все равно что изучать вакуумные трубки.Интересно с академической и научной точек зрения, но...

Вместо генератора простых чисел, почему бы не сделать что-нибудь поинтереснее?

  • распределенная хэш-таблица, что-то вроде нового дизайна BitTorrent.

  • система распределения работы для вычислительной фермы.Как бы вы построили распределенную карту / сокращение по всей этой ферме?вы могли бы выполнять шифрование, сжатие, копирование видео.Создайте распределенную систему управления работами общего назначения, которая подходила бы для любого из этих заданий, с модульной архитектурой.Как бы вы обнаружили сбои (хост находится в автономном режиме или не реагирует)?Как бы вы поступили со спасенными хозяевами?

  • сеть типа SETI-@Home.или сворачивание белка.или анализ климатических тенденций (с использованием общедоступных баз данных - http://en.wikipedia.org/wiki/Public_Domain_Resource ) Что-то, где вы делаете что-то более практичное, чем вычисление простых чисел.

  • ИЛИ - на самом деле решите задачу о простых числах, но примените ее к криптографии, взламывая ключи.

  • сеть агентов, где вы фактически распределяете код по узлам для выполнения.Что-то вроде JavaSpaces.

  • покерный бот.

просто несколько идей.

Другие советы

Не уверен, сосредоточен ли проект на части распределенной обработки или на реальной задаче, которую вы решаете.

CORBA более распространен в реальном мире, чем ICE, хотя вряд ли это то, на чем вы хотели бы строить карьеру.Он все еще используется в различных встраиваемых проектах и по-прежнему довольно популярен в некоторых военных приложениях.

С ICE легче работать, но он и близко не имеет такого уровня проникновения в отрасль (насколько мне известно), как CORBA.Но если ваша цель состоит в том, чтобы завершить проект и изучить принципы распределенного управления, то я бы согласился с этим.Учиться и работать с ним будет гораздо менее болезненно, чем с CORBA.На самом деле ICE был разработан бывшими инженерами CORBA, которые хотели исправить некоторые ошибки, которые они увидели в CORBA.

Я обнаружил, что отказоустойчивость делает проекты распределенных вычислений немного более интересными.Сама задача может быть относительно простой, но обеспечение возможности обработки недоступных систем или ошибочных данных предъявляет дополнительные требования.

Если ваш проект требует, чтобы вы использовали CORBA или ICE.Я бы сказал, попробуйте оба варианта и посмотрите, в каком из них вы добьетесь прогресса в первую очередь, а затем переходите к этому.Похоже, у них обоих есть интерфейсы C # (из поисковых запросов Google).

В противном случае вы могли бы рассмотреть возможность использования .Net Remoting.Заставить рудименты работать на меня было не так уж сложно в тот единственный раз, когда меня попросили это сделать...~ уже 2 года назад.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top