CN103399754B - 软件架构设计方法 - Google Patents
软件架构设计方法 Download PDFInfo
- Publication number
- CN103399754B CN103399754B CN201310362767.4A CN201310362767A CN103399754B CN 103399754 B CN103399754 B CN 103399754B CN 201310362767 A CN201310362767 A CN 201310362767A CN 103399754 B CN103399754 B CN 103399754B
- Authority
- CN
- China
- Prior art keywords
- layer
- api
- business
- module
- standard
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种软件架构。该软件架构适用运行于POS终端的应用软件,包括:应用程序编程接口(API)层,其基于标准C语言和相应操作系统(OS)层对应的私有API,封装有应用软件所适用OS层对应的、所述应用软件所包括业务所需的API;业务模块层,其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用所述API层的相应API和标准C语言实现;其中,所述API层中的API和所述业务模块层的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性。
Description
技术领域
本发明涉及POS终端技术领域,特别是涉及一种适用运行于POS终端的应用软件的软件架构。
背景技术
POS(Point of sale)是一种配有条码或OCR码(Optical character recognition光字符码)终端阅读器,至少具有现金或易货额度出纳功能。其中,POS终端与广告易货交易平台的结算系统相联,其主要任务是对商品与媒体交易提供数据服务和管理功能,并进行非现金结算。
现有技术中,应用POS终端所能实现的管理业务可以包括操作员管理、操作员签到、操作员签退、建立冲正标志、交易查阅等;而应用POS终端所能实现的交易业务可以包括:消费、消费撤消、退货、预授权、预授权撤消、预授权完成、预授权完成撤消、自动冲正等交易等。可见,POS终端的出现为大、中型超市、连锁店、大卖场、大中型饭店及一切高水平管理的零售企业带来了极大方便。
但是,POS终端中的能够涵盖各业务的应用软件通常在开发环境中统一编写,使得一套软件代码编译出涵盖多种业务的整个应用,也就是,各个业务之间具有较高的耦合性,最终导致应用软件的管理灵活性较差。例如:当应用软件的某一业务发生变化时,即便是细微的变化,需要将应用软件全量下载并更新到POS终端中,导致下载更新效率较低;或者,开发人员对某一业务的软件代码的修改将导致其他业务的软件代码必须进行相应修改以避免应用软件无法正常运行。
发明内容
为解决上述技术问题,本发明实施例提供了一种软件架构,以提高应用软件的管理灵活性,技术方案如下:
一种软件架构,适用运行于POS终端的应用软件,所述软件架构包括:
应用程序编程接口(API)层,其基于标准C语言和相应操作系统(OS)层对应的私有API,封装有应用软件所适用OS层对应的、所述应用软件所包括业务所需的API;
业务模块层,其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用所述API层的相应API和标准C语言实现;
其中,所述API层中的API和所述业务模块层的业务模块均以动态库形式存在,以实现动态加载。
优选地,所述软件架构还包括:
公共模块层,其包括共有功能模块,其中,每一共有功能模块唯一对应所述应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用所述API层的相应API和标准C语言实现;
相应的,所述业务模块层,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用所述API层的相应API、所述公共模块层的相应共有功能模块和标准C语言实现;
其中,所述API层中的API、所述公共模块层中的共有功能模块和所述业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
优选地,所述API层为统一API层,其基于标准C语言和多种操作系统(OS)层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、所述应用软件所包括业务所需的标准API;
相应的,
所述业务模块层,其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用所述统一API层的相应标准API和标准C语言实现;
其中,所述统一API层中的标准API和所述业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
优选地,所述API层为统一API层,其基于标准C语言和多种操作系统(OS)层对应的私有API,并通过预先约定的标准API技术要求,封装有应 用软件所适用多种OS层所对应的、所述应用软件所包括业务所需的标准API;
相应的,
所述公共模块层,其包括共有功能模块,其中,每一共有功能模块唯一对应所述应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用所述统一API层的相应标准API和标准C语言实现;
所述业务模块层,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用所述统一API层的相应标准API、所述公共模块层的相应共有功能模块和标准C语言实现;
其中,所述统一API层中的标准API、所述公共模块层中的共有功能模块和所述业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
本发明实施例所提供的软件架构中,API层基于标准C语言和相应OS层对应的私有API,封装有应用软件所适用OS层对应的、该应用软件所包括业务所需的API;业务模块层包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用该API层的相应API和标准C语言实现;并且,该API层中的API和该业务模块层的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的软件架构的第一种结构示意图;
图2为本发明实施例所提供的软件架构的第二种结构示意图;
图3为本发明实施例所提供的软件架构的第三种结构示意图;
图4为本发明实施例所提供的软件架构的第四种结构示意图;
图5为本发明实施例所提供的软件架构的第五种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了提高应用软件的管理灵活性,本发明实施例提供了一种适用运行于POS终端的应用软件的软件架构。
如图1所示,该软件架构,可以包括:
API(Application Programming Interface,应用程序编程接口)层110,其基于标准C语言和相应OS(Operating System,操作系统)层对应的私有API,封装有应用软件所适用OS层对应的、该应用软件所包括业务所需的API;
业务模块层120,其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用该API层110的相应API和标准C语言实现;
其中,该API层110中的API和该业务模块层的业务模块120均以动态库形式存在,以实现动态加载。
其中,该API层110基于标准C语言和终端厂商的POS终端的相应OS层对应的私有API,将与相应OS层的接口封装为API,且不同功能的接口被封装为不同的API;而该业务模块层120基于标准C语言,并调用该API层110中的相应API,将应用软件所包括的不同业务封装为不同的业务模块。
需要说明的是,该API层110为应用软件与OS层的接口层;其中,通过封装作为接口层的API层110中的各业务所需的API,使得应用软件的软件代码可以适用于POS终端的OS层上;同时,对于API层110而言,通常仅仅当行业规范或设备硬件驱动发生变更时,软件代码需要修改。进一步的,为了保证应用软件的软件代码在不同终端厂商的POS终端的OS层的适用,不同的OS层需要通过对应不同的封装代码,封装成不同的API层,即在本发明所提供软件架构的基础上,为不同的OS层封装不同的API。
本领域技术人员可以理解的是,当执行某一业务时,该业务模块层120可以调用API层的相应API,进而该API层110再与OS层进行交互,以此完 成该业务的实现。并且,由于各业务模块之间具有低耦合高内聚特性,因此,当开发人员更改某一业务模块的软件代码时,无需变更其他业务模块的软件代码;而当POS终端中应用软件的某一业务模块需要被更新时,开发好的相应业务模块被编译成动态库,通过相应的下载平台下载到POS终端即可,而无需将整个应用软件全量下载并更新。其中,相应的下载平台可以为应用软件开发商所提供的专门下载平台,或者,终端厂商所提供的专门下载平台,这都是合理的。
本发明实施例所提供的软件架构中,API层基于标准C语言和相应OS层对应的私有API,封装有应用软件所适用OS层对应的、该应用软件所包括业务所需的API;业务模块层包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用该API层的相应API和标准C语言实现;并且,该API层中的API和该业务模块层的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性。
进一步的,为了提高应用软件的开发效率,本发明实施例还提供一种适用运行于POS终端的应用软件的软件架构。
如图2所示,该软件架构可以包括:
API层210,其基于标准C语言和相应OS层对应的私有API,封装有应用软件所适用OS层对应的、该应用软件所包括业务所需的API;
公共模块层220,其包括共有功能模块,其中,每一共有功能模块唯一对应该应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用该API层210的相应API和标准C语言实现;
业务模块层230,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用该API层210的相应API、该公共模块层220的相应共有功能模块和标准C语言实现;
其中,该API层210中的API、该公共模块层220中的共有功能模块和该业务模块层230中的业务模块均以动态库形式存在,以实现动态加载。
其中,该API层210基于标准C语言和终端厂商的POS终端的相应OS层对应的私有API,将与相应OS层的接口封装为API,且不同功能的接口被封装为不同的API;公共模块层210基于标准C语言,并调用该API层210中的相应API,将应用软件所包括业务之间的不同的共有功能封装为不同的共有功能模块,即各业务可以共有的功能被抽离出来进行封装,从而达到降低每一业务模块的开发工作量的目的;而业务模块层230基于标准C语言,并调用API层210的相应API、该公共模块层220的相应共有功能,将不存在共有功能的各业务封装为不同的业务模块。
需要说明的是,该API层210为应用软件与OS层的接口层;其中,通过封装作为接口层的API层210中的各业务所需的API,使得应用软件的软件代码可以适用于POS终端的OS层上;同时,通常仅仅当行业规范或设备硬件驱动发生变更时,API层210的软件代码需要修改。进一步的,为了保证应用软件的软件代码在不同终端厂商的POS终端的OS层的适用,不同OS层需要通过对应不同的封装代码,封装成不同的API层,即在本发明所提供软件架构的基础上,为不同的OS层封装不同的API。
本领域技术人员可以理解的是,当执行某一业务时,该业务模块层230可以调用API层210的相应API以及该公共模块层220的共有功能模块,进而该公共模块层220调用该API层210的相应API,而该API层210再与OS层进行交互,以此完成该业务的实现。并且,由于各业务模块之间具有低耦合高内聚特性,因此,当开发人员更改某一业务模块的软件代码时,无需变更其他业务模块的软件代码;而当POS终端中应用软件的某一业务模块需要被更新时,开发好的相应业务模块被编译成动态库,通过相应的下载平台下载到POS终端即可,而无需将整个应用软件全量下载并更新。其中,相应的下载平台可以为应用软件开发商所提供的专门下载平台,或者,终端厂商所提供的专门下载平台,这都是合理的。
本发明实施例所提供的软件架构中,API层基于标准C语言和相应OS层对应的私有API,封装有应用软件所适用OS层对应的、该应用软件所包括业务所需的API;公共模块层包括共有功能模块,其中,每一共有功能模块唯一对应该应用软件所包括业务之间的一共有功能,且每一共有功能模块的软 件代码通过调用该API层的相应API和标准C语言实现;业务模块层包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用该API层的相应API、该公共模块层的相应共有功能模块和标准C语言实现;并且,该API层中的API、该公共模块层中的共有功能模块和该业务模块层中的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性;同时,共有模块层的设置,可以降低每一业务模块的开发工作量,因此,提高了应用软件的开发效率。
而为了消除不同OS层的封装差异,提高代码通用性,本发明实施例还提供一种适用运行于POS终端的应用软件的软件架构。
如图3所示,该软件架构可以包括:
统一API层310,其基于标准C语言和多种OS层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、该应用软件所包括业务所需的标准API;
业务模块层320,其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用该统一API层310的相应标准API和标准C语言实现;
其中,该统一API层310中的标准API和该业务模块层320中的业务模块均以动态库形式存在,以实现动态加载。
其中,该统一API层310基于标准C语言和多个终端厂商的POS终端的OS层对应的私有API,并通过预先约定的标准API技术要求,将与多种OS层的接口封装为标准API,且同一OS层的不同功能的接口被封装为不同的标准API,不同OS层的相同功能的接口被封装为相同的标准API,以适应多种OS层,消除不同OS层的封装差异,提高代码通用性;而该业务模块层320基于标准C语言,并调用统一API层310中的相应标准API,将应用软件所包括的不同的业务封装为不同的业务模块。
需要说明的是,该统一API层310为应用软件与OS层的接口层;其中, 通过封装作为接口层的该统一API层310中的各业务所需的标准API,使得应用软件的软件代码可以适用于不同终端厂商的POS终端的OS层上;同时,对于统一API层310而言,通常仅仅当行业规范或设备硬件驱动发生变更时,软件代码需要修改。
本领域技术人员可以理解的是,当执行某一业务时,该业务模块层320可以调用统一API层310的相应标准API,进而统一API层310再与相应OS层进行交互,以此完成该业务的实现。并且,由于各业务模块之间具有低耦合高内聚特性,因此,当开发人员更改某一业务模块的软件代码时,无需变更其他业务模块的软件代码;而当POS终端中应用软件的某一业务模块需要被更新时,开发好的相应业务模块被编译成动态库,通过相应的下载平台下载到POS终端即可,而无需将整个应用软件全量下载并更新。其中,相应的下载平台可以为应用软件开发商所提供的专门下载平台,或者,终端厂商所提供的专门下载平台,这都是合理的。
本发明实施例所提供的软件架构中,统一API层基于标准C语言和多种OS层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、该应用软件所包括业务所需的标准API;业务模块层包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用该统一API层的相应标准API和标准C语言实现;其中,该统一API层中的标准API和该业务模块层中的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性;同时,通过利用标准API,使应用软件的软件代码适用于不同的OS层,消除了不同OS层的封装差异,提高了代码通用性。
更进一步的,为了提高应用软件的开发效率,同时,消除不同OS层的封装差异进而提高代码通用性,本发明实施例还提供一种适用运行于POS终端的软件架构。
如图4所示,该软件架构可以包括:
统一API层410,其基于标准C语言和多种OS层对应的私有API,并通 过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、该应用软件所包括业务所需的标准API;
公共模块层420,其包括共有功能模块,其中,每一共有功能模块唯一对应该应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用该统一API层410的相应标准API和标准C语言实现;
业务模块层430,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用该统一API层410的相应标准API、该公共模块层420的相应共有功能模块和标准C语言实现;
其中,该统一API层410中的标准API、该公共模块层420中的共有功能模块和该业务模块层430中的业务模块均以动态库形式存在,以实现动态加载。
其中,该统一API层410基于标准C语言和多个终端厂商的POS终端的OS层对应的私有API,并通过预先约定的标准API技术要求,将与多种OS层的接口封装为标准API,且同一OS层的不同功能的接口被封装为不同的标准API,不同OS层的相同功能的接口被封装为相同的标准API,以适应多种OS层,消除不同OS层的封装差异,提高代码通用性;该公共模块层420基于标准C语言,并调用该统一API层210中的相应标准API,将应用软件所包括业务之间的不同的共有功能封装为不同的共有功能模块,即各业务可以共有的功能抽离出来进行封装,从而达到降低每一业务模块的开发工作量的目的;而业务模块层430基于标准C语言,并调用该统一API层410的相应标准API、该公共模块层420的相应共有功能,将不存在共有功能的各业务封装为不同的业务模块。
需要说明的是,该统一API层410为应用软件与OS层的接口层;其中,通过封装作为接口层的该统一API层410中的各业务所需的标准API,使得应用软件的软件代码可以适用于不同终端厂商的POS终端的OS层上;同时,通常仅仅当行业规范或设备硬件驱动发生变更时,统一API层410软件代码需要修改。
本领域技术人员可以理解的是,当执行某一业务时,该业务模块层430可以调用该统一API层410的相应标准API以及该公共模块层420的共有功 能模块,进而该公共模块层420调用该统一API层410的相应标准API,而该统一API层410再与OS层进行交互,以此完成该业务的实现。并且,由于各业务模块之间具有低耦合高内聚特性,因此,当开发人员更改某一业务模块的软件代码时,无需变更其他业务模块的软件代码;而当POS终端中应用软件的某一业务模块需要被更新时,开发好的相应业务模块被编译成动态库,通过相应的下载平台下载到POS终端即可,而无需将整个应用软件全量下载并更新。其中,相应的下载平台可以为应用软件开发商所提供的专门下载平台,或者,终端厂商所提供的专门下载平台,这都是合理的。
本发明实施例所提供的软件架构中,统一API层410基于标准C语言和多种OS层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、该应用软件所包括业务所需的标准API;公共模块层包括共有功能模块,其中,每一共有功能模块唯一对应该应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用该统一API层的相应标准API和标准C语言实现;业务模块层包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用该统一API层的相应标准API、该公共模块层的相应共有功能模块和标准C语言实现;并且,该统一API层中的标准API、该公共模块层中的共有功能模块和该业务模块层中的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性;同时,通过利用标准API,使应用软件的软件代码适用于不同的OS层,消除了不同OS层的封装差异,提高了代码通用性;而共有模块层的设置,可以降低每一业务模块的开发工作量,因此,提高了应用软件的开发效率。
下面结合具体应用实例对本发明实施例所提供的一种适用运行于POS终端的应用软件的软件架构进行介绍。本领域技术人员可以理解的是,本具体应用实例所提供的适用运行于POS终端的应用软件的软件架构仅仅作为一种示例,并不应该构成对本发明实施例的限定。
如图5所示,一种软件架构可以包括:
统一API层,其基于标准C语言和4个厂商(厂商A、厂商B、厂商C及厂商D)的POS终端的OS层对应的私有API,并通过预先与厂商A、厂商B、厂商C及厂商D约定的标准API技术要求,封装有应用软件所适用各厂商的POS终端的OS层所对应的、该应用软件所包括业务所需的标准API;具体的,该统一API层可以包括系统类API、显示类API、打印类API、工具类API、通讯类API、IC卡类API、磁条卡类API、文件类API、密码键盘类API、EMV(即Europay,MasterCard,VISA三大国际卡组织制定的国际通用金融IC卡规范)库类API;
公共模块层,其包括共有功能模块,其中,每一共有功能模块唯一对应该应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用该统一API层的相应标准API和标准C语言实现;具体的,该公共模块层可以包括:打包\解包模块、参数文件管理模块、流水文件管理模块、结算文件管理模块、打印模块、通讯封装模块、交易结果处理模块;
业务模块层,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用该统一API层的相应标准API、该公共模块层的相应共有功能模块和标准C语言实现;具体的,该业务模块层可以包括:应用入口模块、由模块1-消费、模块2-预授权、模块3-退货构成的业务逻辑模块、脚本执行结果上送模块、离线流水上送处理模块、冲正处理模块;
其中,该统一API层中的标准API、该公共模块层中的共有功能模块和该业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
其中,该统一API层基于标准C语言和四个厂商的POS终端的OS层对应的私有API,并通过预先约定的标准API技术要求,将与多种OS层的接口封装为标准API,且同一OS层的不同功能的接口被封装为不同的标准API,不同OS层的相同功能的接口被封装为相同的标准API,以适应各厂商的多种OS层,消除不同OS层的封装差异,提高代码通用性;该公共模块层基于标准C语言,并调用该统一API层中的相应标准API,将应用软件所包括业务之间的不同的共有功能封装为不同的共有功能模块,即各业务可以共有的功 能抽离出来进行封装,从而达到降低每一业务模块的开发工作量的目的;而业务模块层基于标准C语言,并调用该统一API层的相应标准API、该公共模块层的相应共有功能,将不存在共有功能的各业务封装为不同的业务模块。
需要说明的是,该统一API层为应用软件与各个厂商POS终端的OS层的接口层;其中,通过封装作为接口层的该统一API层中的各业务所需的标准API,使得应用软件的软件代码可以适用于各厂商POS终端的OS层上;同时,通常仅仅当行业规范或设备硬件驱动发生变更时,统一API层的软件代码需要修改。
本领域技术人员可以理解的是,当执行某一业务时,该业务模块层将调用该统一API层的相应标准API以及该公共模块层的共有功能模块,进而该公共模块层调用该统一API层的相应标准API,而该统一API层再与OS层进行交互,以此完成该业务的实现。例如:当执行消费业务时,该业务模块层中的模块1-消费可以调用该统一API层中的显示类API、磁条卡类API、打印类API等标准API,以及调用公共模块层中的打印模块、交易结果处理模块、结算文件管理模块等共有功能模块,而公共模块层中的被调用的公共模块功能可以调用该统一API层中的相应标准API,以此完成该业务的实现。
并且,由于各业务模块之间具有低耦合高内聚特性,因此,当开发人员更改某一业务模块的软件代码时,无需变更其他业务模块的软件代码。例如:当开发人员更改冲正处理模块的软件代码时,无需变更其他业务模块的软件代码。
同时,当POS终端中应用软件的某一业务模块需要更新时,开发好的相应业务模块被编译成动态库,通过相应的下载平台下载到POS终端即可,而无需将整个应用软件全量下载并更新。其中,相应的下载平台可以为应用软件开发商所提供的专门下载平台,或者,OS厂商所提供的专门下载平台,这都是合理的。
本发明实施例所提供的软件架构中,统一API层基于标准C语言和多种OS层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用各厂商POS终端的OS层所对应的、该应用软件所包括业务所需的标准API;公共模块层包括共有功能模块,其中,每一共有功能模块唯一对应 该应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用该统一API层的相应标准API和标准C语言实现;业务模块层包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用该统一API层的相应标准API、该公共模块层的相应共有功能模块和标准C语言实现;其中,该统一API层中的标准API、该公共模块层中的共有功能模块和该业务模块层中的业务模块均以动态库形式存在,以实现动态加载。可见,本方案中,各个业务模块之间具有高内聚低耦合特性,使得各个业务模块之间相互独立,因此,可以有效提高应用软件的管理灵活性;同时,通过利用标准API,使应用软件的软件代码适用于不同的OS层,消除了不同OS层的封装差异,提高了代码通用性;而共有模块层的设置,可以降低每一业务模块的开发工作量,因此,提高了应用软件的开发效率。
以上所述仅是本发明的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (3)
1.一种软件架构设计方法,其特征在于,适用运行于POS终端的应用软件,所述软件构架设计方法包括:
建立应用程序编程接口API层,所述应用程序编程接口API层为所有应用程序编程接口API模块的集合;其基于标准C语言和相应操作系统OS层对应的私有API,封装有应用软件所适用OS层对应的、所述应用软件所包括业务所需的API;
建立业务模块层,所述业务模块层为所有业务模块的集合;其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用所述API层的相应API和标准C语言实现;
其中,所述API层中的API和所述业务模块层的业务模块均以动态库形式存在,以实现动态加载;
还包括:
建立公共模块层,所述公共模块层为所有公共模块的集合;其包括共有功能模块,其中,每一共有功能模块唯一对应所述应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用所述API层的相应API和标准C语言实现;
相应的,所述业务模块层,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用所述API层的相应API、所述公共模块层的相应共有功能模块和标准C语言实现;
其中,所述API层中的API、所述公共模块层中的共有功能模块和所述业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
2.根据权利要求1所述的软件架构设计方法,其特征在于,
所述API层为统一API层,其基于标准C语言和多种操作系统(OS)层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、所述应用软件所包括业务所需的标准API;
相应的,
所述业务模块层,其包括业务模块,其中,每一业务模块唯一对应一业务,且每一业务模块的软件代码均通过调用所述统一API层的相应标准API和标准C语言实现;
其中,所述统一API层中的标准API和所述业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
3.根据权利要求1所述的软件架构设计方法,其特征在于,
所述API层为统一API层,其基于标准C语言和多种操作系统(OS)层对应的私有API,并通过预先约定的标准API技术要求,封装有应用软件所适用多种OS层所对应的、所述应用软件所包括业务所需的标准API;
相应的,
所述公共模块层,其包括共有功能模块,其中,每一共有功能模块唯一对应所述应用软件所包括业务之间的一共有功能,且每一共有功能模块的软件代码通过调用所述统一API层的相应标准API和标准C语言实现;
所述业务模块层,其包括业务模块,其中,每一业务模块唯一对应一不存在共有功能的业务,且每一业务模块的软件代码均通过调用所述统一API层的相应标准API、所述公共模块层的相应共有功能模块和标准C语言实现;
其中,所述统一API层中的标准API、所述公共模块层中的共有功能模块和所述业务模块层中的业务模块均以动态库形式存在,以实现动态加载。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310362767.4A CN103399754B (zh) | 2013-08-19 | 2013-08-19 | 软件架构设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310362767.4A CN103399754B (zh) | 2013-08-19 | 2013-08-19 | 软件架构设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103399754A CN103399754A (zh) | 2013-11-20 |
CN103399754B true CN103399754B (zh) | 2017-02-22 |
Family
ID=49563388
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310362767.4A Active CN103399754B (zh) | 2013-08-19 | 2013-08-19 | 软件架构设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103399754B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145353A (zh) * | 2017-05-05 | 2017-09-08 | 武汉斗鱼网络科技有限公司 | 软件框架及软件框架设计方法 |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106484603B (zh) * | 2015-08-26 | 2019-08-09 | 阿里巴巴集团控股有限公司 | 一种业务测试方法及装置 |
CN107277086B (zh) * | 2016-04-06 | 2020-08-14 | 阿里巴巴集团控股有限公司 | 业务处理系统、业务处理方法以及业务更新方法 |
CN110399161B (zh) * | 2019-06-14 | 2023-08-18 | 五八有限公司 | 一种映射关系的生成方法、调用方法及装置 |
CN110399119A (zh) * | 2019-06-18 | 2019-11-01 | 五八有限公司 | 一种组件化构建方法、装置、电子设备及存储介质 |
CN110633098B (zh) * | 2019-08-20 | 2023-11-14 | 华能四川水电有限公司 | 一种组件化服务的实现方式 |
CN110992607A (zh) * | 2019-11-22 | 2020-04-10 | 福建新大陆支付技术有限公司 | 一种通过接口协议方式接入终端的方法 |
CN111429127A (zh) * | 2020-03-20 | 2020-07-17 | 中国建设银行股份有限公司 | 一种应用于缴费的业务管理方法和装置 |
CN111736887B (zh) * | 2020-05-06 | 2023-12-15 | 广东金赋科技股份有限公司 | 一种利旧设备的访问系统、方法、装置及存储介质 |
CN112579183A (zh) * | 2020-12-28 | 2021-03-30 | 中国建设银行股份有限公司 | 行业ic卡读写方法、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609791A (zh) * | 2003-10-24 | 2005-04-27 | 惠普开发有限公司 | 接口模块 |
CN1694070A (zh) * | 2005-06-29 | 2005-11-09 | 肖珂 | Pos终端设备的升级方法 |
CN101236631A (zh) * | 2007-12-14 | 2008-08-06 | 福建联迪商用设备有限公司 | 电子支付统一平台的实现方法 |
CN102411819A (zh) * | 2011-12-26 | 2012-04-11 | 东信和平智能卡股份有限公司 | 一种pos机终端 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7708360B2 (en) * | 2005-12-07 | 2010-05-04 | Catalina Marketing Corporation | Combination printer and its paper |
-
2013
- 2013-08-19 CN CN201310362767.4A patent/CN103399754B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1609791A (zh) * | 2003-10-24 | 2005-04-27 | 惠普开发有限公司 | 接口模块 |
CN1694070A (zh) * | 2005-06-29 | 2005-11-09 | 肖珂 | Pos终端设备的升级方法 |
CN101236631A (zh) * | 2007-12-14 | 2008-08-06 | 福建联迪商用设备有限公司 | 电子支付统一平台的实现方法 |
CN102411819A (zh) * | 2011-12-26 | 2012-04-11 | 东信和平智能卡股份有限公司 | 一种pos机终端 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107145353A (zh) * | 2017-05-05 | 2017-09-08 | 武汉斗鱼网络科技有限公司 | 软件框架及软件框架设计方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103399754A (zh) | 2013-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103399754B (zh) | 软件架构设计方法 | |
CN103399753A (zh) | 软件架构 | |
CN103777942A (zh) | 应用于金融终端的嵌入式软件产品的开发框架 | |
CN102073520A (zh) | 一种c++应用程序版本动态管理系统和方法 | |
CN106502725A (zh) | 应用程序的升级方法、设备及电子设备 | |
CN112835975B (zh) | 一种在区块链中部署、更新、调用智能合约的方法 | |
CN103729184A (zh) | 一种软件组件组合构建方法 | |
US9003430B2 (en) | Dynamic transfer of selected business process instance state | |
CN102929593B (zh) | 一种Android系统兼容内置应用的方法 | |
CN102023885A (zh) | 一种存储Java卡运行时环境字节码的方法及系统 | |
US20080147550A1 (en) | Electronic payment processing system | |
CN112148278A (zh) | 可视化的区块链智能合约框架及智能合约开发部署方法 | |
CN102646056A (zh) | 基于电网gis平台的应用的功能扩展方法及装置 | |
CN108279947A (zh) | 金融自助设备sp安装包适配的方法及装置 | |
CN111240645A (zh) | 一种基于PaaS的异构软件集成方法和系统 | |
CN109976871A (zh) | 智能合约部署方法、装置、电子设备及存储介质 | |
CN107463406A (zh) | 发布移动应用的方法和电子设备 | |
CN109240733A (zh) | 一种基于安卓系统更新广告sdk的方法及终端 | |
CN107329762A (zh) | 一种描述与集成软件服务的方法和系统 | |
CN105701406B (zh) | 安卓平台运行传统支付应用的方法 | |
CN103793227B (zh) | 一种实现wcf服务的方法 | |
CN103530165A (zh) | 一种应用于物联网行业的java解决方案 | |
CN109388416A (zh) | 一种应用软件的插件化实现方法及系统 | |
CN111324357B (zh) | 应用程序接入风控平台的方法及相关设备 | |
CN110413285A (zh) | 一种部署云端服务的方法以及开发云端服务的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |