CN103634326B - 一种处理应用***请求报文的方法及装置 - Google Patents
一种处理应用***请求报文的方法及装置 Download PDFInfo
- Publication number
- CN103634326B CN103634326B CN201310686439.XA CN201310686439A CN103634326B CN 103634326 B CN103634326 B CN 103634326B CN 201310686439 A CN201310686439 A CN 201310686439A CN 103634326 B CN103634326 B CN 103634326B
- Authority
- CN
- China
- Prior art keywords
- message
- dynamic
- request
- data
- processing
- 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
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例公开了一种处理应用***请求报文的方法。该方法包括:接收请求方发送的应用***请求报文;解析判断所述应用***请求报文是否为动态报文;如果是动态报文,判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;执行所述动态报文处理语句完成动态报文请求的相应操作。本申请实施例还公开了一种处理应用***请求报文的装置。通过本申请实施例的技术方案可以提高动态报文处理的灵活性、提高***支持业务的效率。
Description
技术领域
本申请涉及数据处理技术领域,特别涉及一种处理应用***报文的方法及其对应的装置。
背景技术
随着IT技术的迅速发展,基于IT的各种应用层出不穷。以目前的联机交易处理(OLTP,Online Transaction Processing)***为例,由于该***可通过信息***、电脑网络及数据库以在线方式处理一般实时性的作业数据,实现自动化的数据处理工作,相对于早期传统数据库***大批量的作业方式明显不同,使其广泛应用于在银行、证券、电子商务等需要两两***之间进行交互的场合。在这些应用***中,既存在由客户端发起的***交互,例如客户使用网上银行,也存在两个应用***之间的交互,例如银行账务处理***与收费方管理***的交互,或客户进行网上购物时,购物网站与网上银行或第三方支付平台之间的交互。通常情况下,应用***间的交互需要通过报文来实现,即在应用***间以报文为载体传输信息、处理请求或处理结果。基于报文的重要性,在应用***中如何设计出灵活、高效、稳定的报文处理机制,是亟需有效解决的技术问题。
现有技术在实现应用***间的报文交互时,通常是基于每个应用***预先定制报文,针对报文开发接口。由于报文是定制的,报文能够接受的输入、进行的处理和提供的输出等内容均已既定,应用***在接受到报文后,通过进行解析不能识别的报文,或解析后得到不符合给定报文模式的报文,将给出报文错误的响应;对符合给定报文模式的报文,才继续进行后继处理,并按照预定处理逻辑给出结果。然而,这种方式尽管在应用***中已经对有关数据进行了有效管理,但是,只要接收的报文请求没有得到预先定义,便不能进行处理,降低了***的灵活性和高效性,该报文处理机制无法适应各种不同类型的业务。
发明内容
为解决上述技术问题,本申请实施例提供了一种处理应用***请求报文的方法及其对应的装置,以提高报文处理的灵活性、提高***支持业务的效率。
本申请提供的处理应用***请求报文的方法包括:
接收请求方发送的应用***请求报文;
解析判断所述应用***请求报文是否为动态报文,所述动态报文包含动态元素标识、动态数据处理机制信息以及动态报文请求的处理类型和处理字段;如果是动态报文,判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
执行所述动态报文处理语句完成动态报文请求的相应操作。
优选地,所述根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句包括:
如果所述动态数据处理机制为动态SQL访问,则根据动态报文请求的处理类型和处理字段域形成可执行的SQL语句;
如果所述动态数据处理机制为原子报文访问,则根据动态报文请求的处理类型和处理字段调用相应的原子报文,所述原子报文为预先构造的针对数据结构的一个存储类别的基本处理报文。
优选地,在所述请求报文为输入请求报文时,所述动态报文请求的处理类型包括数据仅增加、数据仅修改、数据有则修改无则增加,和/或,删除操作;
在所述请求报文为输出请求报文时,所述动态报文请求的处理类型包括查询操作,在执行所述动态报文处理语句完成动态报文请求的相应操作后,所述方法还包括将操作结果发送给请求方。
优选地,当请求报文为输入请求报文且动态报文请求的处理类型为数据仅增加时,判断是否存在与动态报文处理字段相同关键字的数据,如果存在,则发出包含“存在数据、不允许增加”内容的响应消息;如果不存在,则执行动态报文仅增加语句完成增加操作;
当请求报文为输入请求报文且动态报文请求的处理类型为数据仅修改时,判断是否存在与动态报文处理字段相同关键字的数据,如果不存在,则发出包含“不存在数据、不允许修改”内容的响应消息;如果存在,则执行动态报文仅修改语句完成修改操作;
当请求报文为输入请求报文且动态报文请求的处理类型为数据有则修改无则增加时,判断是否存在与动态报文处理字段相同关键字的数据,如果存在,则执行动态报文修改语句完成修改操作;如果不存在,则执行动态报文增加语句完成增加操作。
优选地,在执行所述动态报文处理语句完成动态报文请求的相应操作之前,判断所述动态报文请求的处理类型和/或处理字段是否符合请求方的角色权限,如果符合请求方的角色权限,则执行动态报文处理语句;如果不符合请求方的角色权限,则发出包含“报文请求不符合角色权限,无法完成操作”内容的响应消息。
优选地,在判断出应用***请求报文为非动态报文时,按照现有技术方式进行处理。
优选地,判断动态报文请求处理字段在给定的数据结构中不可定位时,则发出包含“报文请求不可定位,无法完成操作”内容的响应消息。
本申请还提供了一种处理应用***请求报文的装置。该装置包括:请求报文接收单元、报文类别判断单元、字段定位判断单元、语句形成单元和语句执行单元,其中:
所述请求报文接收单元,用于接收请求方发送的应用***请求报文;
所述报文类别判断单元,用于解析判断所述应用***请求报文是否为动态报文,所述动态报文包含动态元素标识、动态数据处理机制信息以及动态报文请求的处理类型和处理字段;如果是动态报文,则触发字段定位判断单元;
所述字段定位判断单元,用于判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则触发语句形成单元;
所述语句形成单元,用于根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
所述语句执行单元,用于执行所述动态报文处理语句完成动态报文请求的相应操作。
优选地,所述装置还包括角色权限判断单元,用于在执行所述动态报文处理语句完成动态报文请求的相应操作之前,判断所述动态报文请求的处理类型和/或处理字段是否符合请求方的角色权限,如果符合请求方的角色权限,则触发语句执行单元。
进一步优选地,所述装置还包括非动态报文处理单元,用于在判断出应用***请求报文为非动态报文时,按照现有技术方式进行处理。
本申请提供的处理应用***请求报文的技术方案先对接收到的请求报文的类别进行判别,对于不同的类别采取不同的处理方式:如果是动态报文,判断请求报文的输入输出数据(处理字段)是否在给定的数据结构中可定位,可定位的情况下根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句,执行该语句完成相应操作。与现有技术相比,在报文处理过程中,不再如传统的静态报文那样按照预先定制好的报文模式进行处理,而是根据给定的数据架构,按照给出的动态报文处理机制,动态形成可执行的语句,通过执行该动态形成的处理语句实现从应用***中获取数据或对应用***进行数据操作的目的。由此可看出,本申请的技术方案可以适应应用***的数据结构已经包括了所要处理的数据项但事先未约定数据交换内容的业务需求,提高了对报文处理的灵活性。此外,由于可以在没有事先规定报文模式的情况下,处理各种满足实际应用业务需要的报文,总体提高了应用***对业务支持的效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请的处理应用***请求报文的方法的实施例流程图;
图2为本申请的处理应用***请求报文的方法的另一个实施例流程图;
图3为本申请的一个实例中的数据表之间的关系图;
图4为本申请的处理应用***请求报文的装置实施例的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
参见图1,该图示出了本申请提供的处理应用***请求报文的方法的一个实施例的流程。该流程包括:
步骤S101:接收请求方发送的应用***请求报文;
应用***请求报文可以是向应用***请求进行相关业务处理的报文,这里的请求方可以是一个客户终端,也可以是另一个应用***。请求方发送应用***请求报文实际上是用于实现对应用***的访问。请求方对应用***的访问通常情况存在两种情形:一种是仅向应用***发送某类信息或者维护应用***本身,即输入型请求报文(简称输入请求报文),比如,请求方希望在数据库应用***中进行数据记录的增加、修改、删除等操作,这类型的请求报文只要完成相应的操作即可,或者进一步地返回应用***的处理状态,;一种是需要应用***进行业务处理并返回处理结果的访问,即输出型请求报文(简称输出请求报文),比如,请求方希望在数据库应用***中进行数据查询操作,这类型的请求报文不仅需要应用***进行相应的操作(如数据记录搜索、查找等),而且要求应用***将操作结果(如检索结果)返回给请求方。
步骤S102:解析判断所述应用***请求报文是否为动态报文,所述动态报文包含动态元素标识、动态数据处理机制信息以及动态报文请求的处理类型和处理字段;如果是动态报文,则执行步骤S103:
应用***接收到报文后,需要选择处理通道:如果接收到的应用请求报文为静态报文,则可按照与现有技术相同的方式进行处理,这体现出本实施例可以与现有处理模式进行兼容,对已经明确的大信息交换处理量报文处理,能够保证原有的处理性能;如果接收到请求报文为动态报文,则可以按照本实施例后续的处理方式进行处理,有利于对应用***的改造升级探索、快速响应和平滑过渡。本实施例的动态报文是与静态报文相对而言的概念,通常情况下,本实施例的动态报文需要包含如下的信息:
a、动态元素标识,即用于指示该请求报文是属于动态报文还是静态报文,具体实现时,可以在该报文中预置一个标志,将该标志定义为动态报文与静态报文的区别指示,即有该标志,则认为接收到请求报文为动态报文,否则为静态报文。比如,在报文中设置“dynamic”元素,如果通过解析动态报文发现报文中包含此元素,则说明该报文为动态报文。此种方式避免对原有的报文和相应的处理进行改动或改动过多。
b、动态报文的处理类型,即用于指示需要应用***进行何种类型的操作,该内容体现请求方的需求,如前所述,报文可以具有至少两种类型:输入型和输出型,对于输入型而言,如果是针对数据库应用***,则可以是进行数据记录的增加、修改、数据记录有则修改无则增加、删除等处理,对于输出型而言,则可以是查询处理。
c、动态数据处理机制信息,即用于指示应用***按照何种方式进行处理。应用***可具有不同的数据处理机制。比如,对于应用***的数据组织已组织成支持采用动态执行数据的查询、增加、修改、删除等功能,则该动态数据处理机制可以为动态SQL访问机制。还比如:在某些数据应用***中,采用了数据鉴别技术,采用该鉴别技术的数据库中每条数据记录(可能以数据库方式存放,也可能以文件、XML格式存放)均可能会产生一个鉴别码,在读取数据时对鉴别码进行确认,在增加数据时,同时增加鉴别码。如果在这种情形下鉴别码是通过外部黑箱策略所产生,则应构造对所有数据结构的合理存储单位的电子报文,即存储结构中的全部数据项进行访问的报文,这时,上述的动态数据处理机制则为原子报文访问机制。
d、动态报文请求的处理字段,即用于指示按照处理类型进行相应处理的对象。
步骤S103:判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则执行步骤S104;
在确定应用***请求报文为动态报文后,由于后续操作需要根据动态报文给出的内容信息形成可执行的处理语句,因此,需要判断动态报文请求中的处理字段是否是应用***可接受的,即判断动态报文请求处理字段是否在给定的数据结构中可定位,如果不能定位,比如处理类型为对采用关系数据库的表进行管理,但该关系数据库的表中不存在相应的主键,则应用***无法进行相应的处理,可以给出“请求不可定位,无法完成操作”的响应消息,结束交互。如果能够定位,则继续执行后续操作。
步骤S104:根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
步骤S105:执行所述动态报文处理语句完成动态报文请求的相应操作。
本实施例提供的处理应用***请求报文的技术方案先对接收到的请求报文的类别进行判别,对于不同的类别采取不同的处理方式:如果是动态报文,进行请求报文的输入输出数据(处理字段)是否在给定的数据结构中可定位,可定位的情况下根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句,执行该语句完成相应操作;如果是非动态报文(静态报文),则可以按照现有的处理方式进行处理。与现有技术相比,本申请实施例至少可以取得如下的技术效果:
(1)由于在报文处理过程中,不再如传统的静态报文那样按照预先定制好的报文模式进行处理,而是基于给定的数据架构,按照给出的动态报文处理机制,动态形成可执行的语句,通过执行该动态形成的处理语句实现从应用***中获取数据或对应用***进行数据操作的目的。由此可看出,本实施例的技术方案可以适应各种新产生的业务需求,提高了对报文处理的灵活性。
(2)由于本实施例是在报文处理过程中根据报文的处理机制信息动态地形成可执行的语句,而不是在请求方发送报文之前,请求方已完全定制好报文处理模式,使得本实施例的方案在面对数据结构复杂且数据量庞大的***时,对在规划和设计时未考虑到的数据处理报文可进行运行时的定制,从而在进行程序设计和开发时,可有效加快开发响应业务需求的周期。
为了更详细地说明本申请的技术方案,下面以更详细的实施例进行阐述。参见图2,该图示出了本申请的处理应用***请求报文方法的另一个实施例的流程。该流程包括:
步骤S201:接收请求方发送来的应用***请求报文;
步骤S202:对请求报文进行第一次解析,且判断:所述请求报文是动态报文还是静态报文,如果是静态报文,则执行步骤S203,如果是动态报文,则执行步骤S204:
步骤S203:按照现有技术中的静态报文的方式进行处理,结束流程。
步骤S204:对请求报文(动态报文)进行第二次解析,且判断:动态报文请求的输入输出数据标记是否正确,如果不正确,则执行步骤S205;如果正确,则执行步骤S206;
步骤S205:发出不能进行报文解析的响应消息,结束流程;
步骤S206:判断动态报文的输入请求和/或输出数据请求处理字段是否在给定的数据结构中可定位;如果不可定位,则执行步骤S207;如果可定位,则执行步骤S209;
步骤S207:判断是否允许仅处理可访问数据结构中的内容,如果否,则执行步骤S208;如果是,则执行步骤S209:
步骤S208:发出请求输入和/或输出数据不可识别的响应消息,结束流程。
步骤S209:判断请求的输入和/或输出数据是否符合报文请求者的角色要求;如果否,执行步骤S210;如果是,则执行步骤S211;
步骤S210:发出请求报文权限不足的响应消息,结束流程;
步骤S211:根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
步骤S212:执行所述动态报文处理语句完成动态报文请求的相应操作。
如前所述,动态报文的处理与动态报文中包含的动态数据处理机制有关,下面以动态SQL访问和原子报文访问两种方式为例进行叙述:
对于采用动态SQL访问机制时:首先区分请求报文的类型,根据不同的类型进行不同的处理:
当按照解析得到的报文具有输入请求时,则应首先对输入请求进行分析,以确定输入的所有信息都是可定位的。若输入的信息含有不可定位的内容,则响应“输入请求不可定位,无法完成操作”,报文交互结束;否则,按照动态SQL访问机制进行处理,例如使用动态SQL访问机制完成数据仅增加、数据仅修改、数据有则修改无则增加、删除操作,其中:
对于允许“数据仅增加”时,若存在同样关键字的数据(例如相同的关系数据库主键),则发出“存在数据,不允许增加”的响应,否则,执行增加操作;
对于允许“数据仅修改”时,若不存在同样关键字的数据(例如相同的关系数据库主键),则发出“不存在数据,不允许修改”的响应,否则,执行修改操作;
对于允许“数据有则修改无则增加”时,若存在同样关键字的数据(例如相同的关系数据库主键),则执行修改,否则,执行增加操作;
对于“删除”,在删除的数据不存在时,发出“请求删除的数据不存在”的响应,否则,执行删除操作;
需要说明的一种特殊情况是:在一个请求中同时有对数据的增加、修改、有则修改无则增加、删除请求,在这种情况下,可采取两种策略:一是对能够成功的操作均执行,对不成功的操作返回操作的数据和不成功信息;二是只有所有的操作都成功才允许操作,否则不进行任何操作,但响应出首个或所有不成功的原因。具体策略的采用,取决于应用的逻辑配置。
当解析得到的报文具有输出请求时,则应首先对输出请求进行分析,以确定输出的所有信息都是可定位的。若输出的信息含有不可定位的内容(例如采用关系数据库的表进行管理而不能确定表的主键时),则响应“输出请求不可定位,无法完成操作”,报文交互结束;否则,按照支持的动态数据管理机制,例如动态SQL完成数据的查询操作。
对于采用原子报文访问机制时:预先构建的原子报文可以包括:(1)对每个合理的存储单位建立的增加报文,即每次增加的一个记录单位,例如,一个数据库表的一条记录;(2)对每个合理的存储单位建立的修改报文,即每次修改的一个记录单位,例如,一个数据库表的一条记录;(3)对每个合理的存储单位建立的删除报文,即每次删除的一个记录单位,例如,一个数据库表的一条记录;(4)对每个合理的存储单位建立的查询报文,每次查询限定个数的记录单位,例如,一个数据库表不超过50条记录。在上述预先确定的原子报文的基础上,针对请求报文的不同类型进行分别处理:
当解析得到的报文具有输入请求时,则应首先对输入请求进行分析,以确定输入的所有信息都是可定位的,若输入的信息含有不可定位的内容(例如采用关系数据库的表进行管理而不能确定表的主键时),则响应“输入请求不可定位,无法完成操作”,报文交互结束;否则,分别定位输入数据所在的合理的存储单位,调用所述的报文完成数据仅增加、数据仅修改、数据有则修改无则增加、删除操作,其中:
对于允许“数据仅增加”时,若存在同样关键字的数据(例如相同的关系数据库主键),则发出“存在数据,不允许增加”的响应,否则,执行增加操作;
对于允许“数据仅修改”时,若不存在同样关键字的数据(例如相同的关系数据库主键),则发出“不存在数据,不允许修改”的响应,否则,执行增加操作;
对于允许“数据有则修改无则增加”时,先调用修改报文,若存在同样关键字的数据(例如相同的关系数据库主键),则执行修改,否则,调用增加报文执行增加操作;
对于“数据删除”操作,在删除的数据不存在时,发出“请求删除的数据不存在”的响应,否则,执行删除操作;
当解析得到的报文具有输出请求时,则应首先对输出请求进行分析,以确定输出的所有信息都是可定位的。若输出的信息含有不可定位的内容(例如采用关系数据库的表进行管理而不能确定表的主键时),则响应“输出请求不可定位,无法完成操作”,报文交互结束;否则,调用查询报文,完成查询操作。
下面以两个实例对上述技术方案进行说明。这两个实例针对的应用***为软件分配管理***。该软件分配管理***用于记录软件所分配到的计算机和人员。参见图3,该图中采用Person表、Computer表、Software表、Person_Computer_relat表、Computer_SW_relat表、User表(User_ID\Password\Role_ID)、Role表(Role_ID\Role_Name)来描述该***。该***具有如下的特点:
(1)***的数据架构中提供可由外部访问部分包括除User表和Role表之外的其它数据库表,并带有基线。User表和Role表通过***的用户管理单元和角色管理单元访问。
(2)***的数据访问是基于角色的,对每个可处理的不可划分的元素,角色权限管理单元均预先确定了可由角色进行数据查询、增加、修改、有则修改无则增加、删除的权限,需要对内容进行权限控制的,亦定义了不同角色可处理的内容阈值。
(3)***对用户和角色采用单向匹配策略,即每个用户至多可是一种角色,但每一角色可能有多个用户,也可能没有用户。
(4)***接收的报文是明确用户的,在报文的发送方未规定用户的情况下,可认为来自同一发送方的报文均来自同一默认用户(如:某分行通信的信息均为某分行的软件分配管理***)。
(5)***的安全机制通过SSL安全机制实现,即依靠数字证书方式实现。
(6)***中Person表、Computer表、Software表、Person_Computer_relat表、Computer_SW_relat表结构是告知用户并可由用户存取的,但User表和Role表结构不告知用户,这些表的内容也不能被动态报文所访问。
(7)***可访问的数据结构典型地可用XML描述。
(8)在信息交换中,***是报文的响应者,而不是请求者。
实例之一:
假定该实例通过动态SQL语句访问机制进行报文处理,现需要查询李宽在mac地址为00-00-00-00-00-00的计算机上安装了什么软件,下面是请求报文的内容:
针对该请求报文,本实例的执行过程如下:
(1)接收请求方发送的应用***请求报文后,解析请求报文中是否包含动态元素标识,通过解析发现,该请求报文包含dynamic元素,说明此报文为动态报文,且进一步解析发现,该动态元素的文本值为dynamicSQL,说明此报文是通过动态SQL访问数据的动态报文;
(2)解析请求报文中的outputtype、outputdata、selectTable等元素,检查尖括号等XML语法、元素名称等,确定输入输出标识是否可识别。经过检查,请求报文中的元素均可识别;
(3)解析请求报文中的outputdata元素,得到文本值是“Person_ID,Person_Name,Computer_MAC,Soft_ID,Card_Num,Password”,可见,本实例报文请求需要查询李宽的身份证号、机器MAC地址、安装软件、工资***和用户密码。经解析,输出数据工资***Card_Num在给定的数据结构中不可定位,这种情况下,本实例允许仅处理可访问数据结构中的内容,即忽略Card_Num。
(4)解析请求报文中的user元素,得到当前用户是wujunfeng,经用户管理单元、角色管理单元、角色权限管理单元、可访问数据结构管理单元处理,得出当前用户是分行***管理员角色,不能获取李宽的用户密码,无权访问Password,故针对该值返回“权限不足”信息。
(5)解析请求报文中的selectSQL、selectConditionList等元素的值,动态形成SQL查询语句查询数据并获取结果。
(6)返回第一动态数据查询单元的查询结果。
实例之二:
假定该实例通过原子报文访问机制进行报文处理,现需要查询李宽在mac地址为00-00-00-00-00-00的计算机上安装了什么软件,下面是请求报文的内容:
针对该请求报文,本实例的执行过程如下:
(1)接收请求方发送的应用***请求报文后,解析dynamic元素,如果报文中不含此元素,说明此报文为静态报文,含此元素说明此报文为动态报文,经解析,元素文本为atomicSQL,说明此报文是通过原子报文访问数据的动态报文;
(2)第二报文解析单元解析outputtype、outputdata、conditionlist元素,检查尖括号等XML语法、元素名称,输入输出标识可识别,进行下一步解析;
(3)第二报文解析单元解析outputdata元素,得到文本值是“Person_ID,Soft_ID,Card_Num,Password”,本实施例报文请求查询李宽的身份证号、安装软件、工资***和用户密码,经解析,输出数据工资***Card_Num不在给定的数据结构中,更进一步,本实施例***允许仅处理可访问数据结构中的内容,即忽略Card_Num。报文的其它输出数据请求在给定的可访问的数据结构中,进行下一步解析;
(4)第二报文解析单元解析conditionlist元素,得到“Person_Name,Computer_MAC”两个条件和相应的值,确定该两个值均在数据结构中且可由用户访问,并根据这两个值可定位outputdata元素中指定的输出值;
(5)第二报文解析单元解析user元素,得到当前用户是wujunfeng,经用户管理单元、角色管理单元、角色权限管理单元、可访问数据结构管理单元处理,得出当前用户是分行***管理员角色,不能获取李宽的用户密码,无权访问Password,故针对该值返回“权限不足”信息;
(6)第二报文解析单元针对符合权限的操作,选取适宜的原子报文。
(7)第二动态数据查询单元执行所选择的原子报文,以获取Person_ID,Soft_ID信息,在该过程中,可能需要访问某些中间的数据结构,以确定最终的返回信息。最后按输出请求返回查询结果。其中,对比较复杂的通过某一数据表定位另一数据表中数据的内容,可通过预先定制的原子报文完成,也可通过应用逻辑完成,且应用逻辑完成具有更大的灵活性。
上述内容详细介绍了本申请的处理应用***请求报文的方法,相应地,本申请还提供了一种处理应用***请求报文的装置。参见图4,该图示出了处理应用***请求报文的装置的结构框图。该装置包括:请求报文接收单元401、报文类别判断单元402、字段定位判断单元403、语句形成单元404和语句执行单元405,其中:
请求报文接收单元401,用于接收请求方发送的应用***请求报文;
报文类别判断单元402,用于解析判断所述应用***请求报文是否为动态报文,所述动态报文包含动态元素标识、动态数据处理机制信息以及动态报文请求的处理类型和处理字段;如果是动态报文,则触发字段定位判断单元;
字段定位判断单元403,用于判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则触发语句形成单元;
语句形成单元404,用于根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
语句执行单元405,用于执行所述动态报文处理语句完成动态报文请求的相应操作。
本装置实施例的工作过程是:请求报文接收单元在接收请求方发送的应用***请求报文后,由报文类别判断单元解析判断所述应用***请求报文是否为动态报文,如果是动态报文,则触发字段定位判断单元判断所述动态报文请求处理字段是否在给定的数据结构中是否可定位,如果是,则触发语句形成单元根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;最后由语句执行单元,用于执行所述动态报文处理语句完成动态报文请求的相应操作。
上述装置实施例基于特定的需要,还可以增加或改变某些功能单元。比如,上述装置实施例还可以包括角色权限判断单元406,用于在执行所述动态报文处理语句完成动态报文请求的相应操作之前,判断所述动态报文请求的处理类型和/或处理字段是否符合请求方的角色权限,如果符合请求方的角色权限,则触发语句执行单元。再比如,上述装置实施例还可以包括非动态报文处理单元407,用于在判断出应用***请求报文为非动态报文时,按照现有技术方式进行处理。通过这种方式可以给出报文处理的两条通道,即现有技术的处理通道和本发明的处理通道,通过选择非动态报文处理单元的通道,使本发明具有较好的兼容现有报文处理方式的能力。
需要说明的是:为了叙述的简便,本说明书的上述实施例以及实施例的各种变形实现方式重点说明的都是与其他实施例或变形方式的不同之处,各个情形之间相同相似的部分互相参见即可。尤其是装置实施例部分,为了避免重复,仅进行了简要的描述,在理解装置实施例时可参考前述的方法实施例的内容。以上所描述的装置、***实施例的各单元可以是或者也可以不是物理上分开的,既可以位于一个地方,或者也可以分布到多个网络环境下。在实际应用过程中,可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的,本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅是本申请的具体实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (6)
1.一种处理应用***请求报文的方法,其特征在于,该方法包括:
接收请求方发送的应用***请求报文;
解析判断所述应用***请求报文是否为动态报文,所述动态报文包含动态元素标识、动态数据处理机制信息以及动态报文请求的处理类型和处理字段;如果是动态报文,判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
执行所述动态报文处理语句完成动态报文请求的相应操作;
所述根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句包括:
如果所述动态数据处理机制为动态SQL访问,则根据动态报文请求的处理类型和处理字段形成可执行SQL语句;
如果所述动态数据处理机制为原子报文访问,则根据动态报文请求的处理类型和处理字段调用相应的原子报文,所述原子报文为预先构造的针对数据结构的一个存储类别的基本处理报文。
2.根据权利要求1所述的方法,其特征在于,在所述请求报文为输入请求报文时,所述动态报文请求的处理类型包括数据仅增加、数据仅修改、数据有则修改无则增加,和/或,删除数据操作;
在所述请求报文为输出请求报文时,所述动态报文请求的处理类型包括查询操作;所述方法还包括:在执行所述动态报文处理语句完成动态报文请求的相应操作后,所述方法还包括将操作结果发送给请求方。
3.根据权利要求2所述的方法,其特征在于,
当请求报文为输入请求报文且动态报文请求的处理类型为数据仅增加时,判断是否存在与动态报文处理字段相同关键字的数据,如果存在,则发出包含“存在数据、不允许增加”内容的响应消息;如果不存在,则执行动态报文仅增加语句完成增加操作;
当请求报文为输入请求报文且动态报文请求的处理类型为数据仅修改时,判断是否存在与动态报文处理字段相同关键字的数据,如果不存在,则发出包含“不存在数据、不允许修改”内容的响应消息;如果存在,则执行动态报文仅修改语句完成修改操作;
当请求报文为输入请求报文且动态报文请求的处理类型为数据有则修改无则增加时,判断是否存在与动态报文处理字段相同关键字的数据,如果存在,则执行动态报文修改语句完成修改操作;如果不存在,则执行动态报文增加语句完成增加操作。
4.根据权利要求1至3中任何一项所述的方法,其特征在于,在执行所述动态报文处理语句完成动态报文请求的相应操作之前,判断所述动态报文请求的处理类型和/或处理字段是否符合请求方的角色权限,如果符合请求方的角色权限,则执行动态报文处理语句;如果不符合请求方的角色权限,则发出包含“报文请求不符合角色权限,无法完成操作”内容的响应消息。
5.根据权利要求1所述的方法,其特征在于,判断动态报文请求处理字段在给定的数据结构中不可定位时,则发出包含“报文请求不可定位,无法完成操作”内容的响应消息。
6.一种处理应用***请求报文的装置,其特征在于,该装置包括:请求报文接收单元、报文类别判断单元、字段定位判断单元、语句形成单元和语句执行单元,其中:
所述请求报文接收单元,用于接收请求方发送的应用***请求报文;
所述报文类别判断单元,用于解析判断所述应用***请求报文是否为动态报文,所述动态报文包含动态元素标识、动态数据处理机制信息以及动态报文请求的处理类型和处理字段;如果是动态报文,则触发字段定位判断单元;
所述字段定位判断单元,用于判断所述动态报文请求处理字段是否在给定的数据结构中可定位,如果是,则触发语句形成单元;
所述语句形成单元,用于根据动态报文请求的处理类型和处理字段按照动态报文中的动态数据处理机制形成动态报文处理语句;
所述语句执行单元,用于执行所述动态报文处理语句完成动态报文请求的相应操作;
所述装置还包括角色权限判断单元,用于在执行所述动态报文处理语句完成动态报文请求的相应操作之前,判断所述动态报文请求的处理类型和/或处理字段是否符合请求方的角色权限,如果符合请求方的角色权限,则触发语句执行单元。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310686439.XA CN103634326B (zh) | 2013-12-13 | 2013-12-13 | 一种处理应用***请求报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310686439.XA CN103634326B (zh) | 2013-12-13 | 2013-12-13 | 一种处理应用***请求报文的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103634326A CN103634326A (zh) | 2014-03-12 |
CN103634326B true CN103634326B (zh) | 2017-05-31 |
Family
ID=50214953
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310686439.XA Active CN103634326B (zh) | 2013-12-13 | 2013-12-13 | 一种处理应用***请求报文的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103634326B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109670297B (zh) * | 2018-12-14 | 2021-05-07 | 泰康保险集团股份有限公司 | 业务权限的开通方法、装置、存储介质及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770503A (zh) * | 2009-12-31 | 2010-07-07 | 深圳联友科技有限公司 | 一种文件打包解包的方法 |
CN101917312A (zh) * | 2010-09-01 | 2010-12-15 | 中国建设银行股份有限公司 | 性能测试模拟器及其报文组包模块、报文组包及发送方法 |
CN102013982A (zh) * | 2010-12-01 | 2011-04-13 | 银联商务有限公司 | 远程加密方法、管理方法、加密管理方法及装置和*** |
CN102238223A (zh) * | 2010-05-06 | 2011-11-09 | 清华大学 | 一种面向移动设备的网络化个人数据管理方法 |
-
2013
- 2013-12-13 CN CN201310686439.XA patent/CN103634326B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101770503A (zh) * | 2009-12-31 | 2010-07-07 | 深圳联友科技有限公司 | 一种文件打包解包的方法 |
CN102238223A (zh) * | 2010-05-06 | 2011-11-09 | 清华大学 | 一种面向移动设备的网络化个人数据管理方法 |
CN101917312A (zh) * | 2010-09-01 | 2010-12-15 | 中国建设银行股份有限公司 | 性能测试模拟器及其报文组包模块、报文组包及发送方法 |
CN102013982A (zh) * | 2010-12-01 | 2011-04-13 | 银联商务有限公司 | 远程加密方法、管理方法、加密管理方法及装置和*** |
Also Published As
Publication number | Publication date |
---|---|
CN103634326A (zh) | 2014-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11361097B2 (en) | Dynamically generating sharing boundaries | |
US20200285978A1 (en) | Model training system and method, and storage medium | |
US10176337B2 (en) | Method and system for allowing access to developed applications via a multi-tenant on-demand database service | |
US8195603B2 (en) | Rapid caching and data delivery system and method | |
CN102598007B (zh) | 有效检测采指纹数据和信息的***和方法 | |
US7895176B2 (en) | Entry group tags | |
CN109284631A (zh) | 一种基于大数据的文档脱敏***及方法 | |
US20090083241A1 (en) | Data paging with a stateless service | |
US20110219424A1 (en) | Information protection using zones | |
EP1686498A2 (en) | Integration of a non-relational query language with a relational data store | |
WO2014063127A1 (en) | Method and system for creating tax configuration templates | |
CN108874638B (zh) | 基于画像信息的智能云管理 | |
US20210303720A1 (en) | Access controls for a dedicated database system storing user-generated content input to a multitenant service of a collaborative work environment | |
US20210191957A1 (en) | Data integration and curation | |
CN109522751B (zh) | 访问权限控制方法、装置、电子设备及计算机可读介质 | |
CN101552801A (zh) | 一种在线浏览和下载用户群组通讯录的方法和*** | |
US20060225026A1 (en) | User-defined type consistency checker | |
CN106127038A (zh) | 一种黑名单的处理方法及*** | |
CN105989426A (zh) | 一种面向标准信息服务业的客户关系管理*** | |
CN107798037A (zh) | 用户特征数据的获取方法及服务器 | |
CN111400465B (zh) | 客服机器人的生成方法、装置、电子设备及介质 | |
US20070300243A1 (en) | Modular caching method and system for enabling offline functionality of server-client systems | |
US8965879B2 (en) | Unique join data caching method | |
CN110430180A (zh) | 一种基于热插拔的物联网平台及实现方法 | |
US20170270602A1 (en) | Object manager |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |