家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生 家电维修班,手机维修班,电脑维修班,电工班,焊工班,液晶电视维修班,电动工具维修班、电动车摩托车维修班、网络营销培训、网站设计培训、淘宝培训---全国招生
您的位置:网站首页 > 电器维修资料网 > 正文 >

基于B/S体系结构开发的系统

★★★★★【文章导读】:基于B/S体系结构开发的系统具体内容是:由于客户服务器两层结构存在灵活性差、升级困难、维护工作量大等缺陷,已较难适应当前信息技术与网络技术发展的需要。随着WEB技术的日益成熟,Browse/Server(简称B/S)结构已成为取代Browser/Server(简称C/S)结构的一…

来源: 日期:2013-12-8 11:33:12 人气:标签:

基于B/S体系结构开发的系统

    由于客户服务器两层结构存在灵活性差、升级困难、维护工作量大等缺陷,已较难适应当前信息技术与网络技术发展的需要。随着WEB技术的日益成熟,Browse/Server(简称B/S)结构已成为取代Browser/Server(简称C/S)结构的一种全新技术。采用该结构软件的优势在于:(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。

    本文在对B/S体系结构分析的基础上,提出了一种新的体系结构,把B/S与C/S相结合,将组件技术和ActiveX技术分别应用在服务器端和客户端,开发高效、安全的应用系统。 后给出了一个应用实例。

    2 .  COM组件技术和ActiveX技术

    COM是一种技术标准。它是由微软公司创建,提供了使多个应用程序或组件对象协同工作并相互通信的能力。COM组件是遵循COM规范编写、以WIN32动态链接库(DLL)或可执行文件(EXE)的形式发布的可执行的二进制代码。遵循COM的规范标准,使组件与应用、组件与组件之间可以相互操作,极其方便地建立可伸缩的应用系统。从工程的角度看,组件在应用开发方面具有以下特点:

    (1) 组件与开发的工具语言无关。开发人员可以根据需要和爱好选择特定语言工具实现组件的开发。常用的开发工具是VB、VC和Delphi。将组件编译成DLL或EXE置于服务器端。可有效保护商业秘密。

    (2) 通过接口有效保证了组件的复用性。一个组件具有若干个接口,每个接口代表组件的某个属性或方法。其它组件或应用程序可以设置或调用这些属性和方法来进行特定的逻辑处理。组件和应用程序的连接是通过其接口实现的。负责集成的开发人员无须了解组件功能的如何实现,而只须创建组件对象与其接口建立连接。在保证接口一致性的前提下,可以调换组件、更新版本,也可以将组件应用在不同的系统中。

    (3) 组件运行效率高、便于使用和管理。因为组件是二进制代码,比ASP脚本运行效率高,所以核心的商务逻辑计算任务必须由组件来负责,ASP脚本只起组装组件的角色。而且组件在网络上的位置可被透明地分配,组件和使用它的程序既能在同一进程中运行,也可在不同进程或不同的机器上运行。组件之间是相互分离和独立的。利用MTS或COM+对组件管理更加方便。

    ActiveX是遵循COM/DCOM规程而开发的用于INTERNET的一种对象链接与嵌入技术(OLE)。COM是应OLE设计者的需求而诞生的。其基本的出发点是想让某个软件通过一个通用的机构为另一个软件提供服务。对于基于WEB的应用而言,它提供了使组件嵌入到WEB页面以扩展交互功能的应用机制。客户端控件是面向用户的,以可视化的图形视频或文字界面、或者音频形式在浏览器上出现。但它可能并不是浏览器的组成部分。这些控件原先是放在服务器上的。当浏览器发出请求时,WEB服务器回传页面,由浏览器负责解释。在解释过程中,若发现页面中要求调用ActiveX控件时,则用该控件的在页面中注明的ID值先在本地的注册表内进行查询。若已经存在,则说明该控件已经在本地安装,然后通过注册表中的相关信息直接使用该控件;否则就要根据页面中所提示的该控件所在的服务器上的路径到服务器上去下载并且自动完成在本地的安装注册,使该控件成为本地资源,供今后使用,这就是所谓“一次下载,永久使用“。客户端控件一旦在本地安装完毕,就等价于一个可执行的应用程序,它能访问使用本地的资源,甚至进行远程访问。当然,这可能带来了安全性问题。

    3  基于B/S体系结构开发应用系统

    3.1  B/S三层体系结构

    在B/S体系结构系统中,用户通过浏览器向分布在网络上的许多服务器发出请求,服务器对浏览器的请求进行处理,将用户所需信息返回到浏览器。B/S结构简化了客户机的工作,客户机上只需配置少量的客户端软件。服务器将担负更多的工作,对数据库的访问和应用程序的执行将在服务器上完成。浏览器发出请求,而其余如数据请求、加工、结果返回以及动态网页生成等工作全部由Web Server完成。实际上B/S体系结构是把二层C/S结构的事务处理逻辑模块从客户机的任务中分离出来,由Web服务器单独组成一层来负担其任务,这样客户机的压力减轻了,把负荷分配给了Web服务器。这种三层体系结构如图1所示。

    这种结构不仅把客户机从沉重的负担和不断对其提高的性能的要求中解放出来,也把技术维护人员从繁重的维护升级工作中解脱出来。由于客户机把事务处理逻辑部分分给了功能服务器,使客户机一下子"苗条"了许多,不再负责处理复杂计算和数据访问等关键事务,只负责显示部分,所以维护人员不再为程序的维护工作奔波于每个客户机之间,而把主要精力放在功能服务器上程序的更新工作。这种三层结构在层与层之间相互独立,任何一层的改变不会影响其它层的功能。

    3.2  B/S三层体系结构的不足

    经过近一两年的应用,B/S体系结构也暴露出了许多不足地方,具体表现在以下几个方面:

    (1) 由于浏览器只是为了进行WEB浏览而设计的,当其应用于WEB应用系统时,许多功能不能实现或实现起来比较困难。比如通过浏览器进行大量的数据输入,或进行报表的应答都是比较困难和不便的。

    (2) 复杂的应用构造困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对于发展已非常成熟C/S的一系列应用工具来说,这些技术的开发复杂,并没有完全成熟的技术供使用。

    (3) HTTP可靠性低有可能造成应用故障,特别是对于管理者来说,采用浏览器方式进行系统的维护是非常不安全与不方便的。

    (4) WEB服务器成为对数据库的唯一的客户端,所有对数据库的连接都通过该服务器实现。WEB服务器同时要处理与客户请求以及与数据库的连接,当访问量大时,服务器端负载过重。

    (5) 由于业务逻辑和数据访问程序一般由JavaScript、VBScript等嵌入式小程序实现,分散在各个页面里,难以实现共享,给升级和维护也带来了不便。同时由于源代码的开放性,使得商业规则很容易暴露,而商业规则对应用程序来说则是非常重要的。

    为克服以上不足,在原有B/S体系结构基础上,采用一种新的体系结构,如图2所示。

    在该种结构体系中,一些需要用WEB处理的,满足大多数访问者请求的功能界面(如信息发布查询界面)采用B/S结构。后台只需少数人使用的功能应用(如数据库管理维护界面)采用C/S结构。组件位于WEB应用程序中,客户端发出HTTP请求到WEB SERVER。WEB SERVER将请求传送给WEB应用程序。WEB应用程序将数据请求传送给数据库服务器,数据库服务器将数据返回WEB应用程序。然后再由WEB SERVER将数据传送给客户端。对于一些实现起来困难的功能或一些需要丰富的HTML页面,通过在页面中嵌入ActiveX控件来实现。

    采用这种结构优点在于:(1)充分发挥了充分了B/S与C/S体系结构的优势,弥补了二者不足。充分考虑用户利益,保证浏览查询者方便操作的同时也使得系统更新简单,维护简单灵活,易于操作。(2)信息发布采用B/S结构,保持了瘦客户端的优点。装入客户机的软件可以采用统一的WWW浏览器。而且由于WWW浏览器和网络综合服务器都是基于工业标准,可以在所有的平台上工作。(3)数据库端采用C/S结构,通过ODBC/JDBC连接。这一部分只涉及到系统维护、数据更新等,不存在完全采用C/S结构带来的客户端维护工作量大等缺点。并且在客户端可以构造非常复杂的应用,界面友好灵活,易于操作,能解决许多B/S存在的固有的缺点。(4)对于原有基于C/S体系结构的应用,可以非常容易地升级到这种体系结构,只需开发用于发布的WWW界面,可以保留原有的C/S结构的某些子系统,充分地利用现有系统的资源。使得现有系统或资源无需大的改造即可以连接使用,保护了用户以往的投资(5)通过在浏览器中嵌入ActiveX控件可以实现在浏览器中不能实现或实现起来比较困难的功能。比如通过浏览器进行报表的应答。另外,在客户端ActiveX控件的加盟,可以丰富HTML页面,产生另人惊奇的效果。(6)将服务器端划分为WEB服务器和WEB应用程序两部分。WEB应用程序采用组件技术实现三层体系结中的商业逻辑部分,达到封装源代码,保护知识产权的目的。Internet应用程序大部分属于分布式应用程序,采用组件技术一个重要特点就是它的处理能力能够随着用户数量、数据量所需性能的提高而增加。COM的无逢扩展集COM+,有着如内存数据库、负载平衡等强大的功能。

    4        实例

    下面以某学校学生管理系统为例说明B/S结构软件的设计方法,该系统采用B/S体系结构与COM+技术相结合。通过该系统管理人员可以对学生的学籍、学生的日常表现、学生的学习成绩、学校教师、学校的资产进行管理与维护。任课教师可以通过浏览器查询所教班级学生各种相关信息。学校管理人员通过浏览器对学校的学生、教师等信息进行管理与维护以及有关查询统计功能。学校资产管理人员通过C/S体系结构实现对学校资产的管理维护。

    本系统结合了ASP技术和COM+技术,是一个三层结构。表示层由ASP页面组成,用以实现WEB页面显示和调用COM+组件,业务逻辑和数据访问由一组用VC实现的COM+组件构成。为了便于维护、升级和实现分布式应用,在实现过程中,又将业务逻辑层和数据访问层分离开,ASP页面不直接调用数据访问层,而是通过业务逻辑层来调用数据库。

    4.1  COM组件技术应用

    该系统的实现主要分为三个部分:数据库、COM+组件和ASP页面。其中数据库与ASP页面的实现与一般B/S结构的WEB应用相似。COM+实现可分为三个步骤:COM+组件的设计、COM+应用程序的生成和组件注册、基于属性编程。该管理系统利用VC中的ATL开发COM+组件。下面是该系统中一个定制组件部分主要代码

    在showscore.asp页面中接受、辨别用户的查询请求,做出不同的查询处理。当客户的身分为教师或教务员时,可以查询所有学生的成绩;当客户的身分为学生时,只能查询本人的成绩。

    定制COM组件Score.dll进行查询处理。首先设计该组件的接口,为组件设计四个属性:SubjNo(课程号),Term(课程所属学期),ClassNo(班级号)和StuNo(学号)。定义两个方法RequeryScores和RequeryAllScores,分别对教师、教务部门和学生的请求做出相应的处理,并将查询结果集返回给用户。

    以下是实现该组件Score.dll接口描述以及实现方法的部分代码,从中可以看到组件的接口是如何实现的:

    import "ocidl.idl";

    [

    object,

    uuid(46C01798-BE39-4FC0-A25D-718BA31DFADC),

    dual,

    helpstring("IStudentScore Interface"),

    pointer_default(unique)

    ]

    interface IStudentScore : IDispatch{

    [propget, id(1), helpstring("课程号")] HRESULT SubjNo([out, retval] BSTR *pVal);

    [propput, id(1), helpstring("课程号")] HRESULT SubjNo([in] BSTR newVal);

    //其它接口部分从略

    [id(5), helpstring("method RequeryScores")] HRESULT RequeryScores(([out,retval]LPDISPATCH* ppRecordset));

    };

    STDMETHODIMP CStudentScore::RequeryScores()

    {

    HRESULT hr=S_OK;

    IobjectContext* m_spObjectContext=NULL;

    //利用ADO访问数据库

    ::CoInitialize(NULL);

    _RecordsetPtr      pRecordSet=NULL,pRecordSetClone=NULL;

    BSTR bstrDSN=::SysAlLOCString(L"Provider=SQLOLEDB.1;Persist Security Info=True;

    Password=;Initial Catalog=pubs;Data Source=zhudamiing;User ID=sa");

    BSTR bstrSQL;

    try{

    GetObjectContext(&m_spObjectContext);

    pRecordSet.CreateInstance(__uuidof(Recordset));

    //根据查询要求(查询所有课程、查询特定学期所有课程、查询指定课程、查询

    //特定学期某一课程)进行不同操作生成相应SQL语句,程序具体处理从略

    pRecordSet->CursorLocation = adUseClient;

    pRecordSet->Open(bstrSQL,bstrDSN,adOpenKeyset,adLockOptimistIC,adCmdText);

    pRecordSet->PutRefActiveConnection(NULL);

    pRecordSetClone = pRecordSet->Clone(adLockOptimistic);

    pRecordSetClone->QueryInterface(IID_IDispatch, (void**)ppRecordset);

    pRecordSet->Close();

    pRecordSet = NULL;

    ::SysFreeString(bstrDSN);

    ::SysFreeString(bstrSQL);

    //事物成功完成,则提交该事物

    I f(m_spObjectContext-)

    m_spObjectContext->SetComplete();

    }

    catch(_com_error &e){

    if(m_spObjectContext) //事物失败,回滚事物处理

    m_spObjectContext->SetAbort()

    // 其他错误处理,从略

    }

    return hr;

    }

    RequeryAllScores()实现部分从略。另外ASP调用实现部分比较简单从略。

    组件编译结束后可以用COM+组件服务管理工具来管理COM+组件及其所在的应用程序。COM+组件服务是个图形界面的管理工具,利用它可以安装和发布组件、配置组件及其所在应用程序的属性,以实现组件安全性、MTS支持、排对组件、设置组件构造参数等。

    4。2  ActiveX技术应用

    在本系统中许多报表的打印如学生成绩打印、学籍报表、学籍卡打印等需要特殊的格式。而浏览器所提供的打印功能无法实现。为此可采用ActiveX技术,实现在WEB环境下的本地端打印和报表生成。具体实现过程为:(1)WWW服务器在接到用户请求后调用WEB应用程序中的相应组件,通过组件访问数据库,对数据处理生成报表数据,以文件形式存储于WEB服务器中相应目录下。(2)WWW服务器向用户浏览器发送内嵌ActiveX控件的HTML页面,并在HTML页面里的(OBJECT)标志中的param属性里指明数据文件的URL地址。(3)HTML页面根据所提供的ActiveX标志从WWW服务器上下载ActiveX控件到本地端,并在浏览器里执行。ActiveX控件在客户浏览器里完成初始化工作以后,则需直接与服务器端联系,以获取报表数据。ActiveX控件与服务器端的连接采用HTTP协议所提供的GET方法,根据数据文件在WWW服务器上的URL地址,直接将数据文件从WWW服务器下载到本地端。(4)对数据文件进行解析,输入到控件的存储显示模块里,用以存储显示。(5)当用户按下打印按钮时,ActiveX调用打印模块进行打印输出。

    5  结束语

    随着INTERNET普及,基于B/S体系结构开发应用程序变为流行的方式。将组件技术应用到B/S体系结构中,实现业务逻辑封装,提高软件的可重性和可维护性。

    参考文献:

    [1]余英 ,梁刚 VC实践与提高COM和COM+篇.  中国铁道出版社

    [2]林子禹等 基于WEB与组件技术的企业应用系统设计模型 计算机工程与应用 2000.6.

    [3]夏骄雄等  基于Intranet的管理信息系统  小型微型计算机系统  2001、4

    [4]楼伟进,应飚.COM/DCOM/COM+组件技术  :计算机应用2000、4.

    [5]张震、张曾科  一种新的WEB数据库系统结构

 


【看看这篇文章在百度的收录情况】

联系方式

  • 0731-85579057 , 0731-85569651
  • 点击这里给我发消息点击这里给我发消息点击这里给我发消息
网站栏目导航: 培训课程 手机硬件 手机软件 综合维修 学校资讯 考证指南 就业导航 招生指南 教学管理 入学须知 学校图片 教学大纲 师资力量 学生感言 学校概况 教学实景 手机维修培训资讯 电脑维修培训 维修间故事 手机维修培训 液晶电视维修培训 家电维修资料网 电器维修资料网 招生地区 刷机教程 家电维修 手机技巧 老版网站 招生平台网络工程
友情链接: 监控安装培训 电动工具维修 家电维修学校 电工培训学校 液晶电视维修 焊工培训学校 电工焊工学校 电脑维修学校 家电维修培训 电脑维修培训 家装电工培训网络安装维护 主板维修 液晶显示器 笔记本电脑维修 电脑组装维护 电脑硬件维修 电脑维修 电工考证 电工证 装修电工 水电工 维修电工 电工 焊接技术 电焊工 焊工 电动设备维修 电动工具维修 制冷维修 空调维修 冰箱维修  更多>>
阳光-手机维修教育品牌学校
点击这里给我发消息 点击这里给我发消息 点击这里给我发消息
电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校 电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校 电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校 电工培训学校 电动车维修学校 摩托车维修学校 摩托车维修培训 手机维修培训 家电维修培训 电脑维修培训 电动工具维修培训 液晶电视维修培训 安防监控培训 空调维修培训 网络营销培训 网站设计培训 淘宝网店培训 电器维修培训 家电维修学校 电工培训 焊工培训 电工学校
中山市,固原市,银川市,玉树,海东,陇南市,酒泉市,张掖市,天水市,金昌市,兰州市,榆林市,延安市,渭南市,铜川市,阿里,山南,拉萨市,怒江,文山州,楚雄州,普洱市,昭通市,玉溪市,昆明市,毕节,铜仁,遵义市,贵阳市,甘孜州,资阳市,达州市,宜宾市,南充市,遂宁市,绵阳市,泸州市,自贡市,三亚市,崇左市,河池市,玉林市,钦州市,梧州市,柳州市,梅州市,肇庆市,湛江市,佛山市,珠海市,韶关市,湘西州,怀化市,郴州市,张家界市,邵阳市,株洲市,仙桃市,随州市,荆州市,荆门市,襄樊市,黄石市,驻马店市,信阳市,南阳市,漯河市,中卫市,石嘴山市,海西,海南藏州,黄南州,海北,甘南,庆阳市,平凉市,武威市,白银市,嘉峪关市,安康市,汉中市,咸阳市,宝鸡市,林芝,日喀则,昌都,迪庆,德宏,大理,西双版纳,红河州,临沧市,丽江市,保山市,曲靖市,黔东州,黔西州,安顺市,六盘水市,凉山州,阿坝州,雅安市,广安市,眉山市,内江市,广元市,德阳市,攀枝花市,成都市,海口市,来宾市,百色市,贵港市,北海市,桂林市,南宁市,云浮市,揭阳市,潮州市,清远市,阳江市,汕尾市,惠州市,茂名市,江门市,汕头市,深圳市,广州市,娄底市,永州市,益阳市,岳阳市,湘潭市,长沙市,恩施州,黄冈市,孝感市,鄂州市,十堰市,武汉市,周口市,商丘市,三门峡市,许昌市,焦作市,安阳市,鹤壁市,平顶山市,开封市,郑州市,聊城市,滨州市,德州市,莱芜市,日照市,泰安市,烟台市,潍坊市,东营市,淄博市,上饶市,济南市,抚州市,宜春市,赣州市,新余市,九江市,景德镇市,宁德市,南平市,泉州市,莆田市,厦门市,宣城市,亳州市,六安市,宿州市,黄山市,滁州市,安庆市,淮北市,马鞍山市,蚌埠市,芜湖市,合肥市,丽水市,舟山市,衢州市,金华市,湖州市,嘉兴市,宁波市,宿迁市,镇江市,盐城市,连云港市,苏州市,徐州市,南京市,绥化市,牡丹江市,佳木斯市,大庆市,鹤岗市,哈尔滨市,白城市,白山市,辽源市,吉林市,葫芦岛市,铁岭市,盘锦市,阜新市,锦州市,本溪市,鞍山市,沈阳市,锡林郭勒盟,通辽市,乌海市,吕梁市,忻州市,晋中市,晋城市,阳泉市,太原市,廊坊市,承德市,保定市,邯郸市,唐山市,宁夏,甘肃省,西藏,贵州省,重庆市,广西,湖南省,河南省,江西省,安徽省,江苏省,黑龙江省,辽宁省,山西省,天津市,四平市,内蒙古,吴忠市,果洛,西宁市,定西市,商洛市,西安市,那曲,黔南州,巴中市,乐山市,贺州市,防城港市,东莞市,河源市,常德市,衡阳市,咸宁市,宜昌市,濮阳市,新乡市,洛阳市,菏泽市,临沂市,威海市,济宁市,枣庄市,青岛市,吉安市,鹰潭市,萍乡市,南昌市,龙岩市,漳州市,三明市,福州市,池州市,巢湖市,阜阳市,铜陵市,淮南市,台州市,绍兴市,温州市,杭州市,泰州市,扬州市,淮安市,南通市,常州市,无锡市,大兴安岭,黑河市,七台河市,伊春市,双鸭山市,鸡西市,齐齐哈尔市,延边,松原市,通化市,长春市,朝阳市,辽阳市,营口市,丹东市,抚顺市,大连市,阿拉善盟,兴安盟,乌兰察布市,巴彦淖尔市,呼伦贝尔市,鄂尔多斯市,赤峰市,包头市,呼和浩特市,临汾市,运城市,朔州市,长治市,大同市,衡水市,沧州市,张家口市,邢台市,秦皇岛市,石家庄市,青海省,陕西省,云南省,四川省,海南省,广东省,湖北省,山东省,福建省,浙江省,上海市,吉林省,河北省,北京市