Для планирования водоснабжения используются netbeans и другие открытые инструменты
Расчет поступления воды из всех природных источников представляет собой, в сущности, крайне сложную математическую задачу. Разработаны алгоритмы, позволяющие предсказать таяние снега, выпадение осадков, температуру на каждый день, объем сброса рек и ручьев. На основе этих сухих формул создан набор прогностических моделей, которые способны помочь местным властям гарантировать, что население получит достаточно воды, чтобы утолить жажду, принять ванну, вымыть свои машины и полить газоны.
Надзирать за всеми этими сложными вычислениями поручено отделу по охране природных ресурсов (Natural Resources Conservation Services, NRCS) министерства сельского хозяйства, находящемуся в Портленде (шт. Орегон). Ежемесячно он выпускает прогноз относительно запасов воды для более чем 750 населенных пунктов в западной части США. К решению этой задачи, связанной со сложными вычислениями, привлекаются 250 разработчиков, разбросанных по всей стране, как сказал Френк Гитер, специалист NRCS по созданию общенациональных моделей. Но кроме того, по его словам, требуется “надежная система разработки ПО, обеспечивающая совместную работу программистов”.
Исследователь Олаф Дэвид из университета шт. Колорадо на протяжении последних двух лет трудился в отделе сельскохозяйственных ресурсов (Agricultural Resource Services, ARS) министерства сельского хозяйства в Форт-Коллинзе (шт. Колорадо), где создавал такую систему, которая могла бы использоваться в NRCS и целом ряде других подразделений министерства. Уже в самом начале работы стало ясно, что необходимо ПО, позволяющее управлять проектами и коллективно писать программный код всем обслуживающим министерство исследователям, которые находятся в различных точках.
Досье: Министерство сельского хозяйства
Существо проблемы. Разработанные в министерстве сельского хозяйства устаревшие модели, применявшиеся в NRCS и других подразделениях, не позволяли использовать такие новые возможности, как коллективная работа, контроль версий и современные средства управления Рекомендованное решение. Создание централизованной объектно-ориентированной платформы моделирования на базе NetBeans, CodeBeamer и Subversion
Сроки. В апреле 2004 г. была начата работа над созданием прототипа системы, платформа была представлена в апреле 2005-го, а работа над вспомогательным проектом “Водоснабжение” должна быть завершена в ноябре 2007 г.
Отдача инвестиций. Последовательное и тщательное использование моделей всеми подразделениями министерства сельского хозяйства; возросшее число пользователей получило возможности для коллективной работы, тестирования и анализа программного кода. В результате возросла эффективность моделей и упростилось управление
В то время ARS располагал более чем ста моделями, предназначенными для различных целей. Они разрабатывались для конкретных случаев с использованием доступных на момент их создания технологий. Управление разрозненными элементами было сложно и дорого, затруднялось внесение изменений в модели и их совершенствование. Дэвид настоял на необходимости новой объектно-ориентированной системы моделирования, обеспечивающей общение разработчиков через Интернет, отслеживание каждой темы, контроль доступа к сети, коллективное управление программным кодом и документацией. При этом она должна была поддерживать использовавшуюся в министерстве систему контроля версий, быть простой в установке и обслуживании. В качестве платформы Дэвид и его команда выбрали открытые инструменты разработки производства Sun Microsystems, Intland Software и CollabNet.
“Как основу для моделирования мы избрали Sun NetBeans, — сказал Дэвид. — Мы выбрали NetBeans, CodeBeamer компании Intland и Subversion фирмы CollabNet, поскольку это единственное интегрированное решение для организации коллектива программистов, позволяющее управлять разработкой и развертыванием моделей, чтобы обеспечить реализацию наших проектов в области моделирования”.
В 2004 г. министерство сельского хозяйства совместно с агентством по защите окружающей среды (Environmental Protection Agency) и геологической службой США (U.S. Geological Survey) приступило к созданию прототипа новой системы, которая была принята в эксплуатацию в 2005-м. По словам Дэвида, получившаяся в итоге платформа обеспечивает совместную работу, что имеет важнейшее значение для ARS, где нередко одновременно выполняется до трёхсот софтверных проектов. Благодаря интегрированной инфраструктуре программисты, используя NetBeans, могут эффективно работать как единая команда, обмениваться знаниями, при этом продолжая трудиться в различных исследовательских центрах.
“Теперь можно свободно воспользоваться рутинными элементами для написания приложения”.Джит Каул
“Важно отметить, что создание кода — дело не только программистов, — сказал Дэвид. — Одни наши сотрудники анализируют данные, другие обрабатывают геопространственную информацию. Они уточняют параметры моделей на основе таких данных, как высота над уровнем моря и растительная зона. А некоторые занимаются чистой наукой и не имеют отношения к программированию. Их задача — правильно построить модель. Наша система должна обслуживать всех этих пользователей”.
Команда Дэвида размещается в центре программирования и обработки данных в Форт-Коллинзе, который называется Collaborative Software Development Laboratory (CoLab). “Теперь, получив доступ в CoLab, сотрудники могут заниматься разработкой, а мы сотрудничаем с ними, предоставляя документацию, тестируя исходный код и предоставляя исходный код, который они могут изучить или загрузить независимо от своего местонахождения”.
В настоящее время CoLab обслуживает более 700 зарегистрированных пользователей из 15 различных учреждений. Им предоставляется доступ к репозиторию программного кода объемом 20 Гб и к документации (около 4 Гб). В CoLab пользователи могут хранить документацию, просматривать исходный код и находить нужные им фрагменты, автоматически создавать сборки для отладки, тестирования и прогона моделей. С тех пор как доступ в CoLab можно получить в реальном времени, все сотрудники отмечают значительное сокращение времени выполнения проектов, более совершенное управление ими и повышение качества программного кода в целом, сообщил Дэвид.
Применение программных модулей и многократное использование фрагментов кода делают платформу NetBeans особенно подходящей для специалистов министерства сельского хозяйства и его подразделений, заявил Джит Каул, вице-президент корпорации Sun по продуктам и программам для разработчиков.
“Данная платформа предоставляет сервисы, характерные для настольных приложений: управление окнами и меню, хранение и т. д., — сообщил Каул. — Теперь можно не писать эти элементы приложений, а получить их бесплатно. В результате разработчики могут сконцентрироваться на бизнес-логике, которая содержит все то, что собственно и должно делать приложение, и не тратить время на написание заново того, что содержится практически в любом приложении”.
Как сказал Дэвид, благодаря имеющейся в CoLab среде разработки на базе Java и NetBeans он может сконцентрировать внимание на конкретных проектах по разработке моделей прогнозирования водоснабжения в NRCS. Исследователи и аналитики из NRCS трудятся над портированием по-прежнему представляющей определенную ценность, хотя и устаревшей модели стока осадков. Она должна помочь при оценке состояния и составлении краткосрочных прогнозов изменения запасов воды. ПО NetBeans оказалось полезным при создании основ обновленной платформы моделирования NRCS, сообщил Дэвид.
“Прежняя модель была разработана где-то в 80-х годах, — рассказал Дэвид об инструменте прогнозирования с использованием высокопроизводительных вычислений. — Трудность заключалась в том, чтобы переписать ее на Java, а затем использовать в системе моделей, позволяющей гибко применять различные подходы. Созданная нами система моделей строится на базе Java и NetBeans. Наша цель заключалась в том, чтобы сделать эту модель доступной на Java и применять ее в пакетном режиме к различным географическим районам”.
Кроме того, одна из задач проекта состояла в том, чтобы обеспечить результатам труда разработчиков долгую жизнь. “Поскольку платформа NetBeans базируется на стандартах и многократном использовании компонентов, созданные на ее основе с помощью “чистого” Java приложения будут работать на любой платформе, поддерживающей Java 2 Standard Edition, включая Windows, Linux, Mac OS X, Solaris, HP-UX, OpenVMS, OS/2 и другие операционные системы, — сказал Каул из Sun. — В мире ПО постоянно происходят изменения. Один из способов добиться, чтобы написанное вами сегодня выдержало проверку временем, заключается в использовании стандартов и создании кроссплатформенных приложений”.
“Именно для этого и предназначается платформа NetBeans, — продолжил Каул. — Приложения на ее основе не требуют авторских бинарных библиотек или компонентов. На платформе, для которой они разрабатываются, достаточно иметь среду исполнения Java 2”.
Крис Гонсалес — бывший исполнительный редактор новостей еженедельника eWeek, ныне независимый журналист, освещающий вопросы технологии.