Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Мы предлагаем два типа проектов для учащихся:
Первый тип включает в себя исследовательские, открытые, научно-ориентированные проекты для обеспечения новых возможностей.Orleans Эти проекты, как правило, имеют широкий охват и будут подходить для студентов магистратуры или докторантуры, а также студентов старших курсов в их последний год обучения. Цель этих проектов состоит в том, чтобы внести идеи и дизайн Orleans. Мы не обязательно ожидаем, что код, созданный в этих проектах, будет напрямую способствовать этому репозиторию, однако это было бы хорошо.
Второй тип включает идеи для образования учащихся. Это либо идеи для интересных приложений, которые можно создать на основе Orleans, либо некоторые новые возможности для Orleans. Эти проекты подходят для включения в курсы для старшекурсников или в магистратуре, где студенты изучают облачные вычисления и современные распределенные технологии и хотят приобрести практический опыт в создании облачных приложений на практике. Мы не ожидаем, что код, созданный в этих проектах, будет внесен непосредственно в этот репозиторий.
Исследовательские проекты
Автомасштабирование. В этом проекте учащиеся могут начать с изучения существующих механизмов автомасштабирования для управления выделением ресурсов в Автомасштабировании Azure. На следующем шаге рассматриваются различные статистические данные и метрики потребления ресурсов, собранные Orleans и использующие их в качестве входных данных для автомасштабирования Azure. Расширенный этап этого проекта может включать улучшение внутренних Orleans механизмов реагирования на изменения эластичности, например путем реализации динамической миграции субъектов, чтобы сократить время, затраченное на использование новых ресурсов.
Автоматически генерируемые интерфейсы для Orleans на основе облачных служб: этот проект беспрепятственно расширяет Orleans модель субъекта в мире HTTP. Начальная фаза проекта включает динамическое создание конечных точек HTTP для актеров, используя их интерфейсы и метаданные .NET. Основная часть включает автоматическое создание интерфейсных интерфейсов для поддержки веб-сокетов и двунаправленной потоковой передачи данных, которая требует сложного создания кода с оптимизацией для высокой производительности. Он также требует внимания к отказоустойчивости, чтобы обеспечить высокий уровень доступности сеансов потоковой передачи через перезагрузки сервера и повторное подключение клиента и миграцию — важную задачу исследования.
Поставщик хранилища для Entity Framework: этот проект включает в себя включение Orleans объектов для хранения состояния в базе данных и последующего запроса. Это может включать добавление поддержки Orleans сохраняемости объектов в базе данных SQL Azure с помощью Entity Framework (EF), которая является реляционной картой объектов с открытым исходным кодом Майкрософт для .NET и предоставлением этих данных с помощью запросов LINQ. Реализация может быть оценена и настроена с помощью стандартных тестов базы данных и (или) пользовательских Orleansприложений.
Распределенный тест системы: определите список тестов, подходящих для распределенных систем, таких как Orleans. Программы-тесты могут быть аналогичны по своей сути тесту производительности базы данных TPC или «Параллельным карликам» из Беркли и могут использоваться для характеристики производительности и масштабируемости распределённых платформ. Рассмотрите возможность разработки нового тестового ориентира, предназначенного для Orleans, например, для сравнения производительности поставщиков хранилища.
Декларативный язык потоков данных: определите и создайте декларативный язык, подобный Trident-Storm, над Orleans потоками. Разработка оптимизатора, который настраивает потоковую обработку, чтобы свести к минимуму общую стоимость.
Модель программирования для клиентских устройств: расширение Orleans до клиентских устройств, таких как датчики, телефоны, планшеты и настольные компьютеры. Включите логику зерна для выполнения на клиенте. Потенциально поддерживает разделение уровней, то есть динамически решает, какие части кода выполняются на устройстве и которые выгружается в облако.
Запросы по классам зерна или субъектов, вторичным индексам: создание распределенного, масштабируемого и надежного индекса зерна. Это включает официальное определение модели запроса и реализацию распределенного индекса. Сам индекс можно реализовать в виде Orleans зерен и/или хранить в базе данных.
Крупномасштабное моделирование: Orleans отлично подходит для создания крупномасштабных имитаций. Исследуйте использование Orleans для различных видов симуляций, например, взаимодействия белков, сетевого моделирования, имитации отжига и т. д.
Проекты курсов
Приложения Интернета вещей: например, приложение может разрешить датчикам и устройствам сообщать о состоянии в облако, где каждое устройство представлено в облаке субъектом Orleans . Пользователи могут подключиться к субъекту, представляющего свое устройство через веб-браузер, и проверить его состояние или контролировать его. Этот проект включает в себя освоение нескольких современных облачных технологий, включая Azure, OrleansМинимальный веб-API, ASP.NET Core SignalR для потоковой передачи команд обратно из облака на устройство, а также разработка приложения для датчиков, устройств и телефонов.
Аналогичная Twitter масштабируемая служба чата в облаке на основе Orleans: каждый пользователь может быть представлен в Orleans виде актера, содержащего список последователей.
Социальное приложение, подобное Facebook, основанное на Orleans: каждый пользователь может быть представлен Актером Orleans, который включает в себя список друзей и стену, на которой друзья могут писать.
Простой поставщик хранилища: добавьте поставщика хранилища для системы хранения, например хранилища ключей и базы данных. Можно использовать простой метод с Orleans сериализатором, как в существующем поставщике хранилища таблиц Azure. Более сложный подход будет сопоставлять переменные состояния класса с более детализированными структурами системы хранения. Сложным является поставщик хранилища Entity Framework, упомянутый выше в разделе "Исследовательские проекты". Сравните производительность различных поставщиков хранилища для различных типов и размеров состояний субъекта.
Сравнение с другими распределенными платформами приложений: возьмите пример приложения, написанного для другой платформы приложений, например Google App Engine или Akka, и преобразуйте его в Orleans. Обобщайте относительные сильные и слабые стороны каждой платформы, сравнивая приложения.
Завершенные исследовательские проекты
Ниже приведены несколько примеров предыдущих успешных исследовательских проектов:
Распределенный анализ журналов, корреляция и отладка. Отладка крупномасштабных распределенных систем является сложной задачей из-за огромных объемов данных и сложных динамических взаимодействий между распределенными компонентами, работающими на разных процессах и разных компьютерах. Цель этого проекта заключалась в анализе предыдущих исследований по этой теме, предложении решения, а затем в реализации прототипных инструментов для сбора, сопоставления и анализа данных файлов журналов ошибок приложения в среде выполнения распределенного приложения на нескольких машинах. Это связано с изучением пространства проблем с различными перспективами, в том числе:
Подходы к эффективному ведению журнала, сбору и анализу сведений о сбоях из различных механизмов записи журналов в распределенной Orleans среде выполнения.
Возможные приложения машинного обучения для поиска шаблонов журналов, которые сигнализируют о серьезных рабочих проблемах, а затем обнаруживают эти шаблоны практически в режиме реального времени как служебная программа мониторинга рабочей среды.
Способы помогать отдельным разработчикам выполнять отладку проблем во время выполнения программы в реальном времени с их приложениями.
Этот проект был успешно выполнен и привел к публикации в документе PAD: обнаружение аномалий производительности в распределенных системах с несколькими серверами и подтверждение концепции реализации средства распределенного анализа журналов.
Horton — распределенная база данных Графа: Хортон был исследовательским проектом для создания системы для хранения, управления и запроса крупномасштабных распределенных графов. Полностью она была реализована как Orleans приложение. Проект привел к некоторым публикациям и нескольким очень успешным студенческим проектам.