A Guide to Publishing and Licensing Simulation Applications
Mark Robins January 7, 2019
In a previous blog post, we explored whether U.S. copyright law protects scientific models. That post concluded that models, alone, are frequently incapable of reflecting the type of creative expression required to be eligible for protection but also noted that functionality added to models — as occurs when building applications — may well contain such creative expression. Here, we explore the tools that COMSOL offers to help users of the COMSOL Multiphysics® software to publish and protect their proprietary applications.
Building and Distributing Applications: Your Rights
The Application Builder enables you to take a model created in COMSOL Multiphysics, build a customized interface for the model that reflects the needs of your particular organization or customers, and add other custom-programmed functionality to the model. The resulting application is a data structure reflecting your own choices in customizing the interface and adding functionality. You or your organization may claim a proprietary interest in that application. However, the application will also contain elements deriving from COMSOL Multiphysics, such as object code, user interface elements, and equation formulations, in which COMSOL asserts a proprietary interest.
An example of a simulation application that can be used to analyze touchscreen designs.
COMSOL licenses to its users the rights to create and publish applications through the COMSOL Software License Agreement (SLA) that is delivered upon installation of COMSOL Multiphysics. A “license” simply means “permission to do or not to do something.” A license agreement is a contract between two or more parties containing a license and, potentially, other terms and conditions. This post discusses version 5.4 of the COMSOL SLA and features available in COMSOL Multiphysics as of version 5.4.
The COMSOL SLA and COMSOL’s Publishing Tools
COMSOL provides various tools that enable you to commercialize or otherwise publish your applications and regulates these tools through the COMSOL SLA.
Distributing Applications via COMSOL Server™
First, an application can be distributed to others. When using an application, it will be necessary for you to run it in conjunction with an authorized COMSOL Multiphysics® license or COMSOL Server™ license (discussed below). However, you can also distribute the application by itself. Section 3(b)(ii) of the COMSOL SLA licenses to users certain rights to distribute such applications for use by others. According to Section 3(b)(ii), such applications may be offered for use in conjunction with either an authorized COMSOL Multiphysics® license pursuant to the COMSOL SLA or a COMSOL Server™ license that is offered under its own end user license agreement. Section 3(b)(iv) of the COMSOL SLA contains certain restrictions on the marketing, distribution, and use of applications to protect the commercial and intellectual property interests of COMSOL and those who supply COMSOL with components that are incorporated in COMSOL Multiphysics.
Managing Usage of a COMSOL Server™ License
Second, a COMSOL Server™ license gives you access to the functionality within COMSOL Multiphysics® that is needed to host and run an application, as set forth in Section 2(h)(iv) of the COMSOL SLA. Not only do you have the option of relying on the person who buys a license to your application to obtain his or her own COMSOL Server™ license to host and run it, but you also have the option of making one or more seats or time on one or more seats on your own COMSOL Server™ license available to your customers to host and run applications you publish to them.
Specifically, Section 2(e) of the COMSOL SLA grants the owner of a COMSOL Server™ license the right to sublicense to others the right to use that license, in whole or in part, for the purpose of hosting and running one or more applications under certain conditions designed to protect the commercial and intellectual property interests of COMSOL and those who supply COMSOL with components that are incorporated in COMSOL Multiphysics®.
Academic Server Licenses
Third, an academic server license gives degree-granting institutions the right to publish applications to be run extensively inside and outside the institution. Specifically, Section 4(b) of the Academic Addendum to the COMSOL SLA grants the license owner the right to have up to 300 concurrent users for an academic server license, each of which may run up to 4 applications at a time, as well as the right to sublicense the right to use that license to students, faculty, and staff of any other academic institution under similar conditions to those under which a COMSOL Server™ license may be sublicensed.
Fourth, the COMSOL Compiler™ deployment product enables users to compile their applications into standalone executable forms that contain the functionality from COMSOL Multiphysics necessary to make such applications run and that may also contain additional functionality supplied by the user. Section 3(c) of the COMSOL SLA licenses to users certain rights to distribute compiled applications both inside and outside the organization of the license owner subject to the similar restrictions to those on applications that are not compiled.
A compiled application contains its own set of COMSOL Multiphysics functionality that makes the application run: the COMSOL Runtime™ libraries. The COMSOL Runtime™ libraries have their own end user license agreement, and Section 3(c)(iv) of the COMSOL SLA requires that the COMSOL Runtime™ libraries be offered under that end user license agreement and that there be no interference with that agreement. Thus, COMSOL Compiler™ allows you to take your application, turn it into a standalone software product, and publish it to your customers to run.
How Do I Protect My Proprietary Applications?
If you put the time and investment into developing your own application and you wish to publish or license it to others, you may want to take steps to define the terms on which you license your application to others in order to protect your proprietary interest and to set the rules by which you allow your application to be used. COMSOL has provided tools to help you do that.
Section 3(b)(iv) of the COMSOL SLA allows you to offer your applications under terms and conditions of your choosing, provided that your terms are compatible with the COMSOL SLA’s restrictions on applications and do not present a conflict with COMSOL’s licensing terms or the licensing terms of any third-party software programs that your applications may require to run. Similarly, Section 3(c)(iv) of the COMSOL SLA allows you to offer your compiled applications under terms and conditions of your choosing, provided that those terms do not conflict with the COMSOL’s licensing terms for the COMSOL Runtime™ libraries.
Not only does COMSOL grant these permissions, but COMSOL has provided the tools for you to implement them. Specifically, COMSOL Multiphysics enables users to add licensing terms and conditions to applications and compiled applications in at least two ways:
- Through an “About” link in the application’s graphical user interface, such as is often found in graphical user interfaces for software products to collect legal notices
- Through a “click-through” license agreement
The “About” Link Option
Many software programs include a file or files containing legal notices. These files are often labeled “About” or “Readme”. COMSOL Multiphysics automatically includes an “About” text in every application you create. Below is an example of an application for the sound generated by a tuning fork. It is a simple extension of the corresponding application in the COMSOL Multiphysics® Application Library. The link to the About text is in the bottom-right corner in the screenshot below.
The About text in each COMSOL® application will contain certain legal notices from COMSOL. However, in addition to COMSOL’s legal notices, you are able to include your own legal terms and conditions in this file. Furthermore, COMSOL publishes a form of simple license that is similar to permissive “open source” licenses that allow the liberal use, modification, and republication of software programs. This form enables you to allow others to use, republish, and even modify your application (within the framework for modifying applications that is supplied by COMSOL).
COMSOL’s template, referred to as its “Application License Agreement”, is designed to resemble permissive open source licenses, while also being consistent with the restrictions on applications in the COMSOL SLA. COMSOL’s Application License Agreement template can be found on the COMSOL SLA page under the column labeled “Application License Agreement”. You are free to use this template for your own applications or to adopt your own set of licensing terms and conditions that are consistent with the requirements of the COMSOL SLA. Only you and your legal advisor can determine which terms and conditions are best for what you plan to do with your application.
To insert terms and conditions in the About text for your application, open Application Builder, go to the Settings window of the Main Window node in the application tree, and insert the license terms in the Custom text field. COMSOL’s Application License Agreement serves as an example here.
The settings for the main window in an application.
The “Click-Through” Agreement Option
Many software publishers prefer to use “click-through” agreements to pass on the terms and conditions by which they license their programs for use by others. A click-through agreement requires that the user affirmatively click a button or box, signifying his or her acceptance of the terms and conditions of the license agreement. The Application Builder provides the tools needed to include a click-through agreement in your application if you so desire. Again, only you and your legal advisor can determine what form of presenting the agreement and what terms and conditions are best for what you plan to do with your application.
The screenshot below shows the tuning fork demo app from the Application Library with an added click-through agreement, which, in this example, is a modified version of COMSOL’s Application License Agreement (prepared for illustration purposes).
How to Add a Click-Through Agreement to an Application
Let’s go over how to add click-through agreements to an application. For more detailed instructions on how to implement any of these steps, see the Introduction to Application Builder. The example application shown here can be downloaded from the Application Gallery.
The click-through agreement is made available in the application by using a Web Page form object to create a form containing that agreement, which is labeled sla, and to include two radio buttons, as well as an OK and Exit button, as shown below.
The form used to show the click-through agreement.
The Web Page form object contains the agreement, which you will need to enter in HTML format, as shown below.
When the user accepts the license agreement by clicking OK, a file is saved to the platform-independent folder user. In Windows®, the file is typically located in C:\Users\user_name\.comsol\v54\applications\files\user\sla_accepted.dat. If this file exists, it means the user has accepted the license agreement and the application is enabled for use. If the user does not accept or clicks Exit, no file is saved and the application quits. When the application starts, the method
p_init_application is automatically run. This method call can be found in the Events section in the Settings for the main form. The method
p_init_application checks if the file already exists (if the user has accepted the license agreement in a previous session). If the file does not exist, the OK button is disabled and the form sla containing the license agreement is shown as a dialog box. The screenshot below shows this initialization method, which also contains additional code related to the application’s function.
When the user clicks OK, the method
sla_status_change, which writes the file
sla_accepted.dat to the user folder, is run, as shown below.
If the user clicks Exit, the method
sla_exit is run, as shown below.
In addition, when the user clicks the radio button, the method
enable_ok_button enables or disables the OK button, depending on whether the user chooses to accept the license agreement or not, as shown below.
The views expressed in this blog post are offered for purposes of discussion only and should not be construed as legal advice or as the official position of COMSOL on any legal matter. Nor are the views expressed here intended as exhaustive coverage of the subjects addressed here. Each situation is different, and different circumstances may result in different legal outcomes.