• How to Buy MindTouch
  • Have MindTouch Contact Me
  • Join a Webinar

Related Downloads

  1. DReAM> Source Code
  2. MindTouch Core> Product
  3. MindTouch 2010> Product
MindTouch > Products: MindTouch DReAM

MindTouch DReAM

Table of contents

Innovative MindTouch Architecture: the “Connective Tissue” of the Enterprise

By way of our innovative architecture, MindTouch delivers powerful, unprecedented ease and simplicity in software development. MindTouch is comprised of loosely coupled heterogeneous services that exist across networks. They share their behavior in a distributed and concurrent manner through the MindTouch API and through MindTouch DReAM. New functionality can be added in any programming language on any operating system executing on any server that communicates over any web protocol.

The breakthrough of MindTouch’s architecture is that the application lives in the network. Rather than requiring adherence to a particular interface in a particular language, such as Java or C#, extensions only require adherence to a stateless web protocol.

MindTouch is a simplified user-interface client that communicates to the MindTouch API over HTTP/S. The MindTouch API uses DReAM to federate and orchestrate functionality from other services, applications, and data stores, enabling MindTouch to be used as an information bus across all of them. In essence, MindTouch is the “connective tissue” within the enterprise.

Application behavior and data are surfaced to end users with the help of DReAM and through the MindTouch API. End users can create dynamic reports of data, composite (or situational) applications or data mash-ups. A site administrator approves the connections to applications, data, and services through an easy-to-use interface. End users can easily expose data and functionality to others without giving direct access to the applications or databases.

Powerful Orchestration Engine that Makes Federating Enterprise Content Simple

MindTouch DReAM – Distributed REST Application Manager – is a service-oriented, distributed application framework and the foundation of MindTouch’s technology. DReAM incorporates our deep experience and research into distributed computing, web services and self-organizing systems. DReAM’s design enables faster and more reliable development of rich, extensible and scalable N-tier applications.

DReAM is implemented in C# and executes on Mono or .NET. Its libraries facilitate interaction with other REST-based web-services, easy manipulation of XML data and definitions for creating new DReAM services. The core libraries are provided for .NET, and auxiliary libraries are available for PHP and JavaScript to simplify integration.

Near Linear Scalability

The DReAM runtime environment manages services initializing, message routing, and workload distribution, and uses an efficient, lightweight-threading model that scales nearly linearly with the number of CPU cores in a computer. The core DReAM services provide common building blocks such as event dispatchers, distributed directories, logging and service inspectors. All of these capabilities are packaged in a very compact and easy-to-learn framework to assist developers in producing better quality services more rapidly.

Simple, Powerful Federation of
Enterprise Applications

DReAM provides a new way to develop software more conducive to large-scale enterprise web applications. With DReAM, web services are similar to instantiated objects with entry points called service features (or features, for short). A feature is an interaction point for another service. Since all DReAM services are RESTful, features interact via standard HTTP verbs such as GET, POST, PUT, and DELETE. The DReAM runtime design enables a service author to assume that everything with which the service comes into contact is accessed through web requests. The DReAM library provides classes with simple interfaces to enable these interactions, and reduces the number of cases of which a developer needs to be aware, in order to program successfully.

These Basic Tenets Permeate MindTouch Products:

  1. Other services may become unavailable at any time
  2. Resources must be managed through timeouts (i.e. time-to-live/TTL)
  3. Everything runs concurrently

Concurrency in Processing and Communications

One of DReAM's many strengths is its ability to process and communicate concurrently. Unlike traditional applications which rely on serial execution of system functions, MindTouch DReAM issues requests concurrently: the application and end user wait only for the longest operation to complete, rather than waiting for the sum of all operations to complete.

This concurrency delivers significant performance advantages in network-native applications, where latencies are common. For example, say a user sends a request to MindTouch, sends requests to the CRM system (a database), and then asks for a file to be stored simultaneously and concurrently. Because the file being saved to the storage service requires no further interaction from either MindTouch or the user, all of these activities are accomplished in the background without slowing completion of the operation.

Extending the MindTouch Platform

Extending MindTouch requires no knowledge of the internal workings of the platform. All interactions are achieved through a stateless web protocol that is independent of any specific programming language, operating system, or deployment location. New capabilities can be added along several dimensions:

  • Embedding content from other applications or services
  • Authenticating users against other systems
  • Storing information in the cloud or in the network
  • Searching within the platform or across the enterprise
  • Visualization diverse content types

Similarly, the MindTouch user interface is decoupled from the MindTouch API, meaning that the capabilities of MindTouch can be embedded into existing applications or accessed from specialized front-ends on the web or on the desktop. MindTouch provides two popular desktop front-ends to publish emails from Microsoft Outlook and drag-and-drop files and folder inside Microsoft Windows.