WO2022104611A1 - 数据分发系统及数据分发方法 - Google Patents

数据分发系统及数据分发方法 Download PDF

Info

Publication number
WO2022104611A1
WO2022104611A1 PCT/CN2020/129891 CN2020129891W WO2022104611A1 WO 2022104611 A1 WO2022104611 A1 WO 2022104611A1 CN 2020129891 W CN2020129891 W CN 2020129891W WO 2022104611 A1 WO2022104611 A1 WO 2022104611A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
preset
product model
module
plug
Prior art date
Application number
PCT/CN2020/129891
Other languages
English (en)
French (fr)
Inventor
李鹏
王达川
吕媛媛
韩永亮
邵广玉
李文娟
王洪
Original Assignee
京东方科技集团股份有限公司
北京中祥英科技有限公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 京东方科技集团股份有限公司, 北京中祥英科技有限公司 filed Critical 京东方科技集团股份有限公司
Priority to CN202080002860.2A priority Critical patent/CN114830615B/zh
Priority to PCT/CN2020/129891 priority patent/WO2022104611A1/zh
Priority to US17/429,912 priority patent/US11762719B2/en
Publication of WO2022104611A1 publication Critical patent/WO2022104611A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files

Definitions

  • the present disclosure relates to the technical field of data processing networks, and in particular, to a data distribution system and a data distribution method.
  • IoT Internet of Things
  • IoT platforms usually transmit data to different users in real time, but there is a problem that some users cannot directly use the above data.
  • the present disclosure provides a data distribution system and a data distribution method to solve the deficiencies of the related art.
  • a data distribution system including a channel configuration module, a data engine module, a data processing module, a rule engine module, a preset database, and an external interface module;
  • the channel configuration module is connected with external devices, and is used to convert the acquired device data of each external device into preset product model data and store them in the message queue;
  • the data engine module is connected to the channel configuration module, and is used for distributing the preset product model data obtained from the message queue to the preset database or the data engine module, or generating a control instruction and sending it to the a data processing module, the rule engine module;
  • the data processing module is configured to select a preset offline algorithm or a real-time algorithm to process the preset product model data in response to the control instruction, and push or store the processing result in real time;
  • the rule engine module is used to determine whether the node corresponding to the preset product model data needs to be triggered in response to the control instruction; when triggering is required, the trigger information of the preset type is sent to the node; The preset product model data is sent to an external device;
  • the external interface module is configured to feed back the preset product model data from the preset database in response to a call request from an external business system.
  • a data distribution system including a channel configuration module and a data engine module; wherein,
  • the channel configuration module is connected with external devices, and is used to convert the acquired device data of each external device into preset product model data and store them in the message queue;
  • the data engine module is connected with the channel configuration module, and is used for distributing the preset product model data obtained from the message queue.
  • the preset product model data includes three types of device data: state parameters, function parameters and trigger parameters.
  • it also includes a data processing module; the data processing module is connected with the data engine module;
  • the data engine module is further configured to generate a control instruction according to the initial configuration data and send it to the data processing module;
  • the data processing module is configured to select a preset offline algorithm or a real-time algorithm to process the preset product model data in response to the control instruction, and push or store the processing result in real time.
  • it also includes a rule engine module; the rule engine module is connected with the data engine module;
  • the data engine module is further configured to generate a control instruction and send it to the rule engine module when the preset product model data needs to trigger the rule engine;
  • the rule engine module is used to determine whether the node corresponding to the preset product model data needs to be triggered in response to the control instruction; when triggering is required, the trigger information of the preset type is sent to the node; The preset product model data is sent to an external device.
  • the data engine module is further configured to push the preset product model data to a preset cache, and the cache determines whether the node corresponding to the preset product model data needs to be triggered.
  • the external interface module is connected with the data engine module;
  • the data engine module is also used to store the preset product model data in the preset database
  • the external interface module is configured to feed back the preset product model data from the preset database in response to a call request from an external business system.
  • a data distribution method which is applied to the data distribution system of the first aspect, and the method includes:
  • a distribution operation is performed on the preset product model data obtained from the message queue.
  • the preset product model data includes three types of device data: state parameters, function parameters and trigger parameters.
  • a distribution operation is performed on the preset product model data obtained from the message queue, including:
  • the initial configuration data includes configuration data representing whether a preset algorithm is used to process the preset product model data;
  • the initial configuration data includes configuration data representing that a preset algorithm is used to process the preset product model data
  • a data processing algorithm for the preset product model data is acquired;
  • the data processing algorithm includes an offline algorithm or a real-time algorithm;
  • a distribution operation is performed on the preset product model data obtained from the message queue, including:
  • trigger information of a preset type is sent to the node; when triggering is not required, the preset product model data is sent to an external device.
  • a distribution operation is performed on the preset product model data obtained from the message queue, including:
  • the preset product model data is stored in a preset database based on the preset strategy, so that an external business system can acquire the preset product model data through the preset database.
  • obtain device data reported by an external device including:
  • the device data When the device data satisfies the preset data protocol, the device data is stored in the first message queue; if the device data does not meet the data protocol, protocol conversion is performed through the SDK to meet the preset data protocol. The device data is stored in the first message queue.
  • an electronic device comprising:
  • At least one memory for storing a computer program executable by the processor
  • the at least one processor is configured to execute a computer program in the at least one memory to implement the method as described above.
  • a computer-readable storage medium is provided, and when an executable computer program in the storage medium is executed by a processor, the above-mentioned method can be implemented.
  • the data distribution system in the embodiment of the present disclosure includes a channel configuration module and a data engine module; wherein, the channel configuration module is connected to an external device, and is used to connect the acquired devices of each external device
  • the data is converted into preset product model data and stored in the message queue;
  • the data engine module is connected to the channel configuration module, and is used for distributing the preset product model data obtained from the message queue.
  • device data can be uniformly analyzed to realize data distribution, so that users in the data distribution system can directly use the above-mentioned device data, which is beneficial to improve the stability, compatibility and portability of the system.
  • Fig. 1 is a block diagram of a data distribution system according to an exemplary embodiment.
  • FIG. 2 is a sequence diagram illustrating data distribution according to an exemplary embodiment.
  • FIG. 3 is a flow chart of data distribution according to an exemplary embodiment.
  • Fig. 4 is a flowchart of a method for configuring a data distribution process according to an exemplary embodiment.
  • Fig. 5 is a schematic diagram showing the effect of configuring routing information of a product according to an exemplary embodiment.
  • FIG. 6 is a schematic diagram of a tab page for creating a product according to an exemplary embodiment.
  • Fig. 7 is a schematic diagram showing the effect of a product queue according to an exemplary embodiment.
  • FIG. 8 is a schematic diagram of an access control product scenario according to an exemplary embodiment.
  • Fig. 9 is a schematic diagram showing the effect of configuring a routing channel of an access control product according to an exemplary embodiment.
  • Fig. 10 is a schematic diagram showing the effect of the definition of an access control product according to an exemplary embodiment.
  • FIG. 11 is a schematic diagram of a tab page of a routing channel of an access control product according to an exemplary embodiment.
  • FIG. 12 is a schematic diagram of a tab page of a newly added data source according to an exemplary embodiment.
  • 13 to 15 are schematic diagrams of tab pages for configuring a MYSQL data table according to an exemplary embodiment.
  • 16-20 are schematic diagrams of tab pages for configuring MQTT according to an exemplary embodiment.
  • FIG. 21 is a flow chart of creating a workspace area according to an exemplary embodiment.
  • FIG. 22 is a schematic diagram showing the effect of a pop-up frame according to an exemplary embodiment.
  • FIG. 23 is a flow chart of creating a business process according to an exemplary embodiment.
  • Fig. 24 is a schematic diagram showing the effect of a new creation process according to an exemplary embodiment.
  • Fig. 25 is a flow chart of acquiring a node plug-in according to an exemplary embodiment.
  • Fig. 26 is a schematic diagram showing the effect of a workbench and a node plug-in acquisition according to an exemplary embodiment.
  • Fig. 27 is a flow chart showing the configuration of node plug-in information according to an exemplary embodiment.
  • FIG. 28 is a schematic diagram showing the effect of configuring a tab page of a MYSQL data table according to an exemplary embodiment.
  • FIG. 29 is a flow chart of connecting a node plug-in according to an exemplary embodiment.
  • Fig. 30 is a schematic diagram showing the effect of a business process according to an exemplary embodiment.
  • Fig. 31 is a flowchart showing a data distribution method according to an exemplary embodiment.
  • Fig. 32 is a block diagram of an apparatus for configuring a data distribution process according to an exemplary embodiment.
  • FIG. 1 is a block diagram of a data distribution system according to an exemplary embodiment.
  • the data distribution system can be a distributed system deployed in the cloud.
  • a distributed data distribution system can be a system formed by a group of computers connected to each other through a network to transmit messages and communicate and coordinate their behavior. Different computers interact with each other to achieve a common goal.
  • the network can be the Internet of Things (Internet of Things) based on the Internet and/or a telecommunication network, which can be a wired network or a wireless network, for example, it can be a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN) ), cellular data communication networks and other electronic networks that can realize the function of information exchange.
  • Internet of Things Internet of Things
  • a telecommunication network which can be a wired network or a wireless network, for example, it can be a local area network (LAN), a metropolitan area network (MAN), a wide area network (WAN) ), cellular data communication networks and other electronic networks that can realize the function of information exchange.
  • Distributed computing systems may have software plug-ins, such as software objects, or other types of individually addressable isolated entities, such as distributed objects, proxies, actors, virtual plug-ins, and the like.
  • each such plugin is individually addressable and has a unique identity (such as an integer, GUID, string, or opaque data structure, etc.) in the distributed system.
  • applications can be deployed to reside in a cluster.
  • Various systems, plug-ins, and network configurations exist to support distributed computing environments. For example, computing systems may be connected together by wired or wireless systems, by local networks or widely distributed networks. Currently, many networks are coupled to the Internet, which provides an infrastructure for widely distributed computing, and includes many different networks, although any network infrastructure may be used for system-prone communications such as those described in various examples.
  • Data distribution systems provide the sharing of computer resources and services through the exchange of communications between computing devices and systems. These resources and services include information exchange, cache storage, and disk storage for objects (eg, files). These resources and services also include the sharing of processing power across multiple processing units for load balancing, resource scaling, specialization of processing, etc.
  • a distributed data distribution system may include hosts with network topologies and network infrastructures such as client devices/servers, peer-to-peer, or hybrid architectures.
  • a data distribution system includes a channel configuration module Zbridge and a data engine module Zdata.
  • the channel configuration module Zbridge is connected with external devices, and is used to convert the acquired device data of each external device into preset product model data and store them in the message queue;
  • the data engine module Zdata is connected with the channel configuration module Zbridge, and is used for distributing the preset product model data obtained from the message queue.
  • the channel configuration module Zbridge is connected to an external device, and can acquire device data reported by the external device.
  • the data distribution system or the channel configuration module can store preset data protocols, such as Message Queuing Telemetry Transport (MQTT), http protocol, XMPP protocol, and CoAP protocol.
  • MQTT Message Queuing Telemetry Transport
  • the channel configuration module Zbridge can obtain the MQTT protocol and determine whether the device data meets the MQTT protocol. When the device satisfies the MQTT protocol, the channel configuration module Zbridge can store the device data in the MQTT Broker (ie, the first message queue). When the device data does not meet the data protocol, the protocol is converted through the SDK and stored in the first message queue.
  • the external devices in this embodiment may include devices that need to be externally connected to the system, such as third-party devices, directly connected devices, edge gateways, etc.; correspondingly, the device data reported by the external devices may include image information collected by cameras , Environmental data collected by temperature and humidity sensors, production data of production equipment, etc. It is understandable that the above-mentioned external devices can be set according to specific scenarios, and device data can be adjusted accordingly according to the external devices, and corresponding solutions fall within the protection scope of the present disclosure.
  • routing configuration information has been pre-stored in the channel configuration module Zbridge, and the routing configuration information may include a topic path designated to read device data from the first message queue, product model definition and data analysis.
  • the channel configuration module Zbridge can monitor the MQTT data in the first message queue.
  • MQTT data exists in the first message queue, it is read, and the MQTT data is converted into preset product model data and stored in the second message queue.
  • the second message queue can use one of the following: Message Queue, RabbitMQ, Redis, ZeroMQ, ActiveMQ, Kafka/Jafka.
  • the second message queue is implemented using Kafka.
  • the routing configuration information may include a preset preset product model, which includes three types of device data: state parameters, function parameters, and trigger parameters.
  • the data type and data length of the parameters are set to represent the same Data Format for Class Products
  • the state parameter is used to describe the state of the device when it is running, such as the current ambient temperature read by the environment monitoring device.
  • the status parameter can support GET and SET request methods, and the application system can read and set the status parameter request.
  • Function parameters refer to the capabilities or methods of the device that can be called externally, including input parameters and output parameters. Compared with state parameters, function parameters can implement more complex business logic through an instruction, such as executing a specific special task.
  • Trigger parameters refer to events when the device is running, generally including notification information that needs to be perceived and processed externally, and can include multiple output parameters. Information such as the completion of a certain task, or the temperature when a device fails or an alarm, etc., can be subscribed and pushed. That is to say, in this example, from the three functional dimensions of status parameter, function parameter and trigger parameter, it describes what the device is, what it can do, and what information it can provide externally, that is, the definition of device data is completed.
  • the channel configuration module Zbridge provides a platform for multi-source heterogeneous devices to convert product models, and divides device data into state parameters, function parameters, and trigger parameters, thus converting the device data of each external device into a preset product model.
  • an access control device defines the state parameters of the product model, such as access control ID (guardID), personnel ID (cardID), and direction of entry and exit (direction), and the relevant state parameters in the corresponding device data are respectively represented as data.door, data.person , data.direction, through the configuration information (JS, jar), to realize the mapping of the corresponding state parameters, so as to realize the analysis of the product model.
  • guardID access control ID
  • cardID personnel ID
  • direction of entry and exit direction
  • JS configuration information
  • all equipment data is converted into preset product model data, which can facilitate the system to process the preset product model data, such as using big data algorithms to process the above data, mining data value or providing users with more information.
  • preset product model data such as using big data algorithms to process the above data, mining data value or providing users with more information.
  • the preset product model data can be directly used for each part of the system without re-conversion, which improves the efficiency of data utilization.
  • the user can realize the data analysis of the product model according to the simple configuration information, which avoids the writing of data analysis codes for various devices separately, and improves the data analysis efficiency.
  • the data engine module Zdata is connected to the channel configuration module Zbridge, and can monitor the preset product model data in the second message queue.
  • the data engine module Zdata can also be connected to the data processing module Zalgorithm, the rule engine module ZMessage, the external interface module ZOpen and the database, and can arbitrarily control the data processing method (real-time algorithm processing, offline algorithm processing, filtering processing) , data channel selection and data result processing (storage in database, rule engine judgment, push to external business system, direct output to users, etc.), to achieve the purpose of parsing, distributing and storing preset product model data.
  • the data engine module Zdata is further provided with a filtering script, such as a JS script or a JAR package, and the filtering script is uploaded or written by the user through the system configuration page.
  • a filtering script such as a JS script or a JAR package
  • the filtering script is uploaded or written by the user through the system configuration page.
  • the data engine module Zdata parses the preset product model and before distribution, the parsed data can be filtered according to the user's subscription requirements, so as to better suit the user's needs. For example, user A wants to obtain 3 types of data in the preset product model, and user B wants to perform calculations based on 5 data in the preset product model, and can filter out the 3 types corresponding to the preset product model in advance through the filtering script or 5 types of data, so as to better adapt to the personalized subscription needs of user A or user B.
  • the data distribution system further includes a preset database and an external interface module ZOpen.
  • the preset database may include, but is not limited to, a Mysql database, a TiDB database, a FoundationDB database, and the like.
  • the default database is implemented using the TiDB database.
  • the TiDB database can seamlessly expand horizontally as the data in the system grows. It only needs to add more machines to meet business growth needs, and the application layer does not need to care about storage capacity and throughput.
  • the TiDB database can also dynamically adjust the load balance based on factors such as storage, network, distance, etc., to ensure better read and write performance, so as to meet the needs of the data distribution system and improve the scalability, reliability and stability of the system.
  • the data engine module Zdata stores the preset product model data in the TiDB database when monitoring the data in the Kafka queue.
  • the data stored in the TiDB database may also include result data pushed by the data processing module Zalgorithm, and may also include process data in the first message queue or the second message queue, which can facilitate data query by external systems.
  • the business system reads the preset product model data through the external interface module ZOpen of the data distribution system to realize data standard query.
  • the data distribution system further includes a data processing module Zalgorithm connected with the data engine module Zdata.
  • the data processing module Zalgorithm can be the big data platform Hadoop. Users only need to write the corresponding algorithm and upload it to the data processing module Zalgorithm, which can support offline or real-time data processing and calculation.
  • the data engine module Zdata can pre-store initial configuration data, which is pre-configured by the user, and can include configuration information such as whether a data processing algorithm needs to be used, and which algorithm to use when using the data processing algorithm.
  • the data processing algorithms include offline algorithms or real-time algorithms. After the preset product model data is obtained from the kafka queue, the initial configuration data can be read to determine whether to trigger the data processing module Zalgorithm.
  • the data processing module Zalgorithm can use offline algorithm or real-time algorithm to process the preset product model data, and feed back the processing result to the user and store it locally. That is to say, the data processing module Zalgorithm can also be used as a database to store preset product model data, process data and result data.
  • the offline algorithm is implemented using SparkSQL, and the processing results are stored in Hive; the real-time algorithm is implemented using SaprkStreaming, which is pushed in real time through a message queue.
  • offline algorithms can include but are not limited to SparkSQL, Hive on Spark, Core, Streaming, MLlib, GraphX, etc.
  • real-time algorithms can include but are not limited to Flink, Storm, Spark Streaming, etc.
  • real-time algorithms can also be implemented by using one of the above offline algorithms; another example, Offline algorithms can also be implemented by real-time algorithms, and technicians can select appropriate offline algorithms and real-time algorithms according to specific scenarios.
  • the above offline algorithms or real-time algorithms also use big data algorithms.
  • the big data algorithm can be implemented by algorithms such as neural network algorithms.
  • the neural network algorithm processes the images and obtains them. semantics.
  • the data distribution system further includes a rule engine module ZMessage, which can store preset rules, such as the ambient temperature does not exceed 50 degrees Celsius, the ambient humidity does not exceed 70%, etc., and can be configured according to specific scenarios. Corresponding rules and corresponding solutions fall into the protection scope of the present disclosure.
  • the rule engine module ZMessage is connected with the data engine module Zdata.
  • the data engine module Zdata generates a control instruction and sends it to the rule engine module ZMessage when the preset product model data needs to trigger the rule engine, or the data engine module Zdata sends the preset product model data to the key-value storage system Redis, and Redis judges the prediction. Set whether the product model data needs to trigger the rule engine.
  • the rule engine module ZMessage is used to determine whether the node corresponding to the preset product model data needs to be triggered in response to the control instruction; when it needs to be triggered, it sends the preset type of trigger information to the node, such as control instructions, alarm information, etc.; when it does not need to be triggered Send preset product model data to an external device.
  • the node type such as email, calling a remote interface, short message, etc.
  • the sending method or format of the information or data can be adjusted according to the type.
  • the triggered node may not support the MQTT protocol.
  • the information or data can be parsed by ZEdgeSDK and then sent to the triggered node.
  • the data distribution system in the embodiment of the present disclosure includes a channel configuration module Zbridge and a data engine module Zdata; wherein, the channel configuration module Zbridge is connected to an external device for converting the acquired device data of each external device into a preset product
  • the model data is stored in the message queue;
  • the data engine module Zdata is connected to the channel configuration module Zbridge, and is used for distributing the preset product model data obtained from the message queue.
  • device data can be uniformly analyzed to realize data distribution, so that users in the data distribution system can directly use the above-mentioned device data, which is beneficial to improve the stability, compatibility and portability of the system.
  • assets refer to external devices that need to be connected externally, and these external devices can use external data and report them.
  • MQTT-BROKER is a message queue, which is used for the transfer and transmission of device data.
  • ZBridge parses device data into preset product model data.
  • ZBridge monitors the data of MQTT-BROKER. When MQTT-BROKER has data, it fetches it, converts it into preset product model data, and distributes the message to the kafka queue.
  • the device data transmission based on the MQTT protocol in 2) can also be implemented by ZBridge.
  • the initial configuration information in ZBridg may include JS scripts, jar packages, and also python scripts or PHP scripts.
  • ZBridge can implement product model conversion based on JS scripts or jar packages written by users.
  • ZBridge can parse the JB script based on the JS parsing engine or parse the jar package based on the pf4j plug-in, and then perform product model processing on the data.
  • ZData monitors the product model data in kafka and makes judgments in the data engine, and performs the following three operations:
  • product model data can be filtered and processed using filtering scripts, or data can be processed using big data/artificial intelligence algorithms.
  • the processed result data and process data can be stored directly in the database for later use.
  • the business system can read data from the TiDB database through the external interface module ZOpen, and can also perform standard queries.
  • the external interface module ZOpen can also read data from the TiDB database as downlink data and send it to ZMessage, which will be sent directly to ZEdge SDK or directly to the device or to determine whether to trigger an action node.
  • ZMessage can also read data from the TiDB database as downlink data and send it to ZMessage, which will be sent directly to ZEdge SDK or directly to the device or to determine whether to trigger an action node.
  • the type of the node sends emails, calls remote interfaces, sends SMS, etc., or triggers the trigger parameters of the asset type (that is, sent directly to the ZEdge SDK or directly to the device).
  • ZData determines whether to use a preset processing algorithm to preset product model data according to the initial setting information. If adopted, it is necessary to further judge the selected algorithm category.
  • the category is a real-time algorithm, and SaprkStreaming is used for calculation; another example is an offline algorithm, and SparkSQL is used for calculation, and the processing result is stored in Hive.
  • the service subscription method in the initial setting information can be determined, and the data can be pushed in real time through Kafka or stored in the storage node.
  • ZData maps the preset product model data to Redis, which is a key-value key-value storage system. Redis can determine whether it needs to notify the triggering rule engine, and if so, it can send control instructions to Zmessage. Zmessage can preprocess the preset product model data and match it with the preset trigger rules to form an event. The trigger action is executed when the event satisfies the trigger rule.
  • ZMessage judges whether the rule node needs to be triggered. When it does not need to be triggered, it sends the preset product model data or parses the preset product model data to the ZEdge SDK or sends it directly to the device. When it needs to be triggered, it continues to judge whether to trigger the action node. When a rule node needs to be triggered, it can send emails, call remote interfaces, send text messages, etc. according to the action node type, or trigger the trigger parameters of the asset type (that is, send it directly to the ZEdge SDK or send it directly to the device).
  • FIG. 4 is a flowchart of a method for configuring a data distribution process according to an exemplary embodiment, which can be used in the data distribution system shown in FIG. 1 .
  • the user can configure the data distribution process on any electronic device in the data distribution system, or access the data distribution system through other electronic devices to configure the data distribution process.
  • an electronic device having a display screen capable of triggering operations is used as an execution subject to describe each solution.
  • the channel configuration module Zbridge corresponds to a set of message queue plug-ins, a set of database plug-ins or a set of filter script plug-ins.
  • the data engine module Zdata corresponds to the configuration information of the business process, that is, the data transmission, calculation and distribution between various modules or plug-ins are realized through the configuration information.
  • the data processing module Zalgorithm corresponds to the set of algorithm plug-ins, and the set of database plug-ins.
  • the rule engine module ZMessage corresponds to the filter script plug-in collection and the database plug-in collection.
  • the external interface module ZOpen corresponds to the database plug-in set and the external interface.
  • a database corresponds to a collection of database plugins.
  • each of the above modules may be an aggregate of at least one function, and a plug-in is more inclined to one function, so each of the above modules may correspond to at least one kind of plug-in.
  • it may be determined which module the plug-in belongs to according to the corresponding relationship between the plug-in and the module. Under the condition that the operation of the data distribution system shown in FIG. 1 is not affected, the variant scheme of dividing each plug-in into each module falls within the protection scope of the present disclosure.
  • a data distribution process configuration method includes steps 41 to 43:
  • step 41 in response to detecting a triggering operation representing a business process for creating a data distribution service, a workbench for the business process is displayed.
  • various plug-in sets may be pre-stored in the electronic device, including an initial plug-in set, a channel plug-in set, and a processing plug-in set.
  • Each plug-in in the channel plug-in set is located between each plug-in in the initial plug-in set and each plug-in in the processing plug-in set, or between two plug-ins in the processing plug-in set.
  • the initial plug-in set includes a data integration plug-in set
  • the channel plug-in set includes a message queue plug-in set
  • the processing plug-in set includes a database plug-in set, a filter script plug-in set, an algorithm plug-in set, and a rule engine plug-in set.
  • an external interface plug-in set may also be included for establishing a connection between an external device and a database plug-in, a message queue plug-in, or a filter script plug-in.
  • Technicians can choose a suitable set of plug-ins according to the scene. . in:
  • the data integration plug-in set mainly hides the underlying data details under the unified data logic view through the node plug-in of the routing channel type, so that different data sources can be mapped to the node plug-in.
  • the underlying data logic configuration of the node plug-in specifically selects a product data source (as shown in Figure 3), and the product data source information includes routing configuration information, product model definition information and Data parsing information, then select the route that the product data source needs to subscribe to, and select the status parameter in the product model information through data filtering.
  • the Create Product button is displayed on the system's display interface.
  • the electronic device may pop up a pop-up box in the display interface in response to detecting the triggering operation that characterizes the creation of the product, and the effect is shown in Figure 3.
  • the pop-up box includes product-related information, such as product name, product category (such as custom category, general category), node data (such as direct-connected devices, edge gateways, gateway sub-devices, third-party devices, etc.), certification
  • the content in the pop-up box can be adjusted according to specific scenarios.
  • the electronic device can also fill in various product information and obtain input data according to the user's trigger operation. When it is detected that the user stores the above input data, the electronic device can call the API interface to generate new product information, and display the newly generated related products in the list, the effect is shown in Figure 7.
  • the electronic device can display the configuration page of the access control product in response to detecting a trigger operation representing the configuration routing information, as shown in Figures 8 and 9.
  • the electronic device can obtain routing information input by the user, such as information configuration of basic routing, communication routing, and custom routing.
  • the configuration of the custom routing information is the routing selection after the product information is selected by the later routing channel plug-in data source.
  • the electronic device can respond to detecting a trigger operation representing product model information of a configuration product, and obtain product model information input by the user, such as state parameters, function parameters, trigger parameters, and information configuration of the product model DSL. That is, the electronic device can detect that the user clicks the new custom button to pop up a pop-up box, obtain the relevant information entered according to the prompts on the display interface, and configure the information defined by the product model such as status parameters, function parameters, and trigger parameters, and after the product goes online. New information cannot be customized.
  • the state parameter information configuration defined by the product model is the product state parameter information that the subsequent routing channel plug-in needs to data filter.
  • the database plug-in set is mainly composed of MYSQL data table plug-in, TIDB data table plug-in and HBase data table plug-in to perform operations such as establishment, storage, update, query and deletion of data, corresponding to the data in FIG. 3 .
  • Storage node or TiDB database The underlying data logic configuration of these node plug-ins is to select the instance of the data source storage node.
  • the information of the storage node instance includes the database version, IPV4 address information, port number, instance name, database name, user name, password and the region where the storage node is located. , select the data table and the table structure information of the data table by selecting the instance of the storage node, or create the data table and the table structure of the data table for the instance by filling in the DDL script data.
  • the Add Node button can be displayed on the display interface of the system.
  • the electronic device can detect whether the user clicks the above-mentioned add node button, and the electronic device can pop up a pop-up box in the display interface in response to detecting that the user clicks the above-mentioned add node button.
  • the pop-up box includes the selected version, connection information, instance name, library name, user name, password, alias, and region.
  • the electronic device can also fill in various product information and obtain input data according to the user's trigger operation. When detecting that the user stores the above input data, the electronic device can call the API interface to generate a new storage instance, and display the new storage instance in the list.
  • This list is the data source information in the configuration information of the MySQL data table plugin.
  • the data table information of the storage instance can be obtained by calling the API interface through the filled-in storage instance information, and various attribute information of the data table can be obtained through the data table information.
  • the obtained information is the selected data table and data table structure information in the information configured by the MySQL data table plugin.
  • the message queue plug-in set is mainly composed of MQTT message queue plug-in (corresponding to MQTT BROKER in Figure 3), Kafka message queue plug-in (corresponding to apaache kafka in Figure 3) and AMQP message queue plug-in for asynchronous processing, application Decoupling and traffic cutting.
  • the underlying data logic of these node plugins is to select the message queue instance of the data source.
  • the information of the message queue instance includes TCP connection, WS connection, user name, password, namespace, region and topics topics, which are selected by selecting the instance of the message queue.
  • the Add Instance button can be displayed on the display interface of the system.
  • the electronic device may pop up a pop-up box in the display interface in response to detecting the trigger operation representing the added instance.
  • the pop-up box can include connection information (such as TCP connection, WS connection, username, password, namespace), basic information (such as alias, area, maximum number of topics, description content), etc.
  • the pop-up box can be adjusted according to specific scenarios. content in .
  • the electronic device can fill in the content of each instance according to the trigger operation of the user, and the electronic device can obtain the input data.
  • the electronic device can call the API interface to generate a new queue instance, and display the new queue information in the list. This list is the data source information in the MQTT message queue plugin configuration information.
  • the topic selection information after selecting the data source in the configuration information of the MQTT message queue plugin.
  • the filter script plug-in set may include a JS script plug-in, a jar package plug-in, a python script plug-in, or a PHP script plug-in, etc., for filtering data to filter out data items required by the user.
  • user A wants to obtain 3 items of data in the data
  • user B wants to perform calculations based on 5 items of data in the data, and can filter out the corresponding 3 or 5 data in advance through the filtering script, so as to better adapt to A Personalized subscription needs of users or B users.
  • technicians can also edit script plug-ins in other programming languages, and corresponding solutions fall within the protection scope of the present disclosure.
  • the set of algorithm plug-ins may include offline algorithm plug-ins and real-time algorithm plug-ins, which are used for computing data.
  • the offline algorithm plug-ins can include but are not limited to SparkSQL plug-ins, Hive on Spark plug-ins, Core plug-ins, Streaming plug-ins, MLlib plug-ins, GraphX plug-ins, etc.
  • real-time algorithms can include but are not limited to Flink plug-ins, Storm plug-ins, and Spark Streaming plug-ins.
  • a business process can be created based on the above plug-in.
  • create the workspace area Referring to FIG. 21, in step 211, the electronic device may display a first pop-up box in the display area in response to detecting a trigger operation representing the creation of a workspace; the first pop-up box includes the workspace name, alias, logo picture, space At least one item in the description, the effect is shown in Figure 22.
  • the electronic device may acquire input data for any item of content in response to detecting a triggering operation representing that item of input.
  • the electronic device may save the input data and close the pop-up box to obtain the workspace area in response to detecting the triggering operation representing saving the input data.
  • the electronic device can display a button for adding a new workspace area on the display interface.
  • a pop-up box in the style of a right drawer can pop up, and the workspace name, alias,
  • the electronic device can call the API interface that saves space information. After the interface is called successfully, the relevant information is saved, the pop-up box is closed, and the newly added workspace is displayed in the workspace area.
  • the content of the workspace area can also be modified.
  • an edit button that needs to modify the content of the workspace can be displayed in the display interface, and a pop-up box in the style of the right drawer will pop up, which contains the relevant content of the workspace, and then fill in the content to be modified, and then click the save button to call the modified space information.
  • API interface modify the relevant information and close the pop-up box after the interface call is successful.
  • a new business process can be created in each workspace area.
  • the electronic device may display an editing area page of the workspace area in the display area in response to detecting a trigger operation representing the editing workspace area; the editing area page includes a new business process button.
  • the electronic device may display a new process pop-up box in response to detecting a trigger operation representing a button for selecting a new business process; the new process pop-up box includes a process name and a process description.
  • the electronic device may acquire the input data of the process name or process description of the data distribution service in response to detecting the triggering operation representing filling in the process name or process description.
  • the electronic device may, in response to detecting a trigger operation representing saving of the input data, save the input data and close the pop-up box to obtain the business process of the data distribution service located in the workspace area.
  • a trigger operation representing saving of the input data
  • save the input data and close the pop-up box to obtain the business process of the data distribution service located in the workspace area.
  • the electronic device may display a list of workspace areas within the interface.
  • the user can click a certain workspace to be entered, and the display interface can jump to the page of the editing area of the workbench. Then, the user can click the title of the business process, and a new business process button can pop up below the title. If you click the New Business Process button, a new process pop-up box will pop up.
  • the new process pop-up box can include the process name and process description, etc. The effect is shown in Figure 24.
  • the user can fill in the process name and process description in the pop-up box, and click the OK button below after filling in.
  • the electronic device can call the API interface to save the process information, and after closing the pop-up box, the newly added business process can be displayed under the business process.
  • step 42 in response to detecting a triggering operation representing dragging a node plug-in to the canvas, a plurality of node plug-ins of the business process are obtained.
  • the electronic device can acquire the node plug-in of the business process of the data distribution service.
  • the electronic device may display a workbench of the business process in response to detecting a trigger operation representing opening a business process; the workbench includes an area for displaying several different types of node plug-ins and an area for displaying a canvas .
  • the node plug-ins in the workbench are the node plug-ins preset in step 41, and are all displayed in the workbench at this time, which is convenient for the user to select.
  • the electronic device may move the dragged node plug-in into the canvas in response to detecting a triggering operation representing dragging of any node plug-in.
  • the electronic device may, in response to detecting a triggering operation characterizing saving the node plug-in in the canvas, save the node plug-in located in the canvas and close the workbench to obtain multiple node plug-ins of the business process.
  • the workbench shown in Figure 26 includes a node plugin on the left and a canvas on the right.
  • the node plugins can include routing channel nodes of data integration type, JS script, SQL script and Jar script nodes of filter script type, MQTT message queue, Kafka message queue and AMQP message queue node of message queue type, MySQL data of data table type Table, TIDB data table and HBase data table nodes, offline computing and real-time computing nodes of algorithm function types, etc. Users can drag the node plug-ins required by the business process into the canvas to generate a basic plug-in.
  • the user can arbitrarily process the plug-ins in the plug-in set in series according to the requirements of the data distribution business, so as to achieve the purpose of data acquisition, conversion, filtering, calculation and storage. For example, first select a start node, then add the plug-ins in the channel plug-in set after the start node, and then add the plug-ins in the processing plug-in set, so as to realize the data transmission, processing and distribution of the corresponding message queue. Among them, if no message queue is added, the system will use the pre-set or default message queue for data transmission.
  • the plug-in in the processing plug-in can also include the upper-layer business system, and perform data query or real-time display through the external interface Zopen API.
  • step 271 an unconfigured plug-in is generated within the canvas.
  • the electronic device may open a tab page of the unconfigured plug-in in response to detecting a trigger operation representing editing of an unconfigured plug-in, such as clicking, double-clicking, etc., and the tab page includes information items that need to be configured for the initial node plug-in.
  • a trigger operation representing editing of an unconfigured plug-in, such as clicking, double-clicking, etc.
  • the tab page includes information items that need to be configured for the initial node plug-in.
  • the electronic device may store the input information of each information item and close the tab page of each information item in response to detecting a trigger operation representing saving the input information of each information item to obtain multiple node plug-ins of the business process.
  • the user can double-click the routing channel node plug-in in the canvas, and a tab page will be generated on the process workbench.
  • This tab page includes the process node name, introduction, data source information, and data filtering.
  • the user can first fill in the node name and introduction in the basic information; then, select the data source information, select the data source information, and then select the associated routing information.
  • select the data filter click the "Add a row" button below, and a pop-up box will pop up with the list of data sources that can be selected, select the required data source information, and click the OK button to generate the filtered data source.
  • click the button to save the plug-in the electronic device can call the API interface of the save routing channel node plug-in to save the routing channel node configuration information, close the tab page after saving successfully, and turn into a complete business process node on the canvas .
  • the electronic device can display the tab page of the MYSQL data table according to the user's trigger operation, and the effect is shown in Figure 28.
  • the tab page includes: process node type, process node name, introduction, data source, selection data table, data table structure and so on.
  • the user can first fill in the node name and introduction in the basic information; then, click a file upload button below, select the required jar script file to upload, and the electronic device can return a file download address after calling the API interface to upload the file successfully, and automatically Fill in a plug-in address information input box; finally, the electronic device can detect that after the user clicks the button to save the plug-in, it can call the API interface for saving the plug-in to save the configuration information of the Jar script node, close the tab page after the save is successful, and in The canvas becomes a complete business process node.
  • the electronic device can display the tab page of the MYSQL data table according to the user's trigger operation, and the effect is shown in Figure 16.
  • This tab page includes process node type, process node name, introduction, data source, communication protocol (such as TCP, WebSocket), topic, execution action, whether to retain information, whether to delay publishing, message retransmission (such as message sent at most once, The message is sent at least once, the message is only delivered once) and whether to enable group subscription, etc.
  • step 43 in response to detecting a triggering operation representing a plug-in connecting each node, configuration information of the business process is obtained, where the configuration information is the data distribution process from the data source end to the data receiving end.
  • each node plug-in can be connected to obtain a business process.
  • the electronic device can respond to detecting a trigger operation representing connecting two node plug-ins, connect the two node plug-ins.
  • the electronic device may call the API interface corresponding to each node plug-in to obtain the configuration information of the business process in response to detecting the triggering operation representing the relationship of the submit node plug-in.
  • the business process in the workspace area constitutes a channel for process transmission, calculation, screening and distribution from the data source end to the data receiving end.
  • the business process relationship diagram starts from a process start node, and the process start node must first be connected to at least one node plug-in.
  • a node plugin can be connected to multiple other nodes, and can also be connected to multiple different nodes.
  • this embodiment does not support connection loopback between two nodes. For example, after the A node plug-in is connected to the B node plug-in, the B node plug-in cannot be connected back to the A node plug-in.
  • the connection between two node plugins cannot be repeated to create a relationship.
  • the electronic device can call the API interface related to each node plug-in to save the business process relationship information, and successfully build a business process after the interface is called successfully. The effect is shown in Figure 30.
  • the electronic device can also determine whether the two nodes conform to whether the channel node is located between the initial plug-in set and the processing plug-in set, or between two plug-ins in the processing plug-in set, and only when the conditions are met. Allow the connection, otherwise the connection cannot be made.
  • a business process of the data distribution service can be created; then, in the workbench for obtaining the business process, select the node plug-ins required by the data distribution service and move them into the canvas to obtain multiple node plug-ins of the business process. ; After that, connect each node plug-in to get the configuration information of the business process.
  • a business process can be established according to the data distribution business, that is, the device data of the data source can be synchronized to various receiving ends through the API interface according to the configuration information of the business process, which can be completed without the user paying attention to the specific implementation logic.
  • the data source end and the data receiving end can be separated from each other, the data receiving thread can be elastically scaled, and multiple business processes can be concurrently transformed, which is conducive to making full use of the server's resources and improving the server's data distribution. performance.
  • FIG. 31 is a flowchart of a data distribution method according to an exemplary embodiment.
  • a data distribution method includes:
  • step 311 obtain the device data reported by the external device
  • step 312 the device data is converted into preset product model data, and stored in a message queue;
  • step 313 a distribution operation is performed on the preset product model data obtained from the message queue.
  • the preset product model data includes three types of device data: state parameters, function parameters and trigger parameters.
  • the distribution operation of the preset product model data obtained from the second message queue includes:
  • the initial configuration data includes configuration data representing whether a preset algorithm is used to process the preset product model data;
  • the initial configuration data includes configuration data representing that a preset algorithm is used to process the preset product model data
  • a data processing algorithm for the preset product model data is acquired;
  • the data processing algorithm includes an offline algorithm or a real-time algorithm;
  • a distribution operation is performed on the preset product model data obtained from the message queue, including:
  • trigger information of a preset type is sent to the node; when triggering is not required, the preset product model data is sent to an external device.
  • a distribution operation is performed on the preset product model data obtained from the message queue, including:
  • the preset product model data is stored in a preset database based on the preset strategy, so that an external business system can acquire the preset product model data through the preset database.
  • acquiring device data reported by an external device includes:
  • the device data When the device data satisfies the preset data protocol, the device data is stored in the first message queue; if the device data does not meet the data protocol, protocol conversion is performed through the SDK to meet the preset data protocol. The device data is stored in the first message queue.
  • FIG. 32 shows a device for configuring a data distribution process according to an exemplary embodiment. block diagram.
  • a data distribution process configuration device including:
  • the workbench display module 321 is used to display the workbench of the business process in response to detecting the trigger operation representing the business process of creating the data distribution service; the workbench includes an area for displaying node plug-ins and an area for displaying canvas;
  • the node plug-in obtaining module 322 is configured to obtain a plurality of node plug-ins of the business process in response to detecting the triggering operation representing the dragging of the node plug-in to the canvas;
  • the configuration information obtaining module 323 is configured to obtain the configuration information of the business process in response to detecting the trigger operation representing the connection of each node plug-in, where the configuration information is the data distribution process from the data source end to the data receiving end.
  • a business process creation module is used to create a business process of a data distribution service
  • a node plug-in acquiring module used for selecting the node plug-ins required by the data distribution service in the workbench of the business process and moving them into the canvas to obtain multiple node plug-ins of the business process;
  • the workbench includes an area for displaying node plug-ins and The area where the canvas is displayed;
  • the configuration information obtaining module is used for connecting each node plug-in to obtain the configuration information of the business process, where the configuration information is the data distribution process from the data source end to the data receiving end.
  • the node plug-in of the business process belongs to one of the following: an initial plug-in set, a channel plug-in set, and a processing plug-in set; wherein,
  • Each plug-in in the channel plug-in set is located between each plug-in in the initial plug-in set and each plug-in in the processing plug-in set, or between two plug-ins in the processing plug-in set;
  • the processing plug-in set includes at least one of the following: a database plug-in set, a filter script plug-in set, and an algorithm plug-in set.
  • the initial set of plug-ins includes a data integration plug-in, and the data integration plug-in is a product plug-in mapped with each external device, and is used to select a product data source;
  • the channel plug-in set includes a message queue plug-in set, and the message queue plug-in set is used to select a message queue instance of a data source, including at least one of the following: an MQTT message queue plug-in, a Kafka message queue plug-in, and an AMQP message queue plug-in;
  • the processing plug-in set includes at least one of the following: a database plug-in set, a filter script plug-in set, and an algorithm plug-in set;
  • Each plug-in in the described database plug-in set is used to select the instance of the data source storage node, and the information of the storage node instance, including at least one of the following: MYSQL data table plug-in, TIDB data table plug-in and HBase data table plug-in;
  • Each plug-in in the filter script plug-in set is used to select data items required in the data, including at least one of the following: a JS script plug-in, a jar package plug-in, a python script plug-in or a PHP script plug-in;
  • Each plug-in in the algorithm plug-in set is used to calculate data, including at least one of the following: offline algorithm plug-in and real-time algorithm plug-in.
  • the node plug-in acquiring module includes:
  • the node plug-in moving unit is used to move the dragged node plug-in into the canvas in response to detecting a triggering operation representing dragging any node plug-in; the dragged node plug-in is the data distribution service. required plugins;
  • a node plug-in saving unit configured to save the node plug-in located in the canvas and close the workbench to obtain the node plug-in of the business process in response to detecting a trigger operation representing saving the node plug-in in the canvas.
  • the node plug-in moving unit includes:
  • An unconfigured plug-in generating subunit is used to generate an unconfigured plug-in corresponding to the dragged node plug-in within the canvas;
  • an input information obtaining subunit configured to obtain input information corresponding to each information item in the tab page through the tab page of the unconfigured plug-in in response to detecting a trigger operation representing editing of the unconfigured plug-in;
  • the input information saving subunit is used to save the input information of each information item and close the tab page of each information item in response to detecting a trigger operation representing saving the input information of each information item, and obtain the node plug-in of the business process.
  • the configuration information acquisition module includes:
  • a node plug-in connection unit configured to connect two node plug-ins that have a logical relationship in response to detecting a triggering operation representing connecting two node plug-ins
  • the business process acquisition unit is configured to call the API interface corresponding to each node plug-in to obtain the configuration information of the business process in response to detecting the triggering operation representing the relationship of the submitted node plug-in.
  • the apparatus further includes a spatial matching creation module, and the spatial matching creating module includes:
  • the first pop-up frame display unit is used to display the first pop-up frame in the display area in response to detecting the trigger operation representing the creation of the workspace;
  • the first pop-up frame includes the workspace name, alias, logo picture, and space description at least one of the contents;
  • an input data acquisition unit configured to acquire input data for the content in response to detecting a trigger operation representing any content of the input
  • the spatial area acquisition unit is used to save the input data and close the pop-up box to acquire the workspace area in response to detecting a triggering operation representing saving the input data.
  • the business process creation module includes:
  • an editing page display unit for displaying an editing area page of the workspace area in the display area in response to detecting a trigger operation representing the editing workspace area;
  • the editing area page includes a new business process button;
  • a process pop-up display unit configured to display a newly-created process pop-up box in response to detecting a trigger operation representing a button for selecting a new business process;
  • the newly-created process pop-up box includes a process name and a process description;
  • an input data acquisition unit configured to acquire the input data of the process name or process description of the data distribution service in response to detecting a trigger operation representing filling in the process name or process description;
  • the input data saving unit is configured to save the input data and close the pop-up box in response to detecting a trigger operation representing saving of the input data, and obtain the business process of the data distribution service located in the workspace area.
  • the apparatus provided by the embodiment of the present disclosure corresponds to the method shown in FIG. 4 , and the specific content may refer to the content of each embodiment of the method, which will not be repeated here.
  • an electronic device comprising:
  • At least one memory for storing a computer program executable by the processor
  • the at least one processor is configured to execute a computer program in the at least one memory to implement the steps of the above method.
  • a computer-readable storage medium including an executable computer program, such as a memory including instructions, and the executable computer program described above can be executed by a processor to implement the steps of the method described in FIG. 1 .
  • the readable storage medium may be ROM, random access memory (RAM), CD-ROM, magnetic tape, floppy disk, optical data storage device, and the like.
  • a machine-readable storage medium can be any electronic, magnetic, optical, or other physical storage medium
  • a device that may contain or store information, such as executable instructions, data, and the like.
  • the machine-readable storage medium can be: RAM (Radom Access Memory, random access memory), volatile memory, non-volatile memory, flash memory, storage drive (such as hard disk drive), solid state drive, any type of storage disk (such as compact disc, dvd, etc.), or similar storage media, or a combination thereof.
  • a typical implementing device is a computer, which may be in the form of a personal computer, laptop computer, cellular phone, camera phone, smart phone, personal digital assistant, media player, navigation device, email sending and receiving device, game control desktop, tablet, wearable device, or a combination of any of these devices.
  • the embodiments of the present application may be provided as a method, or as a computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment combining software and hardware aspects. Furthermore, embodiments of the present application may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) having computer-usable program code embodied therein.
  • computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
  • the present application refers to the flow of methods, apparatus (systems), and computer program products according to embodiments of the present application
  • these computer program instructions may also be stored in a computer readable memory capable of directing a computer or other programmable data processing apparatus to operate in a particular manner, such that the instructions stored in the computer readable memory result in an article of manufacture comprising the instruction means,
  • the instruction means implements the functions specified in a flow or flows of the flowcharts and/or a block or blocks of the block diagrams.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本公开是关于一种数据分发系统及数据分发方法。该平台包括通道配置模块和数据引擎模块;其中,所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到第二消息队列;数据引擎模块与所述通道配置模块连接,用于将从所述第二消息队列获取的预设产品模型数据进行分发操作。本实施例中可以对设备数据进行统一解析来实现数据分发,使数据分发系统中的用户可以直接使用上述设备数据,有利于提升系统的稳定性、兼容性和可移植性。

Description

数据分发系统及数据分发方法 技术领域
本公开涉及数据处理网技术领域,尤其涉及一种数据分发系统及数据分发方法。
背景技术
在物联网(Internet of Things,IoT)中,若干个IoT设备会向IoT平台上报数据,以供IoT平台使用。实际应用中,IoT平台通常将数据实时传输给不同用户使用,但存在部分用户无法直接使用上述数据的问题。
发明内容
本公开提供一种数据分发系统及数据分发方法,以解决相关技术的不足。
根据本公开实施例的第一方面,提供一种数据分发系统,包括通道配置模块、数据引擎模块、数据处理模块、规则引擎模块、预设的数据库和外部接口模块;
所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
所述数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据分发给所述预设数据库或者所述数据引擎模块,或者生成控制指令发送给所述数据处理模块、所述规则引擎模块;
所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果;
所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备;
所述外部接口模块用于响应于外部业务系统的调用请求从所述预设数据库内反馈所述预设产品模型数据。
根据本公开实施例的第二方面,提供一种数据分发系统,包括通道配置模块和数据引擎模块;其中,
所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据进行分发操作。
可选地,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
可选地,还包括数据处理模块;所述数据处理模块与所述数据引擎模块连接;
所述数据引擎模块还用于根据初始配置数据生成控制指令并发送给所述数据处理模块;
所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果。
可选地,还包括规则引擎模块;所述规则引擎模块与所述数据引擎模块连接;
所述数据引擎模块还用于在预设产品模型数据需要触发规则引擎时生成控制指令并发送给所述规则引擎模块;
所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
可选地,所述数据引擎模块还用于将所述预设产品模型数据推送给预设的缓存,由所述缓存确定所述预设产品模型数据对应的节点是否需要触发。
可选地,还包括外部接口模块;所述外部接口模块与所述数据引擎模块连接;
所述数据引擎模块还用于将预设产品模型数据存储到预设数据库内;
所述外部接口模块用于响应于外部业务系统的调用请求从所述预设数据库内反馈所述预设产品模型数据。
根据本公开实施例的第三方面,提供一种数据分发方法,应用于第一方面所述的数据分发系统,所述方法包括:
获取外部设备上报的设备数据;
将所述设备数据转换为预设产品模型数据,并存储到消息队列;
将从所述消息队列获取的预设产品模型数据进行分发操作。
可选地,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
可选地,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
获取初始配置数据;所述初始配置数据包括表征是否采用预设算法处理所述预设产品模型数据的配置数据;
当所述初始配置数据包括表征采用预设算法处理所述预设产品模型数据的配置数据时,获取用于所述预设产品模型数据的数据处理算法;所述数据处理算法包括离线算法或者实时算法;
基于所述离线算法或者所述实时算法处理所述预设产品模型数据,获得处理结果;
存储或者推送所述处理结果。
可选地,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
将所述预设产品模型数据推送给缓存,以使所述缓存确定所述预设产品模型数据是否需要触发规则引擎;
响应于需要触发规则引擎时,判断所述预设产品模型数据对应的节点是否需要触发;
当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
可选地,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
基于所述预设策略将所述预设产品模型数据存储到预设数据库内,以使外部业务系统通过所述预设数据库来获取所述预设产品模型数据。
可选地,获取外部设备上报的设备数据,包括:
获取预设数据协议;
当若所述设备数据满足所述预设数据协议,将所述设备数据存储到第一消息队列;若所述设备数据不满足所述数据协议,则通过SDK进行协议转换得到满足预设数据协议的设备数据并存储到所述第一消息队列。
根据本公开实施例的第四方面,提供一种电子设备,包括:
至少一个处理器;
用于存储所述处理器可执行的计算机程序的至少一个存储器;
其中,所述至少一个处理器被配置为执行所述至少一个存储器中的计算机程序,以实现如上述的方法。
根据本公开实施例的第五方面,提供一种计算机可读存储介质,当所述存储介质中的可执行的计算机程序由处理器执行时,能够上述的方法。
本公开的实施例提供的技术方案可以包括以下有益效果:
由上述实施例可知,本公开实施例中数据分发系统包括通道配置模块和数据引擎模块;其中,所述通道配置模块所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据进行分发操作。这样,本实施例中可以对设备数据进行统一解析来实现数据分发,使数据分发系统中的用户可以直接使用上述设备数据,有利于提升系统的稳定性、兼容性和可移植性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据一示例性实施例示出的一种数据分发系统的框图。
图2是根据一示例性实施例示出的数据分发的时序图。
图3是根据一示例性实施例示出的数据分发的流程图。
图4是根据一示例性实施例示出的一种数据分发流程配置方法的流程图。
图5是根据一示例性实施例示出的配置产品的路由信息的效果示意图。
图6是根据一示例性实施例示出的创建产品的标签页示意图。
图7是根据一示例性实施例示出的产品队列的效果示意图。
图8是根据一示例性实施例示出的门禁产品场景示意。
图9是根据一示例性实施例示出的配置门禁产品路由通道的效果示意图。
图10是根据一示例性实施例示出的门禁产品物定义的效果示意图。
图11是根据一示例性实施例示出的门禁产品路由通道的标签页示意图。
图12是根据一示例性实施例示出的新增数据源的标签页示意图。
图13~图15是根据一示例性实施例示出的配置MYSQL数据表的标签页示意图。
图16~图20是根据一示例性实施例示出的配置MQTT的标签页示意图。
图21是根据一示例性实施例示出的创建工作空间区域的流程图。
图22是根据一示例性实施例示出的弹框的效果示意图。
图23是根据一示例性实施例示出的创建业务流程的流程图。
图24是根据一示例性实施例示出的新建流程的效果示意图。
图25是根据一示例性实施例示出的获取节点插件的流程图。
图26是根据一示例性实施例示出的工作台以及获取节点插件的效果示意图。
图27是根据一示例性实施例示出的配置节点插件信息的流程图。
图28是根据一示例性实施例示出的配置MYSQL数据表的标签页的效果示意图。
图29是根据一示例性实施例示出的连接节点插件的流程图。
图30是根据一示例性实施例示出的业务流程的效果示意图。
图31是根据一示例性实施例示出的一种数据分发方法的流程图。
图32是根据一示例性实施例示出的一种数据分发流程配置装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性所描述的实施例并不代表与本公开相一致的所有实施例。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置例子。
为解决上述技术问题,本实施例提供了一种数据分发系统,图1是根据一示例性实施例示出的一种数据分发系统的框图。数据分发系统可以是分布式系统部署在云端。分布式的数据分发系统可以是一组计算机,通过网络相互连接来传递消息与通信后并协调它们的行为而形成的系统。不同计算机之间彼此进行交互以实现一个共同的目标。网络 可以是基于互联网和/或电信网的物联网(Internet of Things),其可以是有线网也可以是无线网,例如,其可以是局域网(LAN)、城域网(MAN)、广域网(WAN)、蜂窝数据通信网络等能实现信息交换功能的电子网络。
分布式计算系统可以具有软件插件,诸如软件对象或其他类型的个体可寻址的孤立实体,诸如分布式对象、代理、动作方(actor)、虚拟插件等。通常,每个这样的插件个体可寻址,并且在分布式系统中具有唯一的身份(诸如整数、GUID、字符串或不透明数据结构等)。在允许地理分布的分布式系统中,应用可以通过部署而被驻留在一个集群中。存在支持分布式计算环境的各种系统、插件和网络配置。例如,计算系统可以通过有线或无线系统,通过本地网络或广泛分布式网络连接在一起。当前,很多网络耦合到因特网,其为广泛分布式计算提供基础设施,并且包括很多不同的网络,尽管任何网络基础设施可以用于例如在各种示例中描述的易发生于系统的通信。
数据分发系统通过计算设备和系统之间的通信交换提供计算机资源和服务的共享。这些资源和服务包括针对对象(例如文件)的信息交换、高速缓存存储装置和磁盘存储装置。这些资源和服务还包括跨多个处理单元的处理能力的共享,用于负载平衡、资源扩展、处理的专业化等。例如,分布式数据分发系统可以包括具有诸如客户端设备/服务器、对等或混合架构的网络拓扑和网络基础设施的主机。
本公开中所描述的各种技术可以结合硬件或软件或在适当时通过两者的组合来实现。如本公开中所使用的术语“插件”、“模块”、“系统”、“平台”等同样旨在指代计算机相关实体,其是硬件、硬件和软件的组合、软件或执行中的软件。
参见图1,一种数据分发系统包括通道配置模块Zbridge和数据引擎模块Zdata。其中,
通道配置模块Zbridge与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
数据引擎模块Zdata与通道配置模块Zbridge连接,用于将从消息队列获取的预设产品模型数据进行分发操作。
本实施例中,通道配置模块Zbridge与外部设备连接,可以获取到外部设备上报的设备数据。数据分发系统或者通道配置模块内可以存储预设数据协议,如消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)、http协议、XMPP协议、CoAP协议。以MQTT协议为例,通道配置模块Zbridge可以获取MQTT协议,并判断设备数据是否满足MQTT协议。当设备满足MQTT协议时,通道配置模块Zbridge可以将设备数据存储到MQTT Broker(即第一消息队列)。当设备数据不满足数据协议,通过 SDK进行协议转换,并存储到第一消息队列。
需要说明的是,本实施例中外部设备可以包括本系统需要外接的设备,如第三方设备、直连设备、边缘网关等;相应地,外部设备所上报的设备数据可以包括摄像头采集的图像信息、温湿度传感器采集的环境数据、生产设备的生产数据等。可理解的是,上述外部设备可以根据具体场景进行设置,设备数据可以根据外部设备随之调整,相应方案落入本公开的保护范围。
本实施例中,通道配置模块Zbridge内已经预先存储路由配置信息,该路由配置信息可以包括指定到第一消息队列读取设备数据的会话(topic)路径,产品模型定义和数据解析。
本实施例中,通道配置模块Zbridge可以监听第一消息队列中的MQTT数据。当第一消息队列中存在MQTT数据时进行读取,将MQTT数据转换成预设产品模型数据,并存在到第二消息队列。其中,第二消息队列可以采用以下一种:Message Queue、RabbitMQ、Redis、ZeroMQ、ActiveMQ、Kafka/Jafka。以下实施例中第二消息队列采用Kafka实现。
本实施例中,路由配置信息可以包括预先设置的预设产品模型,其包括状态参数、功能参数和触发参数三个类型的设备数据,通过设置参数的数据类型和数据长度来形成的表征同一类产品的数据格式
其中,状态参数用于描述设备运行时的状态,如环境监测设备所读取的当前环境温度。该状态参数可以支持GET和SET请求方式,应用系统可对状态参数的读取和设置请求。功能参数是指设备可被外部调用的能力或者方法,可包括输入参数和输出参数。相比于状态参数,功能参数可以通过一条指令实现更复杂的业务逻辑,如执行某项特定的特务。触发参数是指设备运行时的事件,一般包含需要被外部感知和处理的通知信息,可以包含多个输出参数。如某项任务完成的信息,或者设备发生故障或者告警时的温度等,可以被订阅和推送。也就是说,本示例中,从状态参数、功能参数和触发参数三个功能维度,分别描述了该设备是什么、能做什么、可以对外提供哪些信息,即完成了设备数据的定义。
本示例中,通道配置模块Zbridge提供了多源异构设备进行产品模型转换的平台,将设备数据划分为状态参数、功能参数和触发参数,这样将各外部设备的设备数据转换成预设产品模型,可以具有以下优点:
第一,可以将不同厂家提供的同类或者不同类产品统一为同一类产品,达到产品统一的效果。或者说,无论哪个厂家提供的产品均可以加入本系统,均可以对应到相应的 分类,从而提升本系统的适用范围。例如门禁设备,定义了产品模型的状态参数如门禁ID(guardID)、人员工号(cardID)、进出方向(direction)等,而对应设备数据中相关状态参数分别表示为data.door、data.person、data.direction,通过配置信息(JS、jar),实现对应状态参数的映射,从而实现产品模型的解析。
第二,本系统中将所有设备数据转换成预设产品模型数据,可以方便系统对预设产品模型数据进行处理,例如利用大数据算法来上述数据进行处理,挖掘出数据价值或者为用户提供更有价值的服务,具体可以参见后续实施例。
第三,对于系统中的各部分可以直接使用预设产品模型数据,无需重新转换,提升数据利用效率。另外,用户可根据简单的配置信息,实现产品模型的数据解析,避免了多种设备分别进行数据解析代码的编写,提高了数据解析效率。
本实施例中,数据引擎模块Zdata与通道配置模块Zbridge连接,可以监听第二消息队列中的预设产品模型数据。数据引擎模块Zdata作为数据分发系统的核心,还可以连接数据处理模块Zalgorithm、规则引擎模块ZMessage、外部接口模块ZOpen和数据库,可以任意控制数据的处理方式(实时算法处理、离线算法处理、过滤处理)、数据通道的选择以及数据的结果处理(存储于数据库、规则引擎判断、推送给外接业务系统、直接输出给用户等),达到解析、分发和存储预设产品模型数据的目的。
在一示例中,数据引擎模块Zdata内还设置有过滤脚本,如JS脚本或者JAR包,该过滤脚本由用户通过系统配置页面进行上传或者编写。在数据引擎模块Zdata对预设产品模型进行解析后且分发之前,可以根据用户的订阅需求对解析出的数据进行过滤,从而更好的适用用户的需求。例如,A用户希望获得预设产品模型中的3类数据,而B用户希望根据预设产品模型中的5个数据进行计算,可通过过滤脚本进行提前筛选出预设产品模型对应的3类或者5类数据,从而更好地适应A用户或B用户的个性化订阅需求。
在一示例例中,数据分发系统还包括预设数据库和外部接口模块ZOpen。其中,预设数据库可以包括但不限于Mysql数据库、TiDB数据库、FoundationDB数据库等。本示例中,预设数据库采用TiDB数据库实现。该TiDB数据库可以随着系统中数据增长而无缝地水平扩展,只需要通过增加更多的机器来满足业务增长需要,并且应用层可以不用关心存储的容量和吞吐量。同时,TiDB数据库还可以根据存储、网络、距离等因素,动态进行负载均衡调整,以保证更优的读写性能,从而满足数据分发系统的需求,提升系统的扩展性、可靠性和稳定性。
本实施例中,数据引擎模块Zdata在kafka队列中监听到预设产品模型数据时存储到 该TiDB数据库中。该TiDB数据库所存储的数据还可以包括数据处理模块Zalgorithm推送的结果数据,还包括第一消息队列或者第二消息队列中的过程数据,可以方便外部系统进行数据查询。这样,业务系统通过数据分发系统的外部接口模块ZOpen来读取预设产品模型数据,实现数据标准查询。
在一示例中,数据分发系统还包括与数据引擎模块Zdata连接的数据处理模块Zalgorithm。该数据处理模块Zalgorithm可以为大数据平台Hadoop,用户只需编写相应的算法并上传至数据处理模块Zalgorithm中,即可支撑离线或实时地数据处理和计算。数据引擎模块Zdata可以预先存储初始配置数据,该初始配置数据由用户预先配置,可以包括是否需要采用数据处理算法,在采用数据处理算法时采用何种算法等配置信息。其中数据处理算法包括离线算法或者实时算法。在从kafka队列获取到预设产品模型数据后,可以读取初始配置数据,从而确定是否触发数据处理模块Zalgorithm。在确定触发数据处理模块Zalgorithm后,数据处理模块Zalgorithm可以采用离线算法或者实时算法来处理预设产品模型数据,并将处理结果反馈给用户和存储在本地。也就是说,数据处理模块Zalgorithm还可以作为数据库存储预设产品模型数据、过程数据和结果数据。在一示例中,离线算法采用SparkSQL实现,处理结果存于Hive中;实时算法采用SaprkStreaming实现,并通过消息队列实时推送。
其中,离线算法可以包括但不限于SparkSQL、Hive on Spark、Core、Streaming、MLlib、GraphX等,实时算法可以包括但不限于Flink,Storm,Spark Streaming等。可理解的是,离线算法和实时算法仅仅是用于区别算法的使用场景,例如,在实时性要求不高的情况下,实时算法也可以采用上述离线算法中的一项来实现;又如,离线算法还可以采用实时算法来实现,技术人员可以根据具体场景来选择合适的离线算法和实时算法。当然,在一些场景中,上述离线算法或实时算法还选用大数据算法,如在设备数据为图像时,大数据算法可以采用神经网络算法等算法实现,由神经网络算法对图像进行处理并获取图像语义。
在一实施例中,数据分发系统还包括规则引擎模块ZMessage,该规则引擎模块ZMessage可以存储预先设置的规则,如环境温度不超过50摄氏度、环境湿度不超过70%等,可以根据具体场景选择配置相应的规则,相应方案落入本公开的保护范围。
本示例中,规则引擎模块ZMessage与数据引擎模块Zdata连接。数据引擎模块Zdata在预设产品模型数据需要触发规则引擎时生成控制指令并发送给规则引擎模块ZMessage,或者数据引擎模块Zdata将预设产品模型数据发送给key-value存储系统Redis,由Redis判断预设产品模型数据是否需要触发规则引擎。规则引擎模块ZMessage 用于响应于控制指令判断预设产品模型数据对应的节点是否需要触发;当需要触发时向节点发送预设类型的触发信息,如控制指令、告警信息等;当不需要触发时将预设产品模型数据发送到外部设备。其中,在向需要触发的节点发送触发信息或者预设产品模型数据时可以先获取节点类型,如邮件、调用远程接口、短信息等,再根据类型调整信息或数据的发送方式或者格式。实际应用中,被触发的节点有可能不支持满足MQTT协议,此时信息或者数据可以通过ZEdgeSDK进行解析后再发送给被触发的节点。
至此,本公开实施例中数据分发系统包括通道配置模块Zbridge和数据引擎模块Zdata;其中,所述通道配置模块Zbridge与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;数据引擎模块Zdata与所述通道配置模块Zbridge连接,用于将从消息队列获取的预设产品模型数据进行分发操作。这样,本实施例中可以对设备数据进行统一解析来实现数据分发,使数据分发系统中的用户可以直接使用上述设备数据,有利于提升系统的稳定性、兼容性和可移植性。
下面结合图2和图3所示场景来描述上述数据分发系统,包括:
1)获取资产产生的数据,其中资产是指需要外接的外部设备,这些外部设备可以采用外部数据并进行上报。
2)基于MQTT协议传输设备数据:判断设备数据是否支持MQTT协议,如果不支持,则通过SDK进行协议转换,若支持,基于MQTT协议传输到MQTT-BROKER。其中,MQTT-BROKER是消息队列,用于设备数据的中转和传输。
3)ZBridge将设备数据解析成预设产品模型数据。ZBridge监听MQTT-BROKER的数据,当MQTT-BROKER有数据时就抓取过来,并转换为预设产品模型数据,再进行消息分发到kafka队列。ZBridge与后文路由配置的关系:ZBridge通过读取路由配置的配置信息,进而到MQTT-BROKER抓取对应的设备数据并转换为产品模型数据。
需要说明的是,2)中的基于MQTT协议传输设备数据也可以由ZBridge实现。
实际应用中,ZBridg中的初始配置信息中可以包括JS脚本、jar包,还可以包括python脚本或PHP脚本等。例如,ZBridge可基于用户编写的JS脚本或者jar包来实现产品模型转换。在一示例中,ZBridge可基于JS解析引擎来解析JB脚本或者基于pf4j插件对jar包进行解析,进而对数据做产品模型处理。
4)ZData监听kafka中的产品模型数据并在数据引擎中进行判断,进行以下三种操作:
4.1)存储至TiDB数据库中。例如,可以利用过滤脚本对产品模型数据实现过滤和处理,也可以使用大数据/人工智能算法处理数据。经过处理的结果数据和过程数据 可以直接存储至数据库中供日后使用。业务系统可以通过外部接口模块ZOpen从TiDB数据库读取数据,也可以进行标准查询。
当然,外部接口模块ZOpen还可以将从TiDB数据库读取数据作为下行数据发送给ZMessage,由ZMessage直接发送给ZEdge SDK或者直接发送给设备或者判断是否触发动作节点,在需要触发规则节点时,根据动作节点的类型下发邮件、调用远程接口和下发短信等,或者触发资产类型的触发参数(即直接发送给ZEdge SDK或者直接发送给设备)。
4.2)ZData根据初始设置信息判断是否采用预设处理算法预设产品模型数据。如果采用,则需要进一步判断选用的算法类别。例如类别为实时算法,利用SaprkStreaming进行计算;又如类别为离线算法,采用SparkSQL进行计算,处理结果存储到Hive。处理结束后,判断初始设置信息中的服务订阅方式,可通过Kafka实时推送或者将数据存储于存储节点。
4.3)ZData将预设产品模型数据映射到Redis,该Redis是一个键值key-value存储系统。Redis可以判断是否需要通知触发规则引擎,若是,可以将控制指令发送给Zmessage。Zmessage可以对预设产品模型数据进行预处理,并与预先设置好的触发规则做匹配,构成一个事件。当该事件满足触发规则时执行触发操作。
ZMessage判断规则节点是否需要触发,在不需要触发时将预设产品模型数据或者解析预设产品模型数据后发送给ZEdge SDK或者直接发送给设备,在需要触发时则继续判断是否触发动作节点,在需要触发规则节点时,根据动作节点的类型下发邮件、调用远程接口和下发短信等,或者触发资产类型的触发参数(即直接发送给ZEdge SDK或者直接发送给设备)。
本公开实施例还提供了一种数据分发流程配置方法,图4是根据一示例性实施例示出的一种数据分发流程配置方法的流程图,可以用于图1所示的数据分发系统。实际应用中,用户可以在数据分发系统中的任一个电子设备来配置数据分发流程,或者通过其他电子设备来接入到数据分发系统中来配置数据分发流程。为方便描述,后续实施例中以具有可触发操作的显示屏的电子设备为执行主体来描述各方案。
为方便理解后续方案,将图1出现的通道配置模块Zbridge和数据引擎模块Zdata、数据处理模块Zalgorithm、规则引擎模块ZMessage、外部接口模块ZOpen和数据库等分别与后续实施例出现的插件相映射,包括:
通道配置模块Zbridge对应于消息队列插件集合、数据库插件集合或者过滤脚本插件集合。
数据引擎模块Zdata对应于业务流程的配置信息,即通过配置信息来实现各个模块或者插件之间的数据传输、计算和分发。
数据处理模块Zalgorithm对应于算法插件集合,以及数据库插件集合。
规则引擎模块ZMessage对应于过滤脚本插件集合、数据库插件集合。
外部接口模块ZOpen对应于数据库插件集合、外部接口。
数据库对应于数据库插件集合。
可理解的是,上述各模块可以至少一种功能的集合体,而插件更倾向于一种功能,因此上述各模块可以对应至少一种插件。在后续实施例中可以根据插件与模块的对应关系来确定是插件属于哪个模块。在不影响图1所示数据分发系统工作的情况下,各插件的划分到各模块的变形方案均落入本公开的保护范围。
参见图4,一种数据分发流程配置方法,包括步骤41~步骤43:
在步骤41中,响应于检测到表征创建数据分发业务的业务流程的触发操作,显示所述业务流程的工作台。
本实施例中,电子设备内可以预先存储各种插件集合,包括初始插件集合、通道插件集合和处理插件集合。通道插件集合中各插件位于初始插件集合中各插件和处理插件集合中各插件之间,或者位于处理插件集合中的两个插件之间。其中,初始插件集合包括数据集成插件集合,通道插件集合包括消息队列插件集合,处理插件集合包括数据库插件集合、过滤脚本插件集合、算法插件集合、规则引擎插件集合。当然,还可以包括外部接口插件集合用于建立外部设备与数据库插件或者消息队列插件或者过滤脚本插件之间的连接。技术人员可以根据场景选择合适的插件集合。。其中:
本实施例中,数据集成插件集合主要通过路由通道类型的节点插件来统一的数据逻辑视图下隐藏底层的数据细节,方便不同数据源之间可以映射到这个节点插件。参见图5,该节点插件的底层数据逻辑配置(即所配置的信息项)具体是选择产品数据源(如图3所示的资产),产品数据源信息包括路由配置信息、产品模型定义信息和数据解析信息,再选择该产品数据源需要订阅的路由以及通过数据筛选来选中产品模型信息中的状态参数。
以创建产品(即数据源)为例,包括:
本示例中,在系统的显示界面上显示创建产品按钮。电子设备可以响应于检测到表征创建产品的触发操作,在显示界面内弹出弹框,效果如图3所示。参见图6,弹框中包括产品相关信息,如产品名称、产品品类(如自定义品类、通用品类)、节点数据(如直连设备、边缘网关、网关子设备、第三方设备等)、认证方式、接入协议和产 品描述等,可以根据具体场景进行调整弹框中的内容。电子设备还可以根据用户的触发操作,分别填写各项产品信息,获取输入数据。当检测到用户存储上述输入数据时,电子设备可以调用API接口生成新的产品信息,并在列表中展示新生成的相关产品,效果如图7所示。
以配置门禁产品为例,电子设备可以响应检测到表征配置路由信息的触发操作,显示门禁产品的配置页面,效果如图8和图9所示。参见图9,电子设备可以获取用户输入的路由信息,如基础路由、通信路由、自定义路由的信息配置。其中,自定义路由信息的配置是后面路由通道插件数据源选择产品信息后的路由选择。
参见图10和图11,电子设备可以响应检测到表征配置产品产品模型信息的触发操作,获取用户输入的产品产品模型信息,如状态参数、功能参数、触发参数、产品模型DSL的信息配置。即电子设备可以检测到用户点击新增自定义按钮弹出弹框,获取根据显示界面的提示所输入的相关信息,来配置状态参数、功能参数、触发参数等产品模型定义的信息,并且产品上线后不能自定义新增信息。其中,产品模型定义的状态参数信息配置是后续路由通道插件需要数据筛选的产品状态参数信息。
本实施例中,数据库插件集合主要由MYSQL数据表插件、TIDB数据表插件和HBase数据表插件中的一种来对数据的建立、存储、更新、查询和删除等操作,对应图3中的数据存储节点或TiDB数据库。这些节点插件的底层数据逻辑配置具体是选择数据源存储节点的实例,存储节点实例的信息包括数据库的版本、IPV4地址信息、端口号、实例名称、数据库名称、用户名、密码和存储节点所在区域,通过选择存储节点的实例来选择数据表以及数据表的表结构信息,也可以通过填写DDL脚本数据来为实例创建数据表以及数据表的表结构。
以创建MySQL存储实例为例,参见图12、图13、图14和图15,在系统的显示界面上可以显示添加节点按钮。电子设备可以检测用户是否点击上述添加节点按钮,并且电子设备可以响应于检测到用户点击上述添加节点按钮,在显示界面内弹出弹框。该弹框内包括选择版本、连接信息、实例名称、库名称、用户名、密码、别名和区域等内容。电子设备还可以根据用户的触发操作,分别填写各项产品信息,获取输入数据。当检测到用户存储上述输入数据时,电子设备可以调用API接口生成新的存储实例,并在列表中展示新的存储实例。该列表是MySQL数据表插件配置信息中的数据源信息。这样,本示例中可以通过填写的存储实例信息,调用API接口获取到该存储实例的数据表信息,又通过数据表信息获取数据表的各种属性信息。获取到的信息就是MySQL数据表插件配置的信息中的选择数据表和数据表结构信息。
本实施例中,消息队列插件集合主要由MQTT消息队列插件(对应图3中的MQTT BROKER)、Kafka消息队列插件(对应图3中的apaache kafka)和AMQP消息队列插件来用于异步处理、应用解耦和流量削锋。这些节点插件的底层数据逻辑具体是选择数据源的消息队列实例,消息队列实例的信息包括TCP连接、WS连接、用户名、密码、命名空间、区域和topics主题,通过选择消息队列的实例来选择通信协议TCP连接或WS连接,topic主题,以及它的详细配置,如执行动作的选择、是否保留消息、是否延迟发布、消息重传、是否分组订阅等配置信息。
以创建MQTT消息队列为例,参见图16、图17、图18、图19和图20,在系统的显示界面上可以显示添加实例按钮。电子设备可以响应于检测到表征添加实例的触发操作,在显示界面内弹出弹框。该弹框内可以包括连接信息(如TCP连接、WS连接、用户名、密码、命名空间)、基础信息(如别名、区域、最大topic数、描述内容)等,可以根据具体场景进行调整弹框中的内容。电子设备可以根据用户的触发操作,分别填写各项实例内容,电子设备可以获取输入数据。当检测到用户存储上述输入数据时,电子设备可以调用API接口生成新的队列实例,并在列表中展示新的队列信息。该列表是MQTT消息队列插件配置信息中的数据源信息。
继续以配置MQTT消息队列的topic信息为例,MQTT消息队列插件配置信息中选择数据源后的主题选择信息。
本实施例中,过滤脚本插件集合可以包括JS脚本插件、jar包插件、python脚本插件或PHP脚本插件等,用于对数据进行过滤,以筛选出用户所需要的数据项。例如,A用户希望获得数据中的3项数据,而B用户希望根据数据中的5项数据进行计算,可通过过滤脚本进行提前筛选出对应的3个或者5个数据,从而更好地适应A用户或B用户的个性化订阅需求。当然,技术人员还可以通过其他编程语言编辑的脚本插件,相应方案落入本公开的保护范围。
本实施例中,算法插件集合可以包括离线算法插件和实时算法插件,用于对数据进行计算。其中离线算法插件可以包括但不限于SparkSQL插件、Hive on Spark插件、Core插件、Streaming插件、MLlib插件、GraphX插件等,实时算法可以包括但不限于Flink插件,Storm插件,Spark Streaming插件。
本实施例中,在配置完各插件后,可以基于上述插件创建业务流程。首先,创建工作空间区域。参见图21,在步骤211中,电子设备可以响应于检测到表征创建工作空间的触发操作,在显示区域内显示第一弹框;第一弹框内包括工作空间名称、别名、logo图片、空间描述中的至少一项内容,效果如图22所示。在步骤212中,电子设备 可以响应于检测到表征输入任一项内容的触发操作,获取针对该项内容的输入数据。在步骤213中,电子设备可以响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得工作空间区域。例如,电子设备可以在显示界面内显示新增工作空间区域按钮,当用户点击新增工作空间区域按钮后,可以弹出一个右抽屉样式的弹框,在弹框内填入工作空间名称、别名、上传一张logo图片、输入对该空间的描述后,用户可以点击下方保存按钮。电子设备可以调用保存空间信息的API接口,接口调用成功后保存相关信息,关闭弹框,并在工作空间区域展示刚刚新增的工作空间。
又如,新增工作空间区域后,还可以对该工作空间区域的内容进行修改。此时显示界面内可以显示某个需要修改工作空间内容的编辑按钮,弹出一个右抽屉样式的弹框,里面有相关的工作空间内容,然后填写需要修改的内容,之后点击保存按钮调用修改空间信息的API接口,接口调用成功后修改相关信息并关闭弹框。
本实施例中,在各工作空间区域内可以新建业务流程。参见图23,在步骤231中,电子设备可以响应于检测到表征编辑工作空间区域的触发操作,在显示区域内显示工作空间区域的编辑区页面;编辑区页面包括新建业务流程按键。在步骤232中,电子设备可以响应于检测到表征选择新建业务流程按键的触发操作,显示新建流程弹框;该新建流程弹框内包括流程名称和流程描述。在步骤233中,电子设备可以响应于检测到表征填写流程名称或者流程描述的触发操作,获取数据分发业务的流程名称或者流程描述的输入数据。在步骤234中,电子设备可以响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得位于工作空间区域内的数据分发业务的业务流程。需要说明的是,此时新增的业务流程仅是一个名称,还未对该业务流程进行配置。
例如,电子设备可以在显示界面内工作空间区域列表。用户可以点击需要进入的某个工作空间,显示界面可以跳转到工作台编辑区页面。然后,用户可以点击业务流程标题,此时标题下方可以弹出新建业务流程按钮。若点击新建业务流程按钮可以再弹出一个新建流程弹框,该新建流程弹框可包括流程名称和流程描述等,效果如图24所示。此时,用户可以在弹框内填入流程名称和流程描述,填完后点击下方的确定按钮。此时电子设备可以调用API接口保存流程信息,关闭弹框后可以在业务流程下面展示出刚刚新增的业务流程。
在步骤42中,响应于检测到表征拖动节点插件到画布的触发操作,获得业务流程的多个节点插件。
本实施例中,电子设备可以获取数据分发业务的业务流程的节点插件。参见图25,在步骤251中,电子设备可以响应于检测到表征打开业务流程的触发操作,显示业 务流程的工作台;该工作台包括显示若干个不同类型的节点插件的区域以及显示画布的区域。工作台中的节点插件即是在步骤41中所预置的节点插件,此时均在工作台中显示,方便用户选择。在步骤252中,电子设备可以响应于检测到表征拖动任一个节点插件的触发操作,将所拖动的节点插件移动到所述画布之内。可理解的是,用户拖动的节点插件即是数据分发业务所需要的插件。在步骤253中,电子设备可以响应于检测到表征保存画布中节点插件的触发操作,保存位于画布中的节点插件并关闭工作台,获得业务流程的多个节点插件。
例如,在新建的业务流程后,用户可以点击刚刚新建的业务流程,此时可以在显示区域中业务流程队列的右侧展开该业务流程的工作台,效果如图26所示。图26所示的工作台包括左边的节点插件和右边的画布。其中节点插件可以包括数据集成类型的路由通道节点,过滤脚本类型的JS脚本、SQL脚本和Jar脚本节点,消息队列类型的MQTT消息队列、Kafka消息队列和AMQP消息队列节点,数据表类型的MySQL数据表、TIDB数据表和HBase数据表节点,算法函数类型的离线计算和实时计算节点等。用户可以将业务流程所需要的节点插件拖动到画布之内,生成一个基础插件。
其中,用户可以根据数据分发业务的需求任意串联处理插件集合中的插件,以达到数据获取、转换、过滤、计算以及存储的目的。例如先选择一个开始节点,然后在开始节点之后添加通道插件集合中的插件,之后再添加处理插件集合中的插件,从而实现相应消息队列的数据传输、处理和分发。其中,若不添加消息队列,系统将使用提前设置好的或者默认的消息队列进行数据传输。具体实现时,处理插件中的插件之后还可以包括上层业务系统,通过外部接口Zopen API进行数据查询或实时显示。
在将其中一个节点插件移入画布内之后,可以配置流程节点插件的信息。参见图27,在步骤271中,在画布之内生成一个未配置插件。在步骤272中,电子设备可以响应于检测到表征编辑未配置插件的触发操作,例如点击、双击等方式打开未配置插件的标签页,标签页内包括初始节点插件所需要配置的信息项。当检测到用户点击各信息项时,用户可以在各信息项的编辑框内输入信息,电子设备可以获取各信息项对应的输入信息。在步骤273中,电子设备可以响应于检测到表征保存各信息项的输入信息的触发操作,保存各信息项的输入信息并关闭各信息项的标签页,获得业务流程的多个节点插件。
以配置路由通道节点插件为例,用户可以双击画布中的路由通道节点插件,此时会在流程工作台上生成一个标签页。该标签页内包括流程节点名称、简介、数据源信息和数据筛选等。用户可以先填写基本信息中的节点名称和简介;然后,再选择数据源 信息,选择数据源信息后再选择相关联的路由信息。之后,进行数据筛选的选择,点击下面的“增加一行”的按钮,弹出一个弹框,里面有可以选择的数据源列表信息,选择需要的数据源信息,点击确定按钮,生成筛选后的数据源的列表信息;最后,点击保存插件的按钮,电子设备可以调用保存路由通道节点插件的API接口保存路由通道节点配置的信息,保存成功后关闭标签页,并在画布变成一个完整的业务流程节点。
以配置Jar脚本节点信息为例,电子设备可以根据用户的触发操作显示MYSQL数据表的标签页,效果如图28所示。参见图28,该标签页包括:流程节点类型、流程节点名称、简介、数据源、选择数据表、数据表结构等内容。用户可以先填写基本信息中的节点名称和简介;然后,点击下方的一个文件上传按钮,选择需要的jar脚本文件上传,电子设备在调用API接口上传文件成功后可以返回一个文件下载地址,并自动填入到一个插件地址信息输入框里面;最后,电子设备可以检测到用户点击保存插件的按钮后,可以调用保存插件的API接口保存Jar脚本节点配置的信息,保存成功后关闭标签页,并在画布变成一个完整的业务流程节点。
以配置MQTT消息队列节点信息为例,电子设备可以根据用户的触发操作显示MYSQL数据表的标签页,效果如图16所示。该标签页内包括流程节点类型、流程节点名称、简介、数据源、通信协议(如TCP、WebSocket)、主题、执行动作、是否保留信息、是否延迟发布、消息重传(如消息最多发送一次、消息至少发送一次、消息只送达一次)和是否启用分组订阅等。可以先填写基本信息中的节点名称和简介;然后,再选择数据源信息,包括选择通信协议类型和选择topic类型;之后,再选择执行动作、是否保留消息、是否延迟发布、延迟发布的话需要延迟多少秒、选择消息重传多少次、是否启用分组订阅;最后,电子设备可以在检测到用户点击保存插件的按钮后,调用保存插件的API接口保存MQTT消息队列节点配置的信息;在保存成功后可以关闭标签页,并在画布变成一个完整的业务流程节点。
在步骤43中,响应于检测到表征连接各节点插件的触发操作,获得到业务流程的配置信息,所述配置信息是数据源端到数据接收端的数据分发流程。
本实施例中,在选择并配置各节点插件后,可以连接各节点插件得到业务流程,参见图29,在步骤291中,电子设备可以响应于检测到表征连接两个节点插件的触发操作,连接存在逻辑关系的两个节点插件。在步骤292中,电子设备可以响应于检测到表征提交节点插件关系的触发操作,调用各节点插件对应的API接口,获得业务流程的配置信息。可理解的是,此时工作空间区域内的业务流程构成一个从数据源端到数据接收端流程传输、计算、筛选和分发的通道。
需要说明的是,本实施例中,业务流程关系图从流程开始节点开始,流程开始节点必须先连至少一个节点插件。并且,一个节点插件可以连接多个其他节点,也可以被其他多个不同节点连接。但是,本实施例中不支持两个节点之间的连线回环,如A节点插件连接B节点插件后,B节点插件不能再连接回A节点插件。同时,两个节点插件之间不能重复连线创建关系。这样,按照以上方式把需要创建的业务流程关系用线连接起来后,最后点击提交按钮。此时电子设备可以调用各节点插件相关的API接口保存业务流程关系信息,并在接口调用成功后成功构建一个业务流程,效果如图30所示。
可理解的是,在连接过程中,电子设备还可以判断两个节点是否符合通道节点位于初始插件集合和处理插件集合之间,或者位于处理插件集合中两个插件之间,在满足条件时才允许连线,否则无法连线。
可理解的是,数据分发业务的业务流程可以图3所示的,数据从资产到TIDB数据库的传输通道,从资产到数据存储节点或apaache kafka的传输通道,从资产到Zmessage、SDK、资产、邮件、短信等传输通道。
至此,本公开实施例中可以创建数据分发业务的业务流程;然后,在获取所述业务流程的工作台中选择所述数据分发业务所需要的节点插件移入画布中,获得业务流程的多个节点插件;之后,连接各节点插件得到业务流程的配置信息。这样,本实施例中可以根据数据分发业务建立业务流程,即根据业务流程的配置信息将数据源端的设备数据通过API接口同步到各种不同的接收端,无需用户关注具体的实现逻辑即可以完成规则的设置;并且,本实施例中可以对数据源端和数据接收端进行业务分离,可以对数据接收线程弹性伸缩,多业务流程并发改造,有利于充分利用服务器的资源,提升服务器进行数据分发的性能。
在图1所示的一种数据分发系统的基础上,本公开实施例还提供了一种数据分发方法,图31是根据一示例性实施例示出的一种数据分发方法的流程图。参见图31,一种数据分发方法,包括:
在步骤311中,获取外部设备上报的设备数据;
在步骤312中,将所述设备数据转换为预设产品模型数据,并存储到消息队列;
在步骤313中,将从所述消息队列获取的预设产品模型数据进行分发操作。
在一实施例中,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
在一实施例中,将从所述第二消息队列获取的预设产品模型数据进行分发操作,包括:
获取初始配置数据;所述初始配置数据包括表征是否采用预设算法处理所述预设产品模型数据的配置数据;
当所述初始配置数据包括表征采用预设算法处理所述预设产品模型数据的配置数据时,获取用于所述预设产品模型数据的数据处理算法;所述数据处理算法包括离线算法或者实时算法;
基于所述离线算法或者所述实时算法处理所述预设产品模型数据,获得处理结果;
存储或者推送所述处理结果。
在一实施例中,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
将所述预设产品模型数据推送给键值存储系统,以使所述键值存储系统确定所述预设产品模型数据是否需要触发规则引擎;
响应于需要触发规则引擎时,判断所述预设产品模型数据对应的节点是否需要触发;
当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
在一实施例中,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
基于所述预设策略将所述预设产品模型数据存储到预设数据库内,以使外部业务系统通过所述预设数据库来获取所述预设产品模型数据。
在一实施例中,获取外部设备上报的设备数据,包括:
获取预设数据协议;
当若所述设备数据满足所述预设数据协议,将所述设备数据存储到第一消息队列;若所述设备数据不满足所述数据协议,则通过SDK进行协议转换得到满足预设数据协议的设备数据并存储到所述第一消息队列。
可理解的是,本公开实施例提供的方法与上述数据分发系统相对应,具体内容可以参考平台各实施例的内容,在此不再赘述。
在图4所示的一种数据分发流程配置方法的基础上,本公开实施例还提供了一种数据分发流程配置装置,图32是根据一示例性实施例示出的一种数据分发流程配置装置的框图。参见图32,一种数据分发流程配置装置,包括:
工作台显示模块321,用于响应于检测到表征创建数据分发业务的业务流程的触 发操作,显示所述业务流程的工作台;所述工作台包括显示节点插件的区域和显示画布的区域;
节点插件获取模块322,用于响应于检测到表征拖动节点插件到画布的触发操作,获得业务流程的多个节点插件;
配置信息获取模块323,用于响应于检测到表征连接各节点插件的触发操作,获得到业务流程的配置信息,所述配置信息是数据源端到数据接收端的数据分发流程。
在一实施例中,业务流程创建模块,用于创建数据分发业务的业务流程;
节点插件获取模块,用于在所述业务流程的工作台中选择所述数据分发业务所需要的节点插件移入画布中,获得业务流程的多个节点插件;所述工作台包括显示节点插件的区域和显示画布的区域;
配置信息获取模块,用于连接各节点插件得到业务流程的配置信息,所述配置信息是数据源端到数据接收端的数据分发流程。
在一实施例中,业务流程的节点插件属于以下一种:初始插件集合,通道插件集合,处理插件集合;其中,
所述通道插件集合中各插件位于所述初始插件集合中各插件和所述处理插件集合中各插件之间,或者位于所述处理插件集合中的两个插件之间;
所述处理插件集合包括以下至少一种:数据库插件集合、过滤脚本插件集合和算法插件集合。
在一实施例中,所述初始插件集合包括数据集成插件,所述数据集成插件为与各外部设备映射的产品插件,用于选择产品数据源;
所述通道插件集合包括消息队列插件集合,所述消息队列插件集合用于选择数据源的消息队列实例,包括以下至少一种:MQTT消息队列插件、Kafka消息队列插件和AMQP消息队列插件;
所述处理插件集合包括以下至少一种:数据库插件集合、过滤脚本插件集合和算法插件集合;
所述数据库插件集合中各插件用于选择数据源存储节点的实例,以及存储节点实例的信息,包括以下至少一种:MYSQL数据表插件、TIDB数据表插件和HBase数据表插件;
所述过滤脚本插件集合中各插件用于选择数据中所需要的数据项,包括以下至少一种:JS脚本插件、jar包插件、python脚本插件或PHP脚本插件;
所述算法插件集合中各插件用于计算数据,包括以下至少一种:离线算法插件 和实时算法插件。
在一实施例中,所述节点插件获取模块包括:
节点插件移动单元,用于响应于检测到表征拖动任一个节点插件的触发操作,将所拖动的节点插件移动到所述画布之内;所拖动的节点插件为所述数据分发业务所需要的插件;
节点插件保存单元,用于响应于检测到表征保存所述画布中节点插件的触发操作,保存位于所述画布中的节点插件并关闭所述工作台,获得所述业务流程的节点插件。
在一实施例中,所述节点插件移动单元包括:
未配插件生成子单元,用于在所述画布之内生成所拖动节点插件对应的未配置插件;
输入信息获取子单元,用于响应于检测到表征编辑所述未配置插件的触发操作,通过所述未配置插件的标签页获取所述标签页中各信息项对应的输入信息;
输入信息保存子单元,用于响应于检测到表征保存各信息项的输入信息的触发操作,保存各信息项的输入信息并关闭各信息项的标签页,获得所述业务流程的节点插件。
在一实施例中,所述配置信息获取模块包括:
节点插件连接单元,用于响应于检测到表征连接两个节点插件的触发操作,连接存在逻辑关系的两个节点插件;
业务流程获取单元,用于响应于检测到表征提交节点插件关系的触发操作,调用各节点插件对应的API接口,获得业务流程的配置信息。
在一实施例中,所述装置还包括空间匹配创建模块,所述空间匹配创建模块包括:
第一弹框显示单元,用于响应于检测到表征创建工作空间的触发操作,在显示区域内显示第一弹框;所述第一弹框内包括工作空间名称、别名、logo图片、空间描述中的至少一项内容;
输入数据获取单元,用于响应于检测到表征输入任一项内容的触发操作,获取针对该项内容的输入数据;
空间区域获取单元,用于响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得工作空间区域。
在一实施例中,所述业务流程创建模块包括:
编辑页面显示单元,用于响应于检测到表征编辑工作空间区域的触发操作,在 显示区域内显示工作空间区域的编辑区页面;所述编辑区页面包括新建业务流程按键;
流程弹框显示单元,用于响应于检测到表征选择新建业务流程按键的触发操作,显示新建流程弹框;所述新建流程弹框内包括流程名称和流程描述;
输入数据获取单元,用于响应于检测到表征填写流程名称或者流程描述的触发操作,获取所述数据分发业务的流程名称或者流程描述的输入数据;
输入数据保存单元,用于响应于检测到表征保存输入数据的触发操作,保存输入数据并关闭弹框,获得位于所述工作空间区域内的数据分发业务的业务流程。
可理解的是,本公开实施例提供的装置与图4所示方法相对应,具体内容可以参考方法各实施例的内容,在此不再赘述。
在示例性实施例中,还提供了一种电子设备,包括:
至少一个处理器;
用于存储所述处理器可执行的计算机程序的至少一个存储器;
其中,所述至少一个处理器被配置为执行所述至少一个存储器中的计算机程序,以实现上述方法的步骤。
在示例性实施例中,还提供了一种包括可执行的计算机可读存储介质,例如包括指令的存储器,上述可执行的计算机程序可由处理器执行,以实现如图1所述方法的步骤。其中,可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本公开旨在涵盖任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
在本申请中,机器可读存储介质可以是任何电子、磁性、光学或其它物理存储
装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
上述实施例阐明的装置、模块或单元,具体可以由计算机芯片或实体实现,或
者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(系统)、和计算机程序产品的流
程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的
精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。

Claims (15)

  1. 一种数据分发系统,其特征在于,包括通道配置模块、数据引擎模块、数据处理模块、规则引擎模块、预设数据库和外部接口模块;
    所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
    所述数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据分发给所述预设数据库或者所述数据引擎模块,或者生成控制指令发送给所述数据处理模块、所述规则引擎模块;
    所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果;
    所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备;
    所述外部接口模块用于响应于外部业务系统的调用请求从所述预设数据库内反馈所述预设产品模型数据。
  2. 一种数据分发系统,其特征在于,包括通道配置模块和数据引擎模块;其中,
    所述通道配置模块与外部设备连接,用于将获取的各外部设备的设备数据转换为预设产品模型数据并存储到消息队列;
    所述数据引擎模块与所述通道配置模块连接,用于将从所述消息队列获取的预设产品模型数据进行分发操作。
  3. 根据权利要求2所述的数据分发系统,其特征在于,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
  4. 根据权利要求2所述的数据分发系统,其特征在于,还包括数据处理模块;所述数据处理模块与所述数据引擎模块连接;
    所述数据引擎模块还用于根据初始配置数据生成控制指令并发送给所述数据处理模块;
    所述数据处理模块用于响应于所述控制指令选用预设的离线算法或者实时算法来处理所述预设产品模型数据,并实时推送处理结果或者存储处理结果。
  5. 根据权利要求2所述的数据分发系统,其特征在于,还包括规则引擎模块;所述规则引擎模块与所述数据引擎模块连接;
    所述数据引擎模块还用于在预设产品模型数据需要触发规则引擎时生成控制指令 并发送给所述规则引擎模块;
    所述规则引擎模块用于响应于所述控制指令判断所述预设产品模型数据对应的节点是否需要触发;当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
  6. 根据权利要求5所述的数据分发系统,其特征在于,所述数据引擎模块还用于将所述预设产品模型数据推送给预设的缓存,由所述缓存确定所述预设产品模型数据对应的节点是否需要触发。
  7. 根据权利要求2所述的数据分发系统,其特征在于,还包括外部接口模块;所述外部接口模块与所述数据引擎模块连接;
    所述数据引擎模块还用于将预设产品模型数据存储到预设数据库内;
    所述外部接口模块用于响应于外部业务系统的调用请求从所述预设数据库内反馈所述预设产品模型数据。
  8. 一种数据分发方法,其特征在于,应用于权利要求2所述的数据分发系统,所述方法包括:
    获取外部设备上报的设备数据;
    将所述设备数据转换为预设产品模型数据,并存储到消息队列;
    将从所述消息队列获取的预设产品模型数据进行分发操作。
  9. 根据权利要求8所述的数据分发方法,其特征在于,所述预设产品模型数据包括状态参数、功能参数和触发参数三个类型的设备数据。
  10. 根据权利要求8所述的数据分发方法,其特征在于,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
    获取初始配置数据;所述初始配置数据包括表征是否采用预设算法处理所述预设产品模型数据的配置数据;
    当所述初始配置数据包括表征采用预设算法处理所述预设产品模型数据的配置数据时,获取用于所述预设产品模型数据的数据处理算法;所述数据处理算法包括离线算法或者实时算法;
    基于所述离线算法或者所述实时算法处理所述预设产品模型数据,获得处理结果;
    存储或者推送所述处理结果。
  11. 根据权利要求8所述的数据分发方法,其特征在于,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
    将所述预设产品模型数据推送给缓存,以使所述缓存确定所述预设产品模型数据是 否需要触发规则引擎;
    响应于需要触发规则引擎时,判断所述预设产品模型数据对应的节点是否需要触发;
    当需要触发时向所述节点发送预设类型的触发信息;当不需要触发时将所述预设产品模型数据发送到外部设备。
  12. 根据权利要求8所述的数据分发方法,其特征在于,将从所述消息队列获取的预设产品模型数据进行分发操作,包括:
    基于所述预设策略将所述预设产品模型数据存储到预设数据库内,以使外部业务系统通过所述预设数据库来获取所述预设产品模型数据。
  13. 根据权利要求8所述的数据分发方法,其特征在于,获取外部设备上报的设备数据,包括:
    获取预设数据协议;
    当若所述设备数据满足所述预设数据协议,将所述设备数据存储到第一消息队列;若所述设备数据不满足所述数据协议,则通过SDK进行协议转换得到满足预设数据协议的设备数据并存储到所述第一消息队列。
  14. 一种电子设备,其特征在于,包括:
    至少一个处理器;
    用于存储所述处理器可执行的计算机程序的至少一个存储器;
    其中,所述至少一个处理器被配置为执行所述至少一个存储器中的计算机程序,以实现如权利要求8~13任一项所述方法。
  15. 一种计算机可读存储介质,其特征在于,当所述存储介质中的可执行的计算机程序由处理器执行时,能够实现如权利要求8~13任一项所述方法。
PCT/CN2020/129891 2020-11-18 2020-11-18 数据分发系统及数据分发方法 WO2022104611A1 (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202080002860.2A CN114830615B (zh) 2020-11-18 2020-11-18 数据分发系统及数据分发方法
PCT/CN2020/129891 WO2022104611A1 (zh) 2020-11-18 2020-11-18 数据分发系统及数据分发方法
US17/429,912 US11762719B2 (en) 2020-11-18 2020-11-18 Data distribution system and data distribution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2020/129891 WO2022104611A1 (zh) 2020-11-18 2020-11-18 数据分发系统及数据分发方法

Publications (1)

Publication Number Publication Date
WO2022104611A1 true WO2022104611A1 (zh) 2022-05-27

Family

ID=81708140

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2020/129891 WO2022104611A1 (zh) 2020-11-18 2020-11-18 数据分发系统及数据分发方法

Country Status (3)

Country Link
US (1) US11762719B2 (zh)
CN (1) CN114830615B (zh)
WO (1) WO2022104611A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706918A (zh) * 2022-06-01 2022-07-05 杭州安恒信息技术股份有限公司 一种多类型数据库兼容方法、装置、设备、存储介质

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438233A (zh) * 2021-06-21 2021-09-24 北京交通大学 一种协议之间相互转换的方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166813A (zh) * 2011-12-14 2013-06-19 中国电信股份有限公司 一种支持多厂家设备接入物联网的方法和系统
CN108173874A (zh) * 2018-01-29 2018-06-15 海尔优家智能科技(北京)有限公司 一种智能设备管理方法、平台、系统、介质和设备
WO2019243787A1 (en) * 2018-06-18 2019-12-26 Arm Ip Limited Pipeline template configuration in a data processing system
CN111294401A (zh) * 2020-02-10 2020-06-16 泰华智慧产业集团股份有限公司 一种物联网设备接入方法及装置
CN111953777A (zh) * 2020-08-12 2020-11-17 北京泊菲莱科技有限公司 一种物联网平台接入设备管理系统

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8839387B2 (en) * 2009-01-28 2014-09-16 Headwater Partners I Llc Roaming services network and overlay networks
US9924044B2 (en) * 2011-01-20 2018-03-20 Verizon Patent And Licensing Inc. Recommendations based on real-time usage information
US10002033B2 (en) * 2012-02-07 2018-06-19 Microsoft Technology Licensing, Llc Efficiently receiving messages across a large number of messaging entities
US8898298B2 (en) * 2012-08-27 2014-11-25 Sap Se Process observer and event type linkage
CN108668357B (zh) * 2013-05-23 2021-07-02 华为技术有限公司 位置区管理方法及设备
EP3019073B1 (en) * 2013-07-08 2022-08-31 ResMed Sensor Technologies Limited System for sleep management
CN105094747B (zh) * 2014-05-07 2018-12-04 阿里巴巴集团控股有限公司 基于smt的中央处理单元以及用于检测指令的数据相关性的装置
US10055708B2 (en) * 2014-09-09 2018-08-21 Halcyon Consulting, LLC Vehicle inventory verification system, apparatus and method cross reference to related applications
US10395177B2 (en) * 2015-12-10 2019-08-27 Microsoft Technology Licensing, Llc Optimized execution order correlation with production listing order
US10282229B2 (en) * 2016-06-28 2019-05-07 Amazon Technologies, Inc. Asynchronous task management in an on-demand network code execution environment
CN108156823B (zh) * 2016-08-31 2020-04-14 华为技术有限公司 一种闪存介质的访问方法及控制器
WO2019037846A1 (en) * 2017-08-23 2019-02-28 NEC Laboratories Europe GmbH SERVICE LEVEL MONITORING MONITORING METHOD IN A SOFTWARE DEFINED NETWORK AND CORRESPONDING SOFTWARE DEFINED NETWORK
CN108200190B (zh) 2018-01-26 2019-11-22 青岛国信发展(集团)有限责任公司 基于云计算的物联网数据服务系统和方法
CN111294285B (zh) 2018-12-07 2022-10-28 网宿科技股份有限公司 一种网络数据的分发方法及负载均衡器
CN109889551B (zh) * 2019-04-16 2021-08-27 陆伟 一种智能硬件接入的物联网云平台的方法
US11188396B2 (en) * 2019-09-09 2021-11-30 International Business Machines Corporation Pending notification deletion through autonomous removal triggering
CN111061804B (zh) * 2019-10-30 2023-09-29 平安科技(深圳)有限公司 基于大数据的异步数据处理方法、装置、设备和存储介质
CN111083128A (zh) * 2019-12-06 2020-04-28 北京海兰信数据科技股份有限公司 船舶数据的处理方法、装置及设备
CN111291103B (zh) 2020-01-19 2023-11-24 北京有竹居网络技术有限公司 接口数据的解析方法、装置、电子设备及存储介质
CN111641524A (zh) * 2020-05-25 2020-09-08 北京青云科技股份有限公司 监控数据处理方法、装置、设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103166813A (zh) * 2011-12-14 2013-06-19 中国电信股份有限公司 一种支持多厂家设备接入物联网的方法和系统
CN108173874A (zh) * 2018-01-29 2018-06-15 海尔优家智能科技(北京)有限公司 一种智能设备管理方法、平台、系统、介质和设备
WO2019243787A1 (en) * 2018-06-18 2019-12-26 Arm Ip Limited Pipeline template configuration in a data processing system
CN111294401A (zh) * 2020-02-10 2020-06-16 泰华智慧产业集团股份有限公司 一种物联网设备接入方法及装置
CN111953777A (zh) * 2020-08-12 2020-11-17 北京泊菲莱科技有限公司 一种物联网平台接入设备管理系统

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706918A (zh) * 2022-06-01 2022-07-05 杭州安恒信息技术股份有限公司 一种多类型数据库兼容方法、装置、设备、存储介质
CN114706918B (zh) * 2022-06-01 2022-09-16 杭州安恒信息技术股份有限公司 一种多类型数据库兼容方法、装置、设备、存储介质

Also Published As

Publication number Publication date
CN114830615B (zh) 2024-05-10
CN114830615A (zh) 2022-07-29
US20220350685A1 (en) 2022-11-03
US11762719B2 (en) 2023-09-19

Similar Documents

Publication Publication Date Title
US11243704B2 (en) Data pipeline architecture for analytics processing stack
WO2022104612A1 (zh) 数据分发流程配置方法及装置、电子设备、存储介质
US11265378B2 (en) Cloud storage methods and systems
US9450895B2 (en) Context-aware dynamic policy selection for messaging behavior
US10261829B2 (en) Generating differences for tuple attributes
US20190050277A1 (en) Router management by an event stream processing cluster manager
WO2022104611A1 (zh) 数据分发系统及数据分发方法
CN110781180B (zh) 一种数据筛选方法和数据筛选装置
KR102565776B1 (ko) 클라우드 서비스를 위한 방법 및 장치
CN114265680A (zh) 一种海量数据处理方法、装置、电子设备及存储介质
US9330188B1 (en) Shared browsing sessions
CN114731342A (zh) 从边缘设备到远程网络的托管数据导出
CN113098942B (zh) 一种分布式系统的数据处理方法及装置
KR20220082768A (ko) 클라우드에서의 지능형 비디오 빅데이터 분석 시스템 및 그 방법
García et al. NUBOMEDIA: an elastic PaaS enabling the convergence of real-time and big data multimedia
Tomczak et al. Development of service composition by applying ICT service mapping
US12118111B2 (en) Edge data processing utilizing per-endpoint subscriber configurable data processing workloads
Xu et al. Roda: a flexible framework for real-time on-demand data aggregation
US20240348680A1 (en) Data plane reduction for eventing components
Petrovic Framework for model-driven semantic-enabled deployment of container-based virtual network functions to support edge computing and future internet services
Stoicuta et al. An OpenNetInf-based cloud computing solution for cross-layer QoS: Monitoring part using iOS terminals
Houmani Data-driven Management Solution for Microservice-based Deep Learning Applications
WO2024129064A1 (en) System and method for ai policy-based auto assurance
de Sousa Bastos Serviços de Computação para Análise de Sentimentos em Sistemas de Vídeo Conferência
CN117406960A (zh) 一种敏捷分析场景的低代码社交数据计算平台和装置

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20961902

Country of ref document: EP

Kind code of ref document: A1

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205A DATED 10/01/2024)

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 10.01.24)

122 Ep: pct application non-entry in european phase

Ref document number: 20961902

Country of ref document: EP

Kind code of ref document: A1