O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Licensing for cross-platform applications made with Python, PHP, and JavaScript

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Carregando em…3
×

Confira estes a seguir

1 de 47 Anúncio

Licensing for cross-platform applications made with Python, PHP, and JavaScript

Baixar para ler offline

Leading market surveys consistently put JavaScript, PHP, and Python at the top of the list of the most favored programming languages. Historically, these languages were sidelined when it came to protecting and licensing software. Software protection matters most in the desktop and embedded application domain, where C/C++ used to be the original top dog, but the last decade has brought the rise of Java and .NET languages as the new contenders.
JavaScript, PHP, and Python used to be the languages of choice for simple scripts or browser and other web applications, but with HTML5 applications and environments and frameworks like Electron and node.js getting more and more prominent and Docker containers providing a great way to deliver former web applications, this old demarcation line is a thing of the past.

One reason behind this recent upsurge in the popularity of JavaScript is the cross-platform potential of these languages, which makes the porting of applications to other platforms cost effective and convenient. At the same time, this behavioral change creates new conditions for licensing and software protection purposes.
The three strategies have unique strengths to match the use case and chosen tool chain.
Watch the webinar: https://youtu.be/7OpoDL6rr3U

Leading market surveys consistently put JavaScript, PHP, and Python at the top of the list of the most favored programming languages. Historically, these languages were sidelined when it came to protecting and licensing software. Software protection matters most in the desktop and embedded application domain, where C/C++ used to be the original top dog, but the last decade has brought the rise of Java and .NET languages as the new contenders.
JavaScript, PHP, and Python used to be the languages of choice for simple scripts or browser and other web applications, but with HTML5 applications and environments and frameworks like Electron and node.js getting more and more prominent and Docker containers providing a great way to deliver former web applications, this old demarcation line is a thing of the past.

One reason behind this recent upsurge in the popularity of JavaScript is the cross-platform potential of these languages, which makes the porting of applications to other platforms cost effective and convenient. At the same time, this behavioral change creates new conditions for licensing and software protection purposes.
The three strategies have unique strengths to match the use case and chosen tool chain.
Watch the webinar: https://youtu.be/7OpoDL6rr3U

Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (20)

Semelhante a Licensing for cross-platform applications made with Python, PHP, and JavaScript (20)

Anúncio

Mais de team-WIBU (20)

Mais recentes (20)

Anúncio

Licensing for cross-platform applications made with Python, PHP, and JavaScript

  1. 1. Licensing platform independent applications with Python, PHP, and JavaScript Ruediger Kuegler, VP Sales & Professional Services ruediger.kuegler@wibu.com Joerg Jans, Professional Services joerg.jans@wibu.com Python, PHP & JavaScript 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 1
  2. 2. Use Cases Web Applications with HTML 5, CSS3, and JavaScript 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 2
  3. 3. Web Applications with HTML 5, CSS3, and JavaScript  Mobile applications for all types of devices (PCs, mobile devices, tablets)  Current application always available, no outdated local version on the user's PC  No updates necessary for the user  No administrator rights necessary for the user, only browser required  Development tools are getting better and better 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 3
  4. 4. Licensing Scenario I  Scenario  A software publisher develops a product in the form of a web application  The software publisher sells this complete package (server and clients) to one or more service providers  Each service provider resells the web application to their users and generates revenue  Requirement  The software publisher wants to check that the service providers use the web application within the agreed license terms (number of servers, number of users, functionality, time license, ...) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 4
  5. 5. Licensing Scenario II  Scenario  A service provider develops a web application  The application runs on a server operated by the service provider (own data center, Azure, AWS, ...)  The service provider sells the web application to their users and generates revenue  Requirement  The service provider wants to control the use that their users make of the web application (number of users, functionality, time license, ...) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 5
  6. 6. Licensing Scenario III  Scenario  A software publisher develops a product in the form of a web application  This web application is delivered to the users and runs locally on their system, for example:  As a local desktop application  On a delivered controller / embedded device  Requirement  The software publisher wants to control the use that the users make of the application  Ability to enable additional functions for the users 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 6
  7. 7. Licensing Scenario IV  Scenario  A software publisher is already selling a desktop application  In the future, some functionality will also be offered via a mobile application (i.g. at a construction site)  Such functionality requires a server application. This is offered as a service by the software publisher, but can also be operated by the users themselves  Requirement  The software publisher wants to control the use that their users make of the web application (number of servers, number of users, functionality, time license, ...) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 7
  8. 8. Use Cases Node.js Applications 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 8
  9. 9. Node.js Applications  JavaScript runtime environment  Platform for network applications or web server  Optimized for performance and resource saving  Event-driven architecture  I/O operations are not blocked  Single threads per operation  Well suited for real-time applications  Modular architecture 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 9
  10. 10. Licensing Scenario V  Scenario  A service provider develops a web application with node.js (server)  The application runs on a server operated by the service provider (own data center, Azure, AWS, ...)  The service provider sells the web application to their users and generates revenue  Requirement  The service provider wants to control the use that their users make of the application (number of users, functionality, time license, ...) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 10
  11. 11. Use Cases Desktop Applications with Electron 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 11
  12. 12. Desktop Applications with Electron  Runtime for desktop applications with JavaScript / HTML5 / CSS  Open Source  Uses node.js and Chromium  Uniform source code for all target platforms  No platform-specific languages (C#, Objective-C, ...)  Source code from existing web application reusable  Native applications for target platforms 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 12
  13. 13. Licensing Scenario VI  Scenario  A software publisher creates a desktop application with Electron  Requirement  The software publisher wants to control the use that their users make of the desktop application (number of users, functionality, time license, ...) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 13
  14. 14. Use Cases Python Applications 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 14
  15. 15. Python Applications  Fast and easy programming  Cross-platform support  Large community (documentation, extensions, examples)  Server and desktop applications  C-based extensions possible  Widely used in embedded systems  Conversion into more executable files possible (Cython) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 15
  16. 16. Licensing Scenario VII  Scenario  A software publisher creates a desktop application with Python  Requirement  The software publisher wants to control the use that their users make of the desktop application (license, functionality, time license, ...) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 16
  17. 17. Technical Solutions CodeMeter Overview 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 17
  18. 18. Delivery to the end user Integration into processes Integrate once – Deliver again and again … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 18 Integration into the software Software Software CodeMeter Protection Suite Integate once Deliver again and again ERP/CRM e-commerce Software License portal License Central License Central
  19. 19. CodeMeter Licensing System 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 19 CmDongle Hardware-based Security License Server License server in LAN / WAN CmCloudContainer User-bound license in the cloud CmActLicense Target bound license file Universal Firm Code
  20. 20. Technical Solutions CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 20
  21. 21. CodeMeter Protection Suite CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 21 Automatic license checks Individual license check Automatic IP protection Anti-debug methods CodeMeter variant used Encryption of individual functions Integrity protection Native Code CodeMeter Runtime IxProtector AxProtector AxProtector IP Protection IxProtector IP Protection Java.NET CodeMeter Runtime CodeMeter RuntimeCodeMeter Embedded AxProtector .NET AxProtector Java AxProtector CmE IxProtector CmE Windows, macOS, Linux Windows, macOS, Linux, Android Android, Linux Java SE, Java EE .NET Framework, .NET Standard
  22. 22. CodeMeter Protection Suite  Mainly used for desktop applications  Requires conversion to application (exe) or library (dll, so)  Cython, Electron  Automatic integration of licensing calls  Automatic protection against reverse engineering  Automatic protection of the IP 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 22
  23. 23. Technical Solutions CodeMeter Core API 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 23
  24. 24. CodeMeter Core API // Allocate license CmAccess2(…) // Encrypt using license CmCyrpt2(…) // Retrieve license information CmGetInfo(…) // Release license CmRelease(…) // Error handling CmGetLastErrorCode(…) // Create license request CmGetRemoteContextBuffer(…) // Import license update CmExecuteRemoteUpdate(…) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 24
  25. 25. CodeMeter Core API  Prerequisite: Calling a C API (.NET-API / Java-API)  Python, node.js  Integration of simple queries (CmAccess2)  Integration of encryption methods: Encrypted Data in Source – EDIS (CmCrypt2)  Reading license information  Requires a local CodeMeter Runtime installation 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 25
  26. 26. Technical Solutions CodeMeter Cloud Lite API 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 26
  27. 27. CodeMeter Cloud Lite API // List all available licenses // and all Product Items GetContents(…) // Allocate license Access(…) // List all Product Items // of allocated license GetContensForHandle(…) // Send “Keep-Alive” signal Revalidate(…) // Release license Release(…) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 27
  28. 28. CodeMeter Cloud Lite API  Available as SOAP and REST API  JavaScript, Python, and PHP  Simple license queries  API based on CodeMeter Core API, but including specificities like  Lifespan  “Keep Alive” 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 28
  29. 29. Best Practice Solutions & Demo Python and CodeMeter Core API 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 29
  30. 30. Python and CodeMeter Core API  CodeMeter Core API calls in application  Wrapper module for C library  Check return values of CmAccess2 and CmCrypt2 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 30
  31. 31. Python and CodeMeter Core API import CodeMeter class License: def __init__(self, productcode): self.pc = productcode def getError(self): return CodeMeter.CmGetLastErrorCode() … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 31
  32. 32. Python and CodeMeter Core API … def check(self): cmacc = CodeMeter.CMACCESS2() cmacc.mulFirmCode = 6000010 cmacc.mulProductCode = self.pc cmacc.mflCtrl = CodeMeter.CM_ACCESS_STATIONSHARE flCtrl = CodeMeter.CM_ACCESS_LOCAL_LAN hcmse = CodeMeter.CmAccess2(flCtrl, cmacc) if hcmse == 0: return False … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 32
  33. 33. Python and CodeMeter Core API … cmcrypt = CodeMeter.CMCRYPT2() Data = CodeMeter.c_ubyte*16 data = Data(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0) result = CodeMeter.CmCrypt2(hcmse, 0, cmcrypt, data, 16) CodeMeter.CmRelease(hcmse) if result != 16: return False # TODO: check data in detail return True 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 33
  34. 34. Best Practice Solutions & Demo Python and CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 34
  35. 35. Python and CodeMeter Protection Suite  Compilation as extension with Cython  pyd: Library in the native format of the target system  Starts with _launcher.py script  Encryption with CodeMeter Protection Suite  Choice of extensions (combination encrypted / non-encrypted possible) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 35
  36. 36. Best Practice Solutions & Demo PHP and CodeMeter Cloud Lite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 36
  37. 37. PHP and CodeMeter Cloud Lite  CodeMeter Cloud Lite calls in PHP code  SOAP or REST  Binding licenses to the user account  Existing user management  OAuth2 provider (e.g. Facebook)  …  Checking license options (entryinfo) if required  License doesn’t stay allocated in our sample 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 37
  38. 38. PHP and CodeMeter Cloud Lite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 38
  39. 39. PHP and CodeMeter Cloud Lite (Source Code) function checkLicense($user, $productCode) { $accessInformation = array( "firmCode" => 6000010, "productCode" => $productCode, "featureCode" => 0, "shareDevice" => false, "productItemReference" => 0, ); $access = CloudLite_Access($user, $accessInformation, 120); … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 39
  40. 40. PHP and CodeMeter Cloud Lite (Source Code) … if (!$access) { return null; } … $handle = $access->return->handle; if ($handle == 0) { return null; } … 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 40
  41. 41. PHP and CodeMeter Cloud Lite (Source Code) … $entryinfo = CloudLite_GetContentsForHandle($user, $handle); $release = CloudLite_Release($user, $handle); return $entryinfo; } 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 41
  42. 42. Best Practice Solutions & Demo Electron and CodeMeter Protection Suite 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 42
  43. 43. Electron and CodeMeter Protection Suite  Package (Windows) contains  Application (without Intellectual Property)  Folder with *.js files, *.html files, *.css files  Integration (Windows)  Encryption of Application with activated FileEncryption  Encryption of data files 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 43
  44. 44. Electron and CodeMeter Protection Suite (Exe) [WIBU-SYSTEMS Control File] Guid={00090000-0000-1100-8005-0000C06B5161} … … -cad0 -cas0 -cav … … -o:"Protectedwebinar.exe" "Unprotectedwebinar.exe" 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 44
  45. 45. Electron and CodeMeter Protection Suite (Data) [WIBU-SYSTEMS Control File] Guid={00090000-0000-1100-8005-0000C06B5161} … … -cdc … … -o:"Protectedresourcesappmain.js" "Unprotectedresourcesappmain.js" 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 45
  46. 46. Electron and CodeMeter Protection Suite (Encrypted *.js File) 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 46
  47. 47. https://www.wibu.com info@wibu.com Europe: +49-721-931720 USA: +1-425-7756900 China: +86-21-55661790 Japan: +81-3-43608205 Many thanks for your attention! 2019-06-27 © WIBU-SYSTEMS AG 2019 - Licensing for cross-platform applications with Python, PHP, and Javascript 47

×