Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
We stellen twee soorten projecten voor studenten voor:
Het eerste type omvat verkennende, open onderzoekgerichte projecten om nieuwe mogelijkheden in Orleans te realiseren. Deze projecten zouden meestal een breed bereik hebben en geschikt zijn voor M.S. of Ph.D. studenten of gevorderde studenten in hun laatste studiejaar. Het einddoel van deze projecten is om ideeën en ontwerp bij te dragen aan Orleans. We verwachten niet noodzakelijkerwijs dat de code die in deze projecten wordt geproduceerd, rechtstreeks aan deze opslagplaats wordt bijgedragen, maar dit zou leuk zijn.
Het tweede type bevat ideeën voor studentenonderwijs. Dit zijn ideeën voor interessante toepassingen die kunnen worden gebouwd op basis van Orleans of een aantal nieuwe mogelijkheden voor Orleans. Deze projecten zijn geschikt om te worden gegeven in geavanceerde bachelor- of afstudeercursussen, waar studenten leren over Cloud Computing en moderne gedistribueerde technologieën en praktische ervaring willen krijgen bij het bouwen van Cloud-toepassingen. We verwachten niet dat de code die in deze projecten wordt geproduceerd, rechtstreeks aan deze opslagplaats wordt bijgedragen.
Onderzoeksprojecten
Automatisch schalen: in dit project kunnen leerlingen/studenten beginnen met het verkennen van de bestaande mechanismen voor automatisch schalen voor het beheren van resourcetoewijzing in Azure Autoscaling. De volgende stap omvat het verkennen van verschillende statistieken en metrische gegevens over resourceverbruik die worden door Orleans verzameld en als invoer voor Azure Autoscaling gebruikt. Een geavanceerde fase van dit project kan betrekking hebben op het verbeteren van de interne Orleans mechanismen voor het reageren op elasticiteitswijzigingen, bijvoorbeeld door het implementeren van live actormigratie om de tijd die nodig is om nieuwe resources te gebruiken, te verkorten.
Automatisch gegenereerde front-ends voor cloudservices op basis van Orleans: Dit project breidt het actormodel naadloos uit naar de HTTP-wereld. Het oplopende deel van het project omvat het dynamisch genereren van HTTP-eindpunten voor actoren op basis van hun .NET-interfaces en metagegevens. Het belangrijkste onderdeel omvat het automatisch genereren van front-ends ter ondersteuning van websockets en bidirectionele streaming van gegevens. Hiervoor is het genereren van complexe code vereist met optimalisaties voor hoge prestaties. Het vereist ook aandacht voor fouttolerantie om de hoge beschikbaarheid van streamingsessies te handhaven gedurende het opnieuw opstarten van de server, het opnieuw verbinden van de client en migratie—een grote onderzoekuitdaging.
Opslagprovider voor Entity Framework: dit project omvat het inschakelen Orleans van objecten om hun status op te slaan in een database en er vervolgens query's op uit te voeren. Dit kan omvatten het toevoegen van ondersteuning voor Orleans objectpersistentie in SQL Azure Database met behulp van Entity Framework (EF), de opensource-object-relationele mapper van Microsoft voor .NET en het beschikbaar maken van die gegevens via LINQ-query's. De implementatie kan worden geëvalueerd en afgestemd met behulp van standaarddatabasebenchmarks en/of aangepaste Orleanstoepassingen.
Benchmark voor gedistribueerd systeem: Definieer een lijst met benchmarks die geschikt zijn voor gedistribueerde systemen, zoals Orleans. De benchmarktoepassingen kunnen vergelijkbaar zijn met de TPC-databasebenchmark of UC Berkeley 'Parallelle dwergen', en kunnen worden gebruikt om de prestaties en schaalbaarheid van gedistribueerde frameworks te karakteriseren. Overweeg bijvoorbeeld om een nieuwe benchmark te ontwikkelen die is gericht op het vergelijken van de prestaties van opslagproviders.
Declaratieve gegevensstroomtaal over streams: Definieer en bouw een Trident-Storm als declaratieve taal via Orleans streams. Ontwikkel een optimalisatieprogramma waarmee de stroomverwerking wordt geconfigureerd om de totale kosten te minimaliseren.
Programmeermodel voor clientapparaten: uitbreiden Orleans naar clientapparaten, zoals sensoren, telefoons, tablets en desktops. Schakel graanlogica in om op de client uit te voeren. Potentieel ondersteuning bieden voor het splitsen van lagen, waarbij dynamisch wordt bepaald welke onderdelen van de code worden uitgevoerd op het apparaat en welke worden overgedragen aan de cloud.
Queries over grain-/actorklassen, secundaire indexen: bouw een gedistribueerde, schaalbare en betrouwbare korrelindex. Dit omvat het formeel definiëren van het querymodel en het implementeren van de gedistribueerde index. De index zelf kan worden geïmplementeerd als Orleans korrels en/of opgeslagen in een database.
Grootschalige simulaties: Orleans is zeer geschikt voor het bouwen van grootschalige simulaties. Verken het gebruik van Orleans voor verschillende simulaties, zoals eiwitinteracties, netwerksimulaties, gesimuleerde uitgloeien, enzovoort.
Cursusprojecten
Internet of Things-toepassingen: de toepassing kan bijvoorbeeld sensoren/apparaten in staat stellen hun status te rapporteren aan de cloud, waarbij elk apparaat wordt weergegeven in de cloud door een Orleans actor. Gebruikers kunnen verbinding maken met de actor die hun apparaat vertegenwoordigt via een webbrowser en de status ervan controleren of beheren. Dit project omvat het beheersen van verschillende moderne cloudtechnologieën, waaronder Azure, Orleansminimale web-API, ASP.NET Core SignalR voor het streamen van opdrachten vanuit de cloud naar het apparaat en het schrijven van een sensor/apparaat/telefoon-app.
Twitter-achtige grote schaalbare chatservice in de cloud op Orleansbasis van: Elke gebruiker kan worden weergegeven als een Orleans Actor, met daarin zijn volgerslijst.
Facebook-achtige sociale app op Orleansbasis van: Elke gebruiker kan worden vertegenwoordigd door een Orleans Acteur, die een lijst met vrienden en een muur bevat waarop vrienden kunnen schrijven.
Eenvoudige opslagprovider: Voeg een opslagprovider toe voor een opslagsysteem, zoals een sleutel-waardearchief of databasesysteem. Een eenvoudige kan de Orleans serializer gebruiken, zoals in de bestaande Azure Table Storage-provider. Een geavanceerdere variabele wijst statusvariabelen van een Orleans klasse toe aan fijnmazige structuren van het opslagsysteem. Een complex is de Entity Framework-opslagprovider die hierboven wordt genoemd onder Onderzoeksprojecten. Vergelijk de prestaties van verschillende opslagproviders voor verschillende typen en grootten van actorstatussen.
Vergelijking met andere gedistribueerde toepassingsframeworks: Neem een voorbeeldtoepassing die is geschreven voor een ander toepassingsframework, zoals Google App Engine of Akka, en vertaal deze in Orleans. Geef een overzicht van de relatieve sterke en zwakke punten van elk framework door de apps te vergelijken.
Afgeronde onderzoeksprojecten
Hieronder volgen enkele voorbeelden van eerdere succesvolle onderzoeksprojecten:
Gedistribueerde logboekanalyse, correlatie en foutopsporing: Het opsporen van fouten in grootschalige gedistribueerde systemen is een uitdagende taak vanwege enorme hoeveelheden gegevens en complexe dynamische interacties tussen de gedistribueerde onderdelen, die worden uitgevoerd op verschillende processen en verschillende machines. Het doel van dit project was om eerdere illustraties over dit onderwerp te analyseren, een oplossing voor te stellen en vervolgens prototypehulpprogramma's te implementeren voor het verzamelen, correleren en analyseren van toepassingsfoutlogboekgegevens in een gedistribueerde toepassingsruntimeomgeving met meerdere machines. Dit betreft het verkennen van de probleemruimte vanuit verschillende perspectieven, waaronder:
Benaderingen voor efficiënte logboekregistratie, verzameling en analyse van foutinformatie van verschillende mechanismen voor logboekopname in een gedistribueerde Orleans runtime-omgeving.
Mogelijke toepassingen van machine learning om logboekpatronen te vinden die ernstige productieproblemen signaleren en deze patronen in bijna realtime detecteren als productiebewakingshulpprogramma.
Manieren om individuele ontwikkelaars te helpen realtime foutopsporing uit te voeren voor runtimeproblemen met hun toepassingen.
Dit project is uitgevoerd en heeft geresulteerd in een gepubliceerde paper PAD: Performance Anomaly Detection in Multi-Server Distributed Systems en een proof of concept implementatie van een gedistribueerd logboekanalyseprogramma.
Horton - Distributed Graph Database: Horton was een onderzoeksproject voor het bouwen van een systeem voor het opslaan, beheren en opvragen van grootschalige gedistribueerde grafieken. Het is volledig geïmplementeerd als een Orleans toepassing. Het project resulteerde in enkele publicaties en verschillende zeer succesvolle studentenprojecten.