“中间件技术”课程教学改革中的问题与思考
摘要:“中间件技术”课程学习企业级分布式应用系统开发所需的大量概念、理论和技术,课程内容庞杂、抽象,难以学习掌握。针对“中间件技术”课程教学和改革现状,从教材建设、课程难点、提高兴趣、教学方法和实践教学等方面,初步探讨该课程教学改革问题,为该课程及类似课程的建设和教学改革工作提供参考。
关键词:中间件技术;分布式应用系统;教学方法;案例教学
作者简介:梁春泉(1981-),男,广西桂平人,西北农林科技大学信息工程学院,讲师;景旭(1971-),男,陕西礼泉人,西北农林科技大学信息工程学院,副教授。(陕西 杨凌 712100)
基金项目:本文系西北农林科技大学教改项目(项目编号:JY1302064)、西北农林科技大学教改项目(项目编号:JY1301009)、西北农林科技大学教改项目(项目编号:JY1102078)、西北农林科技大学本科优质课程建设项目的研究成果。
中图分类号:G642.0 文献标识码:A 文章编号:1007-0079(2013)31-0074-02
“中间件技术”课程是软件工程专业及其它计算机相关专业的一门核心课程,该课程为实施企业级应用系统的软件工程提供最重要的技术基础。然而,该课程理论性、技术性、实践性都很强,课程内容庞杂、抽象,难以理解,加之传统教学模式问题,降低了学生对这门课的兴趣和热情,课堂效果不甚理想,因此对“中间件技术”的改革势在必行。尽管国内外学者已对计算机专业课程提出了许多改革方案,然而对“中间件技术”课程改革的研究却很少。在国内高校中,笔者只查到两个关于该课程改革的文献。[1,2]但是这两个文献把学习J2EE或.NET当成学习中间件技术的全部内容,并不是真正意义上的“中间件技术”课程教学。本文尝试对“中间件技术”课程改革中的问题进行初步的探索,为本门课程及相类似课程的建设和教学改革工作提供参考。
一、加强教材改革与建设
教材改革与建设问题是大部分课程改革的一个重要问题,在“中间件技术”课程改革中,这个问题尤为突出。
1.缺乏教材
与大多数其它计算机专业课程不一样,国内外关于“中间件技术”课程的教材极其稀缺。在国内,笔者只查到张云勇等编著的《中间件技术原理及应用》。[3]其中包含的中间件技术知识点相对比较齐全,但是解释不详,内容难懂,缺乏案例,并且编著至今将近十年,版本一直没有更新,许多新类型中间件及其典型产品没有被包含。其它关于中间件的书籍都没有系统地介绍中间件知识,只是介绍了某个中间件产品,如J2EE、[4].NET[5]和CORBA,[6]甚至只是某软件企业对其中间件产品的介绍。[7]这些书籍只适合做参考资料。
2.教学内容不统一
国内院校关于该课程的教学内容不统一,甚至教学大纲也很不一样。例如,有的高校甚至把某个中间件产品,如J2EE或.NET,当成中间件技术的全部。究其原因,笔者认为有三个:首先,没有经典、权威教材供教学者参考,大家各持己见;其次,随着全世界软件产业的飞速发展,业界出现了许多类型的中间件及相应产品,教学者选择性大;最后,教学者对中间件内涵理解的层次和角度不一,所选的内容也就不一样。
3.改革建议
为统一教学内容,笔者认为最重要的是编著经典权威的教材。这是一项很大的工程,需要高校有经验的任课教师及在软件企业中长期从事大型企业级应用开发或者中间件产品开发的工程师通力合作,才能组织合理的教材内容。然而,没有经典权威教材之前,总结国内高校“中间件技术”教学情况以及根据笔者理解和体会,笔者认为,“中间件技术”课程的内容应该围绕中间件的基本概念、产生原因和作用,介绍五大类型中间件及其典型产品的原理、技术框架和应用。五大类型中间件为远程过程调用中间件、消息中间件、分布对象中间件、数据库中间件及交易中间件,而典型的产品如J2EE、CORBA和COM/DCOM等。
二、解决课程教学难点
“中间件技术”课程内容的特点及学生欠缺软件工程项目经验,造成了该课程教学实施困难。一方面,“中间件技术”是一门理论性、技术性、实践性都很强的课程。该课程以计算机编程语言、数据结构、面向对象技术、计算机网络、网络安全技术等多课程交叉知识为基础,融合多种技术及工程的思想,引入企业级分布式应用系统开发所需的大量理论;同时中间件的应用只有在实践中才能掌握,且必须在大型企业级分布式应用中实践,造成学生实践困难。另一方面,本科生大部分无软件工程项目,特别是大型软件工程项目背景,因此很难理解中间件的地位和应用模式,感受不到中间件给企业级分布式应用系统开发带来的巨大好处。针对理论和技术复杂、内容庞杂、学生经验欠缺等特点,笔者建议采用案例教学法、问题导入法及重点讲解法相结合的教学方法。在后面章节中会进一步讨论教学方法改革。
三、提高学生学习兴趣和动力
兴趣和动力是使学生积极主动参与教学、积极发挥创造性的关键,但在实际课堂中学生却表现出对该课程兴趣和动力不足。其客观原因,一方面在于庞杂、抽象、晦涩的中间件技术知识难以理解,另一方面在于教师采用传统讲授法,形式单调,教学互动不足。其主观原因是,学生不明白中间件有什么作用及学习中间件对他们有什么用。在笔者初次授课中,在讲完中间件的基本概念之后,有学生甚至问“中间件就是为了屏蔽差异性吗?跟我有什么关系”这样的问题。可看出学生体会不到屏蔽差异性背后的深刻含义和作用,当然这跟他们缺乏软件工程背景,特别是大型企业级分布式应用开发背景有关。大部分学生在前期学习过程中,只开发过不区分业务和基础框架的小程序,中间件基本派不上用场,因此对中间件的作用没有任何感受。为提高学习兴趣和动力,笔者的建议同样是采用案例教学法、问题导入法和重点讲解法。
四、改革教学方法
在“中间件技术”课程教学中,笔者建议采用案例教学法、问题导入法及重点讲授法相结合的方法实施教学。
1.案例教学法
案例教学是指在教学者的组织和指导下,根据教学目的和教学内容要求,让学习者通过对真实案例相关资料的收集、研究及对案例的分析、讨论和交流,最终对问题予以解决,在此过程中加深学生对基本原理和概念理解的一种教学方式。[8]在“中间件技术”课程教学中引入案例教学,可让学生通过真实的案例将前期所有课程知识、中间件理论与技术融合成一个整体,帮助理解中间件的作用、应用层次和应用领域,减少庞杂知识点带来的学习困难。真实的案例能吸引学生的兴趣,激活其学习热情,提高他们学习的积极主动性。采用案例教学要注意的是,必须采用真实、完整、典型和启发性的案例,[8]而不是简单的举例。
2.问题导入法
问题导入法是指教学者为了让学习者掌握一个理论或方法,导入一个具体问题,以解答这个问题为导向,引发学习者思考解决这个问题,从而引入所需要学习的知识,并在解决问题的过程中掌握这些知识。[9]该方法可引导学生讨论、思考,让教学变得灵活生动,激发学生的兴趣,同时由于在思考中可以提出不同想法,有利于培养他们的创新思维。中间件实质上是对企业级分布式系统开发过程中面临的共性问题进行提炼、抽象所形成的可复用部件。在“中间件技术”课程中应用问题导入法,引出并解决这些共性问题,可让学生自然地掌握中间件技术。
3.重点教授法
重点讲授法要求教师在授课过程中只讲重点和难点。前面分析中可知“中间件技术”课程理论性、技术性和实践性强,知识庞杂,过多的讲解会回归传统讲授法,让课堂枯燥无味。重点讲授法应突出重点难点,其它部分由学生通过案例学习和问题引导法学习掌握,这样可以解决内容多、课时少的矛盾。
以上这三种方法相结合,在“中间件技术”课程教学中实施的基本思路为:教师首先需要对真实的企业级分布式应用案例做垂直层次分析,将案例分为业务层、中间件和部署环境。然后把所用到的中间件转换为企业级开发面临的共性问题,其他两层作为从已知条件引出未知问题的基础。最后组织学生思考、讨论并解决这些共性问题,最终实现掌握中间件理论的目的。在讲解过程中,教师要在适当的时候归纳、总结,讲授中间件的重点和难点,突出主题,加深学生理解。
五、引导学生从多角度理解中间件
在教学中应引导学生从多角度讨论和思考中间件,培养学生思考能力、创新能力,加深理解中间件技术原理。根据笔者的理解和教学经验,下面列出一些角度,以作抛砖引玉。
1.业务系统—支撑平台
在学生以前的课程学习中,学生没有接触过业务系统和支撑平台的概念,两者互混。这种情况造成在中间件技术学习的时候,学生也不会加以区分,理解不了中间件的地位、作用和使用模式,也就无法深入掌握中间件。
2.API工具集—运行平台
学生经常会只看到表面形式的中间件:一套API和相应运行库。但更重要的是让学生要认识到,中间件本质是一个运行平台,给上层的业务系统提供业务执行环境。
3.中间件使用者—中间件开发者
学生不区分中间件的使用者和开发者,认为使用和开发都是由同一个群体完成的,造成他们在理解和使用中间件时,过早地陷入“中间件内部到底是如何实现的”这种思维中,不必要地增加了理解中间件的难度。学生通过识别二者角色,可隔离理解中间件实现和应用的复杂性,更好地理解中间件。
4.中间件标准—中间件实现细节
大部分中间件产品都是先由业界相关研究机构及知名企业合作提出并制订针对某个领域的标准,在遵循这些标准的基础上由不同厂商具体实现的,只有实现厂商才知道实现细节。学生通过对中间件标准和实现细节的区分,可以增加对标准的理解,同时明白中间件产品的来源;这二者区分还可以帮助他们理解中间件为什么能够屏蔽底层异构性,给上层业务提供相同服务操作。
5.隐式中间件
隐式中间件相对于显式中间件,是指不需要显式编码也可以被调用的中间件。隐式中间件的存在,可以让业务开发程序员在不感知中间件存在,对中间件毫无认识的情况下也能使用中间件。隐式中间件的设计理念,对系统设计也很有借鉴意义。事实上,大部分系统设计者都以隐式为目标进行系统设计,让系统使用者不了解其他部分情况下也可以使用系统。
六、改革实习方式
传统的实习方式仅仅是程序设计和实现,实习后学生对中间件知识的掌握收获不大,仅仅是学会了如何通过API去调用中间件服务。因此,笔者建议采用案例式实习。在实习中,给学生提供一个新的、与学习内容相关的、完整的案例。首先让学生将案例垂直划分为业务层、中间件层及开发部署环境层,确定每层包含的内容;然后确定案例所采用的中间件;最后让学生编程部分实现对中间件的调用。对于优秀的学生,鼓励他们实现简单的中间件产品。通过这样的实践,让学生从宏观到微观,从中间件的作用、地位到应用等多角度进一步学习。
七、提升任课教师工程实践经验
授课教师具有大型软件工程项目经验对本课程教学实施具有至关重要的作用。然而,由于我国高校教师的选聘方式,大部分计算机教师都是直接来自高校毕业生。在高校中,教师鲜有机会参与大型软件工程项目开发,工程实践经验极其缺乏。因此笔者建议计算机专业课程教师,特别是“中间件技术”课程任课教师,应该通过进修方式到知名软件企业中学习,积极寻找参与大型软件项目开发的机会,增加工程实践经验。
总之,“中间件技术”课程的教学改革是一个系统工程,需要教师认真、深入、全面地进行研究,同时努力提高自己的专业知识和教学水平,才能取得较好的教学效果。
参考文献:
[1]乔波.基于案例的“J2EE与中间件”教学改革初探[J].科技文汇,2011,(1):46-47.
[2]张伟娜.基于企业应用浅析中间件教学改革[J].科技信息,
2011,(21):205-206.
[3]张云勇, 张智江, 刘锦德,等.中间件技术原理与应用[M].北京:清华大学出版社,2004.
[4][美]亨特,罗夫特斯.精通J2EE(Java企业级应用)[M].周立斌等,译.北京:清华大学出版社,2004.
[5]梁爽..NET框架程序设计[M].北京:清华大学出版社,2010.
[6]朱其亮,郑斌.CORBA原理及应用[M].北京:北京邮电大学出版社,2001.
[7]徐春金.Tuxedo中间件开发与配置[M].北京:中国电力出版社,
2004.
[8]周云,辛华,姚新宇.案例教学在“计算机软件技术基础”课程中的尝试[J].高等教育研究学报,2007,30(3):57-59.
[9]石立.“问题导入法”在统计学中的应用[J].统计与咨询,2012,
(2):36-37.
(责任编辑:王意琴)