What's New in Protection!
v 4.0
Framework
- Support of right-to-left orientation (depending on default locale) for all the GUI components and dialogs.
- Support of Traditional Chinese and Arabic languages.
Protection! Enterprise
Protection! Enterprise is a new product designed to bring real value to software publishers by providing full
automation of licensing processes together with management of licenses, customers, and evaluators. Protection!
Enterprise consists of the following components:
Protection! Enterprise Server
Protection! Enterprise Server is a plug-in to Protection! Web Services Application, set of libraries and database DDL
scripts necessary to create a database. The main features are:
- Host an unlimited number of products
- Generate, activate, deactivate and distribute an unlimited number of licenses for each hosted product.
- Account based access control.
- Ability to create an unlimited number of accounts with per account set of permissions for all licensing
activities (license delivery type, license actions and license types).
- Automated logging of all licensing activities.
- License activation support with automated management of available activations.
- Maintain number of available activations.
- License deactivation support.
- Trial licenses support with automatic ability to restrict customers from obtaining multiple trial licenses for
the same product.
- Serial Numbers support with automatic tracking of previously issued licenses.
- Support for Online and E-Mail delivery of licenses.
- Customizable E-mail message templates with extensive Macro language support.
- Support for Oracle Database 10g/10g XE/11g.
- Support for MySQL Server 5.x and later.
Protection! Enterprise Manager
Protection! Enterprise Manager is a rich GUI client for managing all aspects of the license processes, customers and
their licenses. The main features are:
- Authentication and authorization support per Enterprise Server with ability to maintain Enterprise Server
users.
- Connect to multiple Enterprise Servers.
- Manage accounts and permissions for all types of licensing activities (license delivery type, license actions and
license types).
- Automated generation of default accounts and e-mail templates during products import.
- Design custom e-mail templates for each product/edition/license type combination.
- Support for Code Complete during design of e-mail messages.
- Take products “off-line” by changing their “active” status.
- View complete license and license action statistics.
- View customer information for each individual license.
- View license actions for each individual license.
- Drill-down to customer’s details and license actions for each license.
- Change existing license action to inactive state (soft delete).
- Drill-down to customer and license detail info for each individual license action.
- View customers and all customer’s licenses and license actions for each individual license.
- Drill-down to customer’s licenses and license actions for each license.
- View customer’s details, send email to customer and navigate to customer’s web site.
- View and edit details info for customer, license, license action.
- Manually create new license actions.
- View reports on all licensing activities and filter each report based on license/product/customer
attributes.
- Rich presentation grid with ability for high level of customization (i.e., create custom grouped views with
filters and custom sort order; manage visible fields (columns) and their order;etc.).
- Import of license actions from the Protection! Sales application’s license delivery log.
- Import products from the Products Storage using the Product Import Assistant.
- Export users that requested evaluation license but have not yet purchased commercial license for the product
(evaluators).
- Export active view.
v3.5
Framework
- Added the HeadlessProtectionFactory class should be used to create and initialize Protection! objects for headless applications. It's strongly recommended to update existing headless applications to avoid some potential issues (related to AWT) that could happen under some configurations and/or containers.
- Added ability to discover IP addresses and ports of available Licensing Servers for Licensing and License Lock Assistants.
- Added ability to choose already license to the Deactivation Assistant.
- Improved proxy support for Assistants.
- Extended the deliver(...) method of the LicensingFacadeDelivery interface by adding a LicensingFacadeSession parameter.
Control Center
- Added the
-deactivation_info
option to the command line allowing to view latest deactivation information.
- Added the
-deactivation
option to the command line allowing to force deactivation process.
- Added drop down list of recent opened files to the toolbar's Open button.
Developer Control Center
- Updated headless code snippets to reflect usage of HeadlessProtectionFactory class.
- Added new audit rules to point the users' HOME related issues for headless applications.
- Added unique audit rule codes.
- Added ability to create new products using optional New Product Assistant (controlled via the Options | Use New Product Assistant menu item).
- Added "Product Type" identifier (e.g. GUI or Headless) to the product attributes.
- Added Code Snippets association with the particular product.
- Added ability to specify related paths for the File Digest Entries.
Sales Control Center
- Added ability to preview license data prior to the delivery (controlled via the "Warn Before Delivery" menu item).
Other
- Documentation improvements.
- Minor improvements and issue fixes.
v3.0
Licensing Server Support
Licensing Server is a new Protection! subsystem responsible for
distribution of licenses and for tracking of the concurrent use of
licenses. The following components are included:
Licensing Sever Application
The Licensing Server application is a turnkey solution that is deployed
inside the customer's network. It can be run as a Windows service or as
a UNIX daemon. The main features of the Licensing Server are:
- Support for Floating and Named User models by tracking licenses
usage using the concept of license lock (acquire) and unlock (release).
- Ability to revoke license locks sessions to force client
applications to unlock (release) licenses.
- License lock session’s expiration to allow correctly releasing of
the license lock when the client application is not responding or the
network (connection to the Licensing Server) is down.
- Ability to host and to distribute an unlimited number of licenses
for an unlimited number of products.
- Ability to allocate licenses for specified users and/or user
groups.
- Ability to control access to the Licensing Server by using access
control lists (whitelist and blacklist) for any types of operations.
- Ability to remotely monitor and manage the Licensing Server via
the supplied Management Console application.
Management Console Application
The Management Console is a GUI application intended for remote
monitoring and management of the Licensing Server(s). The main features of
the Management Console are:
- Authentication and authorization per Licensing Server with
the ability to maintain the Licensing Server users.
- Support for multiple Licensing Server connections.
- Ability to discover running instances of the Licensing Servers
via network broadcast.
- Ability to maintain access control lists.
- Ability to view licensing statistics and server statistics.
- Ability to disable/enable any licensing activities.
- Ability to shut down the Licensing Server.
- Ability to visually monitor current license sessions.
- Ability to revoke specific license sessions.
- Ability to maintain licenses storage.
- Ability to maintain license users/groups
- Ability to allocate licenses for specified users and/or user
groups.
Client Application Code
Client application code allows for seamless integration with the
Licensing Server and has the following main features:
- Automatically handling of the Named and Floating User licenses by
acquiring and further maintaining license lock by using a scheduled
polling connection to the Licensing Server.
- Ability to receive notifications from the Licensing Server when
the license lock is expired or revoked by the Licensing Server
administrator.
- License Lock Assistant Dialog that is shown when license lock
could not be acquired. It helps in resolving the Licensing Server
connection problems and allows client to postpone license
acquisition and wait for the license lock availability. Optional
ability to specify Licensing Server
address helps choosing the right Licensing Server when it is not specified
in the license.
- New Licensing Assistant functionality responsible for
end-user assistance in obtaining licenses from the Licensing Server,
including the ability to discover available Licensing Servers over network.
Protection! Launcher
The Launcher concept allows placement of almost all of the Protection!
initialization data (currently presented in standard code snippet) into
the Launcher resource. Launcher can be loaded at runtime and used to
initialize Protection! system. Use of the Launcher provides an easy way
to update Protection! configuration (e.g. adding secret storages or
changing some other configuration options) without the need to manually
modify source code and therefore rebuild the application. The following
are the main features of the Protection! Launcher:
- Ability to maintain multiple Launcher build configurations. Each
build configuration allows specifying:
- Target – either file or an archive to generate Launcher.
- Launcher Type – either GUI or headless.
- Whether Launcher verbose output is turned on or off.
- Whether Launcher must be encrypted.
- Ability to build Launcher using specified Launcher Build
configurations.
- Updated code snippets (GUI (Launcher) and Headless (Launcher)) to
employ all of the new features.
License Storage
The License Storage allows holding and storing an unlimited number of
licenses in one uniform location (container). License Storage is very
useful in such situations when for example:
- There is a need for keeping together all the licenses for
different products from one vendor
- There is a server application that contains a number of different
modules which could be licensed independently.
The main features of the License Storage are:
- Ready-to-use JAR archives based implementation.
- License Storage Screen in Protection! Control Center intended for
viewing and maintaining the License Storages:
- Ability to view contents of the License Storage.
- Ability to add new licenses, modify or remove existing licenses.
- Ability to import licenses.
Integrity Subsystem
The Integrity (former CRC) subsystem is greatly improved allowing
easier integration into client applications and a much simpler build process. The following
are the main new features of the Integrity subsystem:
- Ability to specify JAR, classes and file entries that must be
checked by Integrity subsystem.
- Ability to specify runtime configuration:
- Source – deprecated configuration (pre v3.) where entries and
digest are part of the source file.
- Resource - entries and digest are placed in a resource which
can be loaded and used at runtime.
- File - entries and digest are placed in a file which can be
loaded and used at runtime.
- Support for building of Digest for obfuscated code. Zelix
KlassMaster and RetroGuard obfuscators are currently supported.
- Ability to maintain multiple Digest build configurations. Each
build
configuration allows for specifying:
- Target – either file or archive where Digest data will reside.
- Obfuscation type and location of generated by obfuscator change
log file.
- Mapping of Digest entries for example to allow the building of Digest
for
classes (development) or for archives (deployment).
- Ability to build Digest using specified configuration.
- Updated code snippet of all of the Digest subsystem new features.
Protection! Builder Utility
This new command line utility allows building various Protection!
resources. Protection! Builder Utility allows for use of various build
systems (i.e., Ant) and scripts to automate assembling of protected
applications. This utility allows building:
- Protection! Launchers using specified configuration and optional
target.
- Digests’s using specified configuration and optional target.
- Protection! Web Services application.
Products Storage Protection
This functionality allows protecting products storages for opening and
modification. The main features are:
- Ability to apply read-protection by specifying a password. If
read-protection is applied to the products storage then the correct
password must to be provided to be able to open such products storage.
After read-protection is applied to the product storage, such products
storage will be strongly encrypted. That in turn minimizes possible
damages if products storage was stolen or lost.
- Ability to apply write-protection by specifying a password. If
write-protection is applied to the products storage then the correct
password must be provided to be able to make any modifications to such
products storage.
- "Lock" decorations is introduced in the Product and Integrity
screens
when write-protected products storage is opened.
- Ability to use double-clicks in the status bar to quickly
lock/unlock write-protection.
Product Audit
This new functionality of Developer Control Center (Products Screen)
allows checking selected product for errors, option conflicts and
potential issues depending on selected target (Code Snippet). The
following are the main features of the Product Audit subsystem:
- Ability to view a list of audit results and review
a detailed description for the selected audit topic using the Audit tab.
- Ability to quickly fix audit issues using context
menu or hyperlinks in the issue description or by invoking the default fix
action by pressing the Enter key or mouse double click.
- Ability to ignore specific audits and maintain an
ignore list using the Edit Product dialog.
Control Center
- Support for new User Licensing Models in the
License Screen.
- Added command line options to the Protection!
Control Center to allow for specifying products storage to open and for
printing license and system information during startup. Running Control
Center –help displays all the available options.
- Added ability to use specified License Alias to
provide default license attributes during creation of new licenses.
Sales Control Center
- Ability to optionally place customer information
into the license (Options | Store Customer into the License).
- Ability to manage multiple Facade connections and
view tooltip in the “Send to Backend” button to see connection info.
- Ability to construct an Activation Key using known
end-user attributes i.e. MAC address, host name, user name, etc.
Developer Control Center
- Added ability to specify a License Alias to provide
default license attributes during creation of new licenses.
- Added auto restoring of the recently selected code
snippet in the Products Screen.
Framework
- Improved User Licensing Model which defines how to
handle different users working with the same license. The following
models are now supported:
- “Uncounted” – any number of users can work
concurrently with the license regardless of the license number of
copies value.
- “Floating” – only a certain number of users can
work concurrently with the license according to the license number of
copies value. Actual usage check is done using the network broadcast
facility.
- “Named” - only a certain number of users can work
with the license according to the license number of copies value. This
is done via activation and/or activation-and-lock facility.
- “Floating - Licensing Server” – only a certain
number of users can work concurrently with the license according to the
license number of copies value. Actual usage check is done by
contacting the Licensing Server and acquiring the license lock.
-
“Named - Licensing Server” – only a certain number
of users can work with the license according to the license number of
copies value. Actual usage check is done by contacting the Licensing
Server and acquiring the license lock.
- Added policy to the Network Check to allow for
control when running several instances of protected applications on
either the same or on different hosts.
Other
- Minor improvements and issue fixes.