multi tenant implementation

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

multi tenant implementation

frank
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


Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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
>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

frank
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
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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
>

Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

rajsaini
In reply to this post by frank
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
>
>    

Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

frank
In reply to this post by frank
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
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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
>
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

c.schinzer
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
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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
>
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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
>>
>

Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

c.schinzer
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 <[hidden email]>

> 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
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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<[hidden email]>
>
>> 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
>>>>
>>>>
>>>
>>
>
>

Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

Pierre Smits
In reply to this post by BJ Freeman
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 <[hidden email]>

> 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
>>>
>>>
>>
>
Reply | Threaded
Open this post in threaded view
|

Re: multi tenant implementation

BJ Freeman
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<[hidden email]>
>
>> 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
>>>>
>>>>
>>>
>>
>