管理软件的本质是将企业的管理制度,管理流程数据化;数据化的过程分为数据采集和数据查询,基于对管理软件的本质的认识,为了数据应用的管理软件开发者能够快速,低成本的开发实施自己的管理系统,把我们多年应用的管理软件平台(Houselet 企业软件自助开发平台)分享一下。
小房子是一个管理软件的平台,它集开发和应用于一体,开发过程是基于数数据库开发和配置业务逻辑参数,基本上只需要SQL语言编程(业务存储,视图等)。平台系统是十年前开始研发应用的,一直进化到现在,当时也不明白什么是paas,现在看来,我们的系统就是个管理软件的paas.当然在接下来我们的描述中,如果您认为这个系统不是paas,那么也请您海涵,我们的目的不是把它定位为那一种系统,而是让它能够帮助企业或开发者 降低开发成本,快速高效的建设自己的管理软件系统。
小房子平台组成和部署
Houselet 平台 采用基于互联网的混合云部署模式。系统分为:
通讯服务器(Houselet cloud server): 此服务器负责 账户管理,消息服务事件推送等功能。服务器支持互联网的共有云部署或企业内部的私有云部署
应用服务器(Houselet appserver): 小房子数据应用服务器 负责数据管理,实例化配置的数据业务逻辑,企业数据库的操作和通讯
客户端(Houseletlive): 客户端,用户交互端,Houseletlive 为小房子独有的数据管理浏览器.
其中,HouseletCloudserver 处以系统的顶端,客户端(Houseletlive)登录HouseletCloudserver 服务器,获取该登陆用户分配的管理系统 和 应用服务器的地址,再建立和应用服务器的通讯并取得应用服务器返回的业务系统。 小房子客户端(Houseletlive)就像浏览器一样不承载任何业务逻辑,所有小房子开发的系统均用同一个客户端,客户端就像QQ一样,只要能连接服务器的电脑,均可以使用。
5.2.系统配置表
Houselet 系统分为两种系统参数配置表: Actiondata 和 dictdata
一个 Actiondata 表可以看做是一个模块,其中每一行数据代表一个菜单,每个菜单有可视和非可视两种状态,且能相互调用
Datadict 表可看做是具体业务对象(数据业务表)的映射,定义配置表相应的属性和功能,dictdata 中可以对一个数据库中的业务表做不同身份的定义(关键属性Tablename,tabletype),dictData 中定义的业务表可以是实表(业务数据库中存在的表或视图)也可以为虚表(业务数据库中不存在,为实现某些功能或返回一个统计结果使用).
ActionData 表 和 dictdata 表 相互调用,他们的配对关系在 用户账号配置中体现。
企业一套管理系统的可以设计为多个模块(Actiondata表)和一个 字典表(dictData)
但系统不限制用户在一个数据库内设置多个Actiondata 和多个 dictdata 表,用户可以根据企业管理的现实需要而定.
5.2.1.Actiondata配置作用
前面提过管理软件系统本质是将企业管理制度的数据化,业务过程数字化,对管理软件来说就是数据的存,取(采集和查询)。Actiondata 配置功能:
1.生成系统业务菜单 2.分配菜单页面的布局,3.设置页面实现的主要功能(录入数据,执行查询,执行存储等) .4.页面顶栏操作按钮的权限.
Houselet 系统页面配置类型如下
类别 |
页面 |
说明 |
备注 |
采集 |
FBasewh1 |
实现基础数据的采集维护(增、删、改、查) 如业务中 部门信息,员工信息,货品信息 等,实现丰富的数据采集和维护界面 |
随着数年的系统更新升,Fbasew1已包含Fyw5所有功能 |
Fyw5 |
实现快速数据采集功能,如 入库单,采购单 等单一动态业务的数据采集 |
||
查询处理 |
Fcxsql |
数据查询、统计、处理功能 |
3种页面功能基本一致,默认用Fcxcl就可以,Fcxsql 对单页面大数据处理性能较优异(如 单页现实大于1万行的数据) |
Fcxcl |
数据查询、统计、处理功能,图表统计 |
||
Fcl |
数据查询、统计、处理功能,图表统计(主从表查询统计) |
||
其它 |
Fweb |
在HouseletLive 客户端内嵌调用其它Web(b/s)系统 |
内嵌采用谷歌内核浏览器组件 |
DataWh |
调用第三方应用系统 |
|
题外话 有朋友问我 页面类型和一些属性的的命名怎么这么晦涩,在此我说明一下,系统初始开发于10年前,当时团队没有考虑这么多,开始也没计划ji对外应用,而是自己团队为了提高开发效率,避免重复劳动,应对快速定制化软件系统的需要。多年升级过程中,页面类型功能有增减,有合并,最终就是这个样子了;我们从一而终追求的是让管理软件开发怎样最简单,最快。
5.2.2.dictdata 的配置作用
字典配置菜单页面体内的业务,主要功能:1.映射数据库中数据表及列,2.配置页面展示的列属性(名称,顺序,宽度....)3.列功能属性。4.字段关联业务逻辑配置.
5.3.开发过程描述
‘至简’思想一直是我们坚持的开发准则基础;不是说管理软件开发的越简单越好,我们要求的是在满足用户需求甚于超出用户预期的前沿性管理系统下,所能做到的在建设软件系统中对资源的节约。使管理软件本身不仅辅助于企业现有的管理并能促进企业的发展。我们在软件项目的目标,需求的调研,开发过程,调试过程,实施过程中来节约企业资源。
通常的管理软件开发过程分为 目标定义、需求调研、需求分析、系统设计、系统开发、测试运行、上线部署、后期维护.... 具体过程可能少几项,也可能多几项,但大致是这个流程,按这个流程走下来,我们要求客户对建设目标的明确定义,我们投入的调研团队要认真仔细,系统设计要严谨而宏大等等... 这样的软件开发过程固然没错,但是现实中通常不是这个样子的,大部分企业对于一个软件建设需求的出发点是不明确的,他们在这一点上的管理需求是模糊的,就像一棵刚发牙的幼苗,无法预测将来会长成什么样子,所以这时的软件需求的准确目标定义也是不可能的,那么需求调研,设计等都将是不确定。
尤其是在当下互联网大潮下的企业,新的技术,产品,商业模式不断更新迭代,企业遇到的管理问题,都是新的,以往的大企业国企的集中式管控或前几年的偏平式管理思路都可能不适合;现在企业的内部管理很多因素是受到市场导向的,客户牵引的。企业为了提高市场竞争力,增加客户吸引度。通过建设软件体系来提高管理效率,增强其客户的消费充分度和满意度.
那么在当下市场下,小房子能怎样节约资源的又快速的满足企业建设软件的需求,软件工程敏捷方法中有一种增量式开发,在小房子管理软件开发思想上,我们又改变了一下,我们称之为体验式增量开发,即在不太明确的目标定义下,先在Actiondata 中把功能菜单列出来,在DataDict 中配置上客户能想到的或明确的(如客户的Excel文档或纸质文档)页面功能需求元素,来迅速展示给客户软件的表现,让企业各岗位的具体用户参与每个功能点的需求定位。由于小房子系统对菜单修改,页面展示元素修改基本上是无时间成本的,基本就像我在编辑此文时打了一个错别字随手按一下backspace 键一样。所以我们能做到边体验边开发,这样 前期的需求调研,需求分析基本就有了,并且软件设计和开发也有了一定的结果,接下来要做业务的逻辑和流程了,这部分在小房子系统中基本上都在数据库中实现,通过存储,视图等形式来完成。系统配置一些消息触发,操作button 等。管理系统的业务逻辑开发通常是最重要的,也是反复修改最多的开发过程工序。业务逻辑开发直接影响了软件是否能提高管理效率,也是软件品质的体现,这一点小房子系统技术特色有优异的体现。