Brief Introduction to InishTech and the Software Potential Service

17
Software Potential from Unlocking the Commercial Potential in your Software

Transcript of Brief Introduction to InishTech and the Software Potential Service

Software Potential from Unlocking the Commercial Potential in your Software

About InishTech

• Spin out from Microsoft, privately held, based in Ireland, Microsoft

own 24%

• Mature, stable, proven technology platform

• Software Licensing & Monetization cloud service

• Built on the Windows Azure platform, designed from the ground

up for the .NET ecosystem

• Enabling the ISV to easily manage and control how their software

is bought, used and consumed

The Software Potential Platform

• Complete Software Licensing Management & Platform & Code

Protection Service

• Designed from the ground up for the .NET ecosystem

• Provided as a cloud service for ISVs

• Built on Windows Azure, provided from the Microsoft cloud

• Handles all types of licensing, and allows for you to protect your

applications from misuse - Unique, patented code protection &

transformation mechanisms at its core

>140 tech companies use Software

Potential

What does licensing provide for the

ISV?

• Software Entitlement Management

– Create, assign, distribute & maintain license entitlements to

your software in the market

– Why?

• Customer management

• Software monetization

• Customer satisfaction

Complete Software Licensing

Lifecycle Management

What does licensing provide for the

ISV?

• Agile Software Packaging

– The ability to separate development (engineering task) from

product configuration & packaging (non engineering task)

– Build once / configure ∞ – Why?

• Reduced dev costs

• Customer choice

• Product differentiation

Agile Software Packaging: Total SKU Versatility

Software Engineering Team

Application

Single Code Base

Functions Features

Software Product Management Team

Trial Edition SKU 1

Lite Edition SKU 2

Pro Edition SKU 3

Custom SKU 4

Time

Price

Other

Usage

Key Wins: Faster Time to Market

& Lower Maintenance Cost

Key Wins: Sales Agility & Customer

Alignment

InishTech SaaS SDK

What does licensing provide for the

ISV?

• Software Protection

– The ability to protect your code from unauthorised and illegal

misuse

• Piracy

• Tampering / Reverse Engineering

• Casual misuse

– Why?

• Compliance = monetization

• Software fidelity & reputation

• Malware

What does licensing provide for the

ISV?

• Sales Model Versatility

– Price based on SKU

– Time- and / or usage-based pricing

– Pay as you Go models

– Why?

• Customer choice

• Price versatility

• Market reach

• Up-selling, renewals & upgrades

What does licensing provide for the

ISV?

• Analytics / Feedback

– Who are my customers?

– SKU / feature popularity

– License compliance

– Why?

• Customer info for CRM

• Usage info for tech / marketing

• Licensing info for finance / sales

Software Potential Key Elements

Software Potential How does it work?

Which aspects of your business are

affected?

Develop

Deploy Operate

Package

Developer protects

code & assign

attributes to license

features (i.e. hooks to

Software Potential)

Product Managers

define products,

features, Editions etc.

Install / provisioning –

activation of software

for customer – often

automated

License validated at

runtime, automated

entitlement

decisioning

Your Application • Code transformation is controlled by a Permutation that is

either vendor or optionally product specific

• Permutation is downloaded to Code Protector tool

• Code Protector converts CIL into Secure Virtual Machine

Language (SVML) using Permutation settings

• All benefits of .NET managed code retained

• Runtime DLLs packaged with ISV application to run SVML

• Application runs as normal except the SVML is executed by the

Secure Runtime

Code Protection

Transformed Code is Protected

Code

private static System.Data.DataRow AddPatient()

{

…..

uint MaxPatients = MaxPatientsFeature.Limit.TotalUsageCount;

uint CurrentPatients = (uint)GetNewPatientCount();

if (CurrentPatients < MaxPatients)

{

string connectionString=“Provider=Microsoft.Jet.OLEDB.4.0;DataSource=MedicalImage.mdb;Password=medical”;

OleDbCommand insertCommand = new OleDbCommand(insertString, connectionString);

insertCommand.ExecuteNonQuery();

return GetPatientRow(patientID);

}

else

{

MessageBox.Show("The maximum number of patients for this license has been reached.");

return null;

}

}

Ori

gin

al

Fu

ncti

on

Tra

nsfo

rmed

Fu

ncti

on

public static DataRow AddPatient()

{

object[] args = new object[0];

object obj2 = SLMRuntime.SVMExecMethod(null, "ed036b16124148cab8f47aa5dbf86e22", args);

return (DataRow) obj2;

}

One-way

transformation