嵌入式POS商业应用平台分析

来源:互联网 发布:sql 删除语句 编辑:程序博客网 时间:2024/05/14 23:49

 随着市场经济的发展及全球经济一体化的大趋势,
我国商业企业面临着严峻挑战,要想生存并求得发展,
就必须极大地提高管理和服务水平,向国际上先进的商
业企业管理、服务意识和手段靠拢,最终实现接轨。
1 POS商业数据
这里所讨论的商业数据是POS应用运行期的数据
表现,通过对零售版、餐饮版、娱乐版等的POS应用运
行期数据的分析,运行期数据都是具有一定的通用性
的,包括:
单品信息包含交易ID、商品ID、描述、价格、数量
以及商品的状态等属性。在零售版中,一条单品可能是
对一袋牛肉干的描述;在餐饮版中,一条商品可能是对
一盘菜的描述;在娱乐版中,一条商品可能是对一瓶酒
的描述。尽管在各个领域的应用中描述的商品类型不
同,但是将其通用特性抽象出来实现对不同单品的通用
描述。
折扣信息 包含折扣类型、折扣描述以及折扣金额
等属性。一方面,不同的POS应用领域中折扣的类型
可能不同,零售应用中多数以对单品的信息打折,而在
餐饮娱乐应用中常常以对总体的金额进行打折;另一方
面,折扣的类型也存在着不同,可能通过百分比进行打
折,也可能直接对消费总额的零头进行减免。虽然折扣
信息多种多样,但是都可以用折扣类型、折扣描述、折扣
金额对折扣信息进行描述。
付款信息 包含付款类型,与人民币的汇率(用于
外币支付)付款金额以及付款描述等属性。商品交易
中,付款方式多种多样,可以是人民币支付,可以是外币
支付,也可以是支票、信用卡、辅币等方式支付。
税收信息 包括税控ID、税收类型、税收金额等
属性。
在以上描述的POs通用数据的基础之上加一个交
易头信息(包含对一笔交易的整体描述属性),就可以构
成POS应用中一笔交易的数据描述,称之为电子帐。
电子帐是一个容器,它包含了惟一的交易头信息和多个
单品信息、折扣信息、税收信息以及付款信息。每一笔
交易的数据流程就是从后台中获取原始商品信息构造
成运行期的数据结构—— 电子帐。电子帐作为POS商
业应用的核心数据结构,为PoS商业应用平台数据处
理提供基本的数据结构。
2 POS商业功能
POS商业功能是复杂变化的,如何能够组织好商
业功能使其能够易于控制,并且适应多变的需求,成为
实现POS商业应用平台的关键所在。本文将利用工作
流技术实现对商业功能的组织管理。将商业功能中的
工作流元定义为商业行为,对商业行为组织管理的机制
定义为商业引擎,接下来的内容将详细介绍商业行为和
商业引擎的原理。
2.1 商业行为
商业行为是商业功能的一个工作流元,完成一定的
数据操作或者界面操作的基本单位。商业行为可以分
成三种类型:
普通商业行为 基本的商业行为,完成不问断的商
业功能,比如商品录入的操作,商品删除的操作。可以
将纯粹的数据操作和纯粹的界面操作作为一个单独的
商业行为,也可以将数据操作和界面操作一起作为一个
商业行为,实体操作的粒度是开放的,但是从工作流元
的设计标准上讲,设计商业行为时需要考虑其独立性和
可复用性。
状态商业行为 这一类商业行为并没有实体操作,
只是用来代表一种商业状态,将其放在接下来即将介绍
的商业引擎中作为对商业状态的标识。
对话商业行为 对话商业行为专门为复杂的商业
功能或者需要人机交互的商业功能设计。对话商业行
为中包含了一个状态栈,用来标识当前的对话商业行为
实体执行到了那个阶段。对话商业行为需要放人到商
业引擎中才能够有效执行,具体如何使用将在商业引擎
中介绍。商业功能可以由一个商业行为实现也可以由
多个商业行为实现,当使用多个商业行为完成一个商业
功能时,将多个商业行为称之为商业行为流,商业行为
流设计遵循工作流技术的标准
2.2 商业引擎
商业引擎是商业行为的组织体系,负责商业行为的
处理和转移操作。商业引擎的实现采用了工作流技术
中最普通的工作流元组织操作方式—— 顺序执行,这样
转移信息中的From属性和To属性就将取自商业行为
流中连续相接的两个商业行为,转移条件由前面的商业
行为自己决定是否继续后续的商业行为的执行,商业行
为间的资源传递将采取商业上下文的方式实现,各个商
业行为将共享同一个商业上下文资源,通过共享的方式
实现商业行为间的通信。商业引擎由一个堆栈结构组
成,用来存放和组织商业行为。商业引擎的有如下三个
作用:
连续执行商业行为流 这是商业引擎的最为普通
的作用。由于商业引擎是一个栈结构,当使用商业引擎
执行商业行为流的时候,首先要将整个商业行为流逆序
加载到商业引擎中,然后从商业引擎中顺序提取出来执
行。如果商业行为流中包含对话商业行为,商业引擎处
理到这个对话商业行为时,首先要判断对话商业行为中
的状态栈是否为空,如果不为空,商业引擎将不弹对话
商业行为出栈,等待下次执行商业引擎中的商业行为时
继续执行此对话商业行为,直到对话商业行为的状态栈
为空,商业引擎才将此对话商业行为弹出栈,执行后面
的商业行为。这样设计的目的是通过状态控制使商业
行为流的执行过程暂停下来,当POS操作者做了相关
操作(例如输入数据并将数据先写入到商业上下文中作
为共享,等待商业行为流重新执行时从中得到用户输入
的数据)后,再重新促发商业引擎中的商业行为流的继
续执行,人机交互的过程就处理完成了。
标识当前的商业状态 商业引擎中保证至少有了
一个商业行为在栈中,即使是清除商业引擎的操作也要
将栈底中的商业行为保留下来。这样始终把商业引擎
中栈顶的商业行为代表当前的商业状态,假如商业引擎
中只有一个商业行为在栈中,那么这个商业行为一定是
状态商业行为,代表了当前的商业状态正处于初始化状
态,已录入商品状态或者已付款状态中的一个状态;假
如商业引擎中有多个商业行为在栈中,那么当前栈顶的
商业行为一定是对话商业行为,在等待用户进行一些
POS操作才能继续后续的商业行为的执行。
出错处理 当POS操作出现错误时,将代表错误
的状态商业行为压入栈中,代表当前的商业状态是出错
状态,此时只响应清除错误状态的操作,当进行清除操
作后,将进行清除商业引擎的操作,只保留栈底的状态
商业行为在栈中代表恢复到相应的商业状态。因此,当
设计商业行为流时,栈底的商业行为应该设计为状态商
业行为,代表出错后恢复的商业状态。
2.3 商业功能处理中心
商业功能处理中心是商业功能的执行组件,所有
POS输入设备促发的商业功能均由商业功能处理中心
组织执行。由于本文基于JavaPOS实现,因此商业上
对于输入设备的操作均通过JavaPOS接口实现,POS
商业通过JavaPOS接口获得POS输入设备(包括键
盘、扫描枪等)产生的事件,并将其对应的商业功能加入
到商业功能处理中心中执行。输入设备促发的商业功
能可能由一个商业行为实现,也可能由一连串的商业行
为流实现。如果商业功能由一个商业行为实现时,那么
商业功能处理中心直接执行相应的商业行为即可;如果
商业功能由商业行为流实现,那么商业功能处理中心将
会利用商业引擎实现对商业行为流的组织处理。在商
业功能处理中心中,每执行一个POS操作对应的商业
功能前,需要判断当前的商业状态(商业引擎当前的栈
顶商业行为代表当前商业状态)是否允许此商业功能执
行,如果不允许执行,商业功能处理中心将直接返回等
待其他的POS操作。通过这样的判断,商业应用可以
实现权限管理和特定商业状态下屏蔽POS设备某些输
入的响应。
3 POS商业界面
POS商业界面的设计标准是界面不承载任何数据
处理,它只需要实现一定的界面控制接口,将接口输入
的数据显示出来。界面控制接口包括交易初始化显示
接口,增加一条单品信息的显示接口,增加多条单品信
息的显示接口,增加一条折扣信息的显示接口,增加多
条折扣信息的显示接口,删除一条单品信息的显示接
口,删除多条信息的显示接口,删除一条折扣信息的显
示接口,删除多条折扣信息的显示接口,增加付款信息
的显示接口等。如上设计POS商业界面的目的是使得
POS商业界面易于更换。当需要更换界面时,只需要
使得新的界面实现那些界面控制接口即可,具体的界面
实现方式交由商业应用平台使用者自己选择实现。由
于本文基于J2ME实现,而J2ME平台已经提供了一整
套的界面控件,因此通过使用J2ME提供的界面控件,
POS商业应用即可轻松实现自己的界面。
4 PoS商业上下文
商业行为是商业功能的执行体,商业行为之间采用
商业上下文的方式通信。商业上下文是商业行为之间
共享的数据结构体,它包含对商业功能处理中心、商业
引擎、商业界面控制等主要的结构体。这样一个商业行
为获得了商业上下文就可以利用上下文实现数据和界
面操作,完成商业功能。
5 结 语
商业数据方面可以提供一个核心的运行期数据结
构—— 电子帐,各个POS商业应用能够复用电子帐实
现运行期数据的组织;商业功能方面基于利用工作流技
术对商业功能进行组织分解形成商业行为,并利用商业
引擎对商业行为进行组织管理;商业界面方面提供了商
业界面控制接口,使得基于接口的界面易于实现和更
换。以上设计简单而且功能强大,因此分析得出嵌入式
的POS商业应用平台是可行的。二次开发者只需要组
织好自己的商业行为集即可快速地实现一个POS商业
应用.

(文章来源:www.nba114.com 转载请注明)

原创粉丝点击