Montage allows teams and communities to effortlessly build ecosystems that scale. We think of an ecosystem as a set of related software packages, applications and products that are used together. These ecosystems can be organized based on programming languages, tools, market verticals, or any other organizing concepts that makes relevant packages, applications, and products easier to find and use. Montage provides infrastructure to support generic ecosystem requirements, including packages, products, licenses, installers, and more. Montage can be extended to support any existing or new ecosystem.
Software solutions continue to progress towards the concept of composable software architecture. The concept is simple: The more flexible a software technology is, and the easier it is to integrate and change, the more useful it is. Businesses continue to demand greater flexibility to quickly adapt to new market conditions and new solutions. And composable business architectures require composable software architectures. For an excellent overview, read this:
Beyond composability, software solutions often need to be community driven. You may want to build a software solution for a market vertical and have third parties develop content for it, either free content or possibly premium content that they can monetize. You may want to be able to craft your product licensing flexibly and easily according to your requirements, with the ability to quickly change how you monetize software that has already been deployed. And you would want the same for your third-party content creators. Montage is built to offer best-in-class package deployment and marketplace support. For ecosystem creators, this gives your ecosystem the quickest path to market, and a share of the marketplace platform commission for your ecosystem.
This is an important question, and the answer involves deficiencies in package management and the lack of a functioning market to facilitate the digital economy needed to drive the composable software architecture of the future.
A company may wish to create a software application for a specific market vertical and develop it so that its community of users can extend it. Montage is an obvious solution to this problem, as it allows the company to not have to re-invent the package management aspects of the solution. The company would extend Montage with a new ecosystem to organize the packages and products, and create a new “installation target” definition where community content will be logically be installed.
Programming language ecosystems (i.e. C#, Java, Python, etc.) typically have their own package distribution software of choice, such as Nuget, Maven, and pip. These package management tools are designed to manage distributing and installing the packages into the environment- or language-specific “installation target” (C# desktop project, Python environment, etc.). Chocolately is a tool that manages the installation of full software applications to the user’s computer. In this regard, the user’s computer itself can be logically thought of as the “installation target” for the Chocolatey software application packages.
So what’s different about Montage? Each of these package management systems have their own notions about what a package is, what an installation target is, and what it means for a package to be installed to that installation target. These package management systems also generally support dependency resolution inside their respective installation targets. If one package depends on the other, the other package is also installed, but only inside the same “homogeneous” installation target.
Montage is unique in that it is specifically designed to maintain abstract notions of packages, installation targets, and installers, so that it can incorporate these preexisting package management systems in its infrastructure support. It is designed to be extensible to support these and future package requirements. A Montage package installed into one type of installation target (for example, a C# project) can declare a dependency on another package (i.e., Microsoft Visual Studio) being installed to a different installation target, such as the computer’s “installed applications” installation target. This results in the concept of a Montage Activity as a heterogeneous graph of packages and installation targets. This activity’s dependency graph must be “unified” with all other activities, but the result is hyper-agile activities that can be installed, including all development tools, with a guarantee that the project will build and run. The result is dramatic reductions in setup time for even the most complex workflows, resulting in a natural, effortless, and intuitive experience for users.
To learn more about Montage package management, click here.
Package management systems allow libraries to easily be shared and incorporated by reference into other libraries. The incredible scale of these package management systems is clearly demonstrated by Nuget’s package download statistics, currently easily averaging over 1 billion package downloads per week.
These package management systems provide discoverability of the packages but offer no marketplace infrastructure for the licensed purchase of premium packages. Montage provides this infrastructure by allowing developers to effortlessly create and manage products that control download and execution policies. These policies can easily be changed even after packages have been deployed, allowing package authors to experiment with pricing models. To sell software, all that is needed is an ability to build useful packages/content and a bank account. Software ecosystems require licensing technology that is frictionless but flexible.
But Montage licensing is designed as much for users as it is for merchants. The Montage platform allows users to manage all Montage licenses purchased by their organization in a single place. This creates a single, simple learning curve to manage licenses across ecosystems and merchants. Montage allows users to share activities involving software from many vendors, and even sell these useful activities, even if the user does not have the distribution rights from third party merchants. Montage ensures that other users of the activity have all licensing requirements for the third-party software satisfied. Montage licensing blends seamlessly into all ecosystems. This infrastructure takes the burden off individual developers, while leveraging the enormous network effects created from dependency graph formations.
To learn more about Montage licensing, click here.
Software continues to transform every aspect of business and daily life, and new software solutions to wide-ranging problems continue to proliferate. These solutions, however, are commonly just one smaller part of a larger problem. Companies do not need to become natural language processing experts and roll their own chat box, for example. Companies need to quickly find the best chat box solution and effortlessly incorporate it into their business CRM strategy. Alternatively, using Montage a company can leverage a third-party chat box and bundle it into a new software and product composition. Software composability will fundamentally drive the future of software architectures, as ease of integration becomes paramount, and as the need for specialization, expertise, and ease of integration increases.
Tomorrow’s killer apps and business system juggernauts will need to pull from a rich montage of composable software solutions with breakneck speed to market. Montage provides the infrastructure needed to support this software component digital economy of the future.