访问者设计模式(精选12篇)
访问者设计模式 篇1
一、引言
一个易于维护和升级的Web应用程序离不开数据库的支持, Web应用程序通过SQL语言实现对底层数据库的数据存取以及查询、更新和管理操作, 但由于数据库厂商不同, 即使同一厂商不同数据库版本在使用SQL语言的很多细节上都有所不同。当基于三层架构的Web应用程序的底层数据库由Access更换为SQL Server或者Oracle, 需要对程序的数据库访问层进行修改[1]。在设计数据访问层时采用抽象工厂模式不仅可以实现系统数据库选择, 而且还可以增强程序的复用性、可扩展性及可维护性。
二、抽象工厂设计模式
抽象工厂模式是所有形式的工厂模式中最为抽象和最具一般性的一种形态[2]。抽象工厂模式 (Abstract FactoryPattern) 提供一个创建一系列相关或相互依赖对象的接口, 而无须指定它们具体的类[3]。在该模式中, 为客户提供请求服务的是抽象工厂和抽象产品。
Web应用程序对底层数据库的操作可以归纳为添加、删除、修改和查询四类。当对数据执行添加、删除、修改操作时, 会返回该操作所影响的记录行数;当对数据执行查询操作时, 返回数据集或返回结果的第一行第一列的值。因此封装抽象工厂Abstract Data Access, 用于声明创建抽象产品对象Execute Non Query、Execute Data Set、Execute Scalar的操作接口;封装实体工厂SQLData Access和Ole Db Data Access, 分别用于创建具体产品对象SQLExecute Non Query、SQLExecuteData Set、SQLExecute Scalar和Ole Db Execute Non Query、Ole Db Execute Data Set、Ole Db Execute Scalar, 实现对SQL Server数据库和Access数据库的操作。数据库操作抽象工厂模式结构如图1所示。
三、抽象工厂模式在数据访问层的应用
Visual Studio 2008是微软提供的用于开发.Net Web应用程序的工具, 具有方便、灵活、开发效率高、安全性强、完整性强等 特性。在Visual Studio 2008上构建三 层架构的Web应用程序, 在数据访问层采用抽象工厂设计模式。
1、封装数据访问接口
数据访问接口提供数据访问功能的基本接口, 实现功能的参考代码如下:
2、封装抽象工厂
3、封装实体工厂
4、封装数据访问类
四、总结
在数据访问层采用抽象工厂设计模式实现了系统在不同数据库之间的更换, 增强了系统的复用性、可扩展性及可维护性。应用抽象工厂模式可以实现高内聚低耦合的设计目的, 系统对扩展开放, 对修改封闭, 通过扩展增强其功能。
参考文献
[1]魏一博, 郭友.抽象工厂模式在.NET数据访问层中的应用[J].信息系统工程.2010, 2:62-63, 59.
[2]王德永, 樊继.抽象工厂模式在多种数据库访问程序中的应用[J].机电产品开发与创新.2009, 22 (6) :115-116.
[3]贾延明, 张永涛.抽象工厂设计模式在MIS中的应用[J].计算机系统应用.2011, 20 (1) :205-207.
访问者设计模式 篇2
泰兴市横垛小学 吴军 [教学课题] 快捷访问网站 [教案背景] 本课是苏教版小学信息技术上册第17课的教学内容,在学习本节课之前,学生已学会利用IE浏览器浏览网上有用信息,了解了“网址”和“链接”的概念。本节课应该是第16课《遨游因特网》的延伸,让学生能够更加快速便捷的访问网站。[教材分析] 本课的教学目标主要是让学生学会快速浏览网上信息,主要通过收藏夹、网址列表、历史记录以及设置主页来实现。教师可要求学生寻找一种适合自己的方法,以此来实现教学目标。[教学方法]
通过教师讲授和自主探究学习相结合的方法,掌握快捷访问网页、浏览网络信息的方法。通过小组竞赛激发学生的学习兴趣,培养学生的竞争意识。[教学重点与难点]
1、重点:学会运用收藏夹、网址列表和历史记录快速访问网站。
2、难点:主页的设置方法。[教学过程]
一、导入
1、同学们,老师以前上网的时候啊,经常遇到网址记不住或者网址输错的情况。那么,为了解决网址的问题,有没有不用输入网址就能上网的办法呢?
指名学生演示。(要求学生先自学本课)
2、这位同学做的真棒,其实除了这种方法,还有很多方法,今天我们就来找一找便捷访问网站的方法。
揭题:便捷访问网站
二、新授
1、组织学生分组探究
请同学们相邻两人为一组,结合课本,找一找有哪些简便方法,写在研究报告上。
2、学生汇报研究成果
请学生边演示边讲解操作步骤,教师板书列举:
(1)网址列表:单击地址栏右侧下拉列表按钮,单击网址(2)收藏夹:单击“收藏夹”菜单,单击“添加到收藏夹”按钮(3)历史记录:单击“历史”按钮,单击网页
(4)设置主页:单击“工具”菜单,单击“internet选项”,单击“使用当前页”按钮
3、教师演示,老师也想用这些方法试一试,大家看看老师做得怎样?
4、巩固练习,让学生用四种方法尝试打开我们学校的网站,)加入收藏夹(3)在历史记录中找到,并打开(4)把百度网()设为主页
三、总结
今天我们一起找到了四种便捷访问网站的方法,希望同学们在今后的学习中能不断探索出更多的方法,下面请同学们把今天的收获写在“成果篮”里。[教学反思]
访问者设计模式 篇3
期间,访问团到访、考察了欧洲最大的华人社团法国华侨华人会、南京大学法国校友会、旅法苏浙同乡会、中谊文化传媒集团、法国华人电视台、法国南京同乡会等,拜会了中国驻法国大使馆,受到陆青江参赞的热情接待。
访问团一行还认真听取了使馆、侨团、侨领对法国华人社会、人文资源、华侨华人生存发展等情况介绍,热情邀请有意愿的侨团、侨领赴江苏参观访问、考察交流,积极参与江苏南京侨梦苑建设、中餐繁荣计划、江苏之友活动、“百千万”工程等项目活动,创新思路,抢抓机遇,为国家“一带一路”战略和“中国梦”作贡献。
法国华侨华人会、南京大学法国校友会、旅法苏浙同乡会与访问团进行了座谈交流,对访问团到访表示欢迎和感谢。他們介绍说,法国是海外华侨华人最大的集聚地之一,经济实力雄厚,熟悉当地社会、法律及风土人情。近年来不少海归人士回江苏投资兴业,为江苏的经济深度融合、实现互利共赢做出了积极贡献。
单书安处长对众多侨团、侨领的盛情接待表示衷心感谢。他说,我们访问团此次到访,受到隆重欢迎,充分体现了法国华侨华人的深情厚谊,以及对祖(籍)国的热爱,我们很受感动,且收获很大。盛情邀请并欢迎各位去江苏观光、考察和投资,江苏侨办一定努力搭建平台,积极为海外华侨华人提供服务与支持。
座谈会上,宾主双方成员踊跃发言,畅叙友情,并就相关活动对接进行了交流讨论。
10月31日上午,应意大利华侨华人贸易总会的邀请,以省侨办单书安处长为团长的江苏省侨务访问团结束法国访问后抵达意大利米兰,拜访了中国驻米兰总领事馆。领侨室主任蔡蕾、领事刘艳萍会见了访问团一行。
单书安团长对蔡蕾主任、刘艳萍领事的会见表示感谢,并介绍了访问团此行的目的。他说,希望借此机会与更多的意大利侨领接触,进一步了解意大利华侨华人情况,为今后江苏侨办与意大利侨团建立多方面交流合作搭建平台。他还重点介绍了国侨办的“八大惠侨工程”。
蔡蕾主任对江苏省侨务访问团的到访表示欢迎。她说,近年来,中意两国经济合作与文化交流方面也很活跃,希望访问团此行可以为这些华侨华人带来更多资源,同时也促进华侨华人去江苏考察投资,进一步推动江苏与意大利经济合作与交流。
10月31日中午,访问团拜访了意大利意中交流协会会长朱裕华先生,就中意经贸文化交流进行了广泛的沟通,有意推动建立意大利江苏商会。也希望朱会长组团去江苏投资考察,为促进中意经贸文化交流共同努力。
10月31日下午,访问团对米兰华侨华人工商会、企业家联谊会、温州华侨华人商会、都灵华侨华人联谊会进行了走访考察,受到李秀桐、余序闹、徐建平、胡守银等会长的热烈欢迎,双方举行了座谈会。
单书安团长对各社团的热情接待表示感谢。他说,常言道:“上有天堂,下有苏杭”,可见江苏和浙江的渊源,在异国他乡见到老朋友又认识了很多新朋友,倍感亲切和荣幸,热忱欢迎新老朋友到江苏观光旅游、考察交流、投资兴业,我们会积极引见、搭建平台、做好服务。
11月1日,意大利中部文成同乡会与此间到访的江苏省侨务访问团在普拉托举行座谈会,双方就侨务资源对接、加强相关领域合作等事宜进行了交流和探讨。中国驻佛罗伦萨总领馆颜金林、王建、于冷洋三位领事应邀出席了座谈会。
意大利中部文成同乡会会长胡立元代表该会向江苏省侨务访问团到访佛罗伦萨表示热烈欢迎,随后向访问团一行介绍了该会部分主要成员及各自在行业内的发展情况。胡立元表示,意大利中部文成同乡会愿意与江苏建立更加密切的联系,进一步推动托斯卡纳与江苏在相关领域的合作。胡立元说,意大利中部文成同乡会有很多行业精英,他们旅意多年,在创业、兴业方面积累了很多丰富经验,希望今后能在江苏这块土地上也大有作为。
江苏省侨务访问团团长单书安向与会者介绍了访问团成员以及江苏省经济社会发展、省侨办近年来涉侨工作等情况。单书安说,在国内流行一种说法叫“江浙是一家”,江苏与浙江侨办乃至很多部门的互动都非常多,“这次我们到访佛罗伦萨,与浙江籍侨胞座谈倍感亲切”。单书安说,江苏省侨办在海外设立了200多个联络点,其中有海外专业人士联络点、侨领联络点,同时推动“中餐繁荣计划”,用“智慧侨务”思维开展系列惠侨活动,为促进江苏与海外侨界更紧密的联系,加强与国际社会在科技、文化等方面的交流与合作,提供更好的服务。
中国驻佛罗伦萨总领馆颜金林领事称赞浙江籍侨胞为促进佛罗伦萨与江苏在各个领域合作所做的成绩,期冀意大利中部文成同乡会继续为推动江苏与托斯卡纳地区在经贸等领域的合作多做贡献。同时,颜金林对托斯卡纳大区与江苏省的合作前景表示乐观。他说,托斯卡纳大区与江苏是友好省区,佛罗伦萨与南京市是友好城市,从这个意义上说,江苏与托斯卡纳有着良好的合作基础和发展前景,希望访问团在意大利期间,能够发现更多合作亮点。
11月2日下午,江苏省侨务访问团拜访了意大利华侨华人贸易总会,会长陈正溪携6位副会长热情接待了访问团一行,并进行座谈交流。
单书安团长对陈正溪会长的盛情邀请和接待表示感谢。他说,意大利华侨华人贸易总会是意大利颇具影响的华人社团,经济实力雄厚,熟悉当地社会、法律及风土人情,为在意华侨华人与中国的交流合作做出了巨大贡献。也希望你们今后能多去江苏走走看看,加强合作,实现互利共赢。
陈正溪会长对访问团一行的到来表示欢迎。他说,我们与江苏侨办一直保持密切联系,对江苏南京侨梦苑、中餐繁荣计划、江苏之友活动等一直颇为关注。他表示,感谢单处长的邀请并有意在适当的时候组团考察访问江苏。
11月2日晚,江苏省侨务访问团一行到访罗马,受到意大利青田同乡总会的热烈欢迎。
受意大利青田同乡总会会长洪森淼先生的委托,意大利青田同乡总会常务副会长徐小林先生组织活动并致辞,他首先代表在中国出席活动的洪森淼会长向访问团一行到访罗马表示热烈的欢迎。徐小林先生说,意大利青田同乡总会会员以勤劳、团结,在意大利开创了属于自己的事业,在以乡情为纽带的同乡会平台里联谊、守望相助。
江苏省侨办访问团团长单书安首先感谢意大利青田同乡总会的周到安排和盛情接待。他说,此次访问团一行出访考察,感受到了侨胞的热情,希望通过此次交流大家的相互了解更进一步,关系更上一层楼。诚邀广大侨胞到美丽的江苏考察访问,投资兴业。
两国访问期间,华人时刊杂志社总编王继林介绍了《华人时刊》的情况,就如何讲好中国故事,传播好中国声音,尤其是讲好江苏故事,传播好江苏声音,建立华人时刊杂志社驻法国、意大利工作站等事宜与相关社团进行了交流和讨论,并形成初步意向。
南京浦口区侨办主任叶明才、无锡江阴市侨办科长成锐分别介绍了各自的投资环境及优势,并就招商引资、招才引智、夏令营等项目进行了对接,提出了一些想法和建议,气氛热烈而融洽,达成合作意向近20项,成果丰硕。
参访活动取得圆满成功。
访问者设计模式 篇4
所谓模式,简单的讲就是一个较好的研究的摸板。而设计模式就是设计摸板。多年前,一个名叫克里斯托佛·亚历山大的建筑师对建筑,街道等人类所建造的各种生活空间进行了大量的观察发现后,优秀的结构都有一些共同之处。在寻找和描述设计质量的探求中,亚历山大认识到,必须观察为了解决同样的问题而设计不同结构。通过观察解决相似问题的不同结构可找出设计之间的相似之处。他将这种相似之处称为模式。亚历山大对模式的定义是“在某一环境下对某个问题的一种解决方案”。模式是一条由三部分组成的规则,它表示了一个工作环境、一个问题和一个解决方案之间的关系。每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。这样,你就能一次又一次地使用该方案而不必做重复劳动。
模式的描述包括以下内容:
1)模式的名称;
2)模式的目的;
3)实现方法;
4)限制和约束因素;
亚历山大在1970年代编制了一本汇集设计模式的书。但是这种设计模式的思想在建筑设计领域里的影响远没有后来在软件开发领域里使用的广泛。
1 软件设计模式概述
软件开发中存在大量相同的方式解决重复出现的问题,是否可以用模式的方式来设计软
件呢?于是就出现了软件设计模式(面向对象的软件设计)。将设计模式引入软件设计和开发过程的目的在于充分利用已有的软件开发经验,这是因为设计模式通常是对于某一类软件设计问题的可重用的解决方案。优秀的软件设计师都非常清楚,不是所有的问题都需要从头开始解决,他们更愿意重复用以前曾经使用过的解决方案,每当他们找到一个好的解决方案,他们会一遍又一遍地使用,这些经验是他们成为专家的部分原因。设计模式的最终目标就是帮助人们使用优秀的软件设计师的集体经验,来设计出更加优秀的软件。
“四人帮”(GOF)模式被认为是所有其他模式的基础,23种设计模式分为3类:创建型模式(Creational Pattern),结构型模式(Structural Pattern)和行为型模式(Behavioral Pattern)。抽象工厂设计模式是这23种设计模式中的一种。
2 抽象工厂设计模式概述
2.1 简单工厂模式
简单工厂模式不能说是一个设计模式,但它在实际的编程中经常被用到,而且思想也非常简单,说它是一种编程习惯可能更恰当些。它的作用是实例化对象,被创建的实例通常都具有共同的父类或接口,它的优点是用户可以根据参数获得对应类的对象,通过它,外界可以从直接创建具体产品对象的尴尬中摆脱出来。简单工厂的结构如图1所示。
从图1的结构上可以看出,客户只需知道父类和工厂,工厂是整个模式的核心,简单工厂模式能够适应一定的变化,但是它所能解决的问题是远远有限的。它所能创建的类只能是事先考虑到的,如果需要添加新的类,则就需要改变工厂了。
2.2 抽象工厂设计模式
抽象工厂设计模式向客户端提供一个接口,使得客户端在不必指定具体类型的情况下,创建多个产品族中的对象。抽象工厂设计模式可以实现一次创建一系列相互依赖对象的需求,其结构如图2所示。
从图2所示,整个模式中有以下几类:
抽象工厂:主要功能是生产抽象产品。
抽象产品:主要功能是提供实体产品访问接口。
实体工厂:主要功能是生产实体产品。
实体产品:主要功能是实现功能。
3 抽象工厂设计模式在数据访问中的应用
在我们使用三层结构开发应用系统中,在数据访问层使用抽象工厂设计模式,可将图2.2进行改造,得到如图3所示。
如图3所示:实体工厂包含有SQL Server和Access两种。它们分别生产实体产品访问对象;抽象产品提供实体产品数据访问接口;实体产品根据实体工厂的数据访问类型SQL Server和Access,分别实现不同的数据访问。
以OA办公管理系统为例创建三层及数据访问,1)创建数据访问层的基本架构,创建抽象工厂OADataFactory,创建抽象产品OAData;2)实现数据访问接口;3)完成对象创建;4)完成三层调用。OA办公管理系统三层依赖关系如图4所示。
如图4,在OADAL数据访问层中根据访问数据库的不同,分别实现Sql Server、Access或者其它数据库的访问功能。在抽象工厂OADataFactory项目中分别创建抽象工厂类AbstractDataFactory、SqlServer实体工厂类SqlDataFactory和Access实体工厂类AccessDataFactory。其中AbstractDataFactory用于提供数据访问对象的创建,其相关代码为:
SqlDataFactory用于实现Sql Server数据库访问对象的创建,AccessDataFactory用于实现Access数据库访问对象的创建。
在业务逻辑层调用数据访问层时,通过抽象工厂调用实体工厂,实体工厂中的实体产品给抽象产品,抽象产品调用数据访问方法。
4 结束语
使用抽象工厂设计模式实现数据访问功能,可以提高系统使用数据库的选择,同时也可以降低业务逻辑层和数据访问层之间的耦合。系统无论使用Sql Server数据库或者Access数据库都不受任何影响
摘要:设计模式分创建型模式,构型模式,和行为型模式。抽象工厂设计模式是其中的一种,它向客户端提供接口,使得客户端在不必指定具体类型的情况下,创建多个对象。抽象工厂设计模式可以实现一次创建一系列相互依赖对象的需求,在实现数据访问功能中用于提供系统使用数据库的选择,同时也可以降低业务逻辑层和数据访问层之间的耦合。
关键词:数据访问,抽象工厂设计模式,抽象工厂,抽象产品
参考文献
[1]杨莉..net应用[M].北京:电子工业出版社,2009.
[2]王翔.设计模式——基于C#的工程化实现及扩展[M].北京:电子工业出版社,2009.
访问者设计模式 篇5
1、自学生字新词,注重积累好词佳句。
2、正确、流利、有感情地朗读课文,把握课文整体脉络。
3、通过具体语言材料,增强环保意识,提高保护水资源能力。
教学过程:
一、观看录像,导入课文
二、引入课文
听着歌儿,看着祖国的山山水水,你有什么话儿想说吗?如果老师突然告诉你:21世纪,地球上将严重缺水,人类将面临严重的水荒,你信吗?
有一环保小组的同学带着关于水的问题,专程采访了环境保护方面的专家方博士。(出示课题,齐读)
三、自学讨论:
方博士是怎样回答同学们的呢?请大家自由朗读课文第二、三自然段,然后小组讨论:
1、点击问号——方博士是围绕什么问题来谈的?
2、阅读在线——读读方博士的话,想想主要意思。
3、酷站漫游——扩展阅读,联系实际,再想想方博士的话。
4、携手共享——交流:有限的水资源是怎样被污染的?
四、交流体会,深入理解:
通过阅读和合作学习,同学们一定收获多多,请一个小组的同学来向大伙儿汇报汇报,好吗?
解决的问题:
2、关于“淡水资源有限”,方博士是怎样讲的?
你有什么想补充吗?
3、关于“严重水污染”,方博士又是怎样讲的?
能具体谈谈人们是怎样污染水资源的吗?
小结:刚才,我们围绕四个学习要求分析了方博士的第一次谈话,同学们不但理解了方博士的话,还补充了不少内容,明白了地球确实——(缺水)。
五、了解我国的水资源状况
那么,我国的水资源状况如何呢?请同学们参照刚才学习的方法,独立学习第四、五自然段。
1、学生独立自学。
2、交流:通过学习,你解决了什么问题?
解决的问题:
我国水资源的情况怎样呢?找出相关语句读一读。
指导读:你能把方博士的讲话的意思转达大家,让大家也欣慰欣慰吗?
六、小小记者招待会
同学们虚心、礼貌,方博士热情、和蔼,关于水这个永恒的话题还在继续。课本上的同学七嘴八舌,老师也想请大家来开个小记者招待会,谈谈怎样保护水资源这一话题。
总结:同学们讨论得很热烈,表现出深深的忧患意识。我想请一位同学代替方博士做最后的发言,谁愿意?(最后齐读)
七、理清课文脉络
学生对照板书简要说说方博士所讲的几个问题。
八、课外作业:
查找有关资料,开展实际水资源调查,写一篇关于保护水资源的报告。
善问者善教学 篇6
一、数学课堂提问要体现明确性
一个有效的课堂应当向问题敞开,更要向有价值的问题敞开,这就要求教师提问时要体现明确性。提问是为了引导学生积极思维。教师应根据教学目标,围绕教材中心,考虑学生要学到什么,思考什么,会形成何种能力和品质,通过问题的切入,可以把抽象的知识点转变为感知的对象。教师提的问题必须清楚、明确,才能为学生指明思维的方向,激发学生的主体意识,鼓励他们积极参与教学活动,从而增强学习数学的动力。这样的提问既明确,又问在关键处。在“9加几”的教学中,在解决一共有多少盒饮料这个问题时,教师如果在教学中直接让学生观察画面出示饮料图,马上问学生,“看这幅图你能提出什么数学问题?”学生的回答一定五花八门,在这里,如果教师换个角度这样问“比赛正在进行,学校为同学们准备了解渴的饮料,已经喝了一些。(课件出示主题图左下角插图)比赛快要结束时小明问:“现在有多少盒?你们能帮帮他吗?你有什么好的方法在小组内相互说一说”这样的提问既明确,又问在关键处。这样明确性的提问就能促进学生的思维、评价学习的效果、增进师生情感、活跃课堂气氛以及激活学生学习潜能。
二、数学课堂提问要体现全面性
课堂上,是要利用提问来了解学生的知识掌握情况,调动学生学习的积极性,培养学生语言表达能力和逻辑思维能力。调查表明:各种层次的学生都具有回答教师提出问题的愿望和要求。因此,提问的对象尽量要广,不能只围绕几个尖子生转,不能满足于几个尖子生的对答如流,一切顺利。还应该看到,在对答如流的背后,可能还有三分之一的学生思维处于停滞状态。教师在提问时,心中要有两个字:“全”和“爱”。即面向全体学生,把爱洒向每一个学生,要让每个学生都能参与。
在教学“9加几”时,当有个学生在展示台用小棒摆出“凑十法”教师引导学生一面摆,一面说,教师的问话就是面向全体性,“你们听明白他是怎么想的吗?你能一面摆学具一面说吗?这样的问话让全体同学参与到学习的活动当中来,当学生用学具一面摆一面说后,教师如果再点名让学生自己说一说,这样就能既让优等生记得牢,又让中等生记得好,也让学困生记得住。
课堂教学的过程是一个特殊的认识过程,是一个不断提出问题和解决问题的过程。科学而深刻的提问是促进学生积极主动探索新知的一把金钥匙。对于不同的人有不同的问法。在35分钟的课堂上,师生互动至关重要。只有让学生充分地活动起来,才能最大限度地发挥学生的主观能动性。因此,这就需要教师在提问时,语言尽可能的多样化,再辅之以适当的肢体语言,提高学生的学习兴趣,激发学生回答问题的灵感。兴趣才是最好的老师。例如,提问时可说“你能帮老师找出已知条件和所求问题吗?”“你愿将你的答案告诉大家吗?”“你能替老师回答这个问题吗?”“你还有什么问题需要与老师或同学商量吗?”这种形式多样的提问,不但能活跃课堂气氛,使老师显得亲切随和,好像是在与学生共同探讨解决问题的办法。而且能激发学生兴趣,使学生勤于动脑,敏捷思维,积极配合,对知识更易于理解和吸收,达到最佳的教学效果。另外,提出的问题不能太简单太琐碎,要让学生“跳一跳”才能解答。使学生通过努力达到“最近发展区”,保证学生的思维经历发现的过程,而不会感到高不可攀。跳一跳就是开动脑筋,积极思维,就容易进出智慧的火花。有些新教师喜欢不分主次,不管难易,处处提问。如:“答案等于几?”“是不是?”“对不对?”“好不好?”等,这类问题的提出,教师只关注结果是什么,而忽视对规律的揭示,学生可以不假思索地齐声回答“是”或“不是”,“对”或“不对”,问题太过于简单僵化,不利于学生思维训练,显然丧失了优化学生思维品质的机会。如此,非但收不到启发的作用,还令学生“误入歧途”。
课堂提问就是一门学问,课堂提问看似简单,但实施起来却往往有相当的难度。它既是一门科学更是一门艺术。课堂环境的变化莫测,使实际的课堂提问活动表现出更多的独特性和难预料性。课堂提问的艺术性是有效教学的前提,要实现有效教学的目的,教师就要在课堂教学中不断地探索、实践、反思、总结,从不会到会,从无效到有效,从不熟练到驾轻就熟。好的课堂提问,可以充分调动学生主动参与学习、积极思维、起着事半功倍的作用。好的提问,能激发学生探究数学问题的兴趣,激活学生的思维,引领学生在数学王国里邀游;好的提问,需要我们教师要做有心人,问题要设在重点处、关键处,疑难处,这样,就能充分调动学生思维的每一根神经,就能极大地提高数学课堂的教学效率。
(作者单位:广西武鸣县仙湖镇中桥小学)
信息管理中的访问权限设计 篇7
系统的数据使用权限控制,是指防止不合法地使用数据库,以避免数据的泄漏、非法更改和破坏,本质上就是保证数据的合法访问,阻止非法访问。本文以某政府门户网站系统为例,来讨论如何实现多用户信息系统的数据使用权限控制的控制问题。
1 网站信息访问权限分配设计
基于角色的访问控制模型 (RBAC:role-based access contro1) 是目前安全模型领域的研究热点,由于其易管理而被广泛地应用在网络控制领域。将计算机信息管理应用人用分为4大类:信息报送人员、信息审核人员、信息维护发布人员和系统管理员。信息报送人员负责海量数据筛选、编辑、上传、存储等工作,系统维护员负责系统的维护、更新、数据库的管理等,系统管理员可以进入网站任何机器进行维护及保密工作等。将权限明确划分是考虑到权责到人有利于整个系统的统筹分配,每个人有相关的权限值只能访问到相应权限内的资源,这样保证信息的一定范围内的安全性。
1.1 角色级控制
角色的概念源于实际工作中的职务。一个具体职务代表了在日常工作中处理某些事务的权利,一个角色与权限关联可以看作是该角色拥有一组权限的集合,与用户关联又可以看作是若干具有相同身份的用户的集合,角色与用户和权限之间的关系,详细阐述了角色控制在信息系统中的应用。
由于该门户网站信息系统中的用户很多,且有些用户有完全相同的权限,如果单独给每个用户分别分配权限,势必大大增加管理的难度。因此,根据用户分工的不同,在数据库中建立了信息报送人员、信息审核人员、信息维护发布人员、系统管理员等不同的角色。根据分工的不同,分别赋予各个角色不同的权限集合,然后按部门将相应的角色赋予各个用户,这样就保证了用户登录时只能访问到其具有相应角色权限的数据信息,从而使用户的管理得以大大简化。
1.2 部门级控制
部门级安全性控制是指在一定的资源共享的前提下,一个部门的用户不能操作另外一个同等级别部门的某些关键数据,但允许高级别的用户操作访问低级别部门的数据。
比如,001为普通的管理的用户,admin为系统管理员。在001登录系统时,不允许他访问到其它内容的关键数据,也不能访问局端的一些数据,而是应该首先把其它部门的关键数据过滤掉,而在用户admin登录系统时,应允许其访问各个数据,即部门级控制要实现上级部门用户能访问和修改下级部门的数据,但不允许下级部门访问和修改上级部门的数据,也不允许同等级别部门用户之间相互操作对方的关键数据,其原理恰似企业中的上下级层次管理结构。
2 控制访问权限的登录设计
访问控制是系统安全机制的重要组成部分。信息网格中访问控制解决的是合法用户对网格资源的访问权限问题。在信息网格复合管理域这一特征环境中,访问控制需要考虑异构管理域问题,也即跨域的授权访问与查验。目前,针对跨域的访问控制的研究有很多。在信息网格系统中比较常用的几种访问控制机制有域信任模式、信任第三方的授权认证机制、用户映射或者权限关系映射机制访问控制机制来解决跨域问题,但他们存在管理域数目增大、管理开销大、控制不灵活、实现困难等特点。针对这些缺点,本文在用户映射或者权限关系映射机制的基础上提出权限预分配方案,从而实现跨域的复合授权与查验。
某些时候也会出现这样的问题。例如,有时普通管理员需要找到一些资料,管理员无法到达现场需要委托其他工作人员打开其权限访问区域,这时就要把密码告诉给其他人,也就是把自己的权限交给了他人。将密码告知给别人需要承受一定的风险,如果是系统管理员将会有访问所有保密信息的权限,其他人本来是不能查阅,或者别人可能有意或者无意地破坏的机器,这些都是无法预知的。解决上边所说的问题我们可以用授权密码控制的方式,设计如下:登录时先选择角色,然后每个角色有两个登录口,一个登录口使用原密码,另外一个使用授权密码,不同人员授权的密码访问权限也不相同。考虑到有限授权密码的使用同样存在着安全隐患,授权密码只能使用一次,引入随机生成密码方式,每次授权使用完毕又随机生成方式生成新的密码。访问记录:每次使用控制访问权限方式时,启用日志记录方式记录登录着行为,并且权限内不能做删除日志操作,以便查管理员查看。
3 结论
信息系统安全作为一门综合性的动态学科,其研究的内容是多层次和多方面的。针对授权的访问机制,将访问控制考虑因素扩展到被授权人的实际操作环境的安全性上,将终端的安全性纳入考虑范畴中。
通过权限管理可以避免非法用户进入信息管理系统,可以删除或禁用某些不经常登录和有破坏数据安全倾向的用户,可以根据需要将某些禁用的用户取消禁用等,所以在信息系统设计中,权限设计是一个非常重要的方面。结合某网站的管理信息系统的开发,详细地讨论了在多用户信息系统中数据权限使用控制原理以及实现,使得不同级别的管理人员和操作人员能充分、有效而且合理地使用其应用软件系统,从而在一定程度上保证了系统的安全性。
参考文献
[1]Bellare M, Canetti R, Krawczyk H.Keyed Hash Functions and Message Authentication[C]//Proceedings of Crypto’96.Los Angeles, Califomia, USA:[s.n]., 1996.
[2]Barraza O.Achieving999998%Storage Uptime and Availability.Dot Hill Systems Corpm, 2002.http://www.dothil1.com/products/whitepapers/5-9s_wp.pdf.
访问者设计模式 篇8
企业有一05年度开发的管理系统,当时采用JSP+JavaBean架构,因受个人能力有限,虽然实现了逻辑功能和显示功能的分离,但是由于视图层和控制层都是由JSP页面实现的,即视图层和控制层没有实现分离,仍属于传统Model1模式,不符和MVC开发原则。因该软件目前整体运行情况良好,满足企业需求,想在不改变软件行为的前提下,对软件内部结构及代码进行重构,使管理系统符合J2EE技术标准,提高代码其可阅读性,实现软件更大粒度的复用。
因重构内容较多(涉及到UI层,业务逻辑层,数据持久层、域对象层等内容),现仅以系统重构前后如何适应多数据库为例进行说明。
2 旧系统数据库连接简介
系统数据库连接方式采用数据库厂商提供的专用驱动程序,通过JDBC API调用转换为直接网络调用,实现数据库连接,个人认为这种调用方式一般性能比较好,而且也是实用中最简单的方法。
为适应多数据库访问,旧系统实现原理:应用程序(javabean、SEVLET等)—>读取配置文件->JDBC API驱动程序->访问数据库(MYSQL、SQL2000);
2.1 读取dbconfig.property配置文件,获得数据库连接信息(Property文件内容见下)
2.2 根据读取DBType值来判断数据库连接类型
2.3 调用API函数建立数据库连接
3 问题的提出
该系统中数据库访问逻辑代码没有放在视图层中,但视图层和控制层都是由JSP页面实现的,即视图层和控制层没有实现分离,属于Model1模式。随着企业规模的不断扩大,业务逻辑规则不断添加,维护难度增加,旧系统的缺陷是明显的,例如业务规则和模型代码混合在一起,这类代码依赖性使应用程序在在添加业务规则时非常麻烦;大粒度的软件复用几乎不可能。
在软件工程领域,为了降低模块耦合度,提高模块的可重用性,分层一直是广为采纳的一个方法。Model2模式———MVC开发模式克服了Model1存在的不足,MVC的具体含义是:model+view+control,即模型+视图+控制,这样的模式集成了JSP、Serclet、JavaBean,非常适合大型项目的开发,具有良好的伸缩性和扩展性。
按照MVC的设计原则,层与层之间应该保持相对独立,数据的传递在不同的层之间通常利用Java Bean来创建数据传输对象(Data Transfer Object,简称DTO),从技术的角度上面来说,有几个优点:
1)采用DTO来传输数据可以减少传输数据的冗余,提高传输效率,更重要的是实现了各个层之间的独立,使每个层分工明确。模型层负责业务逻辑,视图层负责向用户展示模型状态。
2)采用DTO,模型层对视图层屏蔽了业务逻辑细节,向视图层提供可以直接显示给用户的数据。在一个规范的J2EE架构中,不同层的数据表示应该被限制在层内,而不应该扩散到其它层,这样可以降低层间的耦合性,提高J2EE架构整体的可维护性和可扩展性。比如说Web层的逻辑进行了修改,那么只需要修改Web层的Form Bean结构,而不需要触动业务层和持久层的代码修改。同样的,当数据库表进行了小的调整,那么也只需要修改持久层数据表示,而不需要触动业务层代码和Web层代码。
结合项目中如何适应多数据库问题,决定使用DAO(DATA Access objiect)模式及工厂模式相结合的解决方案法。
4 现有系统详细说明
4.1 DAO工作模型参与者和职责
职责说明:
1)BusinessObject(业务对象):代表数据客户端,该对象需要访问数据源以获取和存储数据。
2)DataAccessObject(数据访问对象):是该模式的主要对象。DataAccessObject抽取该BusinessObject的低层数据访问实现,以保证对数据源的透明访问。BusinessObject也可以把数据加载和存储操作委托给DataAccessObject。
3)DataSource(数据源):代表数据源实现,数据源可以是不同的RDBMSR数据库、XML文件等等。
4)ValueObject(值对象):代表用做数据携带着的值对象。DataAccessObject可以使用值对象来把数据返回给客户端或客户端数据修改后传给DataAccessObject。
4.2 工厂方法模式(Factory Method)和抽象工厂模式(Abstract Factory)比较
二者都是工厂模式中的一员,都能实现让应用程序的高层模式在创建类的实例时无需依赖于这些类的具体实现,但它们有不同的适应场合。
1)抽象工厂模式(Abstract Factory)适应条件:一个系统要独立于它的产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当你要强调一系列相关的产品对象的设计以便进行联合使用时;当你提供一个产品类库,而只想显示它们的接口而不是实现时。
工厂方法模式为数据库访问类实现一个工厂方法模式是相当容易的,但如果客户要求能够选择返回数据的对象类型,那么随着更多数据提供者的增加,一个基于工厂方法模式的类模型将呈现成倍的增长,所以,工厂方法模式并不适合处理多选择的问题(多于一个参数的问题)
2)工厂方法模式(Factory Method)适应条件:当一个类不知道它所必须创建的对象的类的时候;当一个类希望由它的子类来指定它所创建的对象的时候;当类将创建对象的职责委托给多个帮助子类中的某一个,并且你指定哪一个帮助子类是代理者的时候。
抽象工厂模式(Abstract Factory)是为创建相关或相互依赖的对象族提供一个接口,而无需为这些对象指定具体的类。如果应用到我们的数据层组件,每个数据提供者可以看成一个族,每个族的成员都是一个具体的类,很显然,抽象工厂模式更适合多个参数(数据库)的问题。
4.3 采取抽象工厂模式的DAO模型
通过调整抽象工厂和工厂方法模式,DAO模式可以达到很高的灵活度:使用DAO模式来抽象和封装所有对数据源的访问;DAO管理着所有与数据源的连接以便于检索和存储数据;DAO完全向客户隐藏了数据源的实现的细节。由于当底层数据源实现变化时,DAO向客户端业务组件提供的接口不会变化,所以该模式允许DAO调整到不同的存储模式,而不会影响到客户端组件。DAO模式充当了组件和数据源之间的适配器。当低层存储随着实现变化而变化时,可以使用抽象工厂方法模式实现多数据库适应问题。
具体类图见下:
下面对图所示的结构元素进行解释:
AbstractDAOFactory是一接口对象,该对象可以构造多种类型的DAO工厂接口,每个工厂支持一种不同类型的持久性存储实现(数据源),例如XML文件、MYSQL、ORACLE等,AbstractDAOFactory中,都有一个返回新产品对象的方法,如我们定义的CreatAbstractDAO方法等客户端组件正是通过这些方法来获得DAO实例,但客户端组件并不知道它们正使用的是哪些具体的对象,这样客户端组件就不会依赖于具体的DAO,从而不依赖于具体的数据源实现。
XmlDAOFactory、RdbDAOFactory:根据数据源的不同设计了两个DAO接口对象,继承自AbstractDAOFactory。
MysqlDao、OracleDao:这两个具体DAO工厂对象实现了RdbDAOFactory接口,以支持和实现有关的访问。
4.4 部分实现代码
系统开发环境:Eclipse3.3+MYECLIPSE6.0GA+Tomcat5.5.24+jdk1.6;采用开源框架Spring+Struts+Hibernate实现MVC架构。
以MYSQL数据库为例,根据前面建的DAO数据层组件模型,需要创建一个AbstractDaoFactory接口、一个RdbDaoFactory接口和MYSQL数据库对应的MysqlDao工厂类,这种结构来自于抽象工厂设计模式。通过对异类数据源的访问提供了统一的接口,用户针对不同的数据源,只需在配置文件里面修改相应的数据源类型,就可以应用同一个应用系统来访问不同的数据源了。
在JAVA开发环境下,不同数据库访问机制基本相同,不同之处在于命名空间不同,每个命名空间下的类的实现基本相同。基于这个原因,我们可生成MYSQL、Oracle等数据源的访问代码,然后根据需要把这些生成的代码进行修改组合,最后生成我们的数据层组件模型的代码。
RdbDaoFactory关系数据库接口代码如下:
建立相应命名空间下的具体工厂类,下面我们分别建立针对MYSQL和Oracle数据源下的具体工厂类,MYSQL数据源的MysqlDao具体工厂类代码为:
其它数据源的具体工厂类实现代码和上面的类似。
在对具体数据库进行操作时,我们需要实例化针对数据源的访问类,这时我们只要从xml配置文件读出数据源类型,生成相应的访问类就可以对数据源进行操作了。数据源类型判断代码:
5 结论
该企业信息系统重构后已经投入运行,并且取得了很好的效果。重构后数据库访问层组件模型隐藏了在数据库中存取对象的细节,使得业务逻辑层独立于具体的数据模型和数据库产品,而且把设计模式应用于数据层组件模型,使得该模型具有更好的伸缩性和扩展性。
参考文献
[1]阎宏.Java与模式[M].北京:电子工业出版社,2002.
[2]Richard Hightower,Nicholas Lesiecki.JAVA极限编程[M].北京:机械工业出版社,2004.
[3]Mike o'Docherty.面向对象分析与设计(UML.2.0版)[M].北京:清华大学出版社,2006.
[4]陈樟洪.IBM Rational Software Architect建模[M].北京:电子工业出版社,2008.
[5]曹广鑫.Java企业级开发项目实践[M].北京:清华大学出版社,2004.
访问者设计模式 篇9
中国互联网信息中心截至2013年6月底的调查报告显示, 我国5.91亿网民中手机网民已达4.64亿, 78.5%的网民使用手机上网。智能手机、平板电脑等移动终端的逐步普及, 标志着我国已经开始进入移动互联网时代。传统的互联网服务已无法满足人们随时随地获取信息的需要, 将应用从传统互联网拓展到移动互联网是迎合人们需求的必然趋势。
1 移动终端应用构架
传统的互联网应用以采用浏览器/服务器 (简称B/S) 架构的模式为主, 移动终端应用则既有B/S架构模式, 又有客户机/服务器 (简称C/S) 架构模式。但大多数企业为体现其品牌效应, 更倾向于采用C/S架构模式开发企业独立的应用。
在现有的互联网应用上拓展移动终端应用需要解决两个关键问题: (1) 后者的数据来源必须以前者为基础, 且从安全性方面考虑前者的数据不应完全开放给后者使用; (2) 后者是基于移动网络的数据通信, 受数据传输速度和通信服务费用的影响, 其数据传输量应尽可能小。针对第一个关键问题, 本文采用了在Web服务器端增加专用API (应用程序接口) 的方法, 限定数据开放范围, 移动终端通过HTTP访问“接口”文件实现数据共享。在第二个关键问题上, 选择使用轻量级的JSON格式来解决客户端与服务器端的数据交换问题。其应用架构设计如图1所示。
2 数据访问与数据交换技术
2.1 基于HTTP协议的数据访问技术
HTTP协议是一套用于浏览器与Web服务器之间互相通信的详细规则[1]。它对传输数据的格式没有限制, 可以在客户端和服务端之间相互传送包含复杂数据的请求和响应。HTTP数据能够轻松通过防火墙, 使Web服务更可靠。
2.2 基于JSON格式的数据交换技术
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式[2]。它可以很容易地把JavaScript对象中表示的一组数据转换为文本格式的字符串, 其结构简洁, 能够在客户机与服务器端高效地进行数据的传递、解析与读写。
JSON最基本的形式是“名称/值”对, 可以表示的结构有对象和数组两种, 并在此基础上表示出更多复杂的数据结构。
(1) 对象可以用来表示一个无序的值的集合。其格式为{"名称":"值", "名称":"值", ……}。
(2) 数组可以用来表示一个有序的值的集合。其格式为[值, 值, 值, ……]。
(3) 组合结构主要体现在值的变化上, 可以是数值、字符串、布尔值、对象、数组等。
3 传统Web应用与移动终端应用间数据共享
基于B/S架构模式的Web应用程序开发技术有ASP.NET、JSP、PHP等, 它们的差异主要体现在使用不同的开发语言和不同的Web服务支持;而移动终端应用程序的开发技术则依赖于系统平台。目前的主流平台有iOS和Android两大类。下文以iOS应用开发为例, 对使用ASP.NET技术的Web服务进行拓展。该实例的工作过程为: (1) iOS客户端向Web服务器提交HTTP请求, 请求访问指定的“接口”文件; (2) “接口”文件根据请求访问数据库服务器; (3) 将读取到的数据序列化封装成JSON格式, 并返回至iOS客户端; (4) iOS客户端接收到响应返回的JSON数据后, 反序列化解析JSON格式, 并将数据绑定到界面视图中。工作过程如图2所示。
3.1 设计Web应用的“接口”文件
(1) 根据HTTP请求访问数据表, 读取数据。使用ADO.NET数据访问类读取数据库中的数据, 并存放于datatable对象中。 (该环节核心技术为ASP.NET, 此处不详细说明。)
(2) 将数据序列化封装成JSON格式, 并输出[3]。该环节的主要做法为:遍历datatable对象, 将字段中的数据按JSON格式进行排列, 追加存储于StringBuilder对象中。核心代码如下:
3.2 设计iOS应用, 获取并处理JSON格式数据
(1) 访问指定的URL, 读取数据[4,5]。该环节的主要做法为:使用iOS中自带的NSURL实例发送HTTP请求, 将返回的JSON字符串数据存放于Dictionary实例中。核心代码如下:
4 结语
将传统的Web应用拓展到移动终端, 需要解决的关键问题是异构平台间的数据共享与数据传输问题。本文以iOS终端应用访问ASP.NET技术的Web服务为例, 采用了HTTP访问方式和JSON格式的数据传输形式, 并在实践中证明了该方法的可用性。
摘要:随着移动终端设备的普及, 提出了传统的Web应用向移动终端拓展的需求。介绍了现有B/S架构模式下, 在Web应用服务端为移动终端应用设计专用数据接口, 通过HTTP请求访问远程数据库, 利用JSON格式进行数据传输的解决方案。最后通过设计iOS实例具体介绍了移动终端应用远程数据访问的实现。
关键词:移动终端,Web应用,iOS应用,JSON,远程数据访问
参考文献
[1]维基百科.超文本传输协议[DB/OL].http://zh.wikipedia.org/wiki/超文本传输协议, 2013.
[2]JSON中国.JSON介绍[DB/OL].http://www.json.org/jsonzh.html, 2013.
[3]李天平..NET深入体验与实战精要[M].北京:电子工业出版社, 2011.
[4]Mark Dalrymple.Objective-C基础教程[M].高朝勤, 译.北京:人民邮电出版社, 2009.
基于CAD的访问控制方案设计 篇10
随着产品知识产权保护意识的不断加强,用户对于网络协同设计环境下的产品模型保护有了更大的需求。虽然访问控制经过了几十年的发展,但是应用到CAD环境中的并不多。近年来随着很多模型的图纸被修改或者窃取,使得人们对模型的保护越来越重视,近些年来对CAD模型的研究也越来越多。本文将TRBAC模型的理论应用到CAD系统中,提出一个基于TRBAC的CAD模型加密的访问控制模型。
1 系统设计
1.1 系统安全需求
在CAD的网络协同设计环境中,数据处理模式不同于传统的系统数据处理模式---内部数据控制和管理,而是使用内部-外部数据信息交流的方式。安全访问控制方案的设计必须适应这种数据流动方式的改变。不同的设计单位、用户对框架的访问控制服务也有不同的要求。例如,在安全级别要求较高的部门中,往往需要采用严格的设计策略,用户需要利用访问控制来保护敏感项目或项目中的敏感设计对象,以及把关键的设计工作保留给重要用户;而在安全级别要求较低的部门中,访问控制不需要很严格。因此访问控制系统必须是有弹性、可定制的,以便满足不同设计环境的需要。访问控制系统还要管理记录访问控制的信息,并能够对这些记录信息进行访问控制。
1.2 访问控制系统结构设计
根据系统设计需求,对访问控制系统进行了设计。服务器端分两部分:访问控制部分和应用服务器部分。访问控制部分主要由身份验证服务器、访问控制服务器组成。访问控制服务器是系统的核心部分,为整个系统提供访问控制服务,也就是控制所有访问者的访问请求,根据已制定的安全规则,决定访问是否合法。各部分需要实现如下功能:
1)用户访问应用服务器时,首先必须向身份验证服务器出示自己的身份,经验证合法后方可进入角色服务器;
2)身份验证通过之后,通过用户角色服务器方可获得该用户的角色身份,并向角色权限服务器获得其权限结果。将角色权限和访问请求发给访问控制服务器,由其进行决策判断,根据决策结果决定是否向应用服务器提交用户的访问请求;
3)角色库存储系统定义的角色集合,角色库由系统管理员管理;
4)角色权限库存储每个角色可访问数据资源的集合,该库由系统管理员负责管理维护;
5)审计信息服务器负责处理用户访问使用数据的纪录,系统管理员可以浏览、修改系统访问纪录;
6)审计信息库存储用户的访问使用纪录,由系统管理员通过审计信息服务器管理、维护和使用。
系统的结构示意图如图1所示。
应用服务器是CAD模型数据的核心部分,主要用来存储产品模型,是访问控制系统保护的对象。任何不通过访问控制系统许可的对象不能对其内部数据进行访问。应用服务器的对外接口部分响应通过了权限控制模块的客户端的数据请求,根据用户的角色身份所具有的权限,为其产生与其权限对应的产品简化模型视图,模型数据经过传输加密后,发送到合法的客户端。
2 访问控制模型
结合基于任务的访问控制技术,我们提出了基于任务角色的多层次动态访问控制模型。相对于传统的基于角色的访问控制模型和基于任务的访问控制模型,我们引入了角色分层和权限分层管理。角色分层简化了权限表示及角色授权过程;权限分层适应了CAD产品多层次结构的特点。
模型相关定义如下:
定义1 (对象,数据集):产品模型的所有数据构成了协同设计的操作数据集,用D表示。对象是指产品模型数据的一个子集,记为ob,且对∀ob,ob⊆D。在层次建模中,ob可以是CAD产品模型的拓扑面、体特征、零件体或装配体等。
定义2 (操作集,操作子集):操作集(记为OP)是一个有限集,其中的每个元素都表示一种可以对对象实施的操作op。如果o⊆OP,则称o为一个操作子集。
定义3 (访问权限,访问权限集):访问权限集是集合D×2OP的子集,记为P。P中的每个元素表示一种权限,记为p(ob,o)。每一个权限以对象为单位进行授权,其直观含义是,若o⊆OP且ob⊆D,则访问权限p(ob,o)⊆P,表示对对象ob可以执行操作子集o中的各项操作。
定义4 用户(User):是指协同环境中被赋予一定角色的集合,具有相应角色,并依据角色的任务来行使权限,通常指从事协同活动的人员,记为U。一个用户可以有多个角色。
定义5 (角色集,角色):角色集是由访问权限集的一些子集构成的集合,记为R,即R⊆2P。角色集的每一个元素表示一种角色r,r是一组权限的集合,即∀r⊆R,有r⊆P。
定义6 (角色继承):∀r1,r2⊆R,如果r1⊆r2,则称r2继承r1,即满足继承关系,用r1→r2表示,其中r1称为父角色,r2为子角色。角色继承关系是一种偏序关系,具有自反性、传递性和反对称性。
定义7 会话(Sessions):是一个动态概念,用户激活角色集时建立会话。会话是一个用户与多个角色的映射,会话和角色是多对多的关系,用户在会话中所具有的权限是其所有的角色拥有权限集合的并集,记为S。
定义8 任务(Task):工作流程中的一个逻辑单元,完成某种特殊功能,即工作流的活动,或是若干个活动的组成。任务有静止、存在、失败、运行、等待和完成6种基本状态。任务之间存在着状态依赖关系。状态依赖包括顺序依赖、失败依赖、同步依赖。模型根据状态依赖这个动态约束进行动态授权。记为T。
定义9 约束(Constraints):表示整个模型各个元素之间的限制条件,记为C。
定义10 角色分层(Role Hierarch):角色到角色之间的二元关系,具体表现为在一个组织内部的角色等级关系,即关于角色的偏序关系,它包括继承机制,记为RH。
定义11 (权限状态,permission state):这是权限在执行过程中可能经历的状态,令p⊆P,则该权限的状态为p〈state〉。在模型中定义如下5种权限状态:睡眠状态(dormant),就绪状态(ready),挂起状态(hold),运行状态(running),完成状态(accomplished)。
定义12 权限关系(permission relation):指不同权限之间的依赖关系。根据权限执行的时间顺序,可以分为如下3类关系:同步关系,顺序关系,互斥关系。
3 模型的实施
3.1 角色划分
为更好的提高管理效率,在角色划分中需要重点考虑角色的层次性。在系统中角色划分为三个层次,分别为最高级别系统管理员层、高级别角色层以及普通角色层。系统管理员层拥有最高的权限,主要负责系统角色权限的初始化和系统的管理维护。系统管理员角色必须由两个及两个以上的人共同担任,同时系统管理员不能具备行使一般的设计工作的能力。高级别角色在系统中既可以从事设计工作,完成产品开发中的设计功能,又可以进行权限授予。普通角色层为一般的设计人员,只具备完成产品开发中的研发设计能力。
角色划分根据任务需求来设定,角色在系统中必须执行一定的任务。用符号表示为:
1)R={r1,r2,r3,…,rn}表示角色集合。rn表示具体的某个角色。
2)T={t1,t2,t3,…tn}表示任务集合。tn表示具体的某项任务。
3)RT×2T表示角色的任务集合。
3.2 权限分配
访问控制是对系统权限的控制,也就是用户对某一程序是否拥有执行权。权限必须是具体的可以被控制的。将权限进行合理的划分,合理的分配给角色是基于角色的权限控制系统实施的关键。权限的分配过程包括权限分层定义、角色权限分配、用户角色分配。
1)权限分层定义,主要是根据产品模型的功能特点及设计者的协同目的对产品模型进行划分,分别定义所需要的部件层权限、零件层权限和特征层权限。此过程可以映射为数据集D与操作集OP的关联,一般可以使用二元组〈ob,op〉表示。但是为了实现动态权限管理,访问权限表示为三元组〈ob,op,state〉。
2)角色权限分配,主要是根据不同用户的设计任务及权限间的相互关系来定义角色关联的权限集合。角色权限分配可以映射为角色集合R与访问权限集合P的关系,可用二元组〈r,p〉来表示。在权限的分配过程中还必须考虑权限的互斥关系,防止角色权限的冲突。
3)用户角色分配,可以表示为用户集合U与角色集合R的二元关系,可以使用二元组〈u,r〉来表示。用户角色分配过程中必须考虑角色的冲突关系。角色的任务集合决定了角色具体能够完成的任务,系统必须具有具体的功能模块,对功能模块的使用对应了角色的具体权限集合。
3.3 CAD模型的加密
CAD模型的加密是指在协同环境下将自己所做的模型保护起来,同时要满足访问控制的要求,即角色等级高的用户能查看角色等级低的用户的模型,同时CAD模型既要有加密的算法也要有解密的算法。这里我们采用DES算法。
4 结束语
本文分析了信息系统的安全需求及目标,提出了基于任务角色的多层次动态访问控制模型,在此基础上构架了系统的总体结构。针对系统的实施,详细对系统模型的角色划分、权限分配、任务划分以及约束管理进行了分析,为基于CAD的访问控制方案的实施奠定了基础。
摘要:CAD产品模型是厂家和设计者智慧和心血的结晶,协同环境下产品模型的安全访问机制对于保护产品模型的可用性、完整性、机密性和有效性起着关键作用。本文提出了一种针对网络协同环境下CAD模型的基于任务角色的多层次动态访问控制模型,该模型利用多层次的权限模型,简化了权限定义及其分配过程,丰富了权限表达能力,实现了产品模型的细粒度访问控制。
关键词:协同设计,CAD,访问控制,产品模型
参考文献
[1]韩伟力.分布式环境下的约束访问控制技术研究[D].浙江大学,2003.
[2]雷浩,黄建,冯登国.协同环境中共有资源的细粒度协作访问控制策略[J].软件学报,2005,16(5):1000-1011.
[3]洪帆,何绪斌,徐智勇.基于角色的访问控制[J].小型微型计算机系统,2003,2(2):198-200.
访问晚年千家驹 篇11
千家驹是著名经济学家,生于1909年,浙江金华市附近的武义县人氏,曾任中国民主同盟第五、六届中央副主席,第六、第七届全国政协常委,中国科学院哲学社会科学部委员,还曾担任中央工商行政管理局(国家工商行政管理总局的前身)副局长、中央社会主义学院副院长。
传真是他写好信后发给我的,以求快捷。他把全部藏书捐给了故乡浙江武义县,武义县盖了一座“千家驹藏书阁”作为永久纪念,他邀请我出席落成典礼。
1999年11月11日,千家驹藏书阁落成典礼在浙江武义举行。他从深圳赶来参加,之后又来到上海,下榻于徐家汇的衡山宾馆。我在那里又一次拜访了他——藏书阁落成之后,一直处于低调,如晚年沉寂的千家驹。
初识千家驹
我与千家驹先生的初次接触,是在1986年11月下旬。
应时任上海市市长江泽民的邀请,千家驹前来上海出席上海旅游发展战略讨论会,下榻于华亭宾馆。我致电请求采访,回忆他与章伯钧、罗隆基的交往以及1957年的“反右派运动”。他忙于会议,无法与我面谈,只接受了电话采访。他很坦诚,对于1957年参与批判“章罗联盟”表示了反省。
千家驹以敢于直言为海内外称道。1988年4月2日,他在全国政协大会上作了题为《关于物价、教育、社会风气问题》的发言,反响极为热烈。
他大声疾呼反腐:“社会风气不正,且每况愈下,是当前人民群众议论最多,有识之士痛心疾首的问题之一。一些党员和国家干部利用手中的职权营私舞弊,假公济私、贪污腐化,甚至进行严重的经济犯罪活动。至于非请客送礼,几乎办不了事,那更是司空见惯,见怪不怪。这虽然是一小部分人,但其影响之恶劣可以动摇国本。”他猛烈抨击有法不依、执法不严:“孔子说:‘政者正也,子帅以正,孰敢不正!其身正,不令而行,其身不正,虽令不从。又说:‘上有好者,下必有甚焉。要树立良好的社会风气,必须自整顿党风、整顿官风做起。官风不正,民风自然不正。我们法制不完备、不健全是党风不正、官风不正的原因之一,但即令有完备的法制,如果有法不依,执法不严,有法也同于无法。”他道出自己的心声:“我已年近八旬,许多朋友都劝我不要再发言,优游林泉,著书立说,安度晚年,但感于‘国家兴亡,匹夫有责和当前改革形势逼人……‘予岂好辩哉,予不得已也。”
30分钟的发言中,响起了31次掌声。发言完毕,掌声经久不息。发言见报后,光是他本人收到的群众来信,就达一千多封。一时间,他成了“新闻人物”。
1989年6月,他应美国朋友邀请前去讲学,于6月13日前往香港,7月8日自香港飞往美国。他在美国生活了3年零8个月,于1993年2月14日飞往香港,在九龙安居。
旅美期间,他写了一篇长篇书评《疯狂的年代,发疯的人──读叶永烈著〈陈伯达〉一书》。我看到后,在致函香港作家潘耀明时,请他代为问候千家驹先生。
1993年8月13日,千家驹从香港给我回了信,邀我过港时一叙。我随即复函,表示感谢。
1995年1月12日,我终于在香港九龙见到了千家驹,谈了一个晚上。他赠我新作《逝者如斯夫》,内中便收录了《疯狂的年代,发疯的人──读叶永烈著〈陈伯达〉一书》。
他告诉我,在赴美之前,他便在与香港相邻的深圳购置了商品房。这位经济学家颇有眼光,那套房子不仅很快升值,而且使他在深圳有了安居之所。来到香港后,他给中共中央领导人去信,说明了情况。经过批准,1993年5月17日,他回到了深圳,以后便香港、深圳两边跑。他把深圳寓所的地址、电话告诉了我,欢迎我去做客。
此后,我每逢出差深圳,总是去看望他。年事已高的他逐渐定居深圳,不大去香港了。
获赠年谱
1995年3月,86岁的千家驹在完成了《夕阳昏语》后,宣布封笔。
其实,他是闲不住的。宣布封笔之后,他一边整理自己的藏书,在家乡建立“千家驹藏书阁”,一边整理出版长篇自传。
他的长篇自传是他在晚年陆续写成的。久久的沉寂,倒是给了他一个难得的静静思索的机会。他回顾自己历经坎坷的漫漫人生之路,不胜感慨,写下了自传式的《千家驹自撰年谱》。
这本书从清朝末年写起,历经民国初年、国共之争,记叙了解放后的历次政治运动,直至他晚年客居美国,真实记录了他的心路历程。虽然写的是个人经历,却反映了一个中国高级知识分子在20世纪的苦难和坎途,可以说从一个特殊的视角记录了中国的现代史和当代史。
1995年,86岁的千家驹在香港寓所。摄影/叶永烈
1997年3月,88岁的千家驹为该书写下了序言。他没有公开出版此书,而是自己出资6万港币,印刷了100册,分赠友好。印毕,即毁版。我十分荣幸地获赠一本。
1998年冬日,早已宣布封笔的他为我写了一幅条幅,作为永久纪念。由于右手老年性颤抖,他写了四次,才用毛笔写成。他的夫人说,这是他最后的条幅了,今后不再写了。
在条幅中,他以司马迁的一句名言相赠:“古者富贵而名磨灭,不可胜记,唯风流倜傥非常之人称焉。”其实,他才是“风流倜傥非常之人”。他怀一颗“非常”之心,以“非常”之举,走“非常”之路,成为“非常”之人。
发表长篇专访
1999年1月29日,我带着磁带录音机,在深圳对年已九旬的千家驹作了又一次深入采访。他穿一件中式对襟蓝布棉袄,在书房里接待了我。
他的书房里书天书地,书柜从地面一直延伸到天花板。他说,平常无其他嗜好,唯爱写书、读书、藏书,以书为友。虽然他的专长是经济学,但是他兴趣广泛,涉猎面广,文、史、哲的书都爱买、爱看。正因为这样,他的藏书颇为丰富。尽管“八年抗战”“三年内战”和“十年‘文革”使他的藏书三次遭劫,但是“劫后余生”的藏书仍颇可观。当时他告诉我,他已经决定把自己的藏书无偿捐赠给家乡,藏书已经大批运送那里,眼下的只是其中一部分而已。
他家四壁悬挂着诸多名人字画,都是好友题赠他的,包括何香凝、沈钧儒等。他曾写过多篇对冯玉祥、何香凝、柳亚子、叶挺、马寅初、梁漱溟、范文澜、章乃器、沈钧儒、黄炎培、蒋梦麟、刘哲、张东荪等的回忆文章。这些字画和文章,表明了他的社会高层交往圈。作为著名民主人士、文化人,他交往的大都是著名民主人士、文化人。
虽然年已耄耋,他仍然记忆清晰,谈话间不时从书柜里取下书,翻给我看,然后又继续谈了下去。
他在新著《归去来兮》的前言中写道:“我是一个马克思主义者,服膺马列主义达半个世纪以上。”在他家中还专辟了一间屋子,作为佛堂。他是1989年11月5日在美国洛杉矶皈依佛门,正式成为一个佛教徒的。“马克思主义的佛教徒”看似矛盾,然而可以说却正是他晚年错综复杂的内心世界的写照。
通过多次采访,我写下了长篇专访《九十风雨千家驹》。
2000年11月25日晚,我在深圳又一次拜访了九十有一的千家驹先生。步入他家的客厅,我发现墙上换上了新的大幅照片:时任全国政协主席李瑞环跟他握手的照片,时任全国政协副主席、中共中央统战部部长王兆国与他的合影。
千家驹先生满头飞霜,身穿一件褐绿色茄克,戴一副紫色秀郎架眼镜,面目清癯,耳聪目明。他告诉我,这些照片是两个多月前在北京拍摄的。
2001年,《名人传记》杂志在第3期全文发表了《九十风雨千家驹》,封面是我在香港拍摄的千家驹肖像照。这是十多年以来中国内地第一次发表的千家驹长篇报道。发表之后,我用特快专递寄给了千家驹。他非常高兴,当即托我买了100本杂志,广寄诸友。他的故乡浙江武义县也买了100本杂志。
2002年8月8日,我从上海致电千家驹。当时,上海的文友托我向他请教有关20世纪30年代的清华大学教授张荫麟的一些问题。电话是千家驹的夫人接的。她说,千家驹从2002年3月3日起因病住院,现在身体尚可。
隔了一天,我再次致电千家。千夫人说已到医院问过千家驹,他回忆说:“我记得张荫麟,他是吴晗的好朋友。”吴晗是千家驹13岁入读金华第七中学时的同窗。
服务器远程访问插件的研究与设计 篇12
1 关键技术
1.1 Socket通信
在Internet上的主机一般运行了多个服务软件, 同时提供几种服务。每种服务都打开一个Socket, 并绑定到一个端口上, 不同的端口对应于不同的服务。Socket通信主要通过服务器监听, 客户端请求, 连接确认三步实现。
1.2 JAVA反射机制
JAVA反射机制是在运行状态中, 对于任意一个类, 获得类的所有属性和方法;对于任意一个对象, 都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
2 插件设计
2.1 插件框架
插件主要分为两部分, 服务端插件和客户端插件。服务端插件主要由安全模块和远程函数执行模块构成。安全登录模块检测客户端的合法性, 远程函数执行模块响应客户端发来的响应请求;客户端插件, 主要通过请求模块来向服务器发送请求, 并向开发者提供访问接口。
2.2 业务流程
首先, 客户端向服务端发出请求。服务器收到信息后, 首先由安全模块检测访问的合法性, 若请求不合法, 则拒绝客户端请求。合法的请求再由服务器对函数配置文件进行搜索, 来验证客户端请求调用的方法是否在配置文件中注册, 若没注册过, 则将客户端发送的请求驳回, 若有该注册方法, 则从配置文件中读取该函数注册的名称及所有参数, 通过反射机制调用该方法, 最后将该函数的执行结果返回给客户端。如图1业务流程图。
3 服务端设计
插件服务端主要分为两个模块, 安全登录模块和远程函数执行模块。服务器从服务端Socket的网络输入流中得到信息, 安全登录模块负责控制客户端的登入, 防止未授权的客户端或登录机器人恶意登录服务器。远程函数执行模块, 负责处理已授权的客户端所发来的请求, 并通过服务端Socket的网络输出流将执行结果返回给该客户端。如图2服务端整体设计图。
3.1 远程函数执行模块
客户端请求由安全登录模块验证合法后, 服务器首先读取配置有服务器远程方法的配置文件Method.xml, 并对配置文件进行解析, 搜索与客户端请求中所包含函数名参数值相同的函数配置信息。若没有找到, 返回Not Found Method Name Exception异常代码01, 说明客户端想要访问的函数服务器上并不存在, 或者该函数没有对外暴露, 禁止远程访问。在配置文件Method.xml中读取到请求方法的配置信息后, 首先判断该函数是否为静态函数, 如果不是, 则需创建该函数所在类的实例对象。初始化客户端请求数据包中的函数参数数组和服务器上被请求函数参数数组, 判断两个数组中的参数个数和对应类型是否一致。准好合法的实例对象、函数名和参数数组后, 通过该实例对象得到该函数名在实例对象中所对应的方法对象, 服务器会进一步开启一条子线程去执行该函数。如函数执行中发生错误, 则返回Method Run Time Error Exception异常代码04;如函数的执行时间超过配置文件Method.xml对其配置的最大执行时间, 则返回Time Out Error Exception异常代码05。
3.2 安全登录模块
此模块内部会有一条子线程, 每个一段时间去扫描一遍登录错误池里面的对象, 把禁止的最大时间的对象移除登录错误池, 解除对该ip所绑定的端口的屏蔽。此线程的扫描频率以及登录错误池中对象的最大时间禁止时间由实际开发者在配置文件中根据时间情况动态设定。
4 客户端设计
客户端插件封装了一个与服务器交互的TCP连接过程的函数, 该函数将开发者想要用的远程函数的函数名和参数数组通过客户端Socket输出流发送给服务器, 并从客户端Socket输入流中得到服务器返回的执行结果和异常代码。通过判断返回的异常代码抛出相应异常 (根据服务端的需要, 异常类型为内置的自定义异常) , 告知开发者远程函数调用中所出现的问题。如图3客户端流程图。
5 结语
服务器远程访问插件可以使服务器与客户端的交互过程独立划分一个模块, 极大降低了信息交互与其他模块间的耦合度;在使用时, 只需要将服务器上想要对外访问的函数按照要求, 将相应的信息 (如函数名, 参数, 对外暴露的函数名等) 配置在规定的配置文件中, 该函数即可被客户端像调用本地函数那样方便的远程调用。在编写函数配置与访问的过程中而且不用编写一句网络交互代码, 简化了服务器与客户端的交互代码。即使是不懂socket编程的开发者, 也能轻松的实现客户端与服务器的交互。
参考文献
[1]陈小艳.用Java实现多线程socket通信[J].湖北广播电视大学学报.2008 (01) .
[2]刘楠, 金护平.RMI分布式对象技术的研究与应用[J].航空计算技术.2009 (01) .