How We Integrated Backup-as-a-Service with Parallels Automation Using APS 2.0

    Habré already wrote a lot about development and business models for SaaS. For example, this article addresses the issue of selling a service through partners. If the “piece goods” and the service is quite expensive, then the partner can still register customers and configure the service manually. But it is obvious that this approach does not work for mass services. And then it becomes necessary to integrate SaaS with the OSS / BSS platform of the cloud provider to automate the process of providing the service, billing, etc.

    In this article I will talk about what is required to integrate with OSS / BSS platforms, and how we integrated our Backup-as-a-Service with Parallels Automation platform using the open standard APS 2.0. In general, these tips will come in handy for the developer of any cloud service, if there are plans to sell it not only from your site, but let any service provider allow it.

    Who is who?

    I'll start by describing what our Backup-as-a-Service, Parallels Automation Platform, and Application Packaging Standard (APS) are all about.

    --As with the Backup-a the Service - about BaaS already written Habré before . In short, this is one of the types of SaaS service. It combines both cloud and backup: all data is copied over the Web and stored in the provider's data center, and the backup client program is installed on the user's computer. This allows you to transfer to the side of the service provider the entire infrastructure part from storage systems to system software (the need for which disappears) and all its maintenance.

    Application Packaging Standard- An open technology standard developed by Parallels in 2007. Allows independent developers (ISVs) to sell their cloud applications through any service provider, and service providers themselves to quickly deploy and launch new cloud services for sale. Now there are more than 500 applications in the APS standard in the world.

    APS 2 is a new version of the standard, released in 2013. Compared with the previous one, it has more flexibility, performance, and also a service bus, which allows different services to interact with each other (mutual integration for data exchange and simultaneous use). It can be both new and long-existing cloud applications. And consumers of the service can add them to their corporate subscription, manage all their subscriptions from a single control panel and receive a single authentication to access all their services.

    Parallels automation- OSS / BSS platform, which is installed by a service provider or telecommunications company and allows them to launch and sell any cloud services packed in APS and carry out all the necessary operations on them - from service provisioning to billing, integration into a single customer account and resale features.

    At the same time, cloud services can be of any type - SaaS, IaaS, and others: within the Parallels Automation ecosystem, the plug-and-socket principle works as perfectly as possible (connecting a packaged service can be done in just a few minutes). So if a developer wants to sell his service in the network of Parallels partners (and this is more than 9 thousand of its possible sellers), then he comes to the logical option - integration through APS.

    Just for an example, the Top 10 cloud applications sold by Parallels Automation: Microsoft Office 365 (currently sold more than 800 thousand subscriptions), Microsoft Hosted Exchange (more than 700 thousand subscriptions), Open-Xchange, SpamExperts Integration, Hostopia, Mail2World, Microsoft Lync 2010, MozyPro, IDSync, BackupAgent (as you can see, BaaS is in the top ten).

    Subscribing to a service through a cloud provider platform

    Let us briefly review the main scenarios of how the client receives the service, and understand where we need integration between the platform and the service.

    The following is true for most SaaS services and cloud platforms.

    Main stages:
    1. The first stage is setting up a plan for selling a service by a cloud provider:
      1. First, a set of resources is created that you can sell.
        In our case, this may be, for example, the size of disk space available for storing backups or the number of protected virtual machines.
      2. Then these resources are grouped into a plan in which the provider sets limits for resources, prices, types and payment methods, and much more.
      3. After that, the finished plan is published in the online store and becomes available to customers.

      Obviously, a plan can include several services. And their value (in the literal, monetary sense) significantly increases if the services are integrated among themselves.

      For example, E-mail hosting + Anti-spam + Antivirus + Archiving is a very popular service package, and it can be sold much more expensive than just E-mail hosting.

      Settings are made from the admin panel .

      Setting resources included in the plan:

      Configure resources included in the plan

      Setting the period and price of the subscription:


    2. The second step is to order the service by the client .
      After the plan appears in the online store , the customer can:
      1. Choose the necessary services, additional options
      2. Register and place an order
      3. Pay it

      Online store:

      Shop online

      User registration and order placement:

    3. Step Three - Providing Customer Service .
      After the customer has placed and paid for the order, the system:
      1. Create a subscription for him
      2. Configures a service for him
      3. Gives the client access to this service from the client panel

    4. Fourth step - managing the service by the client itself:
      After providing the service, the client gets access to the client panel, from where he can manage this service. For example, configure backups for your virtual machines.

      Client Panel List of users who are allowed to use the User

      Panel service . List of protected machines

      User panel  List of protected machines

      When you click on the “Manage Backups” button in the user panel, it is redirected to the BaaS panel.

      BaaS panel

    5. Step Five, Renewal of Subscription: The
      customer is periodically billed and money is withdrawn for renewal of the subscription. A fee for used resources may also be charged if the client pays upon the fact of resource consumption (pay-as-you-go).
    6. The sixth step, the final one is to delete the service:
      In case the client cancels the subscription, i.e. refuses the service, the system first denies access to the service, and then, after a specified time, deletes the client data.

    SaaS service integration with OSS / BSS platform

    So, we looked at the subscription life cycle: from creation to deletion. Now we will figure out what part of the tasks the platform takes on, and what changes need to be made when connecting a new service.

    1. For a new service, you must define the set of resources available for sale. The platform takes care of setting up and publishing the plan.
    2. Ordering a service by a client and payment usually entirely lies on the platform.
    3. It is necessary to automate the provision and initial configuration of the service.
      In our case, for this it is necessary to implement method API calls for:
      • Creating an organization on the side of BaaS
      • Setting limits for the organization

    4. It is necessary to give the client the opportunity to independently manage the service.
      There are 3 main options for integrating web interfaces for the client panel :
      • You can embed the interface of your service in the client panel of the provider.
        This, from my point of view, is the most preferable option, since it is more convenient for the user to manage all services from one panel.
      • You can redirect the client from the client panel to a separate service panel. In this case, it is recommended to implement the technology of single sign-on (single sign on) so that the client does not have to remember, store and enter a bunch of different usernames and passwords once again.
      • The third option is a combination of the first two. When the most frequently used scripts are available from the client panel, and the client is redirected to the service panel to perform other tasks.

      For our service, we went the third way.
    5. The extension of the service usually lies with the platform, however, if the client pays for the resources used, it is necessary to collect statistics on their use.
      In our case, we periodically call the API method to collect information on resources.
    6. It is necessary to automate the suspension, removal of the service
      In our case, this is a call to the API methods for:
      • Activation / deactivation of the organization
      • Organization deletions

    As we can see, for a simple option of connecting a new service to the platform, not so many changes are required. Of course, there are complex options, especially when several services interact with each other.

    The above is typical for any platform that supports the provision and sale of cloud services (as you know, in the world, many telecoms and providers can have OSS / BSS platforms of different vendors, or even self-written). But we need integration with Parallels Automation specifically: it is used by a number of our partners, in addition, it already costs half of the largest European telecoms. And for this we need to create an APS package for our service.

    Writing an APS package for Backup-as-a-Service

    To start developing an APS package, you must:
    • register on the site
    • request a test environment
    • study documentation
    • prepare the development environment.

    We have been developing in eclipse, as there is a special APS ECLIPSE IDE plugin for it.

    Eclipse with the APS plugin installed.

    Eclipse with the APS plugin installed.

    After setting up eclipse, you can create a new APS project.
    Consider the structure of the APS package. The finished package is a .zip archive that contains:
    • APP-META.xml - package description file. Contains general information about the service and the APS package.
    • / schemas - contains the JSON of the APS resource schema. Usually created automatically by the “aps build” command based on the description of resources from / scripts
    • / scripts - contains scripts describing the service, resources and the logic for providing the service.
      Scripts can be written in different languages. For our package, we chose php because:
      • for php there is an APS PHP Runtime library that simplifies package development
      • accessible examples are also written in php
    • / ui - contains HTML and JavaScript for embedded web interfaces.
      To write the built-in web interface, the APS JS SDK JS library was used , since when it is used, styles from the control panel are inherited.
    • / i18n - contains localization files

    So we:
    • Created a project
    • Added package description to APP-META.xml
    • Define and describe a resource model
    • Define user scenarios: how the user will manage the service. Drawn layouts for web interfaces.
    • Made a web interface
    • Implemented method API calls to our Backup-as-a-Service in / scripts
    • Added localization to the necessary languages ​​in / i18n

    Tip: For developers who will write their APS package, I would recommend contacting the APS team at the stage when the resource model is described, layouts are ready and before starting development for feedback. My practice shows that this can save a lot of time.

    I did not cite the pieces of code from our package here. The article turned out great. Anyone who wants to look at the finished APS package can download examples from the site .

    A few weeks later, the package was ready, and we passed it for certification.

    APS Package Certification

    Tip: We recommend that you complete certification after creating the package. This procedure will identify and eliminate errors in the package.

    During the certification process, the APS team from Parallels helps to ensure that the application works correctly and that it will work on the platform as a whole, or on a specific partner. If necessary, recommendations are given. Certification is completely free.

    Certification Process:
    1. Before you submit a package for certification, you must make sure that it meets the specifications and requirements .
    2. After that, you need to upload the package to the APS development portal to automatically test the package. After that, a ticket is automatically created in the system through which developers on both sides communicate.
    3. In case of successful completion of the tests, you need to request a manual check. Based on the verification results, the APS team will send recommendations for improving the package. On this, the certification process, in fact, ends.
    4. After the package has successfully passed certification, it is published in the APS catalog .

    Certification of our package took only a few days, and on average it takes from 3 days to 2 weeks, depending on what needs to be adjusted in the package.


    After certification of the package, we gave it to the first partner using Parallels Automation. It took him less than an hour to connect a BaaS service, set up a plan and create the first test subscription. Now our APS package is actively tested by providers around the world.

    Any other XaaS service, be it SaaS, PaaS or IaaS, can also be easily integrated into Parallels Automation using the APS 2 standard, which will allow it to be sold through hundreds of providers around the world, including Russia, and integrate with other applications. And this is not only a good sales channel, but also an extra penny if your application is sold in a package with someone else.

    Also popular now: