Patent ID: 9104506
Filing Date: 2015-08-11
Classification: G06F

Abstract:
1. A method, comprising: assembling automatically an information processing flow that produces a result, wherein the information processing flow includes components connected by data links, wherein a component includes software code that describes at least one of an input constraint or an output constraint of the component, wherein at least two of the components are deployable on different computing platforms, and wherein the information processing flow is a directed acyclic graph; partitioning the information processing flow into sub-flows, wherein for each sub-flow every component in the sub-flow is deployable on the same computing platform; and deploying the sub-flows on their respective computing platforms, wherein a multi-platform flow is broken into one or more single-computing platform sub-flows and a middleware handles the deployment of the sub-flows on each computing platform as well as instantiation of bridging components that enable communication across different computing platforms, wherein a data link is described by a set of tags d(a), an input constraint I of a component is defined by tags and variables, and the set of tags d(a) is defined to match the input constraint I if 1) for each tag in I, there exists a sub-tag that appears in d(a) and 2) for each variable in I, there exists a tag in d(a) to which the variable can be bound, wherein the variables describe how semantic properties of data are propagated from an input message and how configuration parameters are propagated to an output message, wherein each component of the information processing flow includes deployment instructions, wherein each sub-flow is deployed with a deployer specific to the computing platform of all of the sub-flow's components, and wherein the deployer translates the sub-flow into a flow-script specific to the computing platform of all of the sub-flow's components by using code fragments found in the deployment instructions of the sub-flow's components, wherein the deployers that deploy the sub-flows manage lifecycles of their respective sub-flows, including starting, and terminating the sub-flow, and retrieving a run-time status of the sub-flow, and wherein each platform is associated with a specific bridging strategy configured by a bridging plugin, the bridging strategy involving instantiation of additional components in a sending sub-flow or a receiving sub-flow, the additional components implementing buffering or polling strategies, and middleware is involved only in the setup of the information processing flow and not actual data transmission.