This post depicts how the publisher/subscriber functions of the node network and the CP Split technology are used to transmit information between the nodes in a node-to-node (n2n) architecture.
The image above describes the basic components and processes. The two arrows coming out of the Template Models box depict both publisher and subscriber/presenter grid-based template-models (spreadsheet workbooks) used by the nodes.
The Node as Publisher box depicts a node using one or more of its publisher template-models to:
The Node as Subscriber box depicts a node’s subscriber/presenter template-model taking the contents of the Content File it receives and placing each content element in pre-defined cells in its own template-model grid having a structure mirroring the template-model used by the publisher to create the Content File. In this way, the subscriber/presenter template-model “knows” what content elements are located in each cell by virtue the cell’s location in the grid. The subscriber/presenter template model then does two things:
Note that a single node can have both publisher and subscriber functionalities and a single node can publish to any number of subscribers. Also note that a node can interface with just about any software application via APIs.
The image above depicts a node with both publisher and subscriber/presenter functionality. In this image, a node's:
The graphic above depicts how network of nodes operate to exchange information:
Step 1: The solid black line depicts the node at the top retrieving and processing content to create a Content File using node functions defined in its Publisher Template-Model.
Step 2: The solid blue arrows show the node at the top using the publisher functions defined in its Publisher Template-Model to send Content Files via encrypted e-mail attachments to the node at the upper right, the nodes on the left, and the node at the bottom.
Step 3: This dashed arrow shows the top node, after sending Content Files to the node on it left, subsequently receives Content Files from that same node via the subscriber functionality of its Subscriber/Presenter Template-Model. This means both these nodes invoke their publisher and subscriber functionality.
Step 4: These two nodes only receive Content Files; their publisher functionality is not invoked.
Step 5: These dotted arrows show Content Files being passed sequentially from one node to the next, with each node adding new information and/or modifying the files it receives, before sending extended Content Files to the next node.
Step 6: The bottom node receives Content Files from two other nodes. After forming a composite Content File from the accumulated content as defined by its Publisher Template-Models, it sends the composite Content File back to the node at the top.
We are introducing a novel technology that offers a simple, transparent way to exchange information securely and economically between any software applications and data stores via asynchronous, publish/subscribe, node-to-node networks using our patented CP Split™ software method.
This unique software technology is especially useful for industries in which loosely connected networks of people and computers analyze & exchange information from disparate sources in a variety of communication & working environments. It accommodates the needs of all users, from people with continuous broadband to occasionally-connected individuals using low speed dial-up service. And it facilitates collaboration across all organizational and physical boundaries (e.g., from functional unit to functional unit, company to company, and country to country).
The unique value proposition of our technology is it:
The primary purpose of this blog is to make people aware of our innovation and its unique set of benefits in order to expand our collaborative network of information technology experts, software companies, and government agencies. While the discussion on this site focuses on use cases in healthcare, the technology can be used in any knowledge worker industry and profession.
Let's begin by defining key components and processes in a node-to-node network.
1. What is a node and a node-to-node network?
A node is a software application, with publisher and subscriber functionality, that manages the transfer of information between two or more computers in an asynchronous manner. A node on one computer is the publisher (sender) of information, and at least one other computer in its network is the subscriber (recipient) of that information. This node-to-node (N2N) information exchange is, in effect, an application-to-application data transfer process.
The data transfer process requires each computer in a network of nodes to support an operating system and a connection to the Internet via broadband, dial-up, or other communication service. At one end of the connection, the Publishing node must authorize the information transfer by authenticating that the Subscribing node is allowed to receive the information. At the other end of the connection, each Subscribing node must allow the Publishing node to deposit the information in an accessible place.
2. What other technologies do similar things (such as TCP/IP, an Internet protocol suite used by e-mail that includes the application file transfer protocol, FTP)?
The term File Transfer means copying a file from one machine to another. FTP allows authorized users to log into a remote system, identify themselves, list remote directories, copy files to or from the remote machine, and execute a few simple commands remotely. Although FTP allows direct interactive use by humans, the protocol is designed for program manipulation at the application layer for automating the file transfer process. FTP allows a user to access multiple machines in a single "session" and maintains separate TCP connections.
FTP can handle third party transfers. A client opens a control connection to servers on two remote machines, A and B. The client must have permission to transfer a file from A and permission to transfer a file to B. The client asks the server on A to transfer the file to B. The server on A forms a direct TCP connection with server B and transfers the data across the Internet to B. The client retains control of the transfer, but does not participate in moving data.
3. What are CP Split™ (CPS) Nodes?
A CPS Nodes leverage the CP Split™ software method as explained below and in subsequent posts. Briefly, CPS Nodes use automated data grid template (spreadsheet) software to interact with each other at the presentation level. A CPS Publisher Template (PT) retrieves data from the requisite data stores and assembles the data in an organized (meaningful/logical) way to form preplanned data structures in the cells of the grid template. The Publisher Node then ships the data to it subscribing nodes by automatically taking the data from the grid template and storing them in an encrypted delimited CPS Data File and sending the file. This creates an interoperable platform for the simple, secure, fluid exchange of information between disparate system architectures through the transmission of content stored in highly efficient data files.
Upon receipt, the CPS Subscriber Nodes use their corresponding Subscriber Templates to render & present (and/or export) the contents of the CPS Data Files.
I will show how the CP Split method provides the only software codec (coder-decoder) that enables an encoder to organize data elements into configurations from which a decoder locates content elements for processing (e.g., formatting) based solely on their positions within the configurations, without using database queries or markup tags.
4. What is CPS Universal Translation?
Universal translation is a process by which a Subscribing Node notifies a Publishing Node as to how the information must be formatted or translated to accommodate the requirements of the subscribing node. This enables the Publishing Node to transform the information as necessary, so it can be used by different Subscribing Nodes (e.g., performing language translations, terminology replacements, data set modifications, and data format transformations).
5. What are CPS Composite Reports?
Composite reports are generated when (a) a Publishing Node accesses information from disparate sources, integrates the information into a single CPS Data File, and sends it to its subscribers where a composite report is generated or when (b) a subscribing node receives CPS Data Files containing different information from multiple publishing nodes and integrates it all into a composite report.
Exceptionally high-level security is maintained end-to-end using encrypted data and template files, virtual drives, and MultiCryption™ technology (discussed in a subsequent post).
CP Split refers to the way our patented technology splits content (data & information) from presentation (reports) using grid software (spreadsheets). Separating content from presentation is familiar to all of us from XML and HTML, but only the CP Split does it with grid software templates and configurations of content in delimited files.
I will show how the CP Split technology -- interoperating with any Health IT tools -- enables mesh networks of nodes to composite comprehensive patient profile reports from disparate sources, while delivering these powerful benefits:
I will discuss all of this in subsequent posts and welcome your questions and comments.
Steve Beller, PhD
The CP Split can utilize MultiCryption™ software security tools to provide a unique, multi-level, data security process for exceptional data protection.
MultiCryption software uses four special levels of encryption for a virtually foolproof way to secure data files as they move across the Internet. It sets a new standard for data protection -- that is even immune to brute force attacks -- with these unique security methods:
Click this link for more: MultiCryption™ technology
As discussed in the previous posts, the nodes use the CP Split’s patented process uses template models to:
This process differentiates the CP Split from all other technologies used for the distribution and presentation of reports. Following is a discussion of these differences and the benefits of using the CP Split technology.
How Does the CP Split Differ from Database Report Writers?
The CP Split technology differs from database report writers in the following operations:
Compared to database report writers, the CP Split has distinct advantages when disseminating interactive reports containing numeric values and related visualizations (e.g., charts/graphs, etc.). This is because the CP Split technology keeps the numeric content "live" – i.e., the numbers are not embedded in markup tags or converted to text – so they are ready for reuse immediately. This means there is no need to re-entry the data, use screen scrapers, or do time-consuming data parsing and transformations when using the CP Split. Furthermore, the CP Split enables content to be transmitted in its most efficient form, i.e., in delimited formats (such as in CSV files) that contain no formatting instructions, markup tags, or programming code.
How Does the CP Split Differ from Spreadsheet Reports?
To understand the CP Split more fully, it is necessary to compare it to technologies beyond database report writers.
For example, it is possible to distribute entire spreadsheet workbooks filled with the content, formatting instructions and macros. This is a very inefficient approach because every time the content is updated or used by a different model, new workbooks must be distributed, which can be very large (many megabytes). This approach also makes it difficult to track changes made to the content or models over time - for auditing purposes for example - since multiple version of the workbooks must be stored, which can require complex versioning controls.
A more sensible and elegant method for delivering report updates is to use the CP Split to distribute the content, and only the content, in delimited text Content Files. These files are a tiny fraction of the size of entire workbooks because they do not contain formatting instructions, code, or markup tags. In addition, they provide easy auditing (through change management methods) and file management (by using ID numbers to maintain the proper association between Content Files and the template files that produce and consume them). The workbooks containing the models are only redistributed if the models represented in the templates changes, which may me necessary, for example, if the schema of the source data changes.
Benefits of the CP Split Technology
The benefits of this unique approach are realized when content is shared between nodes using different template models to generate different reports, or between different nodes with the same template model to generate the same report.
The CP Split technology, therefore, offers this unique set of benefits:
Up to this point, I described how the nodes' asynchronous publish-subscribe process works, and discussed the use of spreadsheet templates for producing and consuming content files. This post describes the inner workings of the CP Split technology.
The Publisher Template
If a node has publisher functionality, its Publisher Template must be pre-configured to execute the operations required for Content File creation and transmission. During this process, a reference tuple is created. Once CP Split is configured, the reference tuple is used in the process to ensure continuous referential integrity and entity integrity. Hence, this reference tuple promotes versioning.
One type of pre-configuration involves database queries. That is, if a Content File will contain data from one or more databases, the proper SQL/ODBC query code (macro/script) must be written in its template’s grid code layer. In an MS Windows operating system using Excel as the node’s underlying application, for example, the query for each database must be configured with the correct login ID & password, and it must use the correct ODBC drivers. In addition, the proper fields and records must be identified, as well as the particular spreadsheet cells into which the queried data are to be sent.
Using a Publisher Template’s macros to execute the queries enables them to be initiated automatically via remote request by having the Publisher node execute the correct queries for each of its Subscriber nodes based on ad hoc and pre-scheduled requests from its Subscriber(s). The following key processes occur automatically:
The Subscriber/Presenter Template
If a node has subscriber and report presentation functionality, its Subscriber/Presenter Template must be pre-configured to execute the operations required for consuming and rendering particular Content Files. Using its template’s spreadsheets and macros to consume and render a Content File enables a node to composite and generate reports without ever having to query a database or connect to other data sources. Following are key processes:
In this post, I discuss CP Split "Content Configurations," which are elements of data and information (content elements) that have been structured in configurations by the Content File Production (CFP) Grid of a node's Publisher Template. One or more of these configurations are transported in a Content File (by e-mail, FTP, streaming, etc.) and rendered into reports through the Content File Consumption (CFC) Grid of a node's Subscriber/Presenter Template. Content Configurations are unique to the CP Split technology and are fundamental to its operation.
Creating Content Configurations via the CFP Grid
The image below is an example of a Content Configuration in a Publisher's CFP Grid spreadsheet, which contains Basic Hematology Diff/Morph blood test data. After obtaining the content by querying the original data source, macro routines placed the content elements in their predefined cells.
Grid Framework. The location of each content element in a Content Configuration depends on the CFP Grid's “framework,” which provides a blueprint for the structuring the Content Configurations based on a report's data model. Best practice rules for defining such a framework include the following:
Macros and Cell Functions. Macro modules and cell functions are used to place the content elements into the proper cells, which create Content Configuration that are consistent with the defined framework.
Intermediate Grids & Third-Party Applications. Note that there may be intermediate spreadsheet grids. These grids that may work in conjunction with third-party products to process the content elements before storing the results in the CFP Grid. This may include the use of statistical/analytic/data mining tools, inferential logic tools, and text mining and manipulation tools.
Intermediate grids may, for example:
Placing Content Configurations into a Content File
Once the CFP Grid's cells are populated with content, a macro places the Content Configurations into a Content File. The image below shows a Content File in comma delimited value (CSV) format with the Content Configuration from the blood test example. In it, a comma separates each column and a line break (not visible) separates each row. [Note that since Microsoft Excel was used, the dates and times were automatically converted to their date & time value equivalents.]
While there are many different ways to convey Content Configurations in a Content File, converting an exact replica of the configurations in CSV format, as done here, is the most efficient.
Note even though the labels ("DIFF/MORPH:", "Ref. Range", "Date", "Time", "Polys", "Bands", etc.) have been added to the Content File above, it is not necessary to include them since the labels already appear in the Subscriber/Presenter Template as discussed below.
Consuming Content Configurations via the CFC Grid
The image below is a Subscriber's CFC Grid spreadsheet before it is populated with the Content Configurations. Note the cell locations of the CFC Grid match the CFP Grid exactly, although the Content Configurations may be placed anywhere in the CFC Grid.
The graphic below shows the CFC Grid spreadsheet after macros in the Subscriber/Presenter Template populated it with the Content Configurations from the Content File it received.
Presenting the Reports
It's now time for the Subscriber/Presenter Template's presentation functions to generate reports by rendering the Content Configurations now stored in the CFC Grid spreadsheet. This is done by accessing content elements from the cells of the CFC Grid and formatting them for viewing and printing. This presentation process is executed via macros and cell functions, which may operate with third-party products via APIs for other visualizations, as well as using chart sheets and formatted spreadsheets.
For example, the image below shows a section of a spreadsheet used to display the blood test results. It contains the formatted labels for the report -- created by merging certain cells, adding color to certain cells, as well as selecting fonts and alignment options -- but has not yet been populated with the Content Configuration values residing in the CFC Grid. Note that it also has two Active-X "Graph" buttons, which generate charts.
The image below shows the same spreadsheet after a macro located the content elements from the Content Configuration, based on their cell positions in the CFC Grid, and placed the values in the proper cells.
Notice that the certain cells have been colored dark blue and red to indicate values above and below the reference range. These colors were added automatically at run time via the "conditional formatting" functions of the spreadsheet cells, which associate specific colors with value outside the reference ranges.
And this final graphic (below) visualizes the Lymph data over time in a chart, which was done by pre-configuring a chart sheet to access and format a data series in rows 1, 2 and 5 of the CFC Grid spreadsheet.