You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by frank <fr...@gmail.com> on 2010/09/14 01:44:19 UTC

multi tenant implementation

hi all, 

So I've looked at the multi tenant approach (delegators etc.) that have
recently been added to ofbiz; good addition! Here's the challenge for me....

I will be setting up a Saas subscription model which will have a combination
of trial based (i..e try before you buy) and periodic type subscriptions.
This implies that I might have up to 20 users (per day) subscribing to a
trial version of my Saas ofbiz impl (mostly accounting, orders, AR, AP,
catalog) with a long term periodic subscription prediction of approx 1 per
day. So the gist is I will end up with a lot of tenants in the medium term
(500) that will join (and probably also periodically go dormant) going up to
1000's; so I am after a 'self service type operational model here (i.e.
tenants should be able to register and join at will while they will all be
using the same core functionality provided in the modules indicated above). 

So the key challenge is the operational aspect of the current multi tenant
solution which seems to suggest (and I am clearly a novice here folks so pls
correct me where I am wrong) that whenever a new tenant is added that there
is a support / development /deployment exercise that needs to take place
(i.e. compile additional delegators, 

https://cwiki.apache.org/OFBIZ/multitenancy-support.html seems to indicate
"self-service"; is this the case given the high attrition rate (number of
users that will join) I am anticipating? if not what would be a suggested
approach so i can still have multiple tenant/db instances but that i can
make the implementation self sufficient (i.e. not having to redeploy the
app/ofbiz for every new tenant that comes along appreciating that the base
tenant data for all tenant db instances would be the same)


https://issues.apache.org/jira/browse/OFBIZ-3540 (interesting comments from
Marc; is this perhaps relevant to what I am trying to do?)
p.s. i appreciate there has been a lot of discussion on this topic so if the
info i am after is already available then point me in the right direction
thanks

thanks again
francois



-- 
View this message in context: http://ofbiz.135035.n4.nabble.com/multi-tenant-implementation-tp2538231p2538231.html
Sent from the OFBiz - User mailing list archive at Nabble.com.

Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
hate to give you a generic answer but a detailed one would take to long.
it depends on the type of tenant system you have.
also I am working on a setup scheme that this is dealt with in the setup 
(application/commonext) component based on the Business plan of the tenant.
https://issues.apache.org/jira/browse/OFBIZ-635
as pointed out in the
https://cwiki.apache.org/OFBIZ/multitenancy-support.html
you can't start and stop the instance just to add a new tenant.
so adding a new db to the TenantDataSouces then initializing it, is a pain.
currently I do this with a script that reads the tenant component and 
loads the data using the Webtools import file, then perform the db 
initialization then the dataload of the DB. I am still adding to it.
the script is in the component for that tenant but depends on the setup 
component scripts mentioned above.
the other part is defining what of the base (application) components 
seed data is loaded and what is load from the tenants component

on the ecommerce side they select if they want a fully automated (they 
use setup) or if they want a pre-defined, where they are talk to by the 
host staff and they do the configuring.

the only common data is the data for TenantDataSouces  and the loginID 
and password. This login is setup for them having to give a new password.





Pierre Smits sent the following on 9/15/2010 5:38 AM:
> Hi BJ,
>
> I am also looking at multi tennant.
>
> Could you provide an overview (or some example data) of the essential
> elements of what you create in the component for each tennant?
>
> Regards,
>
> Pierre
>
> 2010/9/15 BJ Freeman<bj...@free-man.net>
>
>> personally I make  a component for each tenant
>> and put all there stuff in that.
>>
>>
>> =========================
>> BJ Freeman<http://bjfreeman.elance.com>
>> Strategic Power Office with Supplier Automation<
>> http://www.businessesnetwork.com/automation/viewforum.php?f=52>
>> Specialtymarket.com<http://www.specialtymarket.com/>
>> Systems Integrator-- Glad to Assist
>>
>> Chat  Y! messenger: bjfr33man
>>
>>
>> BJ Freeman sent the following on 9/14/2010 7:22 PM:
>>
>>   https://cwiki.apache.org/OFBIZ/multitenancy-support.html
>>> look in the current framework/entity/config/entityengine.xml for data
>>> bases.
>>>
>>> if you have special data for each tenant then you would configure the
>>> component-load.xml with :
>>> <entity-resource type="data" reader-name="ext-tenantname" loader="main"
>>> location="data/TenantnameProductData.xml"/>
>>>
>>>
>>> $ java -Xmx512m -XX:MaxPermSize=128m -jar ofbiz.jar -install
>>> -readers=ext-tenantname -delegator=default#(whatever the login is for
>>> that tenant)
>>> would load the special data for ext-tenantname into the db for that
>>> tenant.
>>>
>>> =========================
>>> BJ Freeman<http://bjfreeman.elance.com>
>>> Strategic Power Office with Supplier Automation
>>> <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
>>> Specialtymarket.com<http://www.specialtymarket.com/>
>>> Systems Integrator-- Glad to Assist
>>>
>>> Chat Y! messenger: bjfr33man
>>> Carsten Schinzer sent the following on 9/14/2010 2:23 PM:
>>>
>>>
>>>   Another, related question to the Multi-Tenant experts, please:
>>>>
>>>> What databases are required? - I currently assume, a core DB plus one
>>>> DB per
>>>> tenant.
>>>>
>>>> Where does common seed data reside? Is sed data meant to be common at
>>>> all,
>>>> or would each database reflect a full-fletched OFBiz database and
>>>> could be
>>>> connected as a stand-alone DB as well?
>>>> * I assume, seed data us on the common core DB, while running data
>>>> reside in
>>>> the tenants DBs. *
>>>> Example:
>>>> - AccountingTypeData.xml -->  to be loaded once for all tenants; -->
>>>> core DB
>>>> - Running accounting data (transactions, finAccounts) -->  tenant DB
>>>>
>>>>
>>>> How to direct certain data to certain databases? - is there a built-in
>>>> way
>>>> by dedicated readers? Or do I need to take care that customer specific
>>>> data
>>>> files for upload are copied in/out before respective loads?
>>>> Example:
>>>> - I want to load a set of initial ProductData.xml per Tenant; I do
>>>> follow a
>>>> private naming convention like TenantnameProductData.xml
>>>> -->  How do I direct this initial data into the tenant's database and
>>>> how do
>>>> I avoid the it is loaded to the other tenant's?
>>>> Ideas are:
>>>> (i) edit ofbiz-component.xml before every load attempt;
>>>> (ii) copy related Tenant files in and let the loads fail for non-existing
>>>> files;
>>>> (iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
>>>> database to loads from that reader only.
>>>>
>>>> Let me know your comments.
>>>> Regards
>>>>
>>>>
>>>> Carsten
>>>>
>>>>
>>>
>>
>


Re: multi tenant implementation

Posted by Pierre Smits <pi...@gmail.com>.
Hi BJ,

I am also looking at multi tennant.

Could you provide an overview (or some example data) of the essential
elements of what you create in the component for each tennant?

Regards,

Pierre

2010/9/15 BJ Freeman <bj...@free-man.net>

> personally I make  a component for each tenant
> and put all there stuff in that.
>
>
> =========================
> BJ Freeman  <http://bjfreeman.elance.com>
> Strategic Power Office with Supplier Automation  <
> http://www.businessesnetwork.com/automation/viewforum.php?f=52>
> Specialtymarket.com  <http://www.specialtymarket.com/>
> Systems Integrator-- Glad to Assist
>
> Chat  Y! messenger: bjfr33man
>
>
> BJ Freeman sent the following on 9/14/2010 7:22 PM:
>
>  https://cwiki.apache.org/OFBIZ/multitenancy-support.html
>> look in the current framework/entity/config/entityengine.xml for data
>> bases.
>>
>> if you have special data for each tenant then you would configure the
>> component-load.xml with :
>> <entity-resource type="data" reader-name="ext-tenantname" loader="main"
>> location="data/TenantnameProductData.xml"/>
>>
>>
>> $ java -Xmx512m -XX:MaxPermSize=128m -jar ofbiz.jar -install
>> -readers=ext-tenantname -delegator=default#(whatever the login is for
>> that tenant)
>> would load the special data for ext-tenantname into the db for that
>> tenant.
>>
>> =========================
>> BJ Freeman <http://bjfreeman.elance.com>
>> Strategic Power Office with Supplier Automation
>> <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
>> Specialtymarket.com <http://www.specialtymarket.com/>
>> Systems Integrator-- Glad to Assist
>>
>> Chat Y! messenger: bjfr33man
>> Carsten Schinzer sent the following on 9/14/2010 2:23 PM:
>>
>>
>>  Another, related question to the Multi-Tenant experts, please:
>>>
>>> What databases are required? - I currently assume, a core DB plus one
>>> DB per
>>> tenant.
>>>
>>> Where does common seed data reside? Is sed data meant to be common at
>>> all,
>>> or would each database reflect a full-fletched OFBiz database and
>>> could be
>>> connected as a stand-alone DB as well?
>>> * I assume, seed data us on the common core DB, while running data
>>> reside in
>>> the tenants DBs. *
>>> Example:
>>> - AccountingTypeData.xml --> to be loaded once for all tenants; -->
>>> core DB
>>> - Running accounting data (transactions, finAccounts) --> tenant DB
>>>
>>>
>>> How to direct certain data to certain databases? - is there a built-in
>>> way
>>> by dedicated readers? Or do I need to take care that customer specific
>>> data
>>> files for upload are copied in/out before respective loads?
>>> Example:
>>> - I want to load a set of initial ProductData.xml per Tenant; I do
>>> follow a
>>> private naming convention like TenantnameProductData.xml
>>> --> How do I direct this initial data into the tenant's database and
>>> how do
>>> I avoid the it is loaded to the other tenant's?
>>> Ideas are:
>>> (i) edit ofbiz-component.xml before every load attempt;
>>> (ii) copy related Tenant files in and let the loads fail for non-existing
>>> files;
>>> (iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
>>> database to loads from that reader only.
>>>
>>> Let me know your comments.
>>> Regards
>>>
>>>
>>> Carsten
>>>
>>>
>>
>

Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
I also use it to add their db to the TenantDataSouces, albeit it is 
loaded through the webtools. I also keep a copy of their theme. keeps 
everything for a tenant in one place.
I am working on a couple of major changes that I sent to the dev mailing 
list but have not had any discussion on.
subject: Step to automate Setup for entityengine.xml
using derby for setup controller
on 8/27
also see discussion on
https://issues.apache.org/jira/browse/OFBIZ-635
https://issues.apache.org/jira/browse/OFBIZ-3908

=========================
BJ Freeman  <http://bjfreeman.elance.com>
Strategic Power Office with Supplier Automation  <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
Specialtymarket.com  <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist

Chat  Y! messenger: bjfr33man


Carsten Schinzer sent the following on 9/15/2010 5:05 AM:
> Thanks so much, BJ.
> You are absolutely right, the latter should avoid any conflicts on the
> specialpurpose/ecommerce side.
>
> I think I'[ll just give it a try now and start fuzzing around on a test
> setup.
>
> Regards
>
>
> Carsten
>
> 2010/9/15 BJ Freeman<bj...@free-man.net>
>
>> personally I make  a component for each tenant
>> and put all there stuff in that.
>>
>>
>> =========================
>> BJ Freeman<http://bjfreeman.elance.com>
>> Strategic Power Office with Supplier Automation<
>> http://www.businessesnetwork.com/automation/viewforum.php?f=52>
>> Specialtymarket.com<http://www.specialtymarket.com/>
>> Systems Integrator-- Glad to Assist
>>
>> Chat  Y! messenger: bjfr33man
>>
>>
>> BJ Freeman sent the following on 9/14/2010 7:22 PM:
>>
>>   https://cwiki.apache.org/OFBIZ/multitenancy-support.html
>>> look in the current framework/entity/config/entityengine.xml for data
>>> bases.
>>>
>>> if you have special data for each tenant then you would configure the
>>> component-load.xml with :
>>> <entity-resource type="data" reader-name="ext-tenantname" loader="main"
>>> location="data/TenantnameProductData.xml"/>
>>>
>>>
>>> $ java -Xmx512m -XX:MaxPermSize=128m -jar ofbiz.jar -install
>>> -readers=ext-tenantname -delegator=default#(whatever the login is for
>>> that tenant)
>>> would load the special data for ext-tenantname into the db for that
>>> tenant.
>>>
>>> =========================
>>> BJ Freeman<http://bjfreeman.elance.com>
>>> Strategic Power Office with Supplier Automation
>>> <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
>>> Specialtymarket.com<http://www.specialtymarket.com/>
>>> Systems Integrator-- Glad to Assist
>>>
>>> Chat Y! messenger: bjfr33man
>>> Carsten Schinzer sent the following on 9/14/2010 2:23 PM:
>>>
>>>
>>>   Another, related question to the Multi-Tenant experts, please:
>>>>
>>>> What databases are required? - I currently assume, a core DB plus one
>>>> DB per
>>>> tenant.
>>>>
>>>> Where does common seed data reside? Is sed data meant to be common at
>>>> all,
>>>> or would each database reflect a full-fletched OFBiz database and
>>>> could be
>>>> connected as a stand-alone DB as well?
>>>> * I assume, seed data us on the common core DB, while running data
>>>> reside in
>>>> the tenants DBs. *
>>>> Example:
>>>> - AccountingTypeData.xml -->  to be loaded once for all tenants; -->
>>>> core DB
>>>> - Running accounting data (transactions, finAccounts) -->  tenant DB
>>>>
>>>>
>>>> How to direct certain data to certain databases? - is there a built-in
>>>> way
>>>> by dedicated readers? Or do I need to take care that customer specific
>>>> data
>>>> files for upload are copied in/out before respective loads?
>>>> Example:
>>>> - I want to load a set of initial ProductData.xml per Tenant; I do
>>>> follow a
>>>> private naming convention like TenantnameProductData.xml
>>>> -->  How do I direct this initial data into the tenant's database and
>>>> how do
>>>> I avoid the it is loaded to the other tenant's?
>>>> Ideas are:
>>>> (i) edit ofbiz-component.xml before every load attempt;
>>>> (ii) copy related Tenant files in and let the loads fail for non-existing
>>>> files;
>>>> (iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
>>>> database to loads from that reader only.
>>>>
>>>> Let me know your comments.
>>>> Regards
>>>>
>>>>
>>>> Carsten
>>>>
>>>>
>>>
>>
>
>


Re: multi tenant implementation

Posted by Carsten Schinzer <c....@googlemail.com>.
Thanks so much, BJ.
You are absolutely right, the latter should avoid any conflicts on the
specialpurpose/ecommerce side.

I think I'[ll just give it a try now and start fuzzing around on a test
setup.

Regards


Carsten

2010/9/15 BJ Freeman <bj...@free-man.net>

> personally I make  a component for each tenant
> and put all there stuff in that.
>
>
> =========================
> BJ Freeman  <http://bjfreeman.elance.com>
> Strategic Power Office with Supplier Automation  <
> http://www.businessesnetwork.com/automation/viewforum.php?f=52>
> Specialtymarket.com  <http://www.specialtymarket.com/>
> Systems Integrator-- Glad to Assist
>
> Chat  Y! messenger: bjfr33man
>
>
> BJ Freeman sent the following on 9/14/2010 7:22 PM:
>
>  https://cwiki.apache.org/OFBIZ/multitenancy-support.html
>> look in the current framework/entity/config/entityengine.xml for data
>> bases.
>>
>> if you have special data for each tenant then you would configure the
>> component-load.xml with :
>> <entity-resource type="data" reader-name="ext-tenantname" loader="main"
>> location="data/TenantnameProductData.xml"/>
>>
>>
>> $ java -Xmx512m -XX:MaxPermSize=128m -jar ofbiz.jar -install
>> -readers=ext-tenantname -delegator=default#(whatever the login is for
>> that tenant)
>> would load the special data for ext-tenantname into the db for that
>> tenant.
>>
>> =========================
>> BJ Freeman <http://bjfreeman.elance.com>
>> Strategic Power Office with Supplier Automation
>> <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
>> Specialtymarket.com <http://www.specialtymarket.com/>
>> Systems Integrator-- Glad to Assist
>>
>> Chat Y! messenger: bjfr33man
>> Carsten Schinzer sent the following on 9/14/2010 2:23 PM:
>>
>>
>>  Another, related question to the Multi-Tenant experts, please:
>>>
>>> What databases are required? - I currently assume, a core DB plus one
>>> DB per
>>> tenant.
>>>
>>> Where does common seed data reside? Is sed data meant to be common at
>>> all,
>>> or would each database reflect a full-fletched OFBiz database and
>>> could be
>>> connected as a stand-alone DB as well?
>>> * I assume, seed data us on the common core DB, while running data
>>> reside in
>>> the tenants DBs. *
>>> Example:
>>> - AccountingTypeData.xml --> to be loaded once for all tenants; -->
>>> core DB
>>> - Running accounting data (transactions, finAccounts) --> tenant DB
>>>
>>>
>>> How to direct certain data to certain databases? - is there a built-in
>>> way
>>> by dedicated readers? Or do I need to take care that customer specific
>>> data
>>> files for upload are copied in/out before respective loads?
>>> Example:
>>> - I want to load a set of initial ProductData.xml per Tenant; I do
>>> follow a
>>> private naming convention like TenantnameProductData.xml
>>> --> How do I direct this initial data into the tenant's database and
>>> how do
>>> I avoid the it is loaded to the other tenant's?
>>> Ideas are:
>>> (i) edit ofbiz-component.xml before every load attempt;
>>> (ii) copy related Tenant files in and let the loads fail for non-existing
>>> files;
>>> (iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
>>> database to loads from that reader only.
>>>
>>> Let me know your comments.
>>> Regards
>>>
>>>
>>> Carsten
>>>
>>>
>>
>


-- 

Best

Carsten Schinzer

Waisenhausstr. 53a
80637 München
Germany

Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
personally I make  a component for each tenant
and put all there stuff in that.

=========================
BJ Freeman  <http://bjfreeman.elance.com>
Strategic Power Office with Supplier Automation  <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
Specialtymarket.com  <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist

Chat  Y! messenger: bjfr33man


BJ Freeman sent the following on 9/14/2010 7:22 PM:
> https://cwiki.apache.org/OFBIZ/multitenancy-support.html
> look in the current framework/entity/config/entityengine.xml for data
> bases.
>
> if you have special data for each tenant then you would configure the
> component-load.xml with :
> <entity-resource type="data" reader-name="ext-tenantname" loader="main"
> location="data/TenantnameProductData.xml"/>
>
>
> $ java -Xmx512m -XX:MaxPermSize=128m -jar ofbiz.jar -install
> -readers=ext-tenantname -delegator=default#(whatever the login is for
> that tenant)
> would load the special data for ext-tenantname into the db for that tenant.
>
> =========================
> BJ Freeman <http://bjfreeman.elance.com>
> Strategic Power Office with Supplier Automation
> <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
> Specialtymarket.com <http://www.specialtymarket.com/>
> Systems Integrator-- Glad to Assist
>
> Chat Y! messenger: bjfr33man
> Carsten Schinzer sent the following on 9/14/2010 2:23 PM:
>
>
>> Another, related question to the Multi-Tenant experts, please:
>>
>> What databases are required? - I currently assume, a core DB plus one
>> DB per
>> tenant.
>>
>> Where does common seed data reside? Is sed data meant to be common at
>> all,
>> or would each database reflect a full-fletched OFBiz database and
>> could be
>> connected as a stand-alone DB as well?
>> * I assume, seed data us on the common core DB, while running data
>> reside in
>> the tenants DBs. *
>> Example:
>> - AccountingTypeData.xml --> to be loaded once for all tenants; -->
>> core DB
>> - Running accounting data (transactions, finAccounts) --> tenant DB
>>
>>
>> How to direct certain data to certain databases? - is there a built-in
>> way
>> by dedicated readers? Or do I need to take care that customer specific
>> data
>> files for upload are copied in/out before respective loads?
>> Example:
>> - I want to load a set of initial ProductData.xml per Tenant; I do
>> follow a
>> private naming convention like TenantnameProductData.xml
>> --> How do I direct this initial data into the tenant's database and
>> how do
>> I avoid the it is loaded to the other tenant's?
>> Ideas are:
>> (i) edit ofbiz-component.xml before every load attempt;
>> (ii) copy related Tenant files in and let the loads fail for non-existing
>> files;
>> (iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
>> database to loads from that reader only.
>>
>> Let me know your comments.
>> Regards
>>
>>
>> Carsten
>>
>


Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
https://cwiki.apache.org/OFBIZ/multitenancy-support.html
look in the current framework/entity/config/entityengine.xml for data 
bases.

if you have special data for each tenant then you would configure the 
component-load.xml with :
         <entity-resource type="data" reader-name="ext-tenantname" 
loader="main" location="data/TenantnameProductData.xml"/>


$ java -Xmx512m -XX:MaxPermSize=128m -jar ofbiz.jar -install 
-readers=ext-tenantname -delegator=default#(whatever the login is for 
that tenant)
would load the special data for ext-tenantname into the db for that tenant.

=========================
BJ Freeman  <http://bjfreeman.elance.com>
Strategic Power Office with Supplier Automation  <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
Specialtymarket.com  <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist

Chat  Y! messenger: bjfr33man
Carsten Schinzer sent the following on 9/14/2010 2:23 PM:


> Another, related question to the Multi-Tenant experts, please:
>
> What databases are required? - I currently assume, a core DB plus one DB per
> tenant.
>
> Where does common seed data reside? Is sed data meant to be common at all,
> or would each database reflect a full-fletched OFBiz database and could be
> connected as a stand-alone DB as well?
> * I assume, seed data us on the common core DB, while running data reside in
> the tenants DBs. *
> Example:
> - AccountingTypeData.xml -->  to be loaded once for all tenants; -->  core DB
> - Running accounting data (transactions, finAccounts) -->  tenant DB
>
>
> How to direct certain data to certain databases? - is there a built-in way
> by dedicated readers? Or do I need to take care that customer specific data
> files for upload are copied in/out before respective loads?
> Example:
> - I want to load a set of initial ProductData.xml per Tenant; I do follow a
> private naming convention like TenantnameProductData.xml
> -->  How do I direct this initial data into the tenant's database and how do
> I avoid the it is loaded to the other tenant's?
> Ideas are:
> (i) edit ofbiz-component.xml before every load attempt;
> (ii) copy related Tenant files in and let the loads fail for non-existing
> files;
> (iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
> database to loads from that reader only.
>
> Let me know your comments.
> Regards
>
>
> Carsten
>

Re: multi tenant implementation

Posted by Carsten Schinzer <c....@googlemail.com>.
Another, related question to the Multi-Tenant experts, please:

What databases are required? - I currently assume, a core DB plus one DB per
tenant.

Where does common seed data reside? Is sed data meant to be common at all,
or would each database reflect a full-fletched OFBiz database and could be
connected as a stand-alone DB as well?
* I assume, seed data us on the common core DB, while running data reside in
the tenants DBs. *
Example:
- AccountingTypeData.xml --> to be loaded once for all tenants; --> core DB
- Running accounting data (transactions, finAccounts) --> tenant DB


How to direct certain data to certain databases? - is there a built-in way
by dedicated readers? Or do I need to take care that customer specific data
files for upload are copied in/out before respective loads?
Example:
- I want to load a set of initial ProductData.xml per Tenant; I do follow a
private naming convention like TenantnameProductData.xml
--> How do I direct this initial data into the tenant's database and how do
I avoid the it is loaded to the other tenant's?
Ideas are:
(i) edit ofbiz-component.xml before every load attempt;
(ii) copy related Tenant files in and let the loads fail for non-existing
files;
(iii) define dedicated readers (e.g. "ext-tenantname") and limit tenant
database to loads from that reader only.

Let me know your comments.
Regards


Carsten

Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
Critical path--
one website URL and least amount of Customization is multi-tenant.
Manual setup of each client by you,
so no setup by client;
no individual themes (look and feel) or logos; and
Adding to the Help Doc system would be the same for both.
this is also assuming you have sufficient resources to provide the 
individual DB for Multi-tenant.

Note there may still be coding based on usage to complete features.


frank sent the following on 9/13/2010 9:54 PM:

>
> Hi BJ,
> Thanks for fronting some alternatives. Closing the loop then on your initial
> suggestion (i.e. “One website, many stores - is it possible”). Assuming I
> take a critical path approach (in context of the features that I am after)
> to my implementation which could be limited to tenant level data separation
> only (i.e. excludes any cosmetic type areas such as logos and only involves
> tenants wanting to act, generate and report on their respective data aka
> invoicing appreciating ‘some’ tenant level configuration in context of
> taxation etc.)  then would the “One website, many stores - is it possible?”
> approach provide the least impact to my particular problem? Or based on the
> additional info that I provided can I assume a multi DB approach would be
> the only way to go?
>
>
> Thanks again guys; much appreciated
> frank
>

Re: multi tenant implementation

Posted by frank <fr...@gmail.com>.
Hi BJ,
Thanks for fronting some alternatives. Closing the loop then on your initial
suggestion (i.e. “One website, many stores - is it possible”). Assuming I
take a critical path approach (in context of the features that I am after)
to my implementation which could be limited to tenant level data separation
only (i.e. excludes any cosmetic type areas such as logos and only involves
tenants wanting to act, generate and report on their respective data aka
invoicing appreciating ‘some’ tenant level configuration in context of
taxation etc.)  then would the “One website, many stores - is it possible?”
approach provide the least impact to my particular problem? Or based on the
additional info that I provided can I assume a multi DB approach would be
the only way to go?


Thanks again guys; much appreciated
frank

-- 
View this message in context: http://ofbiz.135035.n4.nabble.com/multi-tenant-implementation-tp2538231p2538414.html
Sent from the OFBiz - User mailing list archive at Nabble.com.

Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
my personal preference is multi tenant,
I wanted you to know your options as to approach.
At this time the Setup component does not support SAS. Actually the 
Setup does not support more than one owner with a single db either.
see
https://localhost:8443/ofbizsetup/control/main
https://issues.apache.org/jira/browse/OFBIZ-635
https://issues.apache.org/jira/browse/OFBIZ-3908
There is no way, SAS wise, to create and connect new db's on the fly.
The easiest is to keep DB already created in the multi-tenant then 
assign them as clients come on the system. Depending on your setup a 
separate DB server machine or a farm of them may be in order.

also some work needs to be done to incorporate themes into setup.
or you can supply a mirad of "skins" (themes)  they can select. this 
would not allow for a personal logo though.




I suggest you use the host Ecommerce for sign up of SAS so it is totally 
automated. this would require some customization you can change the url 
and use an email to direct them so it does not get googled.


frank sent the following on 9/13/2010 6:03 PM:
>
> Hi BJ,
>
> Thanks for your response. So the relationship/requirement for each tenant is
> autonomous (i.e. a tenant will typically be a standalone company with a
> number of employees) in context of the functions and data (i.e. orders,
> invoices, accounts) they access/update/view and report on including tenant
> level branding (i.e. cosmetic look and feel, own company logo displayed on
> accounts/order/product applications, company specific report branding etc.).
> Do you think the separate Db approach might be better suited and if so your
> thoughts on implementing this in a self service manner (i.e. not having to
> compile software and/or apply development level config for new tenants)
> would be appreciated. Conversely if you think there is another way to
> achieve this?
>
> Thanks again
> frank
>


Re: multi tenant implementation

Posted by Raj Saini <ra...@gmail.com>.
Hi Frank,

We did some work on OFbiz based SaaS solution 
(http://www.vplanetcommerce.com).

Well, although OFBiz has the bare bone stuff,  you will still need to 
create your own application to automate the process. There are many 
thing you will need to take care of e.g. creating DB on the fly, loading 
seed data for each DB, creating DNS entries and much more.

Thanks,

Raj

On 14/09/10 06:33, frank wrote:
> Hi BJ,
>
> Thanks for your response. So the relationship/requirement for each tenant is
> autonomous (i.e. a tenant will typically be a standalone company with a
> number of employees) in context of the functions and data (i.e. orders,
> invoices, accounts) they access/update/view and report on including tenant
> level branding (i.e. cosmetic look and feel, own company logo displayed on
> accounts/order/product applications, company specific report branding etc.).
> Do you think the separate Db approach might be better suited and if so your
> thoughts on implementing this in a self service manner (i.e. not having to
> compile software and/or apply development level config for new tenants)
> would be appreciated. Conversely if you think there is another way to
> achieve this?
>
> Thanks again
> frank
>
>    


Re: multi tenant implementation

Posted by frank <fr...@gmail.com>.
Hi BJ,

Thanks for your response. So the relationship/requirement for each tenant is
autonomous (i.e. a tenant will typically be a standalone company with a
number of employees) in context of the functions and data (i.e. orders,
invoices, accounts) they access/update/view and report on including tenant
level branding (i.e. cosmetic look and feel, own company logo displayed on
accounts/order/product applications, company specific report branding etc.).
Do you think the separate Db approach might be better suited and if so your
thoughts on implementing this in a self service manner (i.e. not having to
compile software and/or apply development level config for new tenants)
would be appreciated. Conversely if you think there is another way to
achieve this?

Thanks again
frank

-- 
View this message in context: http://ofbiz.135035.n4.nabble.com/multi-tenant-implementation-tp2538231p2538291.html
Sent from the OFBiz - User mailing list archive at Nabble.com.

Re: multi tenant implementation

Posted by BJ Freeman <bj...@free-man.net>.
see thread:
subject: Re: One website, many stores - is it possible?
the shows a way to use a single. though it addresses ecommerce it still 
works for you application.
so unless part of your criteria is to have isolated data you could 
customize ofbiz per that thread.


=========================
BJ Freeman  <http://bjfreeman.elance.com>
Strategic Power Office with Supplier Automation  <http://www.businessesnetwork.com/automation/viewforum.php?f=52>
Specialtymarket.com  <http://www.specialtymarket.com/>
Systems Integrator-- Glad to Assist

Chat  Y! messenger: bjfr33man


frank sent the following on 9/13/2010 4:44 PM:
>
> hi all,
>
> So I've looked at the multi tenant approach (delegators etc.) that have
> recently been added to ofbiz; good addition! Here's the challenge for me....
>
> I will be setting up a Saas subscription model which will have a combination
> of trial based (i..e try before you buy) and periodic type subscriptions.
> This implies that I might have up to 20 users (per day) subscribing to a
> trial version of my Saas ofbiz impl (mostly accounting, orders, AR, AP,
> catalog) with a long term periodic subscription prediction of approx 1 per
> day. So the gist is I will end up with a lot of tenants in the medium term
> (500) that will join (and probably also periodically go dormant) going up to
> 1000's; so I am after a 'self service type operational model here (i.e.
> tenants should be able to register and join at will while they will all be
> using the same core functionality provided in the modules indicated above).
>
> So the key challenge is the operational aspect of the current multi tenant
> solution which seems to suggest (and I am clearly a novice here folks so pls
> correct me where I am wrong) that whenever a new tenant is added that there
> is a support / development /deployment exercise that needs to take place
> (i.e. compile additional delegators,
>
> https://cwiki.apache.org/OFBIZ/multitenancy-support.html seems to indicate
> "self-service"; is this the case given the high attrition rate (number of
> users that will join) I am anticipating? if not what would be a suggested
> approach so i can still have multiple tenant/db instances but that i can
> make the implementation self sufficient (i.e. not having to redeploy the
> app/ofbiz for every new tenant that comes along appreciating that the base
> tenant data for all tenant db instances would be the same)
>
>
> https://issues.apache.org/jira/browse/OFBIZ-3540 (interesting comments from
> Marc; is this perhaps relevant to what I am trying to do?)
> p.s. i appreciate there has been a lot of discussion on this topic so if the
> info i am after is already available then point me in the right direction
> thanks
>
> thanks again
> francois
>
>
>