воскресенье, 27 декабря 2009 г.

Использование NetBeans Platform в NASA

Это перевод интервью о применении NetBeans в Национальном управлении США по аэронавтике и исследованию космического пространства, взятое для социальной сети разработчиков dzone.com.
Тим Бордо, один из главных инженеров в Sun Microsystems недавно провел серию занятий с инженерами из NASA на тему использования платформы NetBeans.
Ниже можно прочесть его впечатления о проблемах, с которыми сталкиваются в NASA и как можно решить их при помощи платформы NetBeans. Кроме того, Том Виллер, один из внешних разработчиков NetBeans, рассказал о своем участии в этом курсе для NASA.


Итак, Тим, вы обучали персонал NASA использованию платформы NetBeans. Зачем им это понадобилось?

Тим: В данный момент они строят системы контроля запуска для космических кораблей, которые придут на смену шаттлам. Если вы видели запуски по телевизору, то там скорее всего показывали комнату, в которой множество людей сидят и сморят на экраны с различными показателями. Например, топливо надо заправить в корабль перед самым стартом, и оно должно быть подано под определенным давлением и с определенной температурой. Множество датчиков отслеживают эти и множество других показателей в трубах, и информация с них отправляется в систему контроля запуска, где она должна быть представлена в удобном для человеческого восприятия виде. Но и за вывод информации на экраны отвечают те же инженеры, которые занимаются установкой, настройкой и даже разработкой самих датчиков.
В результате требуется среда разработки систем визуализации на базе Swing, которая была бы достаточно простой, чтобы её мог использовать непрограммист, а специалист по железу. Таких систем визуализации на самом деле очень много, они далеко не исчерпываются одним только слежением за подачей топлива.

Это всё хорошо и замечательно. Но какое отношение ко всему этому имеет платформа NetBeans?

Тим: Они используют много компонентов из NetBeans IDE. Например, они используют построитель интерфейсов "Matisse". И одной из задач, в которой мы им помогали, было урезать интерфейс Matisse и скрыть те элементы интерфейса, которые нужны для программирования, но не для содания простых систем визуализации и привязки их измеряемым параметрам.

Погоди минутку. Можно вот так просто взять и обрезать Matisse под свои нужды?

Тим: Ну на самом деле, я сделал несколько изменений в Matisse, чтобы его было легче переделывать. В частности, теперь можно глобально спрятать дополнительные редакторы свойств, которые позволяют привязать значения параметров к параметров других компонентов. В редакторе форм, у всего есть такие дополнительные редакторы, где вы можете выбрать пункты меню "get it from the component" или "get it from custom code". Это слишком сложно для непрофессионального программиста.Да они и не нужны непрограммисту. Написание логики системы в программном коде не является задачей инженера электроники. Мы также урезали все категории свойств, относящиеся к привязке к bean-ам, так как они просто не имеют смысла в данном случае.


Круто. Оказывается, Matisse можно подстраивать под себя. Но это все бонусы, а не основа, так ведь? В конце концов, всё заканчивается тем, что приходится писать Java-код, так?

Тим: Да. У них есть свой шаблонный проект и они используют встроенную поддержку проектов в NetBeans. Мы также написали код, который обеспечивает поиск класса экрана в проекте и запуск его на имитируемых данных


Хорошо, перед тем как перейти к следующему - какие компоненты в NASA хотят включить в Matisse таким образом?

Тим: Их интерфейс очень визуальный - он отражает реальные приборы. То есть, если система отслеживает заправку космического корабля, то наблюдатель должен видеть на картинке бак и трубу, которые выглядят так, как они выглядят в реальности, и на которых отображаются данные измерений.


Это значит, что на элементах интерфейса отображается и то, что происходит в космосе?

Тим: Нет, только то что происходит на земле, перед запуском. Для успешного запуска надо сделать очень и очень многое. Насколько я понимаю, заставить космический корабль подняться с земли гораздо сложнее, чем заставить его остаться над землей.

Итак, в NASA добавили в Matisse свои собственные Swing-компоненты таким образом, что этими компонентами можно отображать их процедуры по предполетной подготовке?

Тим: Да. Это также потребовало специальных редакторов свойств. И на этой базе родился замечательный учебник: Встроенные редакторы свойств в NetBeans (на английском).


Тим, я так понял, что ты получил некоторую помощь от члена сообщества NetBeans. Не мог бы ты сказать пару слов об этом?

Тим: Том Виллер является активным участником сообщества в течение многих лет. Я знаю, что он создал несклько интересных приложений на платформе NetBeans, потому что он говорил об этом в своем выступлении на JavaOne в прошлом году. Я знал, что его опыт окажется очень кстати в моем курсе, поэтому я пригласил его предложить свои услуги NASA.

Том, не мог бы подытожить те рекомендации, которые ты дал NASA?

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

И подготовился к вопросам, которые они могли бы задать. Я мог их предугадать, так как они оказались очень похожими на те, которыми задавался я, когда только начал работать с платформой NetBeans около пяти лет назад. Вот некоторые из них:
  • Каким образом разбить приложение на модули?
  • Нужно ли стремиться к малому числу крупных модулей, или стоит создать множество мелких?
  • Как осущствить управление конфигураций приложения?
  • Как оперативно реагировать на изменения в API платформы?
  • Насколько сложно установить и настроить свой центр обновлений?
  • Как можно переделать свое приложение под себя без изменения исходного кода NetBeans
У меня не было возможности посетить тренировочный лагерь NASA во Флориде, поэтому Тим устроил мне телефонную связь с комнатой для конференций, где и собралась команда разработчиков. Я начал с предложения задать какие-либо специальные вопросы. И оказалось, что я проделал работу по подготовке не зря - были заданы практически все вопросы, на которые я подготовил ответы заранее!


Это впечатляет. Тим, вы провели несколько дней, преподавая на курсе для инженеров NASA, и тема интеграции с построителем интерфейсов Matisse заняла большую его часть. А какие другие аспекты платформы были им интересны?

Тим: У них действительно много высококвалифицированных специалистов, которые очень серьезно подходят к тому, что делают. Они хотели знать как можно больше о платформе NetBeans. Я практически уверен, что это не станет последним проектов, где они буду использовать эту платформу. Мы провели три дня за изучением стандартного курса, и потом еще два, ориентируясь на те задачи, которые перед ними стояли.


То есть NASA оплачивала Sun консультационные услуги?

Тим: Организаций использующих платформу NetBeans много. И я консультировал многие из них. Обычно, меня просят провести несколько дней занятий и потом сделать обзор планируемой архитектуры и убедиться, что программисты этой организации знают, как и что использовать.


Погодите, NetBeans - это свободное программное обеспечение с открытым исходным кодом. Sun получает деньги за все это?

Тим: Конечно. Именно так Sun зарабатывает деньги на открытом исходном коде. А лично для меня, провести время в NASA было очень захватывающе. Одним из самых ярких моих первых впечатлений были снимки луны. Сделать свой маленький вклад в это великое дело - это что-то особенное.


Сколько было разработчиков, которые участвовали в этом курсе и последующих консультациях?

Тим: Их было десять. С ними я прямо работал, и большинство из них занимались системой контроля, а другие занимались интеграцией с языком управления космическими кораблями. И у них появилась идея создания отдельной группы пользователей NetBeans внутри NASA!


Правильным ли будет сказать, что в NASA переделывали NetBeans IDE, а не создавали что-то на базе платформы NetBeans?

Тим: Если вы переделываете среду разработки, вы переделываете платформу. Вся разница заключается в том, какие модели и какой API вам требуется. Всё это составляет платформу NetBeans.


Куда вашим студентам следует двигаться в дальнейшем?

Тим: Следующим шагом станет завершение интеграции с платформой NetBeans. Я помог им встать на этот путь, но я не написал всего нужного кода за них. Им нужно завершить создание компонентов, которые они будут использовать, вставить их все в модули, так что их можно будет установить в палитру компонентов Matisse, и начать использовать это всё в разработке.
Надесь, когда вы в следующий раз будете смотреть запуск космического корабля по телевизору, вы увидите интерфейса, написанные в NASA в собственном варианте NetBeans IDE!
blog comments powered by Disqus