WOLFRAM

WOLFRAM TECHNOLOGY
INTEGRATION

Build the power of Wolfram into your technology stack

FOR ONE-OFF, DEPLOYED AND OEM APPLICATIONS


The Wolfram Technology Integration system provides a variety of ways to integrate Wolfram-powered computation into your technology stack - with convenient solutions that optimize various attributes such as local footprint, network independence, computation efficiency, communication overhead and installability.

Wolfram Inside

Make Wolfram technology an internal part of systems you build, calling it from code through interprocess and intraprocess communication mechanisms such as APIs, function calls and scripts.

Use Wolfram technology to add power inside a system you build.

Wolfram Outside

Use Wolfram technology to provide user interface elements that control and interact with systems you build - communicating through WSTP and other interprocess communication mechanisms.

Use Wolfram technology to provide or enhance the "face" of a system you build.

The Wolfram Technology Integration system supports both one-time calls and persistent sessions.

Why Integrate Wolfram Technology?

Some sample objectives:

Add Computational Power Through the Wolfram Engine

Call on the power of the Wolfram Engine inside a software product, device or cloud service.

Add Programmability Through the Wolfram Language

Use the Wolfram Language to add sophisticated programmability to any system or service.

Provide a Language-Level Interface to a Complex System

Use the Wolfram Language to access and control complex software or other systems.

Automatically Generate Rich Computational Reports

Use the Wolfram Language to generate rich visualizations, reports, dashboards, etc. from within a system.

Create Smart Form-Based Interfaces

Use the Wolfram Language to create form-based interfaces with natural language understanding.

Insert Interactive Elements Anywhere

Use Wolfram Cloud technology to add interactive elements to documents, pages, etc.

Enable Uniform Symbolic Handling of Code and Data

Use the Wolfram Language and Wolfram Data Framework (WDF) as a uniform way to represent, transport and compute with code and data inside a system.

Enable Broad Access & Deployment for a System

Leverage the Wolfram Universal Deployment System to enable access to a system across many platforms and deployment channels.

Provide Broad Services for Developers

Integrate the Wolfram Engine and Wolfram Language to raise the level of capability of developers on a new or existing platform.

Access & Communication Mechanisms

The Wolfram Integration system supports a range of styles of access and communication - each of which can be implemented in multiple ways appropriate for different development and deployment scenarios.

RESTful API Style

Call Wolfram Language code by giving a sequence of named arguments and getting back a single result.

RESTful API

Execute a web URL (cloud only).

Function Call Interface

Use automatically synthesized or custom-written code in any standard language (cloud or local).

Command-Line Program (wolframscript)

Execute a command-line program in the operating system shell (cloud, local or WSTPServer).

Script Style

Provide a block of Wolfram Language code to run locally, in the cloud or using WSTPServer.

Executable Script

Run a WolframScript file (.wl, .wls, etc.) using side effects to generate output.

Command Interpreter (wolfram, wolframscript)

Run the Wolfram Engine with input from stdin and output on stdout.

Notebook Evaluator

Evaluate inputs in a notebook that is provided.

WSTP IPC Style

Use WSTP (Wolfram Symbolic Transfer Protocol) for flexible two-way communication.

Wolfram Language WSTP API

Communicate directly with a Wolfram Engine from within the Wolfram Language (local or remote).

External Language Bindings

Communicate directly with a Wolfram Engine from C, Java, .NET, etc. (typically local only).

Linked Library Style

Make the Wolfram Engine an integrated part of an executable program.

Direct DLL-Style Linking

Call the Wolfram Engine within a single executable process (single-process local only).

Forms Style

Connect a form-like interface to the Wolfram Engine.

Web Forms

Call the Wolfram Engine from an embeddable form on the web (cloud only).

Mobile or Native Apps

Call the Wolfram Engine through forms on mobile or native apps (effectively local only).

Interactive Session Style

Have a Wolfram Engine user interface.

Dynamic Interactive Element

Expose a single interactive element (such as a Manipulate) for users (local or cloud).

Notebook Session

Allow a back-and-forth dialog with a Wolfram Engine in a document interface (local or cloud).

Command-Line Session

Have an ASCII-terminal-style back-and-forth dialog with a Wolfram Engine (local or WSTPServer).

Distribution Models

Depending on the scenario, there are a variety of ways to distribute Wolfram functionality and software.

Hosted Cloud

Do not distribute any actual Wolfram Engine software; just call the cloud (Wolfram Cloud, Wolfram Enterprise Private Cloud).

Machine Images

Distribute machine images that can be brought up as Wolfram Enterprise Private Clouds (Wolfram Enterprise Private Cloud).

Embeddable Virtual Machines

Distribute embeddable virtual machine images that can be installed to provide microcloud functionality (Wolfram Microcloud).

Installable Standalone Software

Distribute packaged software that can be installed by end users through an operating system (Wolfram Desktop, Wolfram Engine, Wolfram Player, ...).

Installable Server Software

Distribute packaged software to be installed by administrators on individual machines or subnets (WSTPServer, Wolfram Application Server).

Operating System Components

Distribute the Wolfram Engine as part of an operating system to provide shared capabilities for many programs (WSTPServer, Wolfram Application Server, Wolfram Engine, ...).

Shared Linkable Libraries

Use a shared library that is dynamically linked into a program and accessed through function calls (Wolfram Language libraries).

Software Development Frameworks

Use a software development framework that includes appropriate libraries to connect or include with programs (Wolfram SDKs).

Integration Environments

There are ways to integrate Wolfram technology into whatever kind of infrastructure environment you want.

Use the Wolfram Cloud from any environment for fully hosted Wolfram services.

Cloud

Wolfram Inside: Wolfram Enterprise Private Cloud, Wolfram Application Server, Wolfram Engine
Wolfram Outside: Wolfram Enterprise Private Cloud

Server

Wolfram Inside: WSTPServer, Wolfram Application Server, Wolfram Engine, WolframScript Command-Line Driver
Wolfram Outside: WSTPServer, Wolfram Microcloud

Embedded/Device

Contact us for details on the Wolfram Embedded Computing System.

Desktop

Wolfram Inside: WSTPServer, Wolfram Application Server, Wolfram Engine, Wolfram Language Library
Wolfram Outside: WSTPServer, Wolfram Desktop, Wolfram Player

Mobile

Wolfram Inside: Wolfram SDKs
Wolfram Outside: Wolfram SDKs

Wolfram Engine Provisioning

Configurations

There are a variety of ways Wolfram Engines can be configured for a project.

Linked Library

Use Wolfram Language libraries or Wolfram SDKs to link the Wolfram Engine directly into your program.

Single Instance

Use Wolfram Application Server or WSTPServer to connect to an instance of the Wolfram Engine when needed.

Managed Pool

Use a Wolfram Enterprise Private Cloud or WSTPServer to have a managed pool of Wolfram Engines.

Initialization

In many applications, you will want to initialize the Wolfram Engine with your particular code or data.

Initialize on Demand

Initialize whenever the engine is called.

Allows best sharing of Wolfram Engine resources.

Initialize at Startup

Initialize whenever your program is started.

Suitable for single-instance and linked library configurations.

Pre-Initialized Pool

Always maintain a dedicated pool of pre-initialized Wolfram Engines.

Suitable for WSTPServer and Wolfram Enterprise Private Cloud configurations.

Dependencies

Any Wolfram Engine needs to go to the cloud for certain services.
Get your own Wolfram Knowledge Server to keep all services within your infrastructure.