Законсервированные проекты
X Screen
В протоколе X Window взаимодействие между сервером и клиентом осуществляется через соединения TCP/IP. Предусмотренный протоколом механизм взаимодействия обеспечивает прозрачную работу через сеть, но не позволяет «на ходу» подключить клиент к другому серверу или восстановить соединение после разрыва связи. Поэтому существующие реализации X Window не могут удаленно подключаться по сети к существующей сессии, как это возможно в протоколе RDP (Windows remote desktop/terminal server). Для текстовых терминальных сессий решение этой проблемы известно давно и называется
screen. screen представляет собой мультиплексор, который создает псевдотерминальные сессии и позволяет отсоединяться и подсоединяться к ним, в том числе и после разрыва «настоящей» терминальной сессии. Предлагается разработать аналогичный мультиплексор для соединений X Window.
Химера
В рамках программы
Windows Academic Program НГУ имеет доступ к исходным текстам ядра Windows Server 2003
Windows Research Kernel и имеет право использовать эти исходные тексты для различных учебных программ и проектов. Использование этих исходников в коммерческих целях явно запрещено лицензией WRK.
Windows, как и большинство других современных ОС, имеет слой абстракции между диспетчером системных вызовов и собственно ядром, позволяющий – во всяком случае, теоретически – создавать различные интерфейсы системных вызовов у одного ядра, т.наз. personality. Так, у старых версий Windows этот слой абстракций использовался для создания OS/2 personality и POSIX personality (в настоящее время не поддерживаются). У современой версии OpenSolaris есть четыре personality – 32- и 64-битные интерфейсы SVR4 ABI, эмулятор Solaris 8 и эмулятор Linux
Предполагается использовать исходные тексты WRK и OpenSolaris для реализации полноценной Win32-personality у ядра OpenSolaris, которое позволило бы запускать Windows userland из-под Solaris. В отличие от других эмуляторов Win32, в первую очередь от Wine, такая подсистема обеспечивала бы не частичную, а 100% совместимость с Win32 API и ABI. Как уже отмечалось, коммерческое применение и даже бесплатное распространение такой подсистемы явно запрещено лицензией WRK, но можно распространять патчи к исходным текстам, которые могли бы использоваться другими участниками Windows Academic Program для сборки собственных версий. Такую подсистему можно было бы использовать для сравнения производительности ядер Windows и Solaris под идентичными загрузками при исполнении одной и той же смеси приложений.
Документация проекта:
/Chimera (требуется регистрация на нашей wackowiki).
Сайт проекта:
http://parallels.nsu.ru/~nvizovitin/Chimera
BPMN workflow engine
В настоящее время существует ряд реализаций языка описания бизнес-процессов BPEL (Business-Process Execution Language), который позволяет описывать процессы документооборота в виде своеобразного расширенного конечного автомата. Эти реализации описывают последовательности событий в системах поддержки бизнеса при помощи графических диаграмм, похожих на блок-схемы или диаграммы UML, и затем обеспечивают исполнение этих диаграмм. При этом каждая «активность» в описании процесса состоит в вызове того или иного компонента существующей системы поддержки бизнеса, например осуществления транзакций над базами данных, предоставления пользователям форм для заполнения и т.д.
BPEL в определенных пределах допускает бизнес-процессы с параллелизмом, однако этот паралеллизм реализован по модели OpenMP, в рамках которой процессу навязывается блочная структура (все нити процесса, исходящие из одной точки ветвления, должны объединяться в одной точке слияния). Это значительно упрощает верификацию описаний процессов и реализацию их интерпретатора. Как показывает опыт эксплуатации систем, как основанных на BPEL, так и систем, основанных на других аналогичных моделях, например модели циклов ознакомления и утверждения, многие бизнес-процессы могут быть без особого ущерба «подогнуты» под блочную структуру. Однако с практической точки зрения большой практический интерес могла бы представлять система, способная исправлять диаграммы произвольной топологии.
Существует стандартизованный язык описания бизнес-процессов BPMN (Business Process Modelling Notation), который допускает описания процессов произвольной топологии, однако он считается непригодным для непосредственного исполнения. В действительности задача его непосредственного исполнения не так уж сложна. Предполагается реализация компонентов для Eclipse/NetBeans, обеспечивающих редактирование и отладку BPNM-диаграмм и их сохранение в форме, пригодной для интерпретации. Кроме того, необходима реализация серверного компонента, который осуществлял бы интерпретацию описания процесса в рамках системы поддержки бизнеса.
Сайт проекта:
http://parallels.nsu.ru/bpmn/
Интеллектуальный сетевой сниффер
Эвристические и обучающиеся анализаторы сетевого траффика – также перспективное направление, в рамках которого ведется довольно много исследовательских работ, но пока еще мало коммерчески успешных продуктов.
Более подробная информация о проекте и его текущем состоянии находится на странице проекта по адресу
http://swsoft.nsu.ru/~savenko/sniffer/ .
Распределенное хранилище
Разработка пиринговой сети с распределённым хранением файлов. Суть распределённого хранения такова: на каждом отдельном носителе хранится не сам файл с данными а лишь его часть, при чём по ней невозможно узнать, что хранится в файле. Для восстановления файла необходимо иметь некое, заранее известное число этих частей. Части распределяются по разным узлам, что обеспечивает высокую отказоустойчивость системы, при условии, что достаточно много узлов сети подключены к ней в любой момент времени. Страница проекта:
http://swsoft.nsu.ru/~chebotarev/
Среда документооборота на основе Wiki
Wiki – еще не вышедшая из экспериментального состояния, но уже популярная технология динамического управления контентом. В рамках проекта предлагается построить на основе Wiki полноценную среду, пригодную для создания корпоративных систем документооборота. Для этого предлагается надстроить над Wiki средства ограничения содержимого документов (формы) и средства репликации документов между серверами, предположительно на основе RSS. В результате Wiki может превратиться в функциональный аналог Lotus Notes/Domino, реализованный на основе современных технологий.
Игровой проект – «Трехмерный Пакман»
На сегодняшний день существует очень много двумерных «клеточных» лабиринтоподобных игр (пакман, диггер, бомбермэн и т.д.), в том числе с 3D графикой. Данный проект представляет принципиально иной подход к реализации подобных аркадных проектов и является платформой для создания трёхмерных аналогов большинства известных «плоских» игр. Также игровой процесс в трехмерном пакмане несколько отличается от его прототипа – головоломки, элементы 3D шутера, оригинальная система бонусов, основанная на дереве Хаффмана.
В данном продукте предполагается создание следующих элементов:
- Универсальный редактор трехмерных карт (лабиринтов)
- Игровой движок поддерживающий возможности современных видеокарт
- Игровая логика (собственно сама игра) трехмерного пакмана
Страница проекта:
http://ccfit.nsu.ru/~fedoseev/BitEsc/
Деканат
Целью данного проекта является создание системы, предназначенной для автоматизации документооборота деканата ФИТ НГУ.
Система, которой пользуется деканат в настоящее время, устарела и перестала удовлетворять требованиям деканата. Поэтому было решено разработать новую систему, которая
- обеспечивает централизованное и надёжное хранение даннных
- является многопользовательской с разграничением прав
- позволяет отслеживать все вносимые изменения
- позволяет получать различные формы отчётов и статистики
- облегчает работу пользователя за счёт минимизации объёма вводимой информации
Проект законсервирован в связи с началом внедрения общеуниверситетской системы
UIS.
Балансировка загрузки
Задача балансировки загрузки актуальна для многих приложений, среди которых следует назвать различного рода серверные фермы, особенно у компаний- провайдеров, многопроцессорные и многомашинные вычислительные системы.
В рамках данного проекта предполагается построение системы распределения и перераспределения заданий для многомашинного вычислительного кластера, установленного в центре распределенных вычислений (к.312 главного корпуса НГУ).
Более подробная информация о проекте и его текущем состоянии находится на странице проекта по адресу
http://swsoft.nsu.ru/~lobachev.
Проект законсервирован в связи с тем, что все участники проекта закончили магистратуру (большинство из них сейчас работает в компании SWsoft).
Распределенная система обнаружения вторжений
Основную идею этого проекта можно описать так: чем больше мы знаем о происходящем в сети, тем выше вероятность, что атака или попытка атаки не пройдет незамеченной, т.е. что в собираемой нами информации останутся какие-либо следы, по которым можно определить факт атаки, или даже ее источник. Идеальная система безопасности должна быть комплексной и охватывать всю сеть – для крупных организаций это могут быть тысячи компьютеров, десятки и даже сотни серверов и много сегментов сети.
В ряде отношений интересны также системы сбора информации, охватывающие сети нескольких организаций. Так, зная, что атакуют не только нас, но и соседей, с которыми у нас есть соглашения об обмене информацией, то можно предположить, что это атака сетевого червя или script kiddie (хакера-любителя, сканирующего сеть в поисках известных уязвимостей). Напротив, если атаке подверглись только мы, то можно предположить, что это некая целенаправленная враждебная деятельность. Так или иначе, ответные меры для этих типов атак должны различаться. Впрочем, построение распределенных систем такого рода наталкивается на фундаментальные проблемы: так, вряд ли организация согласится публиковать полную статистику о работе своей сети; утечка некоторых типов информации (например, о топологии сети или известных уязвимостях) даже может сама по себе представлять угрозу с точки зрения безопасности.
Необходимо признать, что простой сбор статистики с большого количества узлов сам по себе бесполезен для обнаружения вторжений: возможные сигналы о вторжении просто утонут в сотнях малоинформативных параметров и сигналов о том, что «все идет как надо». Во всяком случае, ручной просмотр статистических данных даже не очень крупной сети просто невозможен, автоматический же ее анализ представляет многостороннюю и в ряде отношений весьма сложную проблему.
В настоящее время в ряде академических и коммерческих организаций разрабатываются компонентные системы, обеспечивающие сбор, фильтрацию и анализ информации со всей сети. Такие системы включают в себя анализаторы логов, сетевые «снифферы» и анализаторы протоколов и ряд других модулей сбора информации, центры обработки, обеспечивающие как ручной, так и автоматизированный (в том числе «искусственно-интеллектуальный» и эвристический) анализ поступающих данных и системы реагирования (например, автоматически перенастраиваемые сетевые фильтры).
Анализаторы логов и снифферы можно, в свою очередь, разбить на два класса: системы поиска шаблонов (например, сигнатур известных атак), которые просты, но обладают ограниченной эффективностью, и системы эвристического анализа, которые ищут статистические аномалии в данных (сетевом траффике, производительности системы и т.д.) – к этому типу, например, относится программный комплекс, разрабатываемый в рамках проекта «Анализ логов».
Институт IETF (Internet Engineering Task Force) создал специальную группу, IDWG (Intrusion Detection Working Group), которая разрабатывает протоколы для обмена информацией между модулями таких систем. В настоящее время опубликованы черновики протокола IDEF (Intrusion Detection Exchange Format).
В настоящее время проведен литературный поиск и найдено много интересной информации о уже ведущихся разработках, однако у существующей группы не хватило сил, да, надо признаться, и квалификации, для старта проекта. Приглашаются все желающие; если желающих окажется слишком много, возможно разделение на несколько проектных групп, например, выделение в отдельный проект разработки интеллектуального и/или эвристического сетевого сниффера.
Test Grid
Цель проекта – создание системы распределенного тестирования приложений с использованием технологий GRID. Тестирование является одним из важнейших этапов разработки приложения, всестороннее тестирование – сложный, долгий и ресурсоемкий процесс. Но, тем не менее, необходимый. Для облегчения и автоматизации этого процесса и нужна наша система. Суть GRID-технологии в том, чтобы обычные компьютеры, соединенные в обычную сеть, превратить с помощью только лишь программного обеспечения в единый вычислительный ресурс, способный решать большие задачи, чем-то напоминающий кластер.
В нашем случае этот ресурс будет использоваться для решения задачи тестирования как программ в целом, так и их отдельных частей. Это означает, что программист, работающий над некоторым компонентом, имеет возможность написать несколько тестов для своего компонента и выложить это в GRID. Далее система подбирает подходящие машины из имеющихся в наличии и запускает на них тесты. Результаты тестирования передаются пользователю.
Очевидно, система будет полезна любой фирме, занимающейся разработкой приложений и имеющей в своем распоряжении сеть из нескольких компьютеров.
Домашняя страница проекта доступна по адресу
http://swsoft.nsu.ru/~savenko/tgrid/index.html
Антиспам
Спам (массовая рассылка почты, преимущественно рекламного содержания) представляет собой одну из наиболее раздражающих проблем для современного Интернет. В последние годы довольно большой успех имели антиспамовые фильтры, основанные на вариантах Байесовского фильтра, однако этот подход имеет довольно много недостатков и ограничений. Главным недостатком является то, что байесовский фильтр использует ограниченное число формальных признаков (особенности заголовка письма, ключевые слова в его теле и т.д.); спаммер, знающий особенности, на которые ориентируются популярные фильтры, может построить письмо, лишенное этих особенностей, и, таким образом, обойдет эти фильтры.
В рамках проекта предполагается разработка интеллектуального фильтра, основанного на контент-анализе письма. Более подробная информация о проекте и его текущем состоянии находится на странице проекта по адресу
http://swsoft.nsu.ru/~conqueror/
Анализ логов
Целью проекта является автоматизация анализа данных системной статистики и определение отклонений в работе компьютерной системы, которые могут возникать при атаках, заражении вирусом или сетевым червём, сбое аппаратуры и других потенциально опасных ситуациях. Для обнаружения этих аномалий используются методы data mining, которые выделяют некоторые закономерности в данных и при их нарушении сообщают об аномалии.
Основной задачей является создание приложения, ведущего сбор показаний системных счётчиков и позволяющего пользователю манипулировать анализизирующими плагинами с заложенными в каждый из них специфическими алгоритмами обнаружения аномальной активности и в реальном времени получать осмысленные предупреждения удобным способом.
Более подробная информация о проекте и его текущем состоянии находится на странице проекта по адресу
http://swsoft.nsu.ru/~brylev/loganalyzer/
Watchdog (Распределённая система мониторинга сети)
В наше время существует огромное количество серверов, на которых запущены различные сервисы (e-mail server, ftp server, http server etc.) и часто от работы какого-либо из этих сервисов зависит работоспособность других. Также многие из этих серверов администрируются удалённо. Следовательно появляется необходимость постоянного слежения за работоспособностью огромного числа сервисов. Такая необходимость есть как у администраторов серверов, так и у тех, чья работоспособность напрямую зависит от работоспособности каких-либо сервисов. Как раз для этого создаются подобные системы мониторинга.
Наша система обеспечивает периодическое тестирование работоспособности различных сетевых сервисов (http, ftp, e-mail etc.) и своевременное оповещение заинтересованных лиц о сбоях, интересующих их сервисов, по средствам e-mail, icq, sms etc. Также в системе предусмотрена возможность сбора различной информации с тестируемых серверов, например, температура процессора, свободное место на винчестере и т.п. Система предоставляет возможность гибкой настройки оповещений для каждого конкретного пользователя.
http://swsoft.nsu.ru/~pauls
Анализ и упаковка звука
Задача распознавания звука актуальна в данный момент для многих современных приложений.
В рамках данного проекта предполагется построение самообучающегося анализатора звукового потока,с возможностью распознавания как человеческого голоса так и музыкальных инструментов.
В данном програмном продукте применяется новый метод выявления нужного звукового сигнала,основанный на резонаторах, позволяющий анализировать звуковой поток в реальном времени,т.е. без разбиения на окна и т.д.
Более подробная информация о проекте находится здесь:
http://swsoft.nsu.ru/~turukin
Чилим (Репликация объектных данных в приложениях с ORM слоем)
В последние годы все чаще и чаще возникает задача построения распределенных приложений на основе реляционных СУБД или даже задача развертывания существующих приложений на основе реляционных СУБД для работы в распределенном режиме. В частности, такая задача возникает при развертывании многих приложений, применяемых (или планирующихся для применения) в органах государственного управления. Эта задача осложняется тем фактом, что организация репликации реляционных данных с сохранением целостности в общем случае невозможна, поэтому каждое реляционное приложение должно реализовать собственную схему репликации, опираясь при этом на знание модели данных и критериев их целостности.
Идея проекта основана на том, что большинство реальных приложений в той или иной форме имеет слой объектно-реляционного отображения (ORM, Object-relational mapping), который, в действительности, предоставляет все метаданные, необходимые для репликации на уровне объектов. Предполагается создание инструментария на языке Java, который позволит реплицировать хранимые объекты при помощи специальным образом доработанного протокола RSS. Интеграция такого инструментария в существующие приложения позволила бы легко переделывать централизованные приложения в пригодные для работы в распределенной конфигурации. В перспективе предполагается разработка аналогичных инструментов для других языков, используемых при разработке приложений на основе РСУБД (PHP, C#, Ruby и др.).
Сайт проекта:
/Chilim