innomatic platform architecture overview

Download Innomatic Platform Architecture Overview

If you can't read please download the document

Upload: innomatic-platform

Post on 28-Nov-2014

494 views

Category:

Software


1 download

DESCRIPTION

Innomatic is the platform for building Enterprise and Multi Tenant applications in PHP. This presentation is an overview of the Innomatic Platform Architecture.

TRANSCRIPT

  • 1. Innomatic Platform Architecture Overview The platform for building Enterprise and Multi Tenant applications www.innomatic.io
  • 2. Understanding the Innomatic Platform & the Innomatic Ecosystem 2
  • 3. What is Innomatic Platform Innomatic Platform is an Open Source development and management platform useful for programmers and system administrators to quickly create various kinds of modular applications based on web technologies and to make them rapidly available to customers drastically reducing installation, update and management times. It's not a framework such as Symfony or Zend Framework: unlike these last two, Innomatic is a platform made to create, manage and distribute multi-tenant applications in web technology and enable them for multiple customers contemporarily from a single system. It contains several frameworks and many architectures can be installed upon it: applications can be created in different ways assembling various frameworks, components and finished products. Innomatic Platform 3
  • 4. A couple of examples of applications you can create with Innomatic Innomatic Platform is especially suited for building and operating multi-tenant enterprise applications, SaaS platforms and products. A couple of examples of applications you can create: Backoffice applications (e.g. business processes), that are integrated with other systems Open to the public front end applications Intranet / extranet applications Mobile applications that are integrated with the platform Internet of Things backends Innomatic Platform 4
  • 5. Backoffice applications: an example Innomatic Platform 5
  • 6. Front end applications: an example Innomatic Platform 6
  • 7. Native mobile applications: an example Innomatic Platform 7
  • 8. The main type of companies that use the Innomatic platform The main type of companies that use the Innomatic platform: Enterprises: to create internal applications. SME: Use ready made applications available on the Innomatic Market and/or Innomatic Cloud and custom made Innomatic Partner applications. SaaS Service Providers: to manage and enable applications for multiple customers simultaneously Web Agencies: to create custom web applications System Integrators: to create custom business applications Software Houses: to build standard software products, that will be distributed through their own channels, Innomatic Market or Innomatic Cloud Web Agencies, System Integrators and Software Houses can become Innomatic Partners. Innomatic Platform 8
  • 9. Several frameworks and standards built into Innomatic A kit to make administrative panels based on MVC and evolved and extendable widgets usable in back office applications A system to create multi-tenant applications with single-tenant databases, managing multiple instances for the single client with a single installation of the platform. An application management system to: - package them, describing them in an xml file as a set of extendable components of various types - install them in the platform, with version and packet dependency management - enable them on single customer instances with a single operation - update them with a single operation automatically on all the customers instances - distribute them through a web service(Innomatic Market) without the need to install files by hand Much more: architectural best practices, web services kits, several specialized mini-frameworks, etc. Innomatic Platform 9
  • 10. Innomatic Platform Single Tenant Edition and Multi Tenant Edition Innomatic can be set up in two different modes: Innomatic Platform Single Tenant Edition The platform will be dedicated to a single client, for example to his systems (Internal IT, server outsourcing). Some benefits: simplified deployment, single back office for all applications, access to AppCentral / Innomatic Market, etc. Innomatic Platform Multi Tenant Edition The platform will be used by those that supply applications in SaaS mode, centralizing the management of multiple applications and customers in a single system. Some benefits: centralized application management, multiple domain/tenant management (customers), modularity, speed, single back office interface, operation automation, etc. Innomatic Platform 10
  • 11. Innomatic Platform IDE The Innomatic Platform IDE is a set of Innomatic Platform applications and development tools that simplify and speed up development. Some current tools: process debugger profiler log analyzer software copy protection system AppCentral server connector Innomatic project skeleton with vagrant support and chef recipes Innomatic Platform 11
  • 12. Innomatic Mobile Innomatic Mobile is a framework for creating native iOS and Android applications that communicate with Innomatic Platform, writing the code just once. Innomatic Mobile applications are written in Python by means of the kivy framework, a multi platform framework that builds native user interfaces. Innomatic Mobile embeds a series of ready made features, such as an offline/online synchronization layer, error logging, etc. As a secondary benefit, applications written with Innomatic Mobile can work on desktop computers without changing a line of code. Innomatic Platform 12
  • 13. Innomatic IoT (Internet of Things) Innomatic IoT is an hardware based solution that communicates with the Innomatic platform through a predefined protocol, useful for building "Internet of Things" devices. Thus it is possible to create devices that access server side application logic such as Innomatic applications. Innomatic Platform 13
  • 14. Innomatic Market Innomatic Market is the Innomatic application marketplace built by Innomatic and its partners and is accessible to all customers subscribed to an Innomatic Subscription Applications can be downloaded through the AppCentral system, integrated into Innomatic. Public access channels and Open Source libraries, external system connectors etc. are present in AppCentral repositories. Innomatic Platform 14
  • 15. Innomatic Cloud Innomatic Cloud is a PaaS service supplied by Innomatic. Applications built by Innomatic and its Partners can be found in Innomatic Cloud. The service is managed by means of Innomatic Platform Multi Tenant Edition installations hosted on an Amazon Web Services infrastructure. Innomatic Platform 15
  • 16. Innomatic Platform Architecture 16
  • 17. Tenants and applications The Innomatic building blocks are: Tenants A tenant is a "container" dedicated to a single client where multiple applications can be enabled. Innomatic Platform Single Tenant Edition allows the management of a single tenant, the Multi Tenant Edition can manage an unlimited number of domains. Applications Each application contains a set of components and they can be enabled on one or more tenants. When an application gets updated, the platform makes sure that all the tenants containing an enabled version of the application get updated. Innomatic Platform 17
  • 18. Tenants Innomatic Platform 18
  • 19. Creating a Tenant Innomatic Platform 19
  • 20. Applications Innomatic Platform 20
  • 21. Enabling an application to a tenant Innomatic Platform 21
  • 22. Applications, Tenants and Domain web apps Innomatic Platform 22
  • 23. Innomatic Platform Framework Innomatic contains a components based framework suitable for building backoffice and generic applications. Frontend applications can be developed using specialized web application handlers. Innomatic Platform 23
  • 24. Web Application Handler - Generic framework Innomatic Platform 24
  • 25. Web Application Handler - Innomatic Desktop Innomatic Platform 25
  • 26. Integration layer: connectors Innomatic Platform 26
  • 27. An example of a framework layered over Innomatic: Innomedia CMF Innomatic Platform 27
  • 28. Building Applications 28
  • 29. Environments Platform support for Develoment / QA / UAT / Production environments. Innomatic Platform 29
  • 30. Process debugging Innomatic Platform 30
  • 31. Process debugging - Runtime and profiler Innomatic Platform 31
  • 32. Bug reporting Innomatic Platform 32
  • 33. Continuous integration / deployment Platform support for Unit / Functional Testing Platform support for different environments / configurations Platform support for testing/ CI platforms Deploying an Innomatic application is like uploading a file / using a script / download from AppCentral in the cloud Deploying a generic web app: various methods (rsync, capistrano, git, upload, etc.) Centralized distribution through AppCentral repositories CI task for packaging Innomatic applications and sending them to AppCentral repositories stable / unstable / nightly build AppCentral repositories automatic application update for all domains Innomatic Platform 33
  • 34. Distributing applications 34
  • 35. Distributing applications: direct installation inside Innomatic Innomatic Platform 35
  • 36. Installing an application inside Innomatic Innomatic Platform 36
  • 37. Dependencies Innomatic Platform 37
  • 38. Distributing applications: through AppCentral repositories (e.g. Innomatic Market) Innomatic Platform 38
  • 39. Installing an application with AppCentral Innomatic Platform 39
  • 40. Multiple application versions from AppCentral Innomatic Platform 40
  • 41. Distributing applications: through an Innomatic based platform Innomatic Platform 41
  • 42. Protecting code with Innomatic IDE KeyMaster Developers can protect their code and control its distribution by means of an encryption system and distribution of authorization keys; the uploading and decryption parts are integrated into Innomatic. Innomatic IDE KeyMaster is an Innomatic application that uses a code encryption library and generated keys to unblock it. One is expected to separately buy an ionCube encoder license: http://www.ioncube.com/sa_encoder.php?page=pricing The keys can optionally define: limit date: if the key isn't updated within the due date, the application will stop working domain limit: maximum number of domains (customers) where one can enable the application user limit maximum number of users per domain version: maximum version covered by the key IP / range: code execution only on a certain ip/ip range password: password necessary to install the key Innomatic Platform 42
  • 43. Innomatic Platform is available at GitHub: https://github.com/innomatic/innomatic Project web site: http://www.innomatic.io Innomatic Platform 43