The Wolfram Cloud Platform

Tom Wickham-Jones

Wolfram Research Inc.

Presentation Goals

Overview of Wolfram Cloud Platform
    
    description and benefits
          also
    features and technology
    
Try to give big picture view

The Platform

Core technology base

based on existing Wolfram/Mathematica ideas

influences:

Programming Language

The Wolfram Language

concise, literate, high-level (also evolving rapidly)

originally delivered as Mathematica programming language

Computation

Key element of system,  evident in Mathematica name

Supports wide range of computations along with many supporting tools

Moves with new directions,  eg latest trends in Data Science

Computable Documents

Combine code, computations, math, data, visualizations etc... in a single live interactive document

Basis of the Computable Document Format (CDF)

Knowledge

Integrating data with programming and computation

Wolfram|Alpha technology empowering searches through knowledge to create new results

Server (Web) Access

webMathematica and Wolfram|Alpha

Cloud Delivery

Two styles relevant

Cloud Application

End user tool,  resides in a browser (could be mobile app)

Similar to tradiational based applications,  eg word processors, spreadsheets etc...

Could be desktop application that calls to the cloud

Benefits

zero configuration
    collaboration
    use anywhere
    web deployment/integration

Important future direction

Cloud Program

Programmer oriented 
   supports programming

Infrastructure for building applications
   manages programs, files, data, resources, feeds etc...

Very neutral to consumer,  
  user driven,  program driven
  many different languages etc...

Benefits

simple deployment (HTTP)
    security
    easy to fix code
    easy to scale up
    many features readily available

Visual

Products

Built from the same technology

Optimized for different use cases

Mathematica Online

Notebooks on the web

Appeals to existing Mathematica users but with cloud benefits

Wolfram Programming Cloud

Wolfram Language programs delivered by the web

Appeals to programmers (eg users of the Wolfram|Alpha web API)

Data Science Platform

Tools for data import, processing, export

Appeals to builders/consumers of knowledge extracted from data

More of an enterprise product

Desktop Mathematica

Introduced in Mathematica 10 many cloud oriented features

Complementary to all of the cloud products

Public vs Private

Relevant to each product

Public Cloud

Server hosted and managed by Wolfram Research

Usage restrictions, can be improved by increasing subscription

Relies on Wolfram for security

Visual

Private Cloud

Your own cloud server runs in your intranet

Very much an enterprise product

Private to you, so easier to connect to your data

You control usage

Visual

Data Access

Public Cloud

Load data up to the cloud store

Load data from other websites

Private Cloud

Load data from other websites

Load data from private data sources

Mathematica Online

Basics

Implementation of notebooks in browsers

Pure web solution only HTML, CSS, JavaScript   — no Plugin

Notebook Document Experience

An alternative implementation of Mathematica

Support a very significant amount of functionality

Features

Uses nb/cdf formats (compatible with desktop Mathematica)

Cells, groups etc...

Notebook stylesheets

Interactive features, graphics, Manipulate, Dynamic, Typesetting, SlideShows

Not complete coverage of all FrontEnd features (but increasing...)

Cloudstore File System

Cloud file system (typical operations)

Multiple filetypes

Versioning

Collaboration

Share Documents in Mathematica Online

A static form of collaboration (not real-time yet)

Sharing your work very easily

Publishing and Embedding

Displaying in the web:  pages,  blogs,  wikis etc...     
          outside of Mathematica Online

Sharing your work very easily

Demo

(probably use Prod 2D not so good here)
Login,  note browser support
Create notebook
Few evaluations
Add Title, section and text
Open help system
Show 3D Plot

Sharing

Show public,  and show

Collaboration

https : // twiki.wolfram.com/view/WebRD/DemoTest

Wolfram Programming Cloud

Same base technology

Focus on programming

Deploying Wolfram Language functions
   run on the web
   callable from anywhere

Components

Cloud Objects

API Functions

Form Functions

Data Science Platform

Wolfram Language many data science related functions

DSP provides convenient workflows

Load,  compute,  deploy

Scheduled Tasks

Arrange for load/compute/deploy to be run at regular times

Notebook Templating

Use notebook template system to generate documents

Convenient way to generate output

Stay as CDF (eg for interactive features)

Convert to PDF, HTML, etc...

Data Connectors

Convenient workflow to combine scheduled tasks and document templating

Other Platforms

Plans for a suite of other products built from Cloud Platform

Desktop Cloud Integration

Documents

Open/Save documents to the Cloud

Way to edit, develop,  and deploy

Sharing your Mathematica work with others...

Cloud Objects

Many programmatic features work same in Desktop and Cloud

Store anything in cloud objects

s=NDSolve[{y'[x]==y[x]Cos[x+y[x]],y[0]==1},y,{x,0,30}]

c=CloudPut[s]

CloudGet[c]

Useful for permanent storage and for sharing

Listings

All files in cloud file store are really cloud objects

objs=CloudObjects[]

CloudObjectInformation[objs[[9]]]

Cloud Functions

Same as cloud operation

fun=APIFunction[{"fun"->"Expression"},Plot[#["fun"][x],{x,0,2Pi}]&, "PNG"]

CloudDeploy[fun]

Embedding

EmbedCode[fun]

Other languages supported

$EmbedCodeEnvironments

Mobile

Several Mobile projects at Wolfram

Currently a Cloud iOS project

App for working with cloud,  
       web rendering for notebooks
       native code for file browse, authentication etc...

Browser

Notebook

Subscription Levels

Different subscription levels

Interactive

Control:
   Size of Cloud Storage
   Memory for computations
   Time for individual computations

Deployed

Cloud Credits 
  Control deployed content
  Computation time for APIs,  Forms, Scheduled Tasks etc...

Also for public dynamic Cloud CDF

Dashboard

Private Cloud

Avoid these limitations

Security

Default

Everything is private to each Wolfram ID 
   Documents,  files etc...  
   State of Kernel

Kernel Sandbox

Kernel runs in a sandbox mode which prevents
   file read access from your dirs, Wolfram Engine dirs
   file write access to your dirs (custom temp dir)
   no launching of C executables
   
J/Link operations have similar restrictions

Permissions

Permissions system for cloud objects (basically every resource)

Set permissions for each object

SetOptions[cloudObj,Permissions-> sett]

Permissions fine grained,  read/write/execute and public/private (named groups of users)

Technology

Many different components

Server

Web Browser Client

JavaScript,  HTML, CSS

Uses many dynamic JavaScript tools
   Backbone, Require, etc...

Desktop Client

This is Mathematica

Other Products

Relation to existing products?

Wolfram Workbench

Development will continue

Added cloud integration (linking projects to cloud folders)

Sometime will investigate a cloud based IDE

webMathematica

Development will continue, probably rebranding

Very extensively used in cloud technologies

gridMathematica

Development will continue

Will develop cloud integration

Summary

Big picture overview of Wolfram Cloud Platform

Different products:
   Mathematica Online
   Wolfram Programming Cloud
   Data Science Platform
   
Public vs Private Clouds

Details
   core technology
   subscription levels
   security and permissions
   
Review of some related products

Benefits

Standard cloud benefits for you

Sharing of Mathematica documents with others
   they just need a browser

Sharing of Mathematica code with others
   just call cloud functions via HTTP
   call from any language

New server arrangments,  eg scheduled tasks

Privacy and scalability in private cloud

Other Presentations

Wolfram DataScience Platform
Dillon Tracy  14:00 Wednesday
      
Cloud
Jan Poeschko and Joel Klein  10:30 Friday     
      
Interpreter, FormFunction, APIFunction Workshop
Carlo Barbieri and Taliesin Beynon  10:30 Thursday
      
Programming Cloud Workshop
Joel Klein and Tom Wickham-Jones  16:00 Thursday
 
Working with Documents in the Cloud
Ian Hojnicki  16:00 Wednesday
 
Embedding Code in Other Languages
Arnoud Buzing 16:30 Wednesday
       
RaspberryPi and Connected Devices
Arnoud Buzing  14:00 Thursday