基于Oracle数据库和ASP.net构架数字化信息管理系统二次开发的探索

来源 :数字化用户 | 被引量 : 0次 | 上传用户:wqra555551q
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘 要】通过反编译、分析网页程序代码获取商业数字化信息管理系统的技术参数和指标和跟踪分析数据库中数据变化和数据结构从而实现对商业数字化信息管理系统功能的二次开发和无缝融入。
  【关键词】信息管理系统 二次开发 Oracle ASP.net Reflector
  目前各种商业数字化信息管理应用系统的功能定制或二次开发一般都必须通过开发商定制,当中涉及到的技术参数和指标绝大部分开发商是不向客户公开的。通过开发商定制和开发功能,往往需要向其支付不菲的服务费或技术支持费用,系统的运行和管理成本非常高。其次,由于开发商在设置功能需求时只能通过书面和有限的言语交流的形式与客户沟通,导致最终的应用功能与管理者的意图存在一定的偏差。而管理者由于知识层面的局限,又无法将自己的管理意图用程序的方式表现出来,导致了 “懂编程的不懂管理,懂管理的不懂编程”,最终的程序总是无法表现出管理方的完全真实意图。
  所以,一个成熟的管理系统往往是由管理者按照自己的意图制定出功能再通过实践运行反复修正而得来的。湖南工业大学科技学院目前的教学管理信息系统使用的是杭州正方公司开发的“正方现代教学管理信息系统”,后面主要以这套系统就功能的添加进行探究。由于该系统是为面向通用性学分制管理高校教学需求而开发的。在系统运行过程中,管理的多样性与通用功能的限性产生了较大的冲突。我们本次探索的目的是,在基于原系统的功能下,使用一些简单的技术来实现对该系统的二次开发。这样可以利用原系统的部分模块(如登录模块)使用系统数据中的数据实现一个完全自主的功能需求,而无需重新设计一个系统,达到了提高系统的使用率,节省了重新建立一套的软件和硬件开销,最主要的是可以和原系统融为一体,用户不需要在两个不同的系统中反复切换即可实现预期的功能。
  与常见的数字化信息管理系统一样,该教学管理系统主要基于数据库系统和WEB信息发布系统两方面组成,用户通过访问网站实现系统的功能。目前的系统使用的是Windows2003的操作系统及其附带的信息服务管理器(IIS)加上一个Oracle数据库系统组成。开发商为防止源代码及相关技术参数的泄露,对所有源代码进行了封装,将其封装至一个动态链接库当中。通过简单的修改网页文件来实现功能的添加是无法实现的。我们想通过对以下几个方面进行修改,从而实现对系统网站功能的添加。
  一、分析网站源代码获取系统相关信息并用于自主开发功能页面中
  通过对系统源代码的分析可以了解开发商设计程序及功能实现的细节。介于本系统对所有源代码进行了封装,无法直接掌握源代码内容,我们借助一款反编译软件查询了系统的部分程序代码。这款软件的名字叫.NET Reflector(如下图),Reflector是一个由微软员工Lutz Roeder编写的免费程序。它可以将.NET程序集中的中间语言反编译成C#或者Visual Basic代码。
  (一)查看Session对象,获取相关信息
  利用Reflector工具,我们可以方便的查询到,系统中的Session对象使用情况。Session对象是ASP用于存储特定的用户会话所需的信息 。如:
  登录模块中对用户身份认证后会将登录的账户信息存放在Session对象中(ID为"username")。在后面的功能网页中,如需要判断当前登录的用户账号,只需要在代码中引用Session["username"]信息,然后用过数据库访问获取该登录账户的数据。这就而实现自主开发功能页面对当前教学管理系统用户登录模块的共享。
  相对于Session,ASP还有另外一个对象Application用于存放全局用户信息。我们在分析源代码的时候也可以注意这个对象中的数据定义,为我们在后面的功能开发中获取更多的信息。
  (二)原系统的命名空间引用
  通过分析系统封装的动态连接库文件,可以获取原封装文件中的代码被封装的命名空间名称。通过在程序代码前加上using引用,可在自主开发功能页面中引用该动态链接库的全部代码。方法如下:
  using System;
  using zjdx; //其中zjdx即为动态链接库名称
  引用后,可像访问命名空间一样访问其中的类以及类中的过程调用。从而实现对原系统的功能过程的调用。
  (三)获取系统连接数据库的关键词并用于自主开发功能页面数据连接
  通过分析网站的配置文件如WEB.CONFIG可获取一些网站的配置信息,其中就包括网站连接数据库所使用的连接字符串以及用户和密码。本例中的用户名连接字符串和数据库登录密码存放在WEB.CONFIG文件中的AppSettings节点中。系统连接数据库时需要通过特定函数调用其相关的ID来获取,方法如下:
  ConfigurationSettings.AppSettings["MyConn"]; //获取数据库连接字符串
  ConfigurationSettings.AppSettings["MyPwd"]; //获取数据库登录密码
  通过查询WEB.CONFIG文件得知这两个节点对应的字符串为:
  "Data Source=orcl;User Id=zfxfzb;Password=XXXXXX"
  获取了以上的关键信息后,我们即连接数据库系统,获取系统中的相关数据了。通过以上方法获取的原教学管理系统使用的登录密码后发现其为一串加过密的数据信息。我们可以将密码明码直接加到连接字符串中的“password”后面,不过因为数据库系统出于安全方面的考虑会定时更新密码,为方便起见我们分析了封装动态链接库,发现可直接引用其内部的解密函数恢复将这组加密了的密码转换为明码。从而实现与原系统的无缝连接。   二、通过分析数据库获取系统的数据结构
  不论哪种应用系统其最终归结都是对数据的访问和处理。按照程序开发的过程中的数据流程图来分析,每一个功能就可以对照一组数据流程。反过来,通过对数据库中数据的分析,加上对已知功能运行时的数据库各表之间的数据变化进行跟踪可以得到数据库中各个表与各个功能的关系。掌握了这些关系,我们可以通过获取这些相关的表中的数据予以分析,从而得到系统的运行信息。
  (一)数据结构的分析
  在ORACLE中,我们可以非常方便的查询数据库各数据对象之间的关系。将这些关系组织起来就得到了该系统的数据结构。但是仅仅通过对系统已知的功能操作这些有限的信息来分析整个系统的数据结构是一个非常漫长的过程。我们也可以只分析与我们相关的部分表或视图的数据关系,如:获取用户信息及登录密码的存放位置、系统重要数据(如成绩记载记录)的存放位置、系统日志的存放位置等等信息。查询执行系统的某项功能导致ORACLE中哪些表记录变化可以通过以下方法实现,在执行功能前后分别执行以下SQL命令:
  select table_name,NUM_ROWS from user_tables;
  通过比较前后两次执行的结果就可以方便的得出哪些表格的数据发生了增减。
  (二)通过修改已知的存储过程(procedure)实现系统功能
  在数据库系统中,有很多数据处理的操作是放在服务器中进行的,我们通过调用预先设置好的存储过程,将一些简单的操作参数传递给数据库再由数据库来进一步的进行数据处理。我们可以通过修改系统存放在数据库中的存储过程,给其添加适当的指令,让系统在调用存储过程的同时执行我们需要执行的操作,或在存储过程中添加操作的日志,然后通过后面的代码来查询日志获取系统在什么时候访问过哪些存储过程。
  (三)通过修改触发器(trigger)监控某些关键的表数据变化
  如果已知原系统的某些功能会对一些表进行数据修改,因为这些程序已经被封装了,无法修改,但是又想要为这些功能增加一些联动的操作。我们可以通过为这些表格建立一个触发器来实现。比如需要对成绩子系统增加一个数据安全监控的功能,来防止通过网页入侵的方式来篡改成绩,我们可以为成绩表添加一个触发器,只要数据库中有对成绩表数据进行修改的操作,我们都可以对数据进行一次审核,或生成一个日志文件再用后面的程序来比较操作员的日志和成绩修改的日志是否匹配,从而判断成绩的修改是否为非法操作。创建触发器可以通过以下命令实现:
  create or replace trigger CJB_TRG_UPD 触发器名称
  after update or insert or delete on cjb 成绩表为CJB 触发方式为更新操作
  for each row 对每行更新均触发
  三、新增功能与原系统的嵌入方式
  自主开发功能页面设计好后如何与原系统融为一体,成为原系统的功能扩展部分。这涉及到新增功能操作界面是否可以顺利访问,人机交互界面是否有好等。通常我们可以通过以下几个方法将自主功能页面嵌入到原系统中。
  (一)使用原系统预留的菜单接口
  正方现代教学管理信息系统在设计时采用的是灵活的菜单接口,管理员可以根据需要灵活的定义系统的功能菜单及其所对应的页面文件。利用该菜单管理系统可以将自主功能页面无缝的融入管理系统当中,如网页设计风格与原系统保持一致,用户几乎不会发现新增的自主功能页面与原系统的区别。
  (二)更改页面文件,添加链接
  如所使用的系统未提供菜单接口,我们可以通过修改登录后用户打开的主页面实现自主功能页面链接的嵌入。因为商业网站只能将页面的代码封装在动态链接库当中,而无法将页面文件进行封装。IIS在发布网站时仍然是先打开网页的页面文件,再根据页面文件中的注释装入页面文件代码。因此,我们可以方便的直接在原系统的主页面导航菜单中添加行(或列),加入HTML标记链接使其指向自主功能页面的地址。需要注意的是为保证系统的美观和完美的嵌入,菜单链接的CSS样式设置必须和原系统的保持一致。或者通过CSS参加一个新的层并将其定义在最顶端,定义一个浮动的功能菜单或一致指向功能页面的链接。
  以上是我们通过对现行使用的数字化信息管理系统进行分析和摸索总结出的一套自主功能开发模式。通过该模式,可以简单快捷的对已有系统按照需求自由添加功能,同时又避免将需求发回原开发商进行开发导致的系统功能更新慢、维护和更新成本高的缺点。另外,还可以根据使用情况随时对功能进行设置和调整。实现了将管理者的管理理念完美的融入到管理系统中。
  参考文献:
  [1]何翠平著.HTML从入门到精通[M].电子工业出版社,2007,7.
  [2]邱郁惠著.精通CSS与HTML设计模式[M],人民邮电出版社,2008.9
  [3]吴涛主编,网站全程设计技术(修订本),清华大学出版社,2006.7
  [4]任树华,Oracle 10g应用指导与案例精讲,机械工业出版社,2007.2
  [5][美]G.Andrew Duthie , Microsoft ASP.NET程序设计[J],清华大学出版社,2002
  注:本文系2012年湖南省大学生研究性学习和创新性实验计划项目
其他文献
【摘 要】在新时代的教育背景之下,发挥学生在学习中的自主学习能力尤为重要,在教学实践中,必须摒弃以往的填压式的应试教育方法,不断的尝试更加适用于当代学生学习能力的教学方法。现有的大学教育就是为了培养学生的自学能力,对于大学生英语方面的教学通过不断改革来提高教学的质量。教育质量的好坏是评价大学的教育水平的主要方法之一,对于教学管理中,尝试更多更新的英语教学理念,从管理质量的角度来对英语教学的目标进行
期刊
【摘 要】古云:“万紫千红都是春”,不同的学生演唱时,不仅嗓音条件各不相同,各自的生活体验对歌曲的理解都是不同的。个性歌唱是学生在深刻理解原有歌曲的基础上,在不偏离声乐教学基本原则的前提下进行的二度创作和深加工,进一步激发歌唱热情,指导和鼓励学生与众不同的歌唱,通过歌唱展示来培养学生个性,感受音乐中魅力,丰富音乐课堂的内涵。  【关键词】个性歌唱 课堂内涵 引导 二度创作  古云:“万紫千红都是春
期刊
【摘 要】运动技术指能充分发挥运动员机体能力的,合理、有效地完成动作的方法。合理的动作方法是通过长期的实践和理论总结,不断演进而形成的一个理想的动作模式。运动技术是发展竞技能力、创造优异运动成绩的决定因素。  【关键词】课余运动 训练  运动技术指能充分发挥运动员机体能力的,合理、有效地完成动作的方法。合理的动作方法是通过长期的实践和理论总结,不断演进而形成的一个理想的动作模式。运动技术是发展竞技
期刊
数学教学思路在小学数学教材中具有重要的显性知识系统,许多重要的法则、公式,教材中只能看到漂亮的结论,许多例题的解法,也只能看到巧妙的处理,而看不到由特殊实例的观察、试验、分析、归纳、抽象概括或探索推理的 心智活动过程。因此,数学思想方法是数学教学的隐性知识系统,小学数学教学应包括显性和隐性两方面知识 的教学。如果教师在教学中,仅仅依照课本的安排,沿袭着从概念、公式到例题、练习这一传统的教学过程,
期刊
【摘 要】本文综述了的OPENFLOW技术的研发背景,介绍了目前其标准的研究进展,分析了该技术目前存在的问题。  【关键词】OpenFlow;SDN;流表;安全通道;控制器  Abstract:This paper summarizes the OpenFlow technology development background,the current research progress in i
期刊
【摘 要】会计电算化是一种实践性的学科,对会计电算化教学进行改革能够提升学生熟练掌握财务软件的能力,有效的进行账务处理。经济发展要求会计人员要具有很高的能力,从目前的教学状况出发对会计电算化进行教学改革能够有效的提升学生掌握会计的能力,是适应市场发展的必然要求。本文结合会计电算化的现状,分析会计电算化的教学改革,对提升学生的综合能力具有很重要的作用。  【关键词】会计电算化 教学 分析 总结  会
期刊
【摘 要】在电气自动化体系中,电气系统设备的运行管理水平对发电厂的运行的效率以及安全性有着直接的影响,间接地影响到了发电厂在发电市场中的竞争力,及社会效益。本文针对电气自动化体系引进数字化系统分散控制系统DCS(Distributed Control System)中出现的一些问题,阐述分析了构件数字化电气自动化体系的重要性以及必要性,并且探究了一些将应用性数字化技术接入电气中,实现发电厂的电气监
期刊
【摘 要】不断进行教学改革和创新是能有效推动高职英语教学发展的一种十分重要的方式,而高职英语任务型教学方式便可以激发学生对于学习的热情和吸引学生的注意力,从而大幅度提高高职英语课堂教学效率。本文分析了高职英语任务型教学的教学策略,并对其在教学中的使用进行了探究,发现这种新型的教学模式不但能够有效的提高教学质量,还能有效的提升学生的英语素养。  【关键词】高职英语 任务型教学 建构 应用  随着社会
期刊
Analysis of Lead-in with Pictures in English Teaching in independent college  Abstract:Psychologists put forward that image can arouse and organize the perceptual materials in students’ minds, help st
期刊
【摘 要】本文以二阶线性系统的稳定性为对象,利用MATLAB控制系统工具箱进行分析。分析过程简单,结果准确可靠;文章结合实例,验证了其真实性和有效性。  【关键词】控制系统 稳定性 MATLAB  一、引言  控制系统是以传递函数为基础,利用时域分析法、频率分析法和根轨迹法可以对控制系统进行分析,分析过程中涉及控制系统的模型建立、系统分析以及其他相关技术,数学模型具有一定的抽象性,分析时需要大量的
期刊