brief introduction to inishtech and the software potential service
DESCRIPTION
Brief presentation on InishTech, the Software Potential Code Protection and Licensing service and how ISVs can benefits from using smart licensing.TRANSCRIPT
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
www.softwarepotential.com
Thank You!