MyWackoSite: ПроектыЛаборатории/ИдеиПроектов ...

Home Page | Каталог | Изменения | НовыеКомментарии | Пользователи | Регистрация | Вход:  Пароль:  
Это старая версия ПроектыЛаборатории/ИдеиПроектов за 2008-04-21 15:13:14..

Идеи проектов

Репликация реляционных СУБД


В последние годы все чаще и чаще возникает задача построения распределенных приложений на основе реляционных СУБД или даже задача развертнывания существующих приложений на основе реляционных СУБД для работы в распределенном режиме. В частности, такая задача возникает при развертывании многих приложений, применяемых (или планирующихся для применения) в органах государственного управления. Эта задача осложняется тем фактом, что организация репликации реляционных данных с сохранением целостности в общем случае невозможна, поэтому каждое реляционное приложение должно реализовать собственную схему репликации, опираясь при этом на знание модели данных и критериев их целостности.

Идея проекта основана на том, что большинство реальных приложений в той или иной форме имеет слой объектно-реляционного отображения (ORM, Object-relational mapping), который, в действительности, предоставляет все метаданные, необходимые для репликации на уровне объектов. Предполагается создание инструментария на языке Java, который позволит реплицировать хранимые объекты при помощи специальным образом доработанного протокола RSS. Интеграция такого инструментария в существующие приложения позволила бы легко переделывать централизованные приложения в пригодные для работы в распределенной конфигурации.

Система тестирования для олимпиад по программированию


В рамках проекта планируется доработка и организация поддержки системы тестирования, используемой при проведении Всесибирской Открытой олимпиады по программированию и тренировок команд НГУ по программированию. Существующая система разработана А. Таранцовым с использованием Ruby on Rails, но эта система «падает» под большой нагрузкой. На первом этапе предполагается развертывание системы и идентификация причин «падения». Затем будет принято решение о направлении дальнейших работ.

Расширяемый язык программирования


Extensible Term Language (ETL) – это попытка создать инструментальную среду, пригодную для быстрой разработки и поддержки интерпретаторов и компиляторов. В отличие от традиционных парсеров, которые в конечном итоге основаны на вариантах формализма Бэкуса-Науэра, ETL предлагает подход, во многом аналогичный XML. Парсер ETL получает на вход описание грамматики на специальном метаязыке и выдает на выходе дерево разбора операторов, аналогичное дереву DOM, или последовательное представление этого дерева. Кроме того, разработчики ETL ставят перед собой цель обеспечить возможность использования тех же самых описаний грамматик в инкрементальных парсерах, которые могли бы использоваться в синтаксически-ориентированных редакторах, утилитах для рефакторинга, round-trip CASE tools и т.д.

Язык описания грамматик ETL беднее формализма Бэкуса-Науэра (разработчики даже не ставили цели реализовать таким методом все существующие или наиболее популярные языки программирования). Главная цель разработчиков – обеспечить возможность переиспользования элементов грамматик и легкое расширение грамматики, вплоть до возможности создания динамически расширяемых компиляторов. Описав на ETL новую конструкцию и реализовав плагин, который обрабатывает эту конструкцию, пользователь компилятора мог бы немедленно получить расширенную версию языка, причем новая конструкция немедленно получала бы полную поддержку во всех вспомогательных инструментах – редакторах, отладчиках, CASE. Последнее требование практически невозможно обеспечить в рамках современных технологий реализации расширяемых языков.

В настоящее время в рамках проекта ETL реализовано описание грамматики языка Java. Предлагается попытаться реализовать на основе этой грамматики полнофункциональный компилятор, генерирующий на выходе байт-код JVM. Это было бы полезно как для демонстрации возможностей новой технологии, так и для уточнения ее ограничений.

В настоящее время проект ведется автором идеи, Константином Плотниковым.
Сайт проекта – http://sourceforge.net/projects/etl/

BPMN workflow engine


В настоящее время существует ряд реализаций языка описания бизнес-процессов BPEL (Business-Process Execution Language), который позволяет описывать процессы документооборота в виде своеобразного расширенного конечного автомата. Эти реализации описывают последовательности событий в системах поддержки бизнеса при помощи графических диаграмм, похожих на блок-схемы или диаграммы UML, и затем обеспечивают исполнение этих диаграмм. При этом каждая «активность» в описании процесса состоит в вызове того или иного компонента существующей системы поддержки бизнеса, например осуществления транзакций над базами данных, предоставления пользователям форм для заполнения и т.д.

BPEL в определенных пределах допускает бизнес-процессы с параллелизмом, однако этот паралеллизм реализован по модели MPI/OpenMPI, в рамках которой процессу навязывается блочная структура (все нити процесса, исходящие из одной точки ветвления, должны объединяться в одной точке слияния). Это значительно упрощает верификацию описаний процессов и реализацию их интерпретатора. Как показывает опыт эксплуатации систем, как основанных на BPEL, так и систем, основанных на других аналогичных моделях, например модели циклов ознакомления и утверждения, многие бизнес-процессы могут быть без особого ущерба «подогнуты» под блочную структуру. Однако с практической точки зрения большой практический интерес могла бы представлять система, способная исправлять диаграммы произвольной топологии.

Существует стандартизованный язык описания бизнес-процессов BPMN (Business Process Modelling Notation), который допускает описания процессов произвольной топологии, однако он считается непригодным для непосредственного исполнения. В действительности задача его непосредственного исполнения не так уж сложна. Предполагается реализация компонентов для Eclipse / Net Beans?, обеспечивающих редактирование и отладку BPNM-диаграмм и их сохранение в форме, пригодной для интерпретации. Кроме того, необходима реализация серверного компонента, который осуществлял бы интерпретацию описания процесса в рамках системы поддержки бизнеса.

Web GNU CAP


На ФИТ читается курс «Радиоэлектроника». В рамках этого курса студенты изучают основы радиоэлектроники, методы расчетов линейных и нелинейных электрических цепей. Для закрепления пройденного материала и проверки получаемых результатов студентам предлагается замоделировать схемы в Or Cad?-е.

Данный подход обладает рядом недостатков:

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


Предлагается использовать систему GNU CAP (свободнораспространяемый продукт) для счета. Сделать Web интерфейс к ней, в котором студент выбирает схему, задает параметры и отправляет на моделироване. После чего в виде графиков получает результат. Поскольку студенты по большей части моделируют одни и теже схемы с одними и теми же параметрам, то система может быть дополнена прокси сервером.

Реализация данного проекта позволит перевести курс радиоэлектроники в on-line режим.

Практикум по квантовой механике


В НГУ с 1980х годов проводится практикум по имитационному моделированию некоторых простых квантовых систем. Программный комплекс, на котором проводится этот практикум, был написан еще в начале 1990х под ДОС. Необходимо реализовать аналог этого программного комплекса на основе современных технологий. Выбор технологий (Java, C#, Win 32 / MFC? или что-нибудь еще) будет осуществляться с учетом пожеланий участников проекта.

Химера


В рамках программы Academic Program http://www.microsoft.com/resources/sharedsource/Licensing/WindowsAcademic.mspx? НГУ имеет доступ к исходным текстам ядра Windows Server 2003 Research Kernel http://www.microsoft.com/resources/sharedsource/licensing/researchkernel.mspx? и имеет право использовать эти исходные тексты для различных учебных программ и проектов. Использование этих исходников в коммерческих целях явно запрещено лицензией WRK.
Windows, как и большинство других современных ОС, имеет слой абстракции между диспетчером системных вызовов и собственно ядром, позволяющий – во всяком случае, теоретически – создавать различные интерфейсы системных вызовов у одного ядра, т.наз. personality. Так, у старых версий Windows этот слой абстракций использовался для создания OS/2 personality и POSIX personality (в настоящее время не поддерживаются). У современой версии Open\Solaris есть три personality – 32- и 64-битные интерфейсы SVR4 ABI и эмулятор Linux.

Предполагается использовать исходные тексты WRK и Open\Solaris для реализации полноценной Win 32?-personality у ядра Open Solaris?, которое позволило бы запускать Windows userland из-под Solaris. В отличие от других эмуляторов Win 32?, в первую очередь от Wine, такая подсистема обеспечивала бы не частичную, а 100% совместимость с Win 32? API и ABI. Как уже отмечалось, коммерческое применение и даже бесплатное распространение такой подсистемы явно запрещено лицензией WRK, но можно распространять патчи к исходным текстам, которые могли бы использоваться другими участниками Windows Academic Program для сборки собственных версий. Такую подсистему можно было бы использовать для сравнения производительности ядер Windows и Solaris под идентичными загрузками при исполнении одной и той же смеси приложений.

Mobile Morse


Одна из важнейших проблем, ограничивающая применение портативных компьютеров (КПК, смартфонов и др.) – это отсутствие удобного средства ввода текста в эти устройства. Наиболее популярный метод – набор букв многократными нажатиями на цифровую клавиатуру, даже с эвристическими расширениями вроде iTap, очевидно не годится для быстрого набора длинных текстов. QWERTY-клавиатуры, присутствующие в некоторых устройствах этого типа, слишком велики для карманного устройства и в то же время значительно уступают обычным клавиатурам по эргономическим характеристикам, так что скорость набора на таких устройствах во много раз уступает скорости нормальной печати на обычной клавиатуре настолького компьютера или ноутбука. «стилусы», аккордные наборы и прочие экзотические методы совершенно непригодны для массового рынка.

В то же время, существует давно известный и хорошо освоенный на практике метод быстрого набора текста с использованием компактного устройства – телеграфный ключ. Зарегистрированный рекорд скорости для полуавтоматического ключа (Vibroplex) составляет 72 слова (360 алфавитных символов) в минуту, что сравнимо с нормальным темпом речи; нормальной скоростью при использовании виброплекса оператором средней квалификации считается 30 слов в минуту, т.е. 150 алфавитных символов в минуту, что сравнимо с темпом работы квалифицированной машинистки на QWERTY-клавиатуре.

Существует ряд устройств для ввода информации в компьютер при помощи азбуки Морзе, но эти устройства ориентированы на использование инвалидами и при их разработке и реализации не ставилось цели достичь высоких скоростей набора. Однако при разработке таких устройств были учтены потребности современных компьютерных интерфейсов; в частности, есть несколько версий расширенного кода Морзе, содержащих аналоги всех клавиш 101-кнопочной клавиатуры IBM PC.

Конечной целью данного проекта является разработка устройства, подключаемого по USB и/или Bluetooth к КПК, смартфонам или даже ноутбукам, которое можно было бы использовать в качестве полуавтоматического ключа для высокоскоростного набора текстов азбукой Морзе.

В настоящее время разрабатывается эмулятор автоматического или полуавтоматического ключа при помощи компьютерной мыши и обучающая программа (аналог клавиатурного тренажера для слепой десятипальцевой печати), позволяющая изучать азбуку Морзе.

 
Файлов нет. [Показать файлы/форму]
Комментариев нет. [Показать комментарии/форму]