My Blog: http://greatfree.lofter.com My Email: bing dot li AT asu dot edu You are welcome to our QQ group: 469024251 我的博客:http://greatfree.lofter.com 主要讲授利用通用程序语言进行复杂大规模分布式系统程序开发相关技术。 通用程序语言指的是可以用来进行所有应用领域开发的完善程序语言,如Java、C#、C或C++。 由于这些语言的通用性,导致在开发某一类具体应用系统(比如大规模分布式系统)时,针对性不强,开发代价高,难度大。 使用通用程序语言直接开发分布式系统,需要解决以下问题: 路由算法、 多播协议、 资源管理、 并发机制、 同步机制、 存储机制、 缓存机制和 状态管理 等等。 为了解决这个问题,通常程序员只好借用成熟基础软件来建立系统,从而避免了付出过多开发代价。 对于分布式系统来说,一些基础软件示例如下: Tomcat、 .NET、 OpenStack和 J2EE。 但是,这些成熟基础软件虽然减轻了程序员开发分布式系统的代价,也带来了新的矛盾。 程序员不需要关心分布式系统内部问题,只要关注应用逻辑本身,这会大大降低程序员开发复杂系统的能力;对于学生来说,这种影响更大。 长期使用这种软件的程序员只会配置系统,并逐渐失去基础开发能力。 另外,这些软件本身大多只能应付某一类应用环境,一旦需要对基础设计进行修改,几乎无法做到。 比如,下列变动很难利用现有基础软件进行修改: 通信协议、 分布式结构、 集群组和 路由算法。 对这些软件的过分依赖,也会使程序员在不恰当的应用场景中滥用这些软件。 更重要的是,在大多数需要创新的研究开发工作中,如果不能掌握足够高的开发能力,不可能借助这些软件开发出新的基础软件系统。 针对上述问题,本课程首先向学生介绍基本分布式系统知识。 重点内容在于介绍一套基于Java SE(标准版)开发出来的API和设计模式:GreatFree。 这套开发机制由李冰在长期研究开发中总结出来;至今为止,还未在公开资料中发现类似其他技术。 GreatFree包括下列分布式编程技术: 并发编程技术、 同步编程技术、 多播编程技术、 缓存编程技术、 远程访问编程技术、 资源管理编程技术、 分布式存储编程技术、 分布式计算编程技术和 分布式设计模式。 上述编程技术都妥善封装在简洁API中,结合相应设计模式,大大减轻了程序员利用通用语言(Java SE)开发大规模分布式系统的代价,有效提高开发效率以及软件质量。 同时,由于开发过程中相关技术对于程序员可见,程序员可以保证自己能够关注到复杂分布式系统主要细节,保证对于整个系统的控制能力,维持程序员的开发能力。 本课程介绍的技术适于致力于原始创新系统研究开发的程序员学习使用。 也适合学生了解复杂分布式系统的基本技术,逐步提高学生的开发能力。 同时,这套编程技术也有利于逐步完善Java SE技术;李冰正在进一步测试相关代码,计划提交给Java相关组织,从而成为未来Java的一部分。