nSpace Studio FX is optimal but not required
nSpace® Studio FX™ integrated visual development environment will be available to all, but the nSpace® Connection-Oriented Programming Framework is currently usable as a code-based framework for Windows using Microsoft Visual Studio for C++, NetBeans for Java, and gcc for Linux. The nSpace engine, sample graphs, behaviors and connectors are shared using Github. Graphs can be created via .NSPC text-based graph files using any text editor.
nSpace can act like “glue”
Because there is not one standard for platform, operating system and communication protocol between devices there is a current need for technology that can successfully “glue” together the multitude of APIs and protocols found in the market. Graphs behave like ‘glue logic’ which allows the data and logic of legacy systems to be migrated to new platforms and operating systems in a piecewise manner. There is also a COM server and a namespace service available for programmers with a single general API that allows external programs to inject information and share state with running graphs in a local or hosted namespace which itself can be used as a service for existing code-based solutions.
nSpace versioning and persistance
By caching and recording the latest graph connections of a running application, temporal information is available for the any location in the namespace. nSpace Studio FX will provide a real-time view of any portion of the namespace along with the connections and current state/values but it is possible to determine past connection information and values that were flowing through any graph at a previous point in time. By simply browsing and selecting recorded information from the built-in temporal database an integrated version control capability can be realized. Since any past information can be set to ‘now’ the state of a running system can be replaced by that namespace information restoring the state of the running system to that previous version. The framework’s integrated versioning of connections and context makes it easier to integrate real-time changes into the workflow and enables fast restoration of previous states of applications and data to also support rapid development iteration cycles helping the developer to optimize the design and also detect and correct programming and specification errors early.
nSpace is inherently parallel and asynchronous
Asynchronous programming in standard languages can be a complicated affair. One can achieve an expert level of skill at this type of programming but it is still tedious and prone to error. Generally asynchronous programming is achieved through the use of ‘threads’ and ‘locks’. Threads can generally be assigned a priority in relation to other threads. nSpace provides automatic data protection and ‘thread’ usage. The developer no longer has to worry about creating multiple threads of execution and synchronizing data between those threads to prevent race conditions, etc. Threads are created ‘on demand’ implied by the use of certain behavior functionality (such as timers or socket I/O availability and detection).