护性。面向服务的特性使得系统可以更好地处理高层次的组件级别的服务重新封装和
组合。开放平台的引入允许第三方开发者开发应用扩展系统的功能。三者的有机结合
提升了系统的可扩展性和可文护性,也可以很好地应对业务增长和需求变化。
面向服务体系结构(Service Oriented Architecture, SOA)使用一种统一的方
式来完成服务的交互。应用程序中的各个组件均可以发布成服务,而服务之间通过已
经定义的接口和契约进行交互,而由于接口和契约本身的中立性,使得服务的定义与
具体实现剥离开来,服务也因此具有了松散耦合的特性。这一特性也允许我们以一种
相对灵活的方式组织整个系统,独立的功能模块可以发布为服务,并通过组合的方式
来实现更为复杂的功能。而由于所有的功能模块都可以发布为服务,这也使得组合异
构系统和组件的代价大大降低,开发者可以很方便地重用旧代码,而不需要为了适应
新的体系结构而进行非常大的改变,对于有一定历史和积累的软件来说,可以最大限
度地利用现有代码和技术,因此在获得系统的灵活性的同时可以尽可能节省开销。
将面向服务体系结构引入在线评测系统的设计和开发可以很好地解决目前大多
数系统扩展性较差的问题,也可以将组件失效隔离,避免由于单个组件发生的错误导
致系统崩溃。在另一方面,这一体系结构完全改变了原有的以判题子系统为中心的模
式,使开发者能从一个更高的层次分析所有的需求。组件间的松散耦合允许开发者将
判题核心、用户管理、代码管理等模块从判题子系统中剥离开来,并各自加以开发。
同时,由于服务的接口和契约是中立且与具体技术实现无关的,因此各个组件可以各
自用最能发挥其效率的编程语言进行书写,并可以采用截然不同的体系结构,借由公
共接口的交互完成服务的组合,从而尽可能提升整体性能。从另一方面来看,组件间
的解耦合会在组件间通讯过程中带来额外开销,但考虑到系统的可文护性、可扩展性
和软件整体的持续成长的需求,这些开销是值得的。
开放平台是面向服务体系结构所引申出的一个可以大大提升系统承载能力的应
用模式。开放平台 API类似于公开发布的服务,开放平台应用的开发者可以通过调用
系统提供的开放平台 API来开发自己独特的应用,并由系统进行托管和承载。由于开
放平台本身开放了系统的一部分功能以及对一部分资源的访问权限,这也使得各个异
构系统之间的整合以及交互变得更为容易。将开放平台引入在线评测系统,可以在一
定程度上降低系统的负载,并使一部分功能的外包成为可能。而系统本身“开放”的
特性也可以促进整体开发过程走向良性循环,从而更好地应对用户需求的改变。更重
要的一点是,由于系统的一部分功能向第三方开放,平台之间的交互可以变得非常简
单清晰,在线评测平台之间也可以实现无缝对接,最终用户可以通过一个账号访问所
有在线评测平台上的资源,从而实现资源的有效整合和合理利用。借助开放平台,第
三方开发者也可以开发各类应用丰富系统的整体功能。
这一体系结构不仅可以为在线评测系统提供支持,同时也可以用于所有管理信息
系统。这一体系结构的开放性保证了系统具有良好的可扩展性,可以较好地应对业务
的快速变化,并能够支持各种应用场景。 面向服务的开放式平台架构(2):http://www.751com.cn/jisuanji/lunwen_3091.html