Multi-tenancy with CakePHP. Robert Scherer M-Invent GmbH



Similar documents
Development. CakePHP Application. development using the open-source MVC. Step-by-step introduction to rapid web. CakePHP framework.

Clinical Trials in the Cloud: A New Paradigm?

Avira and Windows 8/Windows Server 2012

Choosing a Content Management System (CMS)

WORKDAY CONCEPT: EMPLOYEE SELF SERVICE

POSITION DESCRIPTION. Role Purpose

Content Management Systems: Drupal Vs Jahia

SAAS. Best practices for SAAS implementation using an Open Source Portal (JBoss)

Successful Platform-as-a-Service Requires a Supporting Ecosystem for HR Applications

Compiere Technical Architecture Modern, configurable, extendible

HOW TO CREATE THEME IN MAGENTO 2

All included databases will be scanned automatically just by a single search and information is available to users immediately.

Competitive Edge Technology White Paper. Platform-as-a-Service the New Horizon for HR

Team Collaboration, Version Management, Audit Trails

Your Technology Partner Offshore and Onsite. Services Portfolio

SaaS A Product Perspective

Administrator s Guide ALMComplete Support Ticket Manager

Avira Server Security Product Updates. Best Practice

SaaS-Based Employee Benefits Enrollment System

Shop by Manufacturer Custom Module for Magento

VMware vcloud Director for Service Providers

Software Development & Education Center PHP 5

SaaS, PaaS & TaaS. By: Raza Usmani

Client Requirement. Why SharePoint

Symfony2 and Drupal. Why to talk about Symfony2 framework?

Copyright Soleran, Inc. esalestrack On-Demand CRM. Trademarks and all rights reserved. esalestrack is a Soleran product Privacy Statement

Building a SaaS Application. ReddyRaja Annareddy CTO and Founder

Speed up your business

Drupal 6 to Drupal 7 Migration Worksheet

The Need for Service Catalog Design in Cloud Services Development

Multi-Tenancy on Private Cloud. F e b r u a r y

A Cloud Based SOA Platform for Local Governments in Sri Lanka. Mifan Careem CTO Respere Chief Architect elg Project

Table of Contents. CRM-Project Rollup 16 and higher 2 / 13

Outline. Why Neutron? What is Neutron? API Abstractions Plugin Architecture

Migrating SaaS Applications to Windows Azure

Essential Characteristics of Cloud Computing: On-Demand Self-Service Rapid Elasticity Location Independence Resource Pooling Measured Service

Product Information. Sugar vs Zoho. Features Comparison

Nokia Siemens Networks Device Management Solution Executive summary

Jaspersoft APIs. Integrating BI with your Applications. Community and Professional Editions

vtiger Customer Portal 4.2 User Manual

Looking for a fast, easy and effective way to create your company website? Look no further. Kentico CMS

ITSM Software: Is SaaS the Model for You?

Day 1 - Technology Introduction & Digital Asset Management

Testing Network Virtualization For Data Center and Cloud VERYX TECHNOLOGIES

Atomia Cloud Hosting Platform Overview

Juniper Networks Secure Access. Initial Configuration User Records Synchronization

FREE Small Business Advisory Guide: The 7 Most Costly Mistakes Companies Make When Choosing A New Phone System And How To Avoid Them

Magento ecommerce System Health Check Package

To increase scalability, the following features can be integrated:

Open Source Monitoring

Web Application Development

OpenERP: 100% pythonic way for business management

UNLEASHING THE POWER

What is CMS Made Simple? Who uses CMS Made Simple to develop web solutions?

Comparative Market Analysis of Project Management Systems

Formación en Tecnologías Avanzadas

Your Technology Partner Offshore and Onsite. Outsourced Software Development Services at

Duplicate Check. Master Data Check for Duplicates in SAP. excellence in data quality

OpenStack Manila Shared File Services for the Cloud

Frontier VoIPCortex IP PBX open, scalable, accessible and feature-laden

WHITEPAPER OpenIDM. Identity lifecycle management for users, devices, & things

PAY TV MONETIZATION IN THE AGE OF OTT. enabled by.

Sophos Mobile Control Technical guide

Private PaaS 101: What It Is and Why You Need It. Insulate Your Cloud with the Stackato Secure Middleware Layer

WHITEPAPER ForgeRock Identity Management. Identity lifecycle management for users, devices, and things

Executive Summary OpenEdge Streamlines Development and Support Factors Affecting Benefits And Costs Disclosures...

Case Study. SaaS Based Multi-Store Market Place Brainvire Infotech Pvt. Ltd Page 1 of 5

Cloud Computing (In Plain English)

A Short Term E-commerce Course

Web developer. Job description.

Zero Downtime In Multi tenant Software as a Service Systems

POSITION DESCRIPTION. Role Purpose. Key Challenges

Aspire Systems - Experience in Digital Marketing and Social Media

Why is a good idea to use OpenNebula in your VMware Infrastructure?

Complementing Your Web Services Strategy with Verastream Host Integrator

Building Blocks of the Private Cloud

Self-Hosted Implementation

Database Technologies MySQL, PostgreSQL, SQL Server, Oracle. Development Tools Eclipse, Aptana, NetBeans

Web Application Development and Frameworks

Safewhere*Identify. Introduction. You just need one system for all your user on-boarding, admin and authentication

Cisco Edge 340 Digital Media Player Content Management System

Transcription:

Multi-tenancy with CakePHP Robert Scherer M-Invent GmbH

About me developer and consultant head of the CakePHP business unit of M-Invent GmbH author of the first german book about CakePHP, published on O Reilly 2

About M-Invent GmbH Munich based IT and management consultancy Mainly active in the insurance and banking industry Using CakePHP in addition to Java Technology since mid-2008 3

What we ll cover What is multi-tenancy? What are the challenges to solve? How we solved it in a project with CakePHP 4

What is multi-tenancy? "Multitenancy refers to a principle in software architecture where a single instance of the software runs on a software-as-a-service (SaaS) vendor's servers, serving multiple client organizations (tenants)." (Wikipedia) In practice: hardcore whitelabeling multiple clients on one installation of the application each client needs customization in the software goal is a single code base and a clean implementation of the tenants customizations 5

Main challenges in customization Differences in the functionality Workflow / modification of functionality Separation of data Branding 6

The requirement multi-tenant application for a major insurance company purpose is distributing insurance policies currently about 30 different mandators some mandators with major customization needs, some pretty standard configuring mandators without using IT resources 7

The legacy Legacy application: Spaghetti PHP at its finest about 40% obsolete tables in 3 databases 8 different code bases multi-tenancy was solved with the copy & paste pattern 8

The system Three entities in the system: Insurance vendor (project owner) Mandators (e.g. auto companies) Dealers (e.g. car dealer) each entity has its user groups (administrators, employees, technical user) solved with Cake Auth and ACL 9

The approach make the system as modular as possible make the system as configurable as possible implement the customizations as generic as possible 10

Modules and Addons Module Consists of at least: - A module class - A module controller contains Addon Consists of: - an addon class - elements modules are groups of functionality addons are extensions to the functionality of modules modules can be assigned to mandators addons can be assigned, too 11

Keep it generic What you don t want: if($_session[ company ] == Foo Inc. ) { // do stuff } What you want: if(mandator::hasaddon( generate_insurance_number )) { $module->addon( generate_insurance_number )->dostuff(); } 12

Form customization same form, different functionality addons can act in all MVC layers 13

Configure mandators 14

Configure mandators 15

Structure AppController Modules normal controllers ModuleAppController Module Controllers Module Addon 1 Addon 2 Addon 3 Addon 4 base classes for addons and modules, too: AppModule AppAddon 16

Configuration Very powerful configuration system System-wide configuration or featurespecific configuration (modules/addons) every configuration has its default value, degraded from the upper level Priority of configurations 1.System default 2.Mandator s configuration 3.Dealer s configuration 17

Additional configuration 18

Data separation we didn t use ACL for row-level permissions parts of it happening at controller level, other parts in the models reason are very different requirements and circumstances across the system 19

Branding loading mandator-specific CSS CakePHP themes 20

Shameless plug Are you a motivated CakePHP developer, based in Germany and looking for a project? Get to us! Need professional help developing CakePHP applications? We can help! robert.scherer@m-invent.de 21

End if(!empty($questions)) { $this->goahead(); } else { die( Thanks! ); } 22