** 目 ** ** ** ** 录 ** ** **
一、前言………………………………………………………………………………… 1
二、问题定义…………………………………………………………………………… 1
三、设计目标 . … .. ……………………………………………………………………… 2
四、设计任务…………………………………………………………………………… 2
五、可行性可分析……………………………………………………………………… 3
六、总体设计…………………………………………………………………………… 5
七、 MyCollege.Net 中子系统的体系结构……………………………………………… 7
八、 MyCollege.Net 所倡导的应用系统开发流程……………………………………… 9
九、 MyCollege.Net 中的身份认证与权限控制策略…………………………………… 11
十、 MyCollege.Net 中公共数据资源数据访问策略…………………………………… 11
十一、统一身份认证子系统中的关键技术 …………………………………………… 12
十二、系统测试 ………………………………………………………………………… 13
十三、小结………………………………………………………………………………… 16
十四、参考文献…………………………………………………………………………… 16
** MyCollege.Net ** ** 系统规划与总体设计 **
王 云
西南师范大学计算机与信息科学学院 重庆 400715
** 摘要: ** MyCollege.Net 系统采用基于 XML 的开放式结构,为 MyCollege.Net 内部其它应用系统的开发和应用提供了一种崭新的思路。应用系统可以通过 MyCollege.Net 的核心子系统提供的统一身份认证服务和公共资源共享服务,提高各种数据资源在系统级的复用度,在简化系统开发,增强系统功能、增强用户登录体验等方面收到良好的效果。
** Abstract ** ** : ** The system named MyCollege.Net, which uses opened architecture based on XML, provides a fresh idea and method for its internal subsystems and other applications. The applications can make data more re-usable on system level and achieve better effect on simplifying system development, enhancing system functions and user logon experience through the Universal Identity Authentication Service and the Common Resource Sharing Service of MyCollege.Net core subsystems. ** **
** 关键词 ** ** ** WebService 统一身份认证子系统 公共资源管理与共享子系统 ** **
** 一、 ** ** 前言 ** ** **
在 MyCollege.Net 系统的开发中,作为组长,我主要负责整个系统的规划和总体设计,负责小组成员之间的协调并提供技术支持。针对问题定义提出了相应的解决方案,确定了 MyCollege.Net 的两个核心子系统并划定了各自的功能,并在技术上论证了开发该系统的可行性。为了降低其它小组成员开发各个子系统的难度,在总体设计中我定义了核心子系统开发所应采用的软件体系结构,给核心子系统的体系机构提供了参考。最后,制定了 MyCollege.Net 下其它应用系统的开发流程、身份认证及数据访问所应采用的策略。 ** **
** 二、 ** ** 问题定义 ** ** **
在高校不同的信息管理系统之间,比如图书馆管理系统和学籍管理系统中,都有对于系统用户进行管理的功能,不同的用户有不同的用户名,密码,权限等等。在传统的开发方式下,不同的信息管理系统中都必须处理用户身份认证和授权控制问题。但实际上它们的处理方式基本是一致的,由于这个功能不能在不同的系统之间复用,这就造成了系统的重复开发。另一方面,当一个特定的人同时充当多个不同信息管理系统中具有特定权限的用户时,他需要重复的在各个系统中注册,同时必须记住在不同系统下的用户名和密码等信息,这自然就带来了众所周知的人为安全问题:如果他采用同样的用户名和密码,那么一旦不小心泄露出去后果将不堪设想;如果他采用完全不同的用户名和密码,那么他就需要记住这些不同的信息,这对用户来说无疑是一个挑战。因此,能否有一种方法,让用户注册一次就可以在不同的系统中使用受限的服务,从而避免重复注册呢?
围绕着不同应用系统之间各种资源复用的主题,继续深入下去后我们发现,上述的图书管理系统和学籍管理系统都要使用全校学生的基本信息,实际上还有很多其他的信息管理系统在使用着这些基本信息。那么学生的基本信息是存放在一个单独的数据库服务器上呢还是单独存放在独立的服务器上呢?
在前一种方式下,其它的系统要远程连接到数据库服务器上,学生基本信息数据库的结构一旦确定就不能轻易改动,否则会牵一发而动全身,造成其它系统的不稳定。而且还存在一个跨平台的问题,虽然不同的应用系统采用标准的 SQL 语句与数据库进行通信,但当信息管理系统运行在异构的网络环境中或运行在不同的系统平台上时,如何与数据库服务器互连又是一个棘手的问题。
而后一种方式虽然数据库独立性比较强,但它又会带来数据的重复存储,数据不一致性增大,系统的重复开发等问题。
归根揭底,所有的这些应用系统缺乏一种统一的规划,软件工程中的复用技术无法在系统级实现,系统之间公共数据资源不能被共享,通讯协作在系统级难以实现。因此我们的设计《基于 XML 的开放式集成系统( MyCollege.Net )设计与开发》试图对此问题进行统一的规划,在全局上给出一个尽量完善的解决方案。同时顺应现代软件网络化的潮流,加强各种应用子系统之间通过网络进行协同工作的能力。 ** **
** 三、 ** ** 设计目标 ** ** **
以一种灵活的方式集成高校内部已有的、现存的和未来的各种应用系统,对这些应用系统提供最基本的服务,最大限度的提高各个应用系统之间的资源共享程度,增强不同应用系统之间的协同工作能力,最终促进高校的网络化管理。 ** **
** 四、 ** ** 设计任务 ** ** **
MyCollege.Net 运行的支撑环境是统一身份认证子系统( UIA )和公共资源管理与共享子系统( CResource )。这两个核心子系统对 MyCollege.Net 中其它子系统的开发运行提供了支撑环境。需要说明的是应用系统和子系统在 MyCollege.Net 下是同一个概念,所有的应用系统一旦集成进来就成为 MyCollege.Net 下的子系统。
公共课成绩管理子系统是为了便于公共计算机教育部对于公共课成绩的管理及网上发布而开发的。这个子系统的开发完全是在我们的 MyCollege.Net 下进行的,遵循我们制定的 MyCollege.Net 下应用系统开发流程,使用了 MyCollege.Net 中的各种服务,包括统一的身份认证、集中的基于角色的授权控制以及对于公共数据资源的访问。另一方面该系统的成功开发及与 MyCollege.Net 核心子系统的顺利集成也将证明 MyCollege.Net 设计的先进性和可行性。 ** **
** 五、 ** ** 可行性分析 ** ** **
开发这样一个复杂的系统,究竟在技术上能不能实现、能否产生预期的效果呢?通过上述设计任务的描述,我们知道该系统最核心的部分是 UIA 和 CResource ,而最大的困难就是寻找一种灵活的、简单的技术实现网络环境下数据的传输和交换,这种技术必须是标准的、跨平台的,网络结构无关的。幸运的是在 Microsoft.Net 平台上,有一种叫 WebService 的技术,这种技术完全可以满足我们的要求。同时 .Net 平台还有很多其它的优点,现分述如下:
(一) Microsoft.Net 特点
1、 创建高度分布的应用程序
商务应用程序的趋势一直是高度分布的模型。下一代的应用程序要将它们的元素分布在各个机构中。它与当今的主要模型形成了鲜明的对比——在当今的主流模型中,应用程序(除了基于浏览器的客户程序)的所有元素都位于一个机构的内部。
2、 简化软件开发
开发人员需要能够将注意力集中在应用程序的业务逻辑处理部分,而不是为状态管理、伸缩性等编写逻辑代码。在 .NET 中,编写 Internet 应用程序不需要具备太多的 Internet 专门的技术知识。
3、 在 Web 上的更好的用户界面
用于 Internet 的用户界面开发也需要尽可能地类似于本地访问。尽管使用本地 Wubdiws 界面比浏览器更能提供优秀灵活的界面,但是这种界面需要专门的运行平台( .NET ),实际应用中并不能保证每一台客户机都装有 .NET 。
4、 简化部署
DLL HELL 的问题以及安装基于窗体的应用程序需要的大量工作量,是当
前部署问题的两个例子。 .Net 的目标是使它的部署和在 DOS 上一样简单——只需将编译的模块复制到系统上之后它即可。无需注册,也没有 GUID 。
5、 对各种语言的支持
所有支持 .NET 的语言使用相同的数据类型和接口规范,这就能够让所有的 .NET 语言透明地进行交互操作。一种语言能够轻而易举地调用另外一种语言,甚至能够继承另一语言编写的类,并扩展它们,其它平台都没有这种级别的语言互操作性。
6、 平台的可扩展性
.NET 完全基于对象的方法旨在通过继承来扩展基本功能。该平台的功能大致分为几部分。允许各部分在需要时被替换为新版本。在将来,很可能将与外部世界连接的新方式添加到 Windows Form, Web Form 和 Web 服务中。 .NET 的体系结构使这一点变得十分切合实际。
7、 未来的可移植性
.NET 尽量抽象掉底层平台,将操作系统分离开来。程序员面临的不是操作系统而是统一的 .NET 平台。 .NET 的主要部件已经提交给标准化组织并打算将 .NET 的核心在不同的操作系统上实现标准化。这样最终的目标是一次编译,可以将其移动到不同的操作系统中的另一个 .NET 中,无需任何改动。
** (二) ** ** WebService ** ** 机制 ** ** **
在 .Net 中,一个 WebService 就是一个可编程的单元,它可以提供一系列的服务,比如一些商务处理。而且通过使用互联网的标准(比如 XML 和 HTTP ),这个服务可以被很多不同的系统所利用。正是由于 XML 和其它互联网标准,各种程序间的兼容问题才得以解决, WebService 才成为现实。 WebService 利用四个模块: Directory , Discovery , Description 及 Wire Format 来对所提供的服务进行描述并提供一个标准的数据传送格式。 Directory 提供了一个集中的位置供 WebService 的提供者发布他们所开发的 WebService 的相关信息。 Discovery 用于帮助 WebService 客户端了解到 WebService 的存在以及在哪里可以找到 WebService 的描述文档。 Description 定义了 WebService 的行为以及告诉 WebService 客户端如何使用它。为了保证通用性, WebService 使用开放的协议,这些协议几乎可以被所有支持最常用 Web 标准的系统所使用,比如通常使用的 HTTP 和 SOAP (简单对象访问协议)协议。而 SOAP 是 WebService 的核心协议,它是一种基于 XML 的用于分散和分布环境下信息交换的轻型协议。 ** **
** 六、 ** ** 总体设计 ** ** **
基于 XML 的开放式集成系统( MyCollege.Net )提供了一个开放式的体系结构来集成校园内部已有的、现有的和未来的各种应用系统;以 XML 技术提供灵活的系统间数据交换格式,增强系统间的协同工作能力,降低各种应用系统的冗余开发,提高应用系统开发效率。系统的整体结构如下:

<v:f eqn="sum @8 21600 0