技工院校OA系统的移动信息化方案探讨.docx
- 文档编号:17539067
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:18
- 大小:439.58KB
技工院校OA系统的移动信息化方案探讨.docx
《技工院校OA系统的移动信息化方案探讨.docx》由会员分享,可在线阅读,更多相关《技工院校OA系统的移动信息化方案探讨.docx(18页珍藏版)》请在冰点文库上搜索。
技工院校OA系统的移动信息化方案探讨
基于我校OA系统的移动信息化方案探讨
摘要:
随着3G网络的商用,智能手机与平板电脑的普及,移动办公也开始发展起来。
广州市技师学院教职工众多,有三四百人,多个校区。
由于职工跨校区上课,也时常出差,对外开展教学教研交流,这样广大教职工上学校的OA系统就十分的不便,不能及时了解学校的动态。
为此,本人提出了移动办公的解决方案,通过开发移动版本的办公系统来解决老师上WEB版OA不方便的实际问题。
关键词:
Android,移动信息化,XML,3G,职业教育
序言
什么是移动办公?
移动办公也可称为“3A办公”,即办公人员可在任何时间(Anytime)、任何地点(Anywhere)处理与业务相关的任何事情(Anything)。
[1]这种全新的办公模式,可以让办公人员摆脱时间和空间的束缚。
单位信息可以随时随地通畅地进行交互流动,整体运作更加协调。
这也是普适计算[2](即人们能够在任何时间、任何地点、以任何方式进行信息的获取与处理)的一种体现。
一、移动OA的现状分析
近年来,3G网络的商用,平板电脑与智能手机越来越普及,为移动办公提供了现实基础和客观环境。
作为继财务软件、ERP之后的第三大需求软件,协同OA也在移动应用中有所发展,有力地突破了传统OA的瓶颈,为企业管理带来了全新的办公体验。
虽然,有不少软件商已经开发了移动OA产品,但是相对于中国这样一个庞大的经济体,显然是远远不够的。
移动OA刚刚在启动阶段。
而在学校的办公应用方面,采用移动OA办公的就更少了。
不过,移动办公这种趋势是越来越明显的。
在日常工作确实有很多情况不能上Web的OA系统,这样移动OA就有它存在的客观需求了。
二、项目的需求分析与实现
需求分析是软件生命周期中非常重要的一个阶段,本项目从学校办公管理现状入手,调查用户需求,从而得到项目的需求分析。
2.1办公管理现状
现在我校的OA系统是ASP开发的,还有一些应用系统是用JSP开发的,多种应用系统并存。
这就要求我们首先要对各种应用系统进行整合。
由于是Android的移动平台,那么最关键的就是解决移动平台与现有WEB应用系统的互操作,各系统各平台之间的协同工作,整个移动OA的框架示意图如图2-1所示。
图2-1移动OA整合示意图
2.2业务需求分析
移动OA系统应该能确保学校所有部门和教职员工都可以处理日常工作,通过系统能够完成大部分的公文处理和与其他同事的信息共享、传递。
由于受到内存无线网络等情况的制约,移动OA又不利于处理大文件的业务,而是以精简为主,与WEB版的OA有所侧重。
从校领导到普通教职员工都能够通过该系统看到自己工作情况。
如此OA系统的主要功能用图3-2描述:
图3-2OA系统主要功能
系统的功能模块较多,篇幅有限,在这里就不展开描述。
下面以用户管理为例,通过用例图来描述它的功能点,以及用活动图来描述业务流程。
图3-3用户管理用例图
添加用户的业务流程如图3-4所示。
图3-4添加用户活动图
3.3系统主要数据ER图分析
由上述需求分析我们可以得到,学校的OA除了有一般OA的功能外,还有鲜明的教育特色,学生信息、教师信息、课程信息等是系统的关键表,其它内容都是以教师和学生为中心的。
课程管理ER图如图3-5所示。
图3-5课程管理ER图
四、项目的设计与实现
4.1系统设计原则
在系统设计时,既要考虑软件的功能性需求,又要考虑系统的非功能性需求。
如可靠性(无故障运行的概率[6])、可扩展性、稳定性、可维护性,同时还要关注软件的用户体验。
为此,本人在系统开发中,采用面向对象的编程思想和MVC的架构来开发。
这样结构清晰,易于扩展及维护。
图4-1为服务端的文档结构。
图4-1服务端文档结构
其中Controllers文件夹放置控制器相关的类,Models放置模型相关类,而Views则放置视图文件。
这是由开发工具VisualStudio2010的MVC框架自动生成的文档结构。
VisualStudio2010的MVC的控制导航由默认路由控制,一般不需要配置,不像J2EE下SSH的MVC框架要配置大量的XML文件。
相比之下,VisualStudio2010的开发效率更高。
默认路由的实现代码如下:
publicstaticvoidRegisterRoutes(RouteCollectionroutes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default",//路由名称
"{controller}/{action}/{id}",//带有参数的URL
new{controller="Home",action="Index",id=UrlParameter.Optional}
//参数默认值
);
}
4.2系统架构及原理
通过扩展现有的OA系统,使得客户端多样,可以是PC,手持设备PDA和手机,本文主要讨论手机端的开发。
手机通过2G/3G或WIFI无线网络访问服务器,服务器根据请求执行后返回给手机。
这是涉及到了Android与服务器之间的通讯服务和数据交互了。
因为现有的OA系统并没有向移动设备提供连接接口,这就要求我们在移动设备与WebOA应用服务器(即原来的OA系统)之间增加中间应用服务器(通讯服务器)。
由中间应用服务器实现Android客户端与WebOA之间的数据交互,或中间服务器直接与数据库交互,并把数据返回给Android客户端。
系统架构的示意图如图4-2所示。
图4-2系统构架示意图
4.3数据库设计
这里主要列出了以下几张表,还有其它表就不再一一罗列了。
表4-1Users(用户表)
字段
数据类型
描述
ID
int
主键,自动编号
UserName
nvarchar
用户名,用于身份验证
Password
nvarchar
nvarchar
DepartmentID
int
用户所在部门
表4-2Roles(角色表)
字段
数据类型
描述
RoleID
int
主键,角色ID
RoleName
nvarchar
角色名称
表4-3UsersInRoles(用户角色表)
字段
数据类型
描述
RoleName
nvarchar
角色名称
UserName
nvarchar
用户名称
表4-4Department(部门表)
字段
数据类型
描述
DepartmentID
int
主键,部门ID
DepartmentName
nvarchar
部门名称
表4-5MicroBlog(微博表)
字段
数据类型
描述
ID
int
主键
ParentID
int
父主题ID
UserName
nvarchar
用户名称
Title
nvarchar
标题
Content
ntext
内容
BlogDate
date
日期
4.4系统的主要设计
本节对系统的一些关键流程进行设计,并用时序图来说明多个对象之间的动态协作。
4.4.1教师课程查询时序图
老师课程查询系统的时序图如图4-3所示,其主要的处理过程如下:
图4-3教师课程查询时序图
老师发生课程查询请求。
Android的Activity接收到请求,并根据请求调用控制器Controllers的相应接口。
Controllers把处理转到业务层Business处理。
业务层Business经过LINKQ调用数据库信息,并把信息返回给Controllers。
Controllers处理好数据后,把结果返回给Activity。
Activity根据数据绑定规则,把数据呈现给请求者。
4.4.2公文审批时序图
公文审批的处理过程如下:
1、相关领导查询未审公文,时序图如图4-4所示。
2、选择要处理的公文,批示审批意见。
3、提交审批结果,系统调用相关方法,处理请求,并把结果返回给提交者,其时序图如图4-5所示。
4、结束本次审批。
图4-4未审公文查询时序图
图4-5审批公文时序图
由于大部分的业务流程都差不多,只是请求对象,调用的接口和处理方法有所不同而已。
鉴于篇幅有限,这里就不再一一描述。
4.4.3功能模块实现
系统功能模块的实现主要分为两大类:
用户界面和业务逻辑。
由于整个系统的用户界面比较多,而且很多界面的结构是相似的,设计方法也大同小异,本文就挑选几个不同类型的、界面风格差异比较大的几个界面来讲述Android界面的设计方法及界面所触发的事件的实现过程。
本文Android客户端用Eclipse来开发,首先来看看项目Android客户端开发的文档结构,如图4-6所示:
图4-6Android客户端文档结构
在开发的文档结构中,界面主要用到res这个文件夹。
res主要用来存放资源文件,子文件夹drawable用来存放图片图标之类的素材,drawable-hdpi、drawable-ldpi、drawable-mdpi分别存放同一套素材的从高到低不同分辨率副本,Android应用程序会根据手机不同的屏幕分辨率而加载相对文件夹中的素材。
layout文件夹用于存放布局文件。
Android项目主要有三个要素:
Manifest文件(详细说明其内部的组织)、资源(如图像和文件)、主要活动和相关的类文件。
Eclipse新建项目时会自动生成相应的目录层次和所有三个元素的一个基本模板[7]。
Android的布局主要由XML格式的布局文件来定义。
在Eclipse里设计人员可以用可视化的设计器设计,如图4-7所示,也可以手工编写布局文档,如图4-8所示。
图4-7可视化设计界面
图4-8手工编写XML布局文件
Android系统会加载布局文件和资源文件,然后通过界面组件生成用户界面的。
设计好界面后,还要把界面触发的事件与事件处理函数关联起来。
下面以主窗体为例讲述界面的具体实现。
主界面采用九宫格的布局。
这里用到了相对布局RelativeLayout和线性布局LinearLayout。
通达设置布局的分布方向和权重等属性,可以把屏幕分成上、中、下三等分。
上面是Logo,下面是导航。
中间主体部分最外层是一个相对布局组件RelativeLayout,内嵌三个线性布局组件RelativeLayout,按垂直方向平分成三等分,然后每一等分再嵌套三个线性布局组件RelativeLayout,按水平方向细分成三等分,这样就形成了九宫格的布局。
图4-9所示为九宫布局框架和加载图片后的最终效果图。
图4-9主界面布局框架与效果图
当点击九宫格里的图标按钮时,将会触发事件,Android程序会调用相应的事件处理函数。
在Android中,控件事件是通过设置其控件的监听器来监听并重写某些函数来处理的。
主窗体九宫图中,每个图标按钮对应一个Activity,而主界面本身也是一个Activity。
下面是主窗体类的部分代码。
publicclassMobileOAextendsActivity{
//由于篇幅有限,其它变量、属性及方法省略
/**Calledwhentheactivityisfirstcreated.*/
@Override
publicvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
publicvoidAnnounceClick(Viewv){
Intentintent=newIntent(this,Announce.class);
startActivity(intent);
}
}
从上面的代码中,我们可以看到主窗体类MobileOA继承了Activity类,并重写了onCreate方法。
在OnCreate方法中通过setContentView(R.layout.main)方法就实现了主窗体的布局设置。
R.layout.main表示资源布局中的main.xml布局文件。
此外,还编写了事件处理函数AnnounceClick。
这个事件处理方法与主窗体的“校内公告”相绑定。
当点击“校内公告”时,就会从主窗体切换到校内公告窗体。
窗体切换的实现有两个关键步骤:
第一,在布局文件中,把“校内公告”的点击事件与事件处理方法AnnounceClick绑定。
下面是主窗体布局文件中,“校内公告”外观的定义,由于篇幅有限,只列出关键的节点属性。
xmlns: android=" android: id="@+id/Announ android: onClick="AnnounceClick" android: orientation="vertical"> src="@drawable/icon1"/> text="校内公告"/>
在“校内公告”的布局外观定义中,只需设置校内公告对应的布局LinearLayout的属性android:
onClick="AnnounceClick"就可以很方便的实现了事件函数的绑定。
当然,也可以在类代码中用代码的方式进行绑定,不过在布局文件中进行绑定显得更简单方便。
第二,实现窗体间的切换,也就是Activity与Activity之间的切换。
在Android程序中,Activity之间的切换可由Intent来完成[8]。
我们再来细看事件处理函数:
publicvoidAnnounceClick(Viewv){
Intentintent=newIntent(this,Announce.class);
startActivity(intent);
}
实现方法比较简单,首先创建新的Intent对象,然后调用startActivity的方法就可以实现Activity之间的切换了。
4.4.4业务逻辑的实现
由于本文主要论述基于Android平台移动客户端的OA解决方案,因此OA服务器的具体实现本文就不详细论述了。
下面来论述下Android客户端的业务处理及与服务器之间的数据交互。
以下就以校内公告为例。
校内公告外观上要用到列表的布局,布局的相关实现方法在上面对主窗体的设计方面已作论述,在这就不展开讨论了,下面只给出公告列表的布局配置文档。
xmlns: android=" android: orientation="vertical"> xmlns: android=" android: id="@+id/annoucelist">
在公告列表中,每个列表项又有特定的表现形式,因此,也要对列表项编写布局文件。
android=" android: orientation="vertical"> id="@+id/announceTitle"/> id="@+id/announceSummary"/> 配置好布局文件后,下一步工作就是从服务器里获取数据并在界面上显示了。 由于手机与PC浏览器不一样,所以就要对Web服务器的请求和返回内容进行一些转换处理了。 下面以校园公告为例,给出Android客户端发出请求,获取数据并显示整个过程的时序图,如图4-10所示。 图4-10Activity数据请求时序图 在整个过程中,转换器(中间通讯服务器)的作用十分重要。 当Activity从转换器获取到XML或JSON格式的数据后,首先XML解释器或JSON解释函数对数据进行解释,然后通过视图组件将数据按一定的格式在屏幕上显示出来。 例如公告列表,当Android获取到数据后,通过ListAdaper将解释后的数据与ListView连接起来,最后将ListView添加到LinearLayout中,让屏幕显示LinearLayout。 校园公告列表如图4-11所示。 图4-11校内公告 要处理ListView事件,需要为ListView视力添加setOnItemSelectedListener监听以及setOnItemClickListener监听。 以上比较详细地说明了校内公告的实现过程,其它功能的实现基本原理与校内公告基本一致,只是调用的接口与业务逻辑处理方法有所差异,在此不再一一列举。 系统主要功能模块类图如图4-12所示: 图4-12主要功能模块类图 由于本文论述的是在原OA上的改造升级,把原OA系统的主要功能扩展到移动设备上,本文探讨的方向是从传统的Web版OA扩展到移动版OA的基本原理及实现方法,以及该方法的可行性。 故对OA系统的具体实现本文不作过多的展开讨论。 五、总结与展望 移动OA可以说是办公自动化的一个热点发展方向,也是一个新的研究领域。 在本人决定选题研究移动OA之前,本人并没有移动开发的相关项目经验。 移动OA这个研究方向可以说是对本人的一个考验。 解决本人单位现在教职工办公的一些困难是我选择研究这个方向的最大动力。 此外,本人也看到了移动应用的广大的发展前景,也想通过这次对移动应用的研究开发,积累相关经验及技术基础,为以后的进一步在移动应用领域的开发打好基础。 参考文献 [1]吴克忠.移动办公、居家办公(MOHO)[J].办公自动化.2010(172): 4 [2]曾宪权,裴洪文.普适计算技术研究综述[J].计算机时代.2007(02): 3-4 [3]Lordhong爱范儿(译).最封闭的开源系统: Android[J].现代计算机: 上半月版.2011(5): 18-20 [4]高焕堂.应用框架原理与程式设计36技[M].第三版,台湾: MISOO设计中心,2008.15-25 [5]WilliamEnck,MachigarOngtang,PatrickMcDaniel.UnderstandingAndroidSecurity.IEEESecurity&Privacy,2009(4): 11.http: //www.patrickmcdaniel.org/pubs/sp09.pdf [6]GokhaleSS,TrivediKS.Analyticalmodelsforarchitecture-basedsoftwarereliabilityprediction: Aunificationframework.IEEETrans.onReliability,2006,55(4): 578−590. [7]MarkH,MichaelP.SmartSmartphoneDevelopment: iOSversusAndroid.NewYork: ACM,2011.3: 610.http: //www.cs.millersville.edu/~webster/cs406MDD/stuff/ACMSIGCSE2011Papers/p607.pdf [8]ShaneConderLaurenDarcey[美].Android移动应用开发从入门到精通.北京: 人民邮电出版社,2010
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 技工 院校 OA 系统 移动 信息化 方案 探讨