CN109918216A - 一种基于管道的数据处理方法和系统 - Google Patents
一种基于管道的数据处理方法和系统 Download PDFInfo
- Publication number
- CN109918216A CN109918216A CN201910171727.9A CN201910171727A CN109918216A CN 109918216 A CN109918216 A CN 109918216A CN 201910171727 A CN201910171727 A CN 201910171727A CN 109918216 A CN109918216 A CN 109918216A
- Authority
- CN
- China
- Prior art keywords
- data
- middleware
- pipe
- pipeline
- data pipe
- 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.)
- Pending
Links
- 238000003672 processing method Methods 0.000 title claims abstract description 19
- 238000012545 processing Methods 0.000 claims abstract description 67
- 238000000034 method Methods 0.000 claims abstract description 49
- 238000000926 separation method Methods 0.000 claims abstract description 4
- 238000012360 testing method Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 abstract description 4
- 230000004048 modification Effects 0.000 abstract description 4
- 238000004883 computer application Methods 0.000 abstract description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于管道的数据处理方法和系统,属于计算机应用及数据处理技术领域,该方法将数据处理的逻辑分隔为数据管道中的中间件,待处理的数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果,实现数据处理逻辑的灵活可变性及自定义逻辑的可扩展性。一种基于管道的数据处理系统,包括由中间件组合而成的数据管道,所述中间件为数据处理逻辑,多个中间件在数据管道中按顺序排列;将待处理数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果。本发明可在无需修改数据处理方法的前提下对数据进行特殊处理,实现数据的流程化处理,从而提高程序处理数据的灵活性,降低修改数据处理逻辑的难度和成本。
Description
技术领域
本发明涉及计算机应用及数据处理技术领域,具体地说是一种基于管道的数据处理方法和系统。
背景技术
在程序开发过程中经常遇到且不可避免的问题就是数据处理,传统的数据处理方式为,编写一个方法或实现一个类,将待处理的数据以参数的形式传递给这个方法或者类中的某一个方法,方法的处理结果就是对该数据的处理结果,这种数据处理的方法存在一个缺点,就是当在某一情况下需要对数据添加特殊处理时,需要重写数据处理方法,从而增大了数据处理的难度和成本。
发明内容
本发明的技术任务是针对以上不足之处,提供一种基于管道的数据处理方法和系统,可在无需修改数据处理方法的前提下对数据进行特殊处理,实现数据的流程化处理,从而提高程序处理数据的灵活性。
本发明解决其技术问题所采用的技术方案是:
一种基于管道的数据处理方法,该方法将数据处理的逻辑分隔为数据管道中一个个有顺序的中间件,待处理的数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果,实现数据处理逻辑的灵活可变性及自定义逻辑的可扩展性。
具体的,所述数据管道中不同的中间件负责处理数据中不同的部分,根据数据处理的需要调整所述中间件在数据管道中的顺序,从而改变整个数据管道处理数据的业务逻辑,无需修改其他中间件的实现程序,实现数据处理逻辑的灵活可变性。
具体的,在数据管道中添加自定义中间件,使数据管道实现对数据的特殊处理,且自定义中间件不影响数据管道中其他中间件的处理逻辑,实现自定义逻辑的可扩展性。
优选的,所述数据管道由中间件组合而成,数据管道包括管道运行主程序模块和数据处理中间件模块。管道运行主程序模块用于实现数据管道的创建、管理及运行,数据中间件模块用于根据数据处理需要,调整处理逻辑,实现特殊数据处理。
该方法的具体实施方式如下:
1)、编写数据管道创建模块;
2)、创建数据管道,并向数据管道中添加测试中间件;
3)、启动测试程序,验证管道数据处理。
具体的,编写数据管道创建模块包括:
1.1)、创建数据载体;
1.2)、创建请求委托;
1.3)、创建中间件接口;
1.4)、创建管道实现类。
优选的,所述创建数据载体的方式为创建MyContext类,承载待处理数据。
public class MyContext
{
public Object Value{get;set;}
}
进一步的,创建数据管道,并向数据管道中添加测试中间件,即实例化数据管道实例,向数据管道添加中间件的实现方式如下:
2.1)、创建中间件类;
2.2)、创建管道并添加中间件。
本发明还公开了一种基于管道的数据处理系统,包括由中间件组合而成的数据管道,所述中间件为数据处理逻辑,多个中间件在数据管道中按顺序排列;将待处理数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果;
通过调整数据管道中中间件的位置,或在数据管道中的相应位置插入自定义中间件实现对数据的特殊处理。无需修改其他中间件的实现程序,也不会影响其他中间件对数据的处理逻辑,从而降低修改数据处理逻辑的难度和成本。
进一步的,所述数据管道包括管道运行主程序模块和数据处理中间件模块,
管道运行主程序模块用于管道创建,实现数据载体、请求委托、中间件接口以及管道实现类的运行;
数据处理中间件模块用于中间件类的创建及添加,实现数据管道的数据处理。
该系统的具体实现方式如下:
1、编写数据管道创建模块;
1.1、创建数据载体,
1.2、创建请求委托,
1.3、创建中间件接口,
1.4、创建管道实现类。
2、创建数据管道,并向数据管道中添加测试中间件;
实例化管道实例,并向管道中添加中间件的方法为:
2.1、创建中间件类,
2.2、创建管道并添加中间件。
3、启动测试程序,验证管道数据处理。
本发明的一种基于管道的数据处理方法和系统和现有技术相比,具有以下有益效果:
该方法解决了对数据添加特殊处理时需要重写数据处理方法,从而增大数据特殊处理的难度和成本的问题,通过中间件的设计,在要想对数据进行特殊处理时,只需调整管道中中间件的位置,或者在管道中相应位置插入自定义中间件,而无需修改其他中间件的实现程序,也不会影响其他中间件对数据的处理逻辑,从而降低了修改数据处理逻辑的难度和成本。
附图说明
图1是实施例中启动程序,数据管道处理结果的截图。
具体实施方式
一种基于管道的数据处理方法,该方法将数据处理的逻辑分隔为数据管道中一个个有顺序的中间件,待处理的数据流入数据管道,分别经过各个中间件的处理,最终留出数据处理结果,实现数据处理逻辑的灵活可变性及自定义逻辑的可扩展性。
数据管道中不同的中间件负责处理数据中不同的部分,根据数据处理的需要调整所述中间件在数据管道中的顺序,从而改变整个数据管道处理数据的业务逻辑,无需修改其他中间件的实现程序,实现数据处理逻辑的灵活可变性。
在数据管道中添加自定义中间件,使数据管道实现对数据的特殊处理,且自定义中间件不影响数据管道中其他中间件的处理逻辑,实现自定义逻辑的可扩展性。
所述数据管道由中间件组合而成,数据管道包括管道运行主程序模块和数据处理中间件模块。管道运行主程序模块用于实现数据管道的创建、管理及运行,数据中间件模块用于根据数据处理需要,调整处理逻辑,实现特殊数据处理。
该方法的具体实施方式如下:
1、编写数据管道创建模块;
2、创建数据管道,并向数据管道中添加测试中间件;
3、启动测试程序,验证管道数据处理。
其中,编写数据管道创建模块包括:
1.1、创建数据载体;
创建MyContext类,承载待处理数据。
1.2、创建请求委托;
public delegate Task RequestDelegate(MyContext context)
1.3、创建中间件接口;
1.4、创建管道实现类。
2、创建数据管道,并向数据管道中添加测试中间件,即实例化数据管道实例,向数据管道添加中间件的实现方式如下:
2.1、创建中间件类;
2.2、创建管道并添加中间件。
SingleChannel pip=new SingleChannel();
pip.Use(new MyMiddleware());
pip.Use(new MyMiddleware1());
MyContext mycontext=new MyContext();
Task task=pip.Build()(mycontext);
task.Wait();
Thread.Sleep(3000);
Console.WriteLine("数据处理结果"+mycontext.Value);
Console.ReadKey();
3、启动程序,数据管道处理结果如图1所示。
作为本发明的另外一个实施例,一种基于管道的数据处理系统,包括由中间件组合而成的数据管道,所述中间件为数据处理逻辑,多个中间件在数据管道中按顺序排列;将待处理数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果。
通过调整数据管道中中间件的位置,或在数据管道中的相应位置插入自定义中间件实现对数据的特殊处理。无需修改其他中间件的实现程序,也不会影响其他中间件对数据的处理逻辑,从而降低修改数据处理逻辑的难度和成本。
该数据处理系统中,数据管道包括管道运行主程序模块和数据处理中间件模块,管道运行主程序模块用于管道创建,实现数据载体、请求委托、中间件接口以及管道实现类的运行;数据处理中间件模块用于中间件类的创建及添加,实现数据管道的数据处理。
该系统的实现方式如下:
1、编写数据管道创建模块,包括:
1.1、创建数据载体;
创建MyContext类,承载待处理数据。
1.2、创建请求委托;
public delegate Task RequestDelegate(MyContext context)
1.3、创建中间件接口;
1.4、创建管道实现类。
2、创建数据管道,并向数据管道中添加测试中间件;
实例化数据管道实例,向数据管道添加中间件的实现方式如下:
2.1、创建中间件类;
2.2、创建管道并添加中间件。
SingleChannel pip=new SingleChannel();
pip.Use(new MyMiddleware());
pip.Use(new MyMiddleware1());
MyContext mycontext=new MyContext();
Task task=pip.Build()(mycontext);
task.Wait();
Thread.Sleep(3000);
Console.WriteLine("数据处理结果"+mycontext.Value);
Console.ReadKey();
3、启动测试程序,验证管道数据处理。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。
除说明书所述的技术特征外,均为本专业技术人员的已知技术。
Claims (10)
1.一种基于管道的数据处理方法,其特征在于该方法将数据处理的逻辑分隔为数据管道中的中间件,待处理的数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果,实现数据处理逻辑的灵活可变性及自定义逻辑的可扩展性。
2.根据权利要求1所述的一种基于管道的数据处理方法,其特征在于所述数据管道中不同的中间件负责处理数据中不同的部分,根据数据处理的需要调整所述中间件在数据管道中的顺序,从而改变整个数据管道处理数据的业务逻辑,实现数据处理逻辑的灵活可变性。
3.根据权利要求1或2所述的一种基于管道的数据处理方法,其特征在于在数据管道中添加自定义中间件,使数据管道实现对数据的特殊处理,且自定义中间件不影响数据管道中其他中间件的处理逻辑,实现自定义逻辑的可扩展性。
4.根据权利要求1所述的一种基于管道的数据处理方法,其特征在于所述数据管道由中间件组合而成,数据管道包括管道运行主程序模块和数据处理中间件模块。
5.根据权利要求1所述的一种基于管道的数据处理方法,其特征在于该方法的具体实施方式如下:
1)、编写数据管道创建模块;
2)、创建数据管道,并向数据管道中添加测试中间件;
3)、启动测试程序,验证管道数据处理。
6.根据权利要求5所述的一种基于管道的数据处理方法,其特征在于编写数据管道创建模块包括:
1.1)、创建数据载体;
1.2)、创建请求委托;
1.3)、创建中间件接口;
1.4)、创建管道实现类。
7.根据权利要求6所述的一种基于管道的数据处理方法,其特征在于所述创建数据载体的方式为创建MyContext类,承载待处理数据。
8.根据权利要求5所述的一种基于管道的数据处理方法,其特征在于创建数据管道,并向数据管道中添加测试中间件,即实例化数据管道实例,向数据管道添加中间件的实现方式如下:
2.1)、创建中间件类;
2.2)、创建管道并添加中间件。
9.一种基于管道的数据处理系统,其特征在于包括由中间件组合而成的数据管道,所述中间件为数据处理逻辑,多个中间件在数据管道中按顺序排列;将待处理数据流入数据管道,分别经过各个中间件的处理,最终流出数据处理结果;
通过调整数据管道中中间件的位置,或在数据管道中的相应位置插入自定义中间件实现对数据的特殊处理。
10.根据权利要求9所述的一种基于管道的数据处理系统,其特征在于所述数据管道包括管道运行主程序模块和数据处理中间件模块,
管道运行主程序模块用于管道创建,实现数据载体、请求委托、中间件接口以及管道实现类的运行;
数据处理中间件模块用于中间件类的创建及添加,实现数据管道的数据处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910171727.9A CN109918216A (zh) | 2019-03-07 | 2019-03-07 | 一种基于管道的数据处理方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910171727.9A CN109918216A (zh) | 2019-03-07 | 2019-03-07 | 一种基于管道的数据处理方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109918216A true CN109918216A (zh) | 2019-06-21 |
Family
ID=66963814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910171727.9A Pending CN109918216A (zh) | 2019-03-07 | 2019-03-07 | 一种基于管道的数据处理方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109918216A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928578A (zh) * | 2019-12-05 | 2020-03-27 | 潍柴动力股份有限公司 | 一种数据处理方法、装置及系统 |
CN111142925A (zh) * | 2019-12-23 | 2020-05-12 | 山东浪潮通软信息科技有限公司 | 一种管道式数据处理方法、设备以及存储介质 |
CN111932234A (zh) * | 2020-09-24 | 2020-11-13 | 国网电子商务有限公司 | 交易数据处理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783019A (zh) * | 2004-12-03 | 2006-06-07 | 微软公司 | 用于创建web服务并与其交互的接口基础结构 |
US20110258414A1 (en) * | 2008-12-12 | 2011-10-20 | Bae Systems Plc | Apparatus and method for processing data streams |
CN103324479A (zh) * | 2013-06-13 | 2013-09-25 | 南京南自信息技术有限公司 | 松散环境下分布式大数据计算的中间件体系框架 |
US20140297620A1 (en) * | 2013-03-29 | 2014-10-02 | International Business Machines Corporation | Analytics based on pipes programming model |
CN108459919A (zh) * | 2018-03-29 | 2018-08-28 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
-
2019
- 2019-03-07 CN CN201910171727.9A patent/CN109918216A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1783019A (zh) * | 2004-12-03 | 2006-06-07 | 微软公司 | 用于创建web服务并与其交互的接口基础结构 |
US20110258414A1 (en) * | 2008-12-12 | 2011-10-20 | Bae Systems Plc | Apparatus and method for processing data streams |
US20140297620A1 (en) * | 2013-03-29 | 2014-10-02 | International Business Machines Corporation | Analytics based on pipes programming model |
CN103324479A (zh) * | 2013-06-13 | 2013-09-25 | 南京南自信息技术有限公司 | 松散环境下分布式大数据计算的中间件体系框架 |
CN108459919A (zh) * | 2018-03-29 | 2018-08-28 | 中信百信银行股份有限公司 | 一种分布式事务处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
雨夜朦胧: "ASP.NET Core运行原理解剖:Middleware请求管道的构成", 《HTTPS://WWW.CNBLOGS.COM/RAININGNIGHT/P/M/MIDDLEWARE-IN-ASP-NET-COER.HTML》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110928578A (zh) * | 2019-12-05 | 2020-03-27 | 潍柴动力股份有限公司 | 一种数据处理方法、装置及系统 |
CN111142925A (zh) * | 2019-12-23 | 2020-05-12 | 山东浪潮通软信息科技有限公司 | 一种管道式数据处理方法、设备以及存储介质 |
CN111932234A (zh) * | 2020-09-24 | 2020-11-13 | 国网电子商务有限公司 | 交易数据处理方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109918216A (zh) | 一种基于管道的数据处理方法和系统 | |
CN104714849B (zh) | 用于在综合工作负载环境中实现最佳性能的系统和方法 | |
US20110093854A1 (en) | System comprising a plurality of processing units making it possible to execute tasks in parallel, by mixing the mode of execution of control type and the mode of execution of data flow type | |
EP1738330B1 (en) | Scalable shader architecture | |
CN103761139B (zh) | 一种基于动态库拦截的通用计算虚拟化实现方法 | |
Hu et al. | Scheduling real-time parallel applications in cloud to minimize energy consumption | |
KR101516055B1 (ko) | 맵리듀스 워크플로우 처리 장치와 방법 및 이를 저장한 기록 매체 | |
CN103713955B (zh) | 资源动态分配的管理方法和装置 | |
CN102203718B (zh) | 内存转储处理方法和装置及内存转储系统 | |
CN106033373A (zh) | 一种云计算平台中虚拟机资源调度方法和调度系统 | |
CN104583896A (zh) | 向处理器的异构计算元件分配功率 | |
CN106407231A (zh) | 一种数据多线程导出方法及系统 | |
CN105242954B (zh) | 一种虚拟cpu与物理cpu之间的映射方法及电子设备 | |
CN101216780B (zh) | 在对称多处理体系下实现多实例线程通信的方法及装置 | |
WO2022134538A1 (zh) | 一种微操作系统字节码精简指令集和资源受限装置 | |
CN109902038A (zh) | 一种PCIe总线地址空间分配方法及装置 | |
CN104156271B (zh) | 一种协同计算集群负载均衡的方法及系统 | |
US20140149528A1 (en) | Mpi communication of gpu buffers | |
CN111163149A (zh) | 一种基于区块链的智能合约平台方法 | |
CN104731572B (zh) | 履行硬件线程的硬件权利的方法和系统 | |
CN109840147A (zh) | 一种实现多队列网卡绑定cpu的方法及系统 | |
CN105988952B (zh) | 为内存控制器分配硬件加速指令的方法和装置 | |
CN103440159B (zh) | 进程调度方法和系统 | |
KR20200098744A (ko) | 범용 그래픽 처리장치 및 이의 스케쥴링 방법 | |
CN104331289A (zh) | 一种将插件式设计应用到流程处理的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190621 |