Orleans 2.0 官方文档 —— 9.2 资源 -> 学生项目

学生项目

我们为学生建议两种类型的项目:

  1. 第一类包括探索性的、开放式的、面向研究的项目,旨在实现Orleans的新功能。这些项目通常具有广泛的范围,适合硕士生或博士生或学生或最后一年学习的高级本科生。这些项目的最终目标是为Orleans贡献思想和设计。我们不指望这些项目中生成的代码能直接贡献给此代码库,但是若能贡献是再好不过的了。

  2. 第二类包括学生教育的想法。这些要么是可以构建在Orleans之上的有趣应用程序的想法,要么是Orleans的一些新功能。这些项目适合在高级本科或研究生课程中学习,在这些课程中,学生可以学习云计算和现代分布式技术,并希望获得构建云应用程序的实际实践经验。我们不希望这些项目中生成的代码直接贡献给此代码库。

研究项目:

  1. 自动缩放。在这个项目中,学生可以首先探索现有的自动扩展机制,以控制Windows Azure中的资源分配(自动扩展应用程序块)。下一步包括探索Orleans收集的各种统计数据和资源消耗指标,并将其用作Azure自动缩放的输入。该项目的高级阶段,可能涉及改进Orleans内部机制,以应对弹性变化,例如通过实现实时的Actor迁移,来减少利用新资源所需的时间。

  2. 基于Orleans的云服务,自动生成前端。该项目将Orleans Actor模型无缝地扩展到HTTP世界。项目的提升部分包括基于.NET接口和元数据,为Actor动态生成HTTP端点。主要部分包括,自动生成前端以支持Web套接字和双向数据流,这需要复杂的代码生成以及高性能的优化。它还需要注意容错,以便在服务器重新启动、客户端重新连接以及迁移期间保持流式会话的高可用性 —— 这是一项重大的研究挑战。

  3. 实体框架的存储提供程序。该项目涉及到使Orleans对象能够将其状态存储在数据库中,并随后进行查询。这可能包括使用Entity Framework(EF)在SQL Azure数据库上,添加对Orleans对象持久性的支持,该框架是Microsoft针对.NET的开源对象关系映射器,并通过LINQ查询公开该数据。可以使用标准数据库基准和/或自定义的Orleans应用程序,来评估和调整此实现。

  4. 分布式系统基准。定义一个适合Orleans这样的分布式系统的基准列表。基准应用程序,在本质上,可能类似于TPC数据库基准此处实现的UCB“Parallel Dwarfs”,可以用来刻画分布式框架的性能和可伸缩性。例如,考虑针对Orleans开发一个新的基准,来比较存储提供程序的性能。

  5. 流上的声明性数据流语言。在Orleans流上定义和构建类似Trident-Storm的声明性语言。开发一个优化器,配置流处理以最小化总体成本。

  6. 客户端设备的编程模型。将Orleans扩展到客户端设备,例如传感器、手机、平板电脑和台式机。启用在客户端上执行grain逻辑。支持潜在地分层,即动态地决定代码的哪些部分在设备上执行,哪些部分转移到云上执行。

  7. 对grain/actor类、二级索引的查询。构建分布式、可扩展且可靠的grain索引。这包括正式的定义查询模型和实现分布式索引。索引本身可以实现为Orleans grain和/或存储在数据库中。

  8. 大规模仿真。Orleans非常适合建立大规模仿真。探索Orleans用于不同仿真的用法,例如蛋白质相互作用、网络仿真、模拟退火等。

课程项目:

  1. 物联网应用。例如,应用程序可以使传感器/设备向云端报告其状态,其中每个设备都由一个Orleans actor在云端表示。用户可以通过Web浏览器连接到代表其设备的actor,并检查其状态或对其进行控制。该项目涉及掌握大量的现代云技术,包括Windows Azure、Orleans、WebApi或ASP.NET、SignalR,用于将命令从云端流回到设备,以及编写传感器/设备/电话应用程序。

  2. 基于Orleans的云端,类似Twitter的大型可扩展聊天服务。每个用户都可以由Orleans actor来表示,其中包含粉丝列表。

  3. 基于Orleans的Faceboook式社交应用。每个用户都可以由一个Orleans actor来表示,其中包括朋友列表,和朋友可以在上面写字的墙。

  4. 简单存储提供程序。为存储系统添加存储提供程序,例如key-value存储或数据库系统。一个简单的提供程序,可以使用Orleans序列化程序,就像在现有的Azure表存储提供程序中一样。更复杂的提供程序,能将Orleans类的状态变量映射到存储系统的细粒度结构。一个复杂的提供程序,是在上面的研究项目中提到的Entity Framework存储提供程序。对于不同类型和大小的actor状态下,比较不同存储提供程序的性能。

  5. 与其他分布式应用程序框架的比较。为另一个应用程序框架(例如Google App EngineAkka)编写示例应用程序,并将其转换为Orleans。通过比较应用程序,来总结每个框架的相对优势和劣势。


已有结论的研究项目:

以下是先前成功研究项目的一些例子。

  1. 分布式的日志分析、关联和调试。调试大规模分布式系统是一项具有挑战性的任务,因为在不同进程和不同机器上运行的分布式组件之间,存在大量数据和复杂的动态交互。该项目的目标是,分析关于该主题的现有技术,提出解决方案,然后实现原型工具,用于跨多机分布式应用程序运行时环境,收集、关联和分析应用程序错误日志文件数据。这涉及从各种角度探索问题空间,包括:

    a. 从分布式Orleans运行时环境中,从各种日志捕获机制中高效地记录、收集和分析故障信息的方法。

    b. 机器学习的可能应用,以查找发出严重生产问题的日志模式,然后作为生产监控实用程序,近乎实时地检测这些模式。

    c. 帮助各个开发人员对其应用程序运行时问题,执行实时调试的方法。

    该项目已成功实施,并产生了一份已发表的论文PAD:多服务器分布式系统中的性能异常检测,以及分布式日志分析工具的概念验证实现。

  2. Horton - 分布式图数据库。Horton是一个研究项目,旨在构建一个存储、管理和查询大规模分布式图形的系统。它完全是作为一个Orleans应用程序来实现的。该项目产生了许多出版物和一些非常成功的学生项目。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值