POS Setup

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

POS Setup

Vince Clark
I am having trouble figuring out the "step by step" process to deploy
POS with synchronization.

First area of clarification - How do I get the various pieces deployed
and talking to each other? I have reviewed all the documentation I can
find, and also the related config files. Here is what I understand so far:
1) Setup all the necessary entities (stores, facilities, products,
pricing, etc.)
2) Create POS sync settings to define what entities will be synced
(example PosSyncSetting.xml)
3) Define terminals per example DemoRetail.xml
4) Set entity-sync-rmi in serviceengine.xml file
5) Schedule the sync service

So where do I do each of these? Master server, per store server, pos,
all of the above? For example, if I have a configuration of one store,
one pos terminal in the store, and one central server I want the flow to be:
Push product, pricing, etc from central server down to POS terminal:
MCS -> PSS -> POS

Pull transactions from POS terminal to MCS:
POS -> PSS -> MCS

So let's start with the central server as the majority of setup will
occur here. The main question I have about the central server is, how
does it know where to "Push"? There is only one setting in
serviceengine.xml for entity-sync-rmi. So how do I configure multiple
per store servers? Or do I misunderstand the use of "PUSH" in the config
file? Is everything really "Pull?" So we just point each deployment to
the server where it should communicate? For example the POS terminal
would always be configured to talk to the PSS, PSS to MCS?

Is it necessary to use a PSS, or can we go straight from POS->MCS?

And for those of you also trying to come up to speed on POS, here is the
glossary:
MCS = Main Central Server
PSS = Per Store Server
POS = Point of Sale
--
Vince Clark
Global Era
The freedom of open source.
(303) 493-6723
(303) 455-2409 fax
[hidden email] <mailto:[hidden email]>
www.globalera.com
Reply | Threaded
Open this post in threaded view
|

RE: POS Setup

SkipDever
Vince

I have been looking at this myself and was turned onto EnterpriseDB which
has a nice replication server.  I want all my stores using the same central
database and the local database only when the internet breaks.
EnterpriseDB's replication server works for that.  Somewhat costly, but not
nearly as bad as Oracle.

Just gotta add (maybe it's already there?) some failover logic.

Skip

-----Original Message-----
From: Vince Clark [mailto:[hidden email]]
Sent: Tuesday, September 18, 2007 2:49 PM
To: [hidden email]
Subject: POS Setup


I am having trouble figuring out the "step by step" process to deploy
POS with synchronization.

First area of clarification - How do I get the various pieces deployed
and talking to each other? I have reviewed all the documentation I can
find, and also the related config files. Here is what I understand so far:
1) Setup all the necessary entities (stores, facilities, products,
pricing, etc.)
2) Create POS sync settings to define what entities will be synced
(example PosSyncSetting.xml)
3) Define terminals per example DemoRetail.xml
4) Set entity-sync-rmi in serviceengine.xml file
5) Schedule the sync service

So where do I do each of these? Master server, per store server, pos,
all of the above? For example, if I have a configuration of one store,
one pos terminal in the store, and one central server I want the flow to be:
Push product, pricing, etc from central server down to POS terminal:
MCS -> PSS -> POS

Pull transactions from POS terminal to MCS:
POS -> PSS -> MCS

So let's start with the central server as the majority of setup will
occur here. The main question I have about the central server is, how
does it know where to "Push"? There is only one setting in
serviceengine.xml for entity-sync-rmi. So how do I configure multiple
per store servers? Or do I misunderstand the use of "PUSH" in the config
file? Is everything really "Pull?" So we just point each deployment to
the server where it should communicate? For example the POS terminal
would always be configured to talk to the PSS, PSS to MCS?

Is it necessary to use a PSS, or can we go straight from POS->MCS?

And for those of you also trying to come up to speed on POS, here is the
glossary:
MCS = Main Central Server
PSS = Per Store Server
POS = Point of Sale
--
Vince Clark
Global Era
The freedom of open source.
(303) 493-6723
(303) 455-2409 fax
[hidden email] <mailto:[hidden email]>
www.globalera.com

Reply | Threaded
Open this post in threaded view
|

Re: POS Setup

David E Jones

Just a quick note on this: the entity sync stuff is different from database replication as it has different configs for different servers so only the relevant data is needed. A good db level replication tool could probably do something similar, but you would miss some EECA rules that OFBiz runs based on data moving around and stuff like that.

-David


Skip wrote:

> Vince
>
> I have been looking at this myself and was turned onto EnterpriseDB which
> has a nice replication server.  I want all my stores using the same central
> database and the local database only when the internet breaks.
> EnterpriseDB's replication server works for that.  Somewhat costly, but not
> nearly as bad as Oracle.
>
> Just gotta add (maybe it's already there?) some failover logic.
>
> Skip
>
> -----Original Message-----
> From: Vince Clark [mailto:[hidden email]]
> Sent: Tuesday, September 18, 2007 2:49 PM
> To: [hidden email]
> Subject: POS Setup
>
>
> I am having trouble figuring out the "step by step" process to deploy
> POS with synchronization.
>
> First area of clarification - How do I get the various pieces deployed
> and talking to each other? I have reviewed all the documentation I can
> find, and also the related config files. Here is what I understand so far:
> 1) Setup all the necessary entities (stores, facilities, products,
> pricing, etc.)
> 2) Create POS sync settings to define what entities will be synced
> (example PosSyncSetting.xml)
> 3) Define terminals per example DemoRetail.xml
> 4) Set entity-sync-rmi in serviceengine.xml file
> 5) Schedule the sync service
>
> So where do I do each of these? Master server, per store server, pos,
> all of the above? For example, if I have a configuration of one store,
> one pos terminal in the store, and one central server I want the flow to be:
> Push product, pricing, etc from central server down to POS terminal:
> MCS -> PSS -> POS
>
> Pull transactions from POS terminal to MCS:
> POS -> PSS -> MCS
>
> So let's start with the central server as the majority of setup will
> occur here. The main question I have about the central server is, how
> does it know where to "Push"? There is only one setting in
> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
> per store servers? Or do I misunderstand the use of "PUSH" in the config
> file? Is everything really "Pull?" So we just point each deployment to
> the server where it should communicate? For example the POS terminal
> would always be configured to talk to the PSS, PSS to MCS?
>
> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>
> And for those of you also trying to come up to speed on POS, here is the
> glossary:
> MCS = Main Central Server
> PSS = Per Store Server
> POS = Point of Sale
> --
> Vince Clark
> Global Era
> The freedom of open source.
> (303) 493-6723
> (303) 455-2409 fax
> [hidden email] <mailto:[hidden email]>
> www.globalera.com
>
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup- with tiers

BJ Freeman
In reply to this post by Vince Clark
There is a lot more to this than you have described.
there is no defined way to do what you have describe, to my knowledge.
then again, someone may have slipped it in with out my knowing

when I proposed this sometime ago, I left the actual way to communicate
open.

All the services that were used to communicate called one service that
was the actual service for sending the data to the next level. up down
or both. so I plugged in the communications to update services that were
already in place, and added updates for the stuff updates services I added.

I opted, since I already use ssl xml communications from other stores,
to keep that form of communications between levels. I use different
URL's for the different functions as a way to put them thru the
controller and into the events.

Since then I have defined two communications 1)non urgent updates 2)
real time updates. Real time updates for things like pos transactions so
the product is put in reserve till the pos sale is complete then an
order is completed. this reduces problems with out of stock.
Using the same code for holding a item but a type is added to "holding
for POS". also the inventory updates are realtime both directions. so
far have not run into overlap, but I believe with a big enough system,
that will happen.
Non urgent are for stock reorder and transfers.

for the purist I assume they will opted for SOAP or XMLRPC.

Since stores can be defined at each location and the prefix to the order
can be unique the only consideration is the key size at the top level so
 it can keep all the orders for all the stores.
I can see the key size needing to be increased considerable in a large
system, for order entity.

so each POS is a mini store
so you have Store(ID)POS(id) as a prefix to the top level.
and POS(id) to identify which POS terminal it came from at the store
level. so you can see that Key for the orders can be large for a
national chain.

at the top level I use facilities to define the stores and this is where
the communication is setup to the lower level.

I am still working on the code that initializes a new store and new POS
in the store from the upper levels.






Vince Clark sent the following on 9/18/2007 2:49 PM:

> I am having trouble figuring out the "step by step" process to deploy
> POS with synchronization.
>
> First area of clarification - How do I get the various pieces deployed
> and talking to each other? I have reviewed all the documentation I can
> find, and also the related config files. Here is what I understand so far:
> 1) Setup all the necessary entities (stores, facilities, products,
> pricing, etc.)
> 2) Create POS sync settings to define what entities will be synced
> (example PosSyncSetting.xml)
> 3) Define terminals per example DemoRetail.xml
> 4) Set entity-sync-rmi in serviceengine.xml file
> 5) Schedule the sync service
>
> So where do I do each of these? Master server, per store server, pos,
> all of the above? For example, if I have a configuration of one store,
> one pos terminal in the store, and one central server I want the flow to be:
> Push product, pricing, etc from central server down to POS terminal:
> MCS -> PSS -> POS
>
> Pull transactions from POS terminal to MCS:
> POS -> PSS -> MCS
>
> So let's start with the central server as the majority of setup will
> occur here. The main question I have about the central server is, how
> does it know where to "Push"? There is only one setting in
> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
> per store servers? Or do I misunderstand the use of "PUSH" in the config
> file? Is everything really "Pull?" So we just point each deployment to
> the server where it should communicate? For example the POS terminal
> would always be configured to talk to the PSS, PSS to MCS?
>
> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>
> And for those of you also trying to come up to speed on POS, here is the
> glossary:
> MCS = Main Central Server
> PSS = Per Store Server
> POS = Point of Sale
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup

Vince Clark
In reply to this post by David E Jones
Skip and David. Thanks for responding quickly to my post. I definitely
need to use entity synchronization, not database replication.

We're under the gun to deliver a proof of concept this week. I know the
entity sync works, or at least I trust that it does. I am going thru the
exercise of reverse engineering how it works based on a demo install.
The demo data sets up all necessary entities like stores and terminals.
But there is no default configuration for synchronization. I would
expect this, as host names would change on a case by case basis. So I
would not expect a default config. Unfortunately that makes it difficult
to understand how to set up entity sync by example.

Any hints, links, etc. that could speed up the learning curve would be
greatly appreciated.

David E Jones wrote:

>
> Just a quick note on this: the entity sync stuff is different from
> database replication as it has different configs for different servers
> so only the relevant data is needed. A good db level replication tool
> could probably do something similar, but you would miss some EECA
> rules that OFBiz runs based on data moving around and stuff like that.
>
> -David
>
>
> Skip wrote:
>> Vince
>>
>> I have been looking at this myself and was turned onto EnterpriseDB
>> which
>> has a nice replication server.  I want all my stores using the same
>> central
>> database and the local database only when the internet breaks.
>> EnterpriseDB's replication server works for that.  Somewhat costly,
>> but not
>> nearly as bad as Oracle.
>>
>> Just gotta add (maybe it's already there?) some failover logic.
>>
>> Skip
>>
>> -----Original Message-----
>> From: Vince Clark [mailto:[hidden email]]
>> Sent: Tuesday, September 18, 2007 2:49 PM
>> To: [hidden email]
>> Subject: POS Setup
>>
>>
>> I am having trouble figuring out the "step by step" process to deploy
>> POS with synchronization.
>>
>> First area of clarification - How do I get the various pieces deployed
>> and talking to each other? I have reviewed all the documentation I can
>> find, and also the related config files. Here is what I understand so
>> far:
>> 1) Setup all the necessary entities (stores, facilities, products,
>> pricing, etc.)
>> 2) Create POS sync settings to define what entities will be synced
>> (example PosSyncSetting.xml)
>> 3) Define terminals per example DemoRetail.xml
>> 4) Set entity-sync-rmi in serviceengine.xml file
>> 5) Schedule the sync service
>>
>> So where do I do each of these? Master server, per store server, pos,
>> all of the above? For example, if I have a configuration of one store,
>> one pos terminal in the store, and one central server I want the flow
>> to be:
>> Push product, pricing, etc from central server down to POS terminal:
>> MCS -> PSS -> POS
>>
>> Pull transactions from POS terminal to MCS:
>> POS -> PSS -> MCS
>>
>> So let's start with the central server as the majority of setup will
>> occur here. The main question I have about the central server is, how
>> does it know where to "Push"? There is only one setting in
>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>> file? Is everything really "Pull?" So we just point each deployment to
>> the server where it should communicate? For example the POS terminal
>> would always be configured to talk to the PSS, PSS to MCS?
>>
>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>
>> And for those of you also trying to come up to speed on POS, here is the
>> glossary:
>> MCS = Main Central Server
>> PSS = Per Store Server
>> POS = Point of Sale
>> --
>> Vince Clark
>> Global Era
>> The freedom of open source.
>> (303) 493-6723
>> (303) 455-2409 fax
>> [hidden email] <mailto:[hidden email]>
>> www.globalera.com
>>

--
Vince Clark
Global Era
The freedom of open source.
(303) 493-6723
(303) 455-2409 fax
[hidden email] <mailto:[hidden email]>
www.globalera.com
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup

David E Jones

Check out EntityScheduledServices.xml, noting the targetServiceName in the EntitySync record. That is the service called to send stuff remotely, and if you look at it you'll see it uses the remote Service Engine to Service Engine calling mechanisms.

-David


Vince Clark wrote:

> Skip and David. Thanks for responding quickly to my post. I definitely
> need to use entity synchronization, not database replication.
>
> We're under the gun to deliver a proof of concept this week. I know the
> entity sync works, or at least I trust that it does. I am going thru the
> exercise of reverse engineering how it works based on a demo install.
> The demo data sets up all necessary entities like stores and terminals.
> But there is no default configuration for synchronization. I would
> expect this, as host names would change on a case by case basis. So I
> would not expect a default config. Unfortunately that makes it difficult
> to understand how to set up entity sync by example.
>
> Any hints, links, etc. that could speed up the learning curve would be
> greatly appreciated.
>
> David E Jones wrote:
>> Just a quick note on this: the entity sync stuff is different from
>> database replication as it has different configs for different servers
>> so only the relevant data is needed. A good db level replication tool
>> could probably do something similar, but you would miss some EECA
>> rules that OFBiz runs based on data moving around and stuff like that.
>>
>> -David
>>
>>
>> Skip wrote:
>>> Vince
>>>
>>> I have been looking at this myself and was turned onto EnterpriseDB
>>> which
>>> has a nice replication server.  I want all my stores using the same
>>> central
>>> database and the local database only when the internet breaks.
>>> EnterpriseDB's replication server works for that.  Somewhat costly,
>>> but not
>>> nearly as bad as Oracle.
>>>
>>> Just gotta add (maybe it's already there?) some failover logic.
>>>
>>> Skip
>>>
>>> -----Original Message-----
>>> From: Vince Clark [mailto:[hidden email]]
>>> Sent: Tuesday, September 18, 2007 2:49 PM
>>> To: [hidden email]
>>> Subject: POS Setup
>>>
>>>
>>> I am having trouble figuring out the "step by step" process to deploy
>>> POS with synchronization.
>>>
>>> First area of clarification - How do I get the various pieces deployed
>>> and talking to each other? I have reviewed all the documentation I can
>>> find, and also the related config files. Here is what I understand so
>>> far:
>>> 1) Setup all the necessary entities (stores, facilities, products,
>>> pricing, etc.)
>>> 2) Create POS sync settings to define what entities will be synced
>>> (example PosSyncSetting.xml)
>>> 3) Define terminals per example DemoRetail.xml
>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>> 5) Schedule the sync service
>>>
>>> So where do I do each of these? Master server, per store server, pos,
>>> all of the above? For example, if I have a configuration of one store,
>>> one pos terminal in the store, and one central server I want the flow
>>> to be:
>>> Push product, pricing, etc from central server down to POS terminal:
>>> MCS -> PSS -> POS
>>>
>>> Pull transactions from POS terminal to MCS:
>>> POS -> PSS -> MCS
>>>
>>> So let's start with the central server as the majority of setup will
>>> occur here. The main question I have about the central server is, how
>>> does it know where to "Push"? There is only one setting in
>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>> file? Is everything really "Pull?" So we just point each deployment to
>>> the server where it should communicate? For example the POS terminal
>>> would always be configured to talk to the PSS, PSS to MCS?
>>>
>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>
>>> And for those of you also trying to come up to speed on POS, here is the
>>> glossary:
>>> MCS = Main Central Server
>>> PSS = Per Store Server
>>> POS = Point of Sale
>>> --
>>> Vince Clark
>>> Global Era
>>> The freedom of open source.
>>> (303) 493-6723
>>> (303) 455-2409 fax
>>> [hidden email] <mailto:[hidden email]>
>>> www.globalera.com
>>>
>
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup- with tiers

Vince Clark
In reply to this post by BJ Freeman
Am I making this too complicated? I just need to understand how the OOTB
entity sync works. Nothing custom. The documentation states pretty
clearly that it does work, although my summary of the steps left out
much detail. That is what I am trying to fill in.

More simply put:
How do I make a POS terminal communicate with a store server
How do I make a store server communicate with a central server
And back down the stack from central server to POS terminal

Since my original post I have been reviewing the example
PosSyncSettings.xml file. I don't see anything in this file that
specifies a host name. So I assume the only place to tell an instance
what server to talk to is in the serviceengine.xml file.

I will also review the entity related training videos. Unfortunately I
don't have much time for learning curve on this effort.

BJ Freeman wrote:

> There is a lot more to this than you have described.
> there is no defined way to do what you have describe, to my knowledge.
> then again, someone may have slipped it in with out my knowing
>
> when I proposed this sometime ago, I left the actual way to communicate
> open.
>
> All the services that were used to communicate called one service that
> was the actual service for sending the data to the next level. up down
> or both. so I plugged in the communications to update services that were
> already in place, and added updates for the stuff updates services I added.
>
> I opted, since I already use ssl xml communications from other stores,
> to keep that form of communications between levels. I use different
> URL's for the different functions as a way to put them thru the
> controller and into the events.
>
> Since then I have defined two communications 1)non urgent updates 2)
> real time updates. Real time updates for things like pos transactions so
> the product is put in reserve till the pos sale is complete then an
> order is completed. this reduces problems with out of stock.
> Using the same code for holding a item but a type is added to "holding
> for POS". also the inventory updates are realtime both directions. so
> far have not run into overlap, but I believe with a big enough system,
> that will happen.
> Non urgent are for stock reorder and transfers.
>
> for the purist I assume they will opted for SOAP or XMLRPC.
>
> Since stores can be defined at each location and the prefix to the order
> can be unique the only consideration is the key size at the top level so
>  it can keep all the orders for all the stores.
> I can see the key size needing to be increased considerable in a large
> system, for order entity.
>
> so each POS is a mini store
> so you have Store(ID)POS(id) as a prefix to the top level.
> and POS(id) to identify which POS terminal it came from at the store
> level. so you can see that Key for the orders can be large for a
> national chain.
>
> at the top level I use facilities to define the stores and this is where
> the communication is setup to the lower level.
>
> I am still working on the code that initializes a new store and new POS
> in the store from the upper levels.
>
>
>
>
>
>
> Vince Clark sent the following on 9/18/2007 2:49 PM:
>  
>> I am having trouble figuring out the "step by step" process to deploy
>> POS with synchronization.
>>
>> First area of clarification - How do I get the various pieces deployed
>> and talking to each other? I have reviewed all the documentation I can
>> find, and also the related config files. Here is what I understand so far:
>> 1) Setup all the necessary entities (stores, facilities, products,
>> pricing, etc.)
>> 2) Create POS sync settings to define what entities will be synced
>> (example PosSyncSetting.xml)
>> 3) Define terminals per example DemoRetail.xml
>> 4) Set entity-sync-rmi in serviceengine.xml file
>> 5) Schedule the sync service
>>
>> So where do I do each of these? Master server, per store server, pos,
>> all of the above? For example, if I have a configuration of one store,
>> one pos terminal in the store, and one central server I want the flow to be:
>> Push product, pricing, etc from central server down to POS terminal:
>> MCS -> PSS -> POS
>>
>> Pull transactions from POS terminal to MCS:
>> POS -> PSS -> MCS
>>
>> So let's start with the central server as the majority of setup will
>> occur here. The main question I have about the central server is, how
>> does it know where to "Push"? There is only one setting in
>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>> file? Is everything really "Pull?" So we just point each deployment to
>> the server where it should communicate? For example the POS terminal
>> would always be configured to talk to the PSS, PSS to MCS?
>>
>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>
>> And for those of you also trying to come up to speed on POS, here is the
>> glossary:
>> MCS = Main Central Server
>> PSS = Per Store Server
>> POS = Point of Sale
>>    

--
Vince Clark
Global Era
The freedom of open source.
(303) 493-6723
(303) 455-2409 fax
[hidden email] <mailto:[hidden email]>
www.globalera.com
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup- with tiers

BJ Freeman
if you following what david has proposed, forget what i said.

Vince Clark sent the following on 9/18/2007 4:50 PM:

> Am I making this too complicated? I just need to understand how the OOTB
> entity sync works. Nothing custom. The documentation states pretty
> clearly that it does work, although my summary of the steps left out
> much detail. That is what I am trying to fill in.
>
> More simply put:
> How do I make a POS terminal communicate with a store server
> How do I make a store server communicate with a central server
> And back down the stack from central server to POS terminal
>
> Since my original post I have been reviewing the example
> PosSyncSettings.xml file. I don't see anything in this file that
> specifies a host name. So I assume the only place to tell an instance
> what server to talk to is in the serviceengine.xml file.
>
> I will also review the entity related training videos. Unfortunately I
> don't have much time for learning curve on this effort.
>
> BJ Freeman wrote:
>> There is a lot more to this than you have described.
>> there is no defined way to do what you have describe, to my knowledge.
>> then again, someone may have slipped it in with out my knowing
>>
>> when I proposed this sometime ago, I left the actual way to communicate
>> open.
>>
>> All the services that were used to communicate called one service that
>> was the actual service for sending the data to the next level. up down
>> or both. so I plugged in the communications to update services that were
>> already in place, and added updates for the stuff updates services I added.
>>
>> I opted, since I already use ssl xml communications from other stores,
>> to keep that form of communications between levels. I use different
>> URL's for the different functions as a way to put them thru the
>> controller and into the events.
>>
>> Since then I have defined two communications 1)non urgent updates 2)
>> real time updates. Real time updates for things like pos transactions so
>> the product is put in reserve till the pos sale is complete then an
>> order is completed. this reduces problems with out of stock.
>> Using the same code for holding a item but a type is added to "holding
>> for POS". also the inventory updates are realtime both directions. so
>> far have not run into overlap, but I believe with a big enough system,
>> that will happen.
>> Non urgent are for stock reorder and transfers.
>>
>> for the purist I assume they will opted for SOAP or XMLRPC.
>>
>> Since stores can be defined at each location and the prefix to the order
>> can be unique the only consideration is the key size at the top level so
>>  it can keep all the orders for all the stores.
>> I can see the key size needing to be increased considerable in a large
>> system, for order entity.
>>
>> so each POS is a mini store
>> so you have Store(ID)POS(id) as a prefix to the top level.
>> and POS(id) to identify which POS terminal it came from at the store
>> level. so you can see that Key for the orders can be large for a
>> national chain.
>>
>> at the top level I use facilities to define the stores and this is where
>> the communication is setup to the lower level.
>>
>> I am still working on the code that initializes a new store and new POS
>> in the store from the upper levels.
>>
>>
>>
>>
>>
>>
>> Vince Clark sent the following on 9/18/2007 2:49 PM:
>>  
>>> I am having trouble figuring out the "step by step" process to deploy
>>> POS with synchronization.
>>>
>>> First area of clarification - How do I get the various pieces deployed
>>> and talking to each other? I have reviewed all the documentation I can
>>> find, and also the related config files. Here is what I understand so far:
>>> 1) Setup all the necessary entities (stores, facilities, products,
>>> pricing, etc.)
>>> 2) Create POS sync settings to define what entities will be synced
>>> (example PosSyncSetting.xml)
>>> 3) Define terminals per example DemoRetail.xml
>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>> 5) Schedule the sync service
>>>
>>> So where do I do each of these? Master server, per store server, pos,
>>> all of the above? For example, if I have a configuration of one store,
>>> one pos terminal in the store, and one central server I want the flow to be:
>>> Push product, pricing, etc from central server down to POS terminal:
>>> MCS -> PSS -> POS
>>>
>>> Pull transactions from POS terminal to MCS:
>>> POS -> PSS -> MCS
>>>
>>> So let's start with the central server as the majority of setup will
>>> occur here. The main question I have about the central server is, how
>>> does it know where to "Push"? There is only one setting in
>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>> file? Is everything really "Pull?" So we just point each deployment to
>>> the server where it should communicate? For example the POS terminal
>>> would always be configured to talk to the PSS, PSS to MCS?
>>>
>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>
>>> And for those of you also trying to come up to speed on POS, here is the
>>> glossary:
>>> MCS = Main Central Server
>>> PSS = Per Store Server
>>> POS = Point of Sale
>>>    
>
Reply | Threaded
Open this post in threaded view
|

RE: POS Setup

SkipDever
In reply to this post by David E Jones
Hmmm, I wonder if I am missing something here that I assumed was correct.
Lets say you have 5 stores, each with 5 POS stations.

Once of the 5 stores is the "Home Office" with a central data store.

I am assuming that the 5 POS stations are configured to talk to the same
local database connection, and a 6th instance (the back office) is doing the
synchronization with the "Home Office".  Is this not correct?

I am heading now to dig into this code to see just how it works.

Skip

-----Original Message-----
From: David E Jones [mailto:[hidden email]]
Sent: Tuesday, September 18, 2007 4:45 PM
To: [hidden email]
Subject: Re: POS Setup



Check out EntityScheduledServices.xml, noting the targetServiceName in the
EntitySync record. That is the service called to send stuff remotely, and if
you look at it you'll see it uses the remote Service Engine to Service
Engine calling mechanisms.

-David


Vince Clark wrote:

> Skip and David. Thanks for responding quickly to my post. I definitely
> need to use entity synchronization, not database replication.
>
> We're under the gun to deliver a proof of concept this week. I know the
> entity sync works, or at least I trust that it does. I am going thru the
> exercise of reverse engineering how it works based on a demo install.
> The demo data sets up all necessary entities like stores and terminals.
> But there is no default configuration for synchronization. I would
> expect this, as host names would change on a case by case basis. So I
> would not expect a default config. Unfortunately that makes it difficult
> to understand how to set up entity sync by example.
>
> Any hints, links, etc. that could speed up the learning curve would be
> greatly appreciated.
>
> David E Jones wrote:
>> Just a quick note on this: the entity sync stuff is different from
>> database replication as it has different configs for different servers
>> so only the relevant data is needed. A good db level replication tool
>> could probably do something similar, but you would miss some EECA
>> rules that OFBiz runs based on data moving around and stuff like that.
>>
>> -David
>>
>>
>> Skip wrote:
>>> Vince
>>>
>>> I have been looking at this myself and was turned onto EnterpriseDB
>>> which
>>> has a nice replication server.  I want all my stores using the same
>>> central
>>> database and the local database only when the internet breaks.
>>> EnterpriseDB's replication server works for that.  Somewhat costly,
>>> but not
>>> nearly as bad as Oracle.
>>>
>>> Just gotta add (maybe it's already there?) some failover logic.
>>>
>>> Skip
>>>
>>> -----Original Message-----
>>> From: Vince Clark [mailto:[hidden email]]
>>> Sent: Tuesday, September 18, 2007 2:49 PM
>>> To: [hidden email]
>>> Subject: POS Setup
>>>
>>>
>>> I am having trouble figuring out the "step by step" process to deploy
>>> POS with synchronization.
>>>
>>> First area of clarification - How do I get the various pieces deployed
>>> and talking to each other? I have reviewed all the documentation I can
>>> find, and also the related config files. Here is what I understand so
>>> far:
>>> 1) Setup all the necessary entities (stores, facilities, products,
>>> pricing, etc.)
>>> 2) Create POS sync settings to define what entities will be synced
>>> (example PosSyncSetting.xml)
>>> 3) Define terminals per example DemoRetail.xml
>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>> 5) Schedule the sync service
>>>
>>> So where do I do each of these? Master server, per store server, pos,
>>> all of the above? For example, if I have a configuration of one store,
>>> one pos terminal in the store, and one central server I want the flow
>>> to be:
>>> Push product, pricing, etc from central server down to POS terminal:
>>> MCS -> PSS -> POS
>>>
>>> Pull transactions from POS terminal to MCS:
>>> POS -> PSS -> MCS
>>>
>>> So let's start with the central server as the majority of setup will
>>> occur here. The main question I have about the central server is, how
>>> does it know where to "Push"? There is only one setting in
>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>> file? Is everything really "Pull?" So we just point each deployment to
>>> the server where it should communicate? For example the POS terminal
>>> would always be configured to talk to the PSS, PSS to MCS?
>>>
>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>
>>> And for those of you also trying to come up to speed on POS, here is the
>>> glossary:
>>> MCS = Main Central Server
>>> PSS = Per Store Server
>>> POS = Point of Sale
>>> --
>>> Vince Clark
>>> Global Era
>>> The freedom of open source.
>>> (303) 493-6723
>>> (303) 455-2409 fax
>>> [hidden email] <mailto:[hidden email]>
>>> www.globalera.com
>>>
>

Reply | Threaded
Open this post in threaded view
|

Re: POS Setup

BJ Freeman
here is a scenario for you to consider
a person put a transaction on POS on hold say they needed to go get
their wallet out of the car.
now they come back and are at a different register to recall the
transaction and pay for it.

the next is someone puts something on layaway.
then they come to a different store to pay for it.
where is the transaction stored to so all stores POS terminals can
recall it.

there are real world POS transactions.

Skip sent the following on 9/18/2007 5:20 PM:

> Hmmm, I wonder if I am missing something here that I assumed was correct.
> Lets say you have 5 stores, each with 5 POS stations.
>
> Once of the 5 stores is the "Home Office" with a central data store.
>
> I am assuming that the 5 POS stations are configured to talk to the same
> local database connection, and a 6th instance (the back office) is doing the
> synchronization with the "Home Office".  Is this not correct?
>
> I am heading now to dig into this code to see just how it works.
>
> Skip
>
> -----Original Message-----
> From: David E Jones [mailto:[hidden email]]
> Sent: Tuesday, September 18, 2007 4:45 PM
> To: [hidden email]
> Subject: Re: POS Setup
>
>
>
> Check out EntityScheduledServices.xml, noting the targetServiceName in the
> EntitySync record. That is the service called to send stuff remotely, and if
> you look at it you'll see it uses the remote Service Engine to Service
> Engine calling mechanisms.
>
> -David
>
>
> Vince Clark wrote:
>> Skip and David. Thanks for responding quickly to my post. I definitely
>> need to use entity synchronization, not database replication.
>>
>> We're under the gun to deliver a proof of concept this week. I know the
>> entity sync works, or at least I trust that it does. I am going thru the
>> exercise of reverse engineering how it works based on a demo install.
>> The demo data sets up all necessary entities like stores and terminals.
>> But there is no default configuration for synchronization. I would
>> expect this, as host names would change on a case by case basis. So I
>> would not expect a default config. Unfortunately that makes it difficult
>> to understand how to set up entity sync by example.
>>
>> Any hints, links, etc. that could speed up the learning curve would be
>> greatly appreciated.
>>
>> David E Jones wrote:
>>> Just a quick note on this: the entity sync stuff is different from
>>> database replication as it has different configs for different servers
>>> so only the relevant data is needed. A good db level replication tool
>>> could probably do something similar, but you would miss some EECA
>>> rules that OFBiz runs based on data moving around and stuff like that.
>>>
>>> -David
>>>
>>>
>>> Skip wrote:
>>>> Vince
>>>>
>>>> I have been looking at this myself and was turned onto EnterpriseDB
>>>> which
>>>> has a nice replication server.  I want all my stores using the same
>>>> central
>>>> database and the local database only when the internet breaks.
>>>> EnterpriseDB's replication server works for that.  Somewhat costly,
>>>> but not
>>>> nearly as bad as Oracle.
>>>>
>>>> Just gotta add (maybe it's already there?) some failover logic.
>>>>
>>>> Skip
>>>>
>>>> -----Original Message-----
>>>> From: Vince Clark [mailto:[hidden email]]
>>>> Sent: Tuesday, September 18, 2007 2:49 PM
>>>> To: [hidden email]
>>>> Subject: POS Setup
>>>>
>>>>
>>>> I am having trouble figuring out the "step by step" process to deploy
>>>> POS with synchronization.
>>>>
>>>> First area of clarification - How do I get the various pieces deployed
>>>> and talking to each other? I have reviewed all the documentation I can
>>>> find, and also the related config files. Here is what I understand so
>>>> far:
>>>> 1) Setup all the necessary entities (stores, facilities, products,
>>>> pricing, etc.)
>>>> 2) Create POS sync settings to define what entities will be synced
>>>> (example PosSyncSetting.xml)
>>>> 3) Define terminals per example DemoRetail.xml
>>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>>> 5) Schedule the sync service
>>>>
>>>> So where do I do each of these? Master server, per store server, pos,
>>>> all of the above? For example, if I have a configuration of one store,
>>>> one pos terminal in the store, and one central server I want the flow
>>>> to be:
>>>> Push product, pricing, etc from central server down to POS terminal:
>>>> MCS -> PSS -> POS
>>>>
>>>> Pull transactions from POS terminal to MCS:
>>>> POS -> PSS -> MCS
>>>>
>>>> So let's start with the central server as the majority of setup will
>>>> occur here. The main question I have about the central server is, how
>>>> does it know where to "Push"? There is only one setting in
>>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>>> file? Is everything really "Pull?" So we just point each deployment to
>>>> the server where it should communicate? For example the POS terminal
>>>> would always be configured to talk to the PSS, PSS to MCS?
>>>>
>>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>>
>>>> And for those of you also trying to come up to speed on POS, here is the
>>>> glossary:
>>>> MCS = Main Central Server
>>>> PSS = Per Store Server
>>>> POS = Point of Sale
>>>> --
>>>> Vince Clark
>>>> Global Era
>>>> The freedom of open source.
>>>> (303) 493-6723
>>>> (303) 455-2409 fax
>>>> [hidden email] <mailto:[hidden email]>
>>>> www.globalera.com
>>>>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup

BJ Freeman
In reply to this post by SkipDever
the POS transaction is a session.delegator.
so what ever is set in the entityengine.xml is what POS is connected to.
this is usually a local DB on which the POS is running.

Skip sent the following on 9/18/2007 5:20 PM:

> Hmmm, I wonder if I am missing something here that I assumed was correct.
> Lets say you have 5 stores, each with 5 POS stations.
>
> Once of the 5 stores is the "Home Office" with a central data store.
>
> I am assuming that the 5 POS stations are configured to talk to the same
> local database connection, and a 6th instance (the back office) is doing the
> synchronization with the "Home Office".  Is this not correct?
>
> I am heading now to dig into this code to see just how it works.
>
> Skip
>
> -----Original Message-----
> From: David E Jones [mailto:[hidden email]]
> Sent: Tuesday, September 18, 2007 4:45 PM
> To: [hidden email]
> Subject: Re: POS Setup
>
>
>
> Check out EntityScheduledServices.xml, noting the targetServiceName in the
> EntitySync record. That is the service called to send stuff remotely, and if
> you look at it you'll see it uses the remote Service Engine to Service
> Engine calling mechanisms.
>
> -David
>
>
> Vince Clark wrote:
>> Skip and David. Thanks for responding quickly to my post. I definitely
>> need to use entity synchronization, not database replication.
>>
>> We're under the gun to deliver a proof of concept this week. I know the
>> entity sync works, or at least I trust that it does. I am going thru the
>> exercise of reverse engineering how it works based on a demo install.
>> The demo data sets up all necessary entities like stores and terminals.
>> But there is no default configuration for synchronization. I would
>> expect this, as host names would change on a case by case basis. So I
>> would not expect a default config. Unfortunately that makes it difficult
>> to understand how to set up entity sync by example.
>>
>> Any hints, links, etc. that could speed up the learning curve would be
>> greatly appreciated.
>>
>> David E Jones wrote:
>>> Just a quick note on this: the entity sync stuff is different from
>>> database replication as it has different configs for different servers
>>> so only the relevant data is needed. A good db level replication tool
>>> could probably do something similar, but you would miss some EECA
>>> rules that OFBiz runs based on data moving around and stuff like that.
>>>
>>> -David
>>>
>>>
>>> Skip wrote:
>>>> Vince
>>>>
>>>> I have been looking at this myself and was turned onto EnterpriseDB
>>>> which
>>>> has a nice replication server.  I want all my stores using the same
>>>> central
>>>> database and the local database only when the internet breaks.
>>>> EnterpriseDB's replication server works for that.  Somewhat costly,
>>>> but not
>>>> nearly as bad as Oracle.
>>>>
>>>> Just gotta add (maybe it's already there?) some failover logic.
>>>>
>>>> Skip
>>>>
>>>> -----Original Message-----
>>>> From: Vince Clark [mailto:[hidden email]]
>>>> Sent: Tuesday, September 18, 2007 2:49 PM
>>>> To: [hidden email]
>>>> Subject: POS Setup
>>>>
>>>>
>>>> I am having trouble figuring out the "step by step" process to deploy
>>>> POS with synchronization.
>>>>
>>>> First area of clarification - How do I get the various pieces deployed
>>>> and talking to each other? I have reviewed all the documentation I can
>>>> find, and also the related config files. Here is what I understand so
>>>> far:
>>>> 1) Setup all the necessary entities (stores, facilities, products,
>>>> pricing, etc.)
>>>> 2) Create POS sync settings to define what entities will be synced
>>>> (example PosSyncSetting.xml)
>>>> 3) Define terminals per example DemoRetail.xml
>>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>>> 5) Schedule the sync service
>>>>
>>>> So where do I do each of these? Master server, per store server, pos,
>>>> all of the above? For example, if I have a configuration of one store,
>>>> one pos terminal in the store, and one central server I want the flow
>>>> to be:
>>>> Push product, pricing, etc from central server down to POS terminal:
>>>> MCS -> PSS -> POS
>>>>
>>>> Pull transactions from POS terminal to MCS:
>>>> POS -> PSS -> MCS
>>>>
>>>> So let's start with the central server as the majority of setup will
>>>> occur here. The main question I have about the central server is, how
>>>> does it know where to "Push"? There is only one setting in
>>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>>> file? Is everything really "Pull?" So we just point each deployment to
>>>> the server where it should communicate? For example the POS terminal
>>>> would always be configured to talk to the PSS, PSS to MCS?
>>>>
>>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>>
>>>> And for those of you also trying to come up to speed on POS, here is the
>>>> glossary:
>>>> MCS = Main Central Server
>>>> PSS = Per Store Server
>>>> POS = Point of Sale
>>>> --
>>>> Vince Clark
>>>> Global Era
>>>> The freedom of open source.
>>>> (303) 493-6723
>>>> (303) 455-2409 fax
>>>> [hidden email] <mailto:[hidden email]>
>>>> www.globalera.com
>>>>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

XUI Problems

SkipDever
I am having problems with XUI for complex nested layouts.  If the layout is
simple (mostly flat) everything works fine.  But, with multiply nested
border layout containers, it screws up (for me).

I prototyped the thing in Netbeans in an hour, then copied the dimensions
into an XUI project, so I am sure they are all right.

Here is a snippet of the XUI code:

<XPage next="checkout" layout="Border">
  <Layout hgap="0" vgap="0"/>
  <Components>
  <Panel name="centerPanel" constraint="Center" border="0" layout="Border">
        <Panel name="centerTopPanel" h="200" constraint="North" opaque="true"
border="1" layout="Grid">
          <Layout hgap="0" vgap="0" rows="1" columns="2" />
          <Panel name="centerTopLeftPanel" style="prompt" w="352" h="200"
opaque="true" border="1">
...
          </Panel>
          <Panel name="centerTopRightPanel" style="prompt" w="352" h="200"
opaque="true" border="1" layout="Border">
...
          </Panel>
      </Panel>
        <Panel name="centerCenterPanel" h="300" constraint="Center" opaque="false"
border="1">
...
      </Panel>
...
    </Panel>
    <Panel name="southPanel" w="1024" h="40" constraint="South"
opaque="false" border="0">
...
    </Panel>
    <Panel name="westPanel" w="320" h="636" constraint="West" border="1"
layout="Grid">
...
    </Panel>
  </Panel>

(What I am doing with all this is essentially duplicating the layout of the
Orders-Order Entry screen.)

This displays "sorta" ok (so long as I don't change anything) in the GUI
editor, but when I run it, the  "centerPanel" at the top has nothing in it.

I tried this with only dimensions in the "westPanel" and no dimensions
anywhere else, as well as explicit and carefully calculated dimensions for
all.  Nothing has worked.

I now have four days screwing with this (just trying to layout the
containers) and I am ready to give it up and hand code it in Java (which
will take a couple hours at most), but I'd really like to do it in XUI for
compatibility reasons.

I have tried both using the GUI editor (Netbeans and Eclipse flavors) and
hand coding the XML.  No joy with either method.

I have tried 2.06. 2.07 and the 3.0 versions.

Anyone have a hint or two?  I would especially like to find some
documentation of the XML property definitions.

Skip

Reply | Threaded
Open this post in threaded view
|

Re: XUI Problems

Scott Gray
Your best bet would be to try the lists/forums at XUI, I doubt you'll find
much specialist knowledge on the subject here.

Regards
Scott

On 20/09/2007, skip@theDevers <[hidden email]> wrote:

>
> I am having problems with XUI for complex nested layouts.  If the layout
> is
> simple (mostly flat) everything works fine.  But, with multiply nested
> border layout containers, it screws up (for me).
>
> I prototyped the thing in Netbeans in an hour, then copied the dimensions
> into an XUI project, so I am sure they are all right.
>
> Here is a snippet of the XUI code:
>
> <XPage next="checkout" layout="Border">
>   <Layout hgap="0" vgap="0"/>
>   <Components>
>   <Panel name="centerPanel" constraint="Center" border="0"
> layout="Border">
>         <Panel name="centerTopPanel" h="200" constraint="North"
> opaque="true"
> border="1" layout="Grid">
>           <Layout hgap="0" vgap="0" rows="1" columns="2" />
>           <Panel name="centerTopLeftPanel" style="prompt" w="352" h="200"
> opaque="true" border="1">
> ...
>           </Panel>
>           <Panel name="centerTopRightPanel" style="prompt" w="352" h="200"
> opaque="true" border="1" layout="Border">
> ...
>           </Panel>
>       </Panel>
>         <Panel name="centerCenterPanel" h="300" constraint="Center"
> opaque="false"
> border="1">
> ...
>       </Panel>
> ...
>     </Panel>
>     <Panel name="southPanel" w="1024" h="40" constraint="South"
> opaque="false" border="0">
> ...
>     </Panel>
>     <Panel name="westPanel" w="320" h="636" constraint="West" border="1"
> layout="Grid">
> ...
>     </Panel>
>   </Panel>
>
> (What I am doing with all this is essentially duplicating the layout of
> the
> Orders-Order Entry screen.)
>
> This displays "sorta" ok (so long as I don't change anything) in the GUI
> editor, but when I run it, the  "centerPanel" at the top has nothing in
> it.
>
> I tried this with only dimensions in the "westPanel" and no dimensions
> anywhere else, as well as explicit and carefully calculated dimensions for
> all.  Nothing has worked.
>
> I now have four days screwing with this (just trying to layout the
> containers) and I am ready to give it up and hand code it in Java (which
> will take a couple hours at most), but I'd really like to do it in XUI for
> compatibility reasons.
>
> I have tried both using the GUI editor (Netbeans and Eclipse flavors) and
> hand coding the XML.  No joy with either method.
>
> I have tried 2.06. 2.07 and the 3.0 versions.
>
> Anyone have a hint or two?  I would especially like to find some
> documentation of the XML property definitions.
>
> Skip
>
>
Reply | Threaded
Open this post in threaded view
|

FindBy question

SkipDever
In reply to this post by BJ Freeman
Can anyone tell me if any of the findBy methods using primary keys will
return matching records when only the first N bytes match?

For example, we have lots of GZ-xxxx in the demo Product table.  Are there
any findBy methods that will return all if I do something like

List m = findByxxx("Product", UtilMisc.toMap("productId", "GZ");

I expect findByLike will do it, but I didnt want to do a "like" search where
I might bet back "AmGZ123" and similiar.  I want to get back only records
starting with GZ.

I can dig through the source, but I was hoping some of the more experienced
folks could save me the trouble as I can't find documentation on it.

Skip

Reply | Threaded
Open this post in threaded view
|

Re: FindBy question

Scott Gray
Use the % wildcard

List m = findByLike("Product", UtilMisc.toMap("productId", "GZ%");

or you can use findByAnd with a list of expressions, there are plenty of
examples in the code to work from.

Regards
Scott

On 21/09/2007, skip@theDevers <[hidden email]> wrote:

>
> Can anyone tell me if any of the findBy methods using primary keys will
> return matching records when only the first N bytes match?
>
> For example, we have lots of GZ-xxxx in the demo Product table.  Are there
> any findBy methods that will return all if I do something like
>
> List m = findByxxx("Product", UtilMisc.toMap("productId", "GZ");
>
> I expect findByLike will do it, but I didnt want to do a "like" search
> where
> I might bet back "AmGZ123" and similiar.  I want to get back only records
> starting with GZ.
>
> I can dig through the source, but I was hoping some of the more
> experienced
> folks could save me the trouble as I can't find documentation on it.
>
> Skip
>
>
Reply | Threaded
Open this post in threaded view
|

RE: POS Setup- with tiers

SkipDever
In reply to this post by BJ Freeman
So, BJ, I have read this again and I wonder if you could clarify.  You are
NOT using the ofbiz synchronization.  Instead, you are using a custom XML
transmit from the remote store to the central database with a special url
and then getting xml back from the POST.

Is this correct?  I ask because I was considering something similiar only I
was going to write a little module that lived in the server and opened
another ssl port exclusively to process these XML queries from remote
stores.

Skip

-----Original Message-----
From: BJ Freeman [mailto:[hidden email]]
Sent: Tuesday, September 18, 2007 4:53 PM
To: [hidden email]
Subject: Re: POS Setup- with tiers


if you following what david has proposed, forget what i said.

Vince Clark sent the following on 9/18/2007 4:50 PM:

> Am I making this too complicated? I just need to understand how the OOTB
> entity sync works. Nothing custom. The documentation states pretty
> clearly that it does work, although my summary of the steps left out
> much detail. That is what I am trying to fill in.
>
> More simply put:
> How do I make a POS terminal communicate with a store server
> How do I make a store server communicate with a central server
> And back down the stack from central server to POS terminal
>
> Since my original post I have been reviewing the example
> PosSyncSettings.xml file. I don't see anything in this file that
> specifies a host name. So I assume the only place to tell an instance
> what server to talk to is in the serviceengine.xml file.
>
> I will also review the entity related training videos. Unfortunately I
> don't have much time for learning curve on this effort.
>
> BJ Freeman wrote:
>> There is a lot more to this than you have described.
>> there is no defined way to do what you have describe, to my knowledge.
>> then again, someone may have slipped it in with out my knowing
>>
>> when I proposed this sometime ago, I left the actual way to communicate
>> open.
>>
>> All the services that were used to communicate called one service that
>> was the actual service for sending the data to the next level. up down
>> or both. so I plugged in the communications to update services that were
>> already in place, and added updates for the stuff updates services I
added.

>>
>> I opted, since I already use ssl xml communications from other stores,
>> to keep that form of communications between levels. I use different
>> URL's for the different functions as a way to put them thru the
>> controller and into the events.
>>
>> Since then I have defined two communications 1)non urgent updates 2)
>> real time updates. Real time updates for things like pos transactions so
>> the product is put in reserve till the pos sale is complete then an
>> order is completed. this reduces problems with out of stock.
>> Using the same code for holding a item but a type is added to "holding
>> for POS". also the inventory updates are realtime both directions. so
>> far have not run into overlap, but I believe with a big enough system,
>> that will happen.
>> Non urgent are for stock reorder and transfers.
>>
>> for the purist I assume they will opted for SOAP or XMLRPC.
>>
>> Since stores can be defined at each location and the prefix to the order
>> can be unique the only consideration is the key size at the top level so
>>  it can keep all the orders for all the stores.
>> I can see the key size needing to be increased considerable in a large
>> system, for order entity.
>>
>> so each POS is a mini store
>> so you have Store(ID)POS(id) as a prefix to the top level.
>> and POS(id) to identify which POS terminal it came from at the store
>> level. so you can see that Key for the orders can be large for a
>> national chain.
>>
>> at the top level I use facilities to define the stores and this is where
>> the communication is setup to the lower level.
>>
>> I am still working on the code that initializes a new store and new POS
>> in the store from the upper levels.
>>
>>
>>
>>
>>
>>
>> Vince Clark sent the following on 9/18/2007 2:49 PM:
>>
>>> I am having trouble figuring out the "step by step" process to deploy
>>> POS with synchronization.
>>>
>>> First area of clarification - How do I get the various pieces deployed
>>> and talking to each other? I have reviewed all the documentation I can
>>> find, and also the related config files. Here is what I understand so
far:

>>> 1) Setup all the necessary entities (stores, facilities, products,
>>> pricing, etc.)
>>> 2) Create POS sync settings to define what entities will be synced
>>> (example PosSyncSetting.xml)
>>> 3) Define terminals per example DemoRetail.xml
>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>> 5) Schedule the sync service
>>>
>>> So where do I do each of these? Master server, per store server, pos,
>>> all of the above? For example, if I have a configuration of one store,
>>> one pos terminal in the store, and one central server I want the flow to
be:

>>> Push product, pricing, etc from central server down to POS terminal:
>>> MCS -> PSS -> POS
>>>
>>> Pull transactions from POS terminal to MCS:
>>> POS -> PSS -> MCS
>>>
>>> So let's start with the central server as the majority of setup will
>>> occur here. The main question I have about the central server is, how
>>> does it know where to "Push"? There is only one setting in
>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>> file? Is everything really "Pull?" So we just point each deployment to
>>> the server where it should communicate? For example the POS terminal
>>> would always be configured to talk to the PSS, PSS to MCS?
>>>
>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>
>>> And for those of you also trying to come up to speed on POS, here is the
>>> glossary:
>>> MCS = Main Central Server
>>> PSS = Per Store Server
>>> POS = Point of Sale
>>>
>

Reply | Threaded
Open this post in threaded view
|

Re: POS Setup- with tiers

BJ Freeman
The bigger scope is that I can Identify at the top Tier computer, the
transaction from the POS device in any store.

Since this is done under https (ssl) the data is encrypted.

The receive side is a event class that captures the xml transmitted,
Identifies it saves it to a file with the Identity name.
The reason is that it is the fastest way to capture and store a high
volume of these. all the xml files that have the same structure go to
the same URL.
A service then reads the XML files and processes them.
then sends a Ack back to the sending tier.
the orginal tier that send it then marks that message sent and recieved.


I have added services that created the xml to be sent and sends them to
a url. Currently have the URL in a property file that identifies the
tiers it is to send its messages to. This is read every time a message
is sent so tiers can be added on the fly. eventually make make it into
the entities.
the messages are kept in an entity till  an Ack is received then if a
flag is set it is deleted.
The ones not deleted are audit trails to verify that all critical
messages were in fact sent, Should an error arise in one of the tiers.

I don't see a need to open an other port since it is the controller that
is used to direct the messages.



Skip sent the following on 9/24/2007 5:10 PM:

> So, BJ, I have read this again and I wonder if you could clarify.  You are
> NOT using the ofbiz synchronization.  Instead, you are using a custom XML
> transmit from the remote store to the central database with a special url
> and then getting xml back from the POST.
>
> Is this correct?  I ask because I was considering something similiar only I
> was going to write a little module that lived in the server and opened
> another ssl port exclusively to process these XML queries from remote
> stores.
>
> Skip
>
> -----Original Message-----
> From: BJ Freeman [mailto:[hidden email]]
> Sent: Tuesday, September 18, 2007 4:53 PM
> To: [hidden email]
> Subject: Re: POS Setup- with tiers
>
>
> if you following what david has proposed, forget what i said.
>
> Vince Clark sent the following on 9/18/2007 4:50 PM:
>> Am I making this too complicated? I just need to understand how the OOTB
>> entity sync works. Nothing custom. The documentation states pretty
>> clearly that it does work, although my summary of the steps left out
>> much detail. That is what I am trying to fill in.
>>
>> More simply put:
>> How do I make a POS terminal communicate with a store server
>> How do I make a store server communicate with a central server
>> And back down the stack from central server to POS terminal
>>
>> Since my original post I have been reviewing the example
>> PosSyncSettings.xml file. I don't see anything in this file that
>> specifies a host name. So I assume the only place to tell an instance
>> what server to talk to is in the serviceengine.xml file.
>>
>> I will also review the entity related training videos. Unfortunately I
>> don't have much time for learning curve on this effort.
>>
>> BJ Freeman wrote:
>>> There is a lot more to this than you have described.
>>> there is no defined way to do what you have describe, to my knowledge.
>>> then again, someone may have slipped it in with out my knowing
>>>
>>> when I proposed this sometime ago, I left the actual way to communicate
>>> open.
>>>
>>> All the services that were used to communicate called one service that
>>> was the actual service for sending the data to the next level. up down
>>> or both. so I plugged in the communications to update services that were
>>> already in place, and added updates for the stuff updates services I
> added.
>>> I opted, since I already use ssl xml communications from other stores,
>>> to keep that form of communications between levels. I use different
>>> URL's for the different functions as a way to put them thru the
>>> controller and into the events.
>>>
>>> Since then I have defined two communications 1)non urgent updates 2)
>>> real time updates. Real time updates for things like pos transactions so
>>> the product is put in reserve till the pos sale is complete then an
>>> order is completed. this reduces problems with out of stock.
>>> Using the same code for holding a item but a type is added to "holding
>>> for POS". also the inventory updates are realtime both directions. so
>>> far have not run into overlap, but I believe with a big enough system,
>>> that will happen.
>>> Non urgent are for stock reorder and transfers.
>>>
>>> for the purist I assume they will opted for SOAP or XMLRPC.
>>>
>>> Since stores can be defined at each location and the prefix to the order
>>> can be unique the only consideration is the key size at the top level so
>>>  it can keep all the orders for all the stores.
>>> I can see the key size needing to be increased considerable in a large
>>> system, for order entity.
>>>
>>> so each POS is a mini store
>>> so you have Store(ID)POS(id) as a prefix to the top level.
>>> and POS(id) to identify which POS terminal it came from at the store
>>> level. so you can see that Key for the orders can be large for a
>>> national chain.
>>>
>>> at the top level I use facilities to define the stores and this is where
>>> the communication is setup to the lower level.
>>>
>>> I am still working on the code that initializes a new store and new POS
>>> in the store from the upper levels.
>>>
>>>
>>>
>>>
>>>
>>>
>>> Vince Clark sent the following on 9/18/2007 2:49 PM:
>>>
>>>> I am having trouble figuring out the "step by step" process to deploy
>>>> POS with synchronization.
>>>>
>>>> First area of clarification - How do I get the various pieces deployed
>>>> and talking to each other? I have reviewed all the documentation I can
>>>> find, and also the related config files. Here is what I understand so
> far:
>>>> 1) Setup all the necessary entities (stores, facilities, products,
>>>> pricing, etc.)
>>>> 2) Create POS sync settings to define what entities will be synced
>>>> (example PosSyncSetting.xml)
>>>> 3) Define terminals per example DemoRetail.xml
>>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>>> 5) Schedule the sync service
>>>>
>>>> So where do I do each of these? Master server, per store server, pos,
>>>> all of the above? For example, if I have a configuration of one store,
>>>> one pos terminal in the store, and one central server I want the flow to
> be:
>>>> Push product, pricing, etc from central server down to POS terminal:
>>>> MCS -> PSS -> POS
>>>>
>>>> Pull transactions from POS terminal to MCS:
>>>> POS -> PSS -> MCS
>>>>
>>>> So let's start with the central server as the majority of setup will
>>>> occur here. The main question I have about the central server is, how
>>>> does it know where to "Push"? There is only one setting in
>>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>>> file? Is everything really "Pull?" So we just point each deployment to
>>>> the server where it should communicate? For example the POS terminal
>>>> would always be configured to talk to the PSS, PSS to MCS?
>>>>
>>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>>
>>>> And for those of you also trying to come up to speed on POS, here is the
>>>> glossary:
>>>> MCS = Main Central Server
>>>> PSS = Per Store Server
>>>> POS = Point of Sale
>>>>
>
>
>
>
Reply | Threaded
Open this post in threaded view
|

Re: POS Setup- with tiers

BJ Freeman
forgot yes using https post
the first ack is in the header on the return of the post to the
originating server.
the second ack is a separate message.


BJ Freeman sent the following on 9/24/2007 7:41 PM:

> The bigger scope is that I can Identify at the top Tier computer, the
> transaction from the POS device in any store.
>
> Since this is done under https (ssl) the data is encrypted.
>
> The receive side is a event class that captures the xml transmitted,
> Identifies it saves it to a file with the Identity name.
> The reason is that it is the fastest way to capture and store a high
> volume of these. all the xml files that have the same structure go to
> the same URL.
> A service then reads the XML files and processes them.
> then sends a Ack back to the sending tier.
> the orginal tier that send it then marks that message sent and recieved.
>
>
> I have added services that created the xml to be sent and sends them to
> a url. Currently have the URL in a property file that identifies the
> tiers it is to send its messages to. This is read every time a message
> is sent so tiers can be added on the fly. eventually make make it into
> the entities.
> the messages are kept in an entity till  an Ack is received then if a
> flag is set it is deleted.
> The ones not deleted are audit trails to verify that all critical
> messages were in fact sent, Should an error arise in one of the tiers.
>
> I don't see a need to open an other port since it is the controller that
> is used to direct the messages.
>
>
>
> Skip sent the following on 9/24/2007 5:10 PM:
>> So, BJ, I have read this again and I wonder if you could clarify.  You are
>> NOT using the ofbiz synchronization.  Instead, you are using a custom XML
>> transmit from the remote store to the central database with a special url
>> and then getting xml back from the POST.
>>
>> Is this correct?  I ask because I was considering something similiar only I
>> was going to write a little module that lived in the server and opened
>> another ssl port exclusively to process these XML queries from remote
>> stores.
>>
>> Skip
>>
>> -----Original Message-----
>> From: BJ Freeman [mailto:[hidden email]]
>> Sent: Tuesday, September 18, 2007 4:53 PM
>> To: [hidden email]
>> Subject: Re: POS Setup- with tiers
>>
>>
>> if you following what david has proposed, forget what i said.
>>
>> Vince Clark sent the following on 9/18/2007 4:50 PM:
>>> Am I making this too complicated? I just need to understand how the OOTB
>>> entity sync works. Nothing custom. The documentation states pretty
>>> clearly that it does work, although my summary of the steps left out
>>> much detail. That is what I am trying to fill in.
>>>
>>> More simply put:
>>> How do I make a POS terminal communicate with a store server
>>> How do I make a store server communicate with a central server
>>> And back down the stack from central server to POS terminal
>>>
>>> Since my original post I have been reviewing the example
>>> PosSyncSettings.xml file. I don't see anything in this file that
>>> specifies a host name. So I assume the only place to tell an instance
>>> what server to talk to is in the serviceengine.xml file.
>>>
>>> I will also review the entity related training videos. Unfortunately I
>>> don't have much time for learning curve on this effort.
>>>
>>> BJ Freeman wrote:
>>>> There is a lot more to this than you have described.
>>>> there is no defined way to do what you have describe, to my knowledge.
>>>> then again, someone may have slipped it in with out my knowing
>>>>
>>>> when I proposed this sometime ago, I left the actual way to communicate
>>>> open.
>>>>
>>>> All the services that were used to communicate called one service that
>>>> was the actual service for sending the data to the next level. up down
>>>> or both. so I plugged in the communications to update services that were
>>>> already in place, and added updates for the stuff updates services I
>> added.
>>>> I opted, since I already use ssl xml communications from other stores,
>>>> to keep that form of communications between levels. I use different
>>>> URL's for the different functions as a way to put them thru the
>>>> controller and into the events.
>>>>
>>>> Since then I have defined two communications 1)non urgent updates 2)
>>>> real time updates. Real time updates for things like pos transactions so
>>>> the product is put in reserve till the pos sale is complete then an
>>>> order is completed. this reduces problems with out of stock.
>>>> Using the same code for holding a item but a type is added to "holding
>>>> for POS". also the inventory updates are realtime both directions. so
>>>> far have not run into overlap, but I believe with a big enough system,
>>>> that will happen.
>>>> Non urgent are for stock reorder and transfers.
>>>>
>>>> for the purist I assume they will opted for SOAP or XMLRPC.
>>>>
>>>> Since stores can be defined at each location and the prefix to the order
>>>> can be unique the only consideration is the key size at the top level so
>>>>  it can keep all the orders for all the stores.
>>>> I can see the key size needing to be increased considerable in a large
>>>> system, for order entity.
>>>>
>>>> so each POS is a mini store
>>>> so you have Store(ID)POS(id) as a prefix to the top level.
>>>> and POS(id) to identify which POS terminal it came from at the store
>>>> level. so you can see that Key for the orders can be large for a
>>>> national chain.
>>>>
>>>> at the top level I use facilities to define the stores and this is where
>>>> the communication is setup to the lower level.
>>>>
>>>> I am still working on the code that initializes a new store and new POS
>>>> in the store from the upper levels.
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> Vince Clark sent the following on 9/18/2007 2:49 PM:
>>>>
>>>>> I am having trouble figuring out the "step by step" process to deploy
>>>>> POS with synchronization.
>>>>>
>>>>> First area of clarification - How do I get the various pieces deployed
>>>>> and talking to each other? I have reviewed all the documentation I can
>>>>> find, and also the related config files. Here is what I understand so
>> far:
>>>>> 1) Setup all the necessary entities (stores, facilities, products,
>>>>> pricing, etc.)
>>>>> 2) Create POS sync settings to define what entities will be synced
>>>>> (example PosSyncSetting.xml)
>>>>> 3) Define terminals per example DemoRetail.xml
>>>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>>>> 5) Schedule the sync service
>>>>>
>>>>> So where do I do each of these? Master server, per store server, pos,
>>>>> all of the above? For example, if I have a configuration of one store,
>>>>> one pos terminal in the store, and one central server I want the flow to
>> be:
>>>>> Push product, pricing, etc from central server down to POS terminal:
>>>>> MCS -> PSS -> POS
>>>>>
>>>>> Pull transactions from POS terminal to MCS:
>>>>> POS -> PSS -> MCS
>>>>>
>>>>> So let's start with the central server as the majority of setup will
>>>>> occur here. The main question I have about the central server is, how
>>>>> does it know where to "Push"? There is only one setting in
>>>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>>>> per store servers? Or do I misunderstand the use of "PUSH" in the config
>>>>> file? Is everything really "Pull?" So we just point each deployment to
>>>>> the server where it should communicate? For example the POS terminal
>>>>> would always be configured to talk to the PSS, PSS to MCS?
>>>>>
>>>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>>>
>>>>> And for those of you also trying to come up to speed on POS, here is the
>>>>> glossary:
>>>>> MCS = Main Central Server
>>>>> PSS = Per Store Server
>>>>> POS = Point of Sale
>>>>>
>>
>>
>>
>
>
>
Reply | Threaded
Open this post in threaded view
|

RE: POS Setup- with tiers

SkipDever
In reply to this post by BJ Freeman
Thank you sir for the clarification.  The reason for using the direct port
is to avoid the http overhead (although I admit it is small).

-----Original Message-----
From: BJ Freeman [mailto:[hidden email]]
Sent: Monday, September 24, 2007 7:41 PM
To: [hidden email]
Subject: Re: POS Setup- with tiers


The bigger scope is that I can Identify at the top Tier computer, the
transaction from the POS device in any store.

Since this is done under https (ssl) the data is encrypted.

The receive side is a event class that captures the xml transmitted,
Identifies it saves it to a file with the Identity name.
The reason is that it is the fastest way to capture and store a high
volume of these. all the xml files that have the same structure go to
the same URL.
A service then reads the XML files and processes them.
then sends a Ack back to the sending tier.
the orginal tier that send it then marks that message sent and recieved.


I have added services that created the xml to be sent and sends them to
a url. Currently have the URL in a property file that identifies the
tiers it is to send its messages to. This is read every time a message
is sent so tiers can be added on the fly. eventually make make it into
the entities.
the messages are kept in an entity till  an Ack is received then if a
flag is set it is deleted.
The ones not deleted are audit trails to verify that all critical
messages were in fact sent, Should an error arise in one of the tiers.

I don't see a need to open an other port since it is the controller that
is used to direct the messages.



Skip sent the following on 9/24/2007 5:10 PM:
> So, BJ, I have read this again and I wonder if you could clarify.  You are
> NOT using the ofbiz synchronization.  Instead, you are using a custom XML
> transmit from the remote store to the central database with a special url
> and then getting xml back from the POST.
>
> Is this correct?  I ask because I was considering something similiar only
I

> was going to write a little module that lived in the server and opened
> another ssl port exclusively to process these XML queries from remote
> stores.
>
> Skip
>
> -----Original Message-----
> From: BJ Freeman [mailto:[hidden email]]
> Sent: Tuesday, September 18, 2007 4:53 PM
> To: [hidden email]
> Subject: Re: POS Setup- with tiers
>
>
> if you following what david has proposed, forget what i said.
>
> Vince Clark sent the following on 9/18/2007 4:50 PM:
>> Am I making this too complicated? I just need to understand how the OOTB
>> entity sync works. Nothing custom. The documentation states pretty
>> clearly that it does work, although my summary of the steps left out
>> much detail. That is what I am trying to fill in.
>>
>> More simply put:
>> How do I make a POS terminal communicate with a store server
>> How do I make a store server communicate with a central server
>> And back down the stack from central server to POS terminal
>>
>> Since my original post I have been reviewing the example
>> PosSyncSettings.xml file. I don't see anything in this file that
>> specifies a host name. So I assume the only place to tell an instance
>> what server to talk to is in the serviceengine.xml file.
>>
>> I will also review the entity related training videos. Unfortunately I
>> don't have much time for learning curve on this effort.
>>
>> BJ Freeman wrote:
>>> There is a lot more to this than you have described.
>>> there is no defined way to do what you have describe, to my knowledge.
>>> then again, someone may have slipped it in with out my knowing
>>>
>>> when I proposed this sometime ago, I left the actual way to communicate
>>> open.
>>>
>>> All the services that were used to communicate called one service that
>>> was the actual service for sending the data to the next level. up down
>>> or both. so I plugged in the communications to update services that were
>>> already in place, and added updates for the stuff updates services I
> added.
>>> I opted, since I already use ssl xml communications from other stores,
>>> to keep that form of communications between levels. I use different
>>> URL's for the different functions as a way to put them thru the
>>> controller and into the events.
>>>
>>> Since then I have defined two communications 1)non urgent updates 2)
>>> real time updates. Real time updates for things like pos transactions so
>>> the product is put in reserve till the pos sale is complete then an
>>> order is completed. this reduces problems with out of stock.
>>> Using the same code for holding a item but a type is added to "holding
>>> for POS". also the inventory updates are realtime both directions. so
>>> far have not run into overlap, but I believe with a big enough system,
>>> that will happen.
>>> Non urgent are for stock reorder and transfers.
>>>
>>> for the purist I assume they will opted for SOAP or XMLRPC.
>>>
>>> Since stores can be defined at each location and the prefix to the order
>>> can be unique the only consideration is the key size at the top level so
>>>  it can keep all the orders for all the stores.
>>> I can see the key size needing to be increased considerable in a large
>>> system, for order entity.
>>>
>>> so each POS is a mini store
>>> so you have Store(ID)POS(id) as a prefix to the top level.
>>> and POS(id) to identify which POS terminal it came from at the store
>>> level. so you can see that Key for the orders can be large for a
>>> national chain.
>>>
>>> at the top level I use facilities to define the stores and this is where
>>> the communication is setup to the lower level.
>>>
>>> I am still working on the code that initializes a new store and new POS
>>> in the store from the upper levels.
>>>
>>>
>>>
>>>
>>>
>>>
>>> Vince Clark sent the following on 9/18/2007 2:49 PM:
>>>
>>>> I am having trouble figuring out the "step by step" process to deploy
>>>> POS with synchronization.
>>>>
>>>> First area of clarification - How do I get the various pieces deployed
>>>> and talking to each other? I have reviewed all the documentation I can
>>>> find, and also the related config files. Here is what I understand so
> far:
>>>> 1) Setup all the necessary entities (stores, facilities, products,
>>>> pricing, etc.)
>>>> 2) Create POS sync settings to define what entities will be synced
>>>> (example PosSyncSetting.xml)
>>>> 3) Define terminals per example DemoRetail.xml
>>>> 4) Set entity-sync-rmi in serviceengine.xml file
>>>> 5) Schedule the sync service
>>>>
>>>> So where do I do each of these? Master server, per store server, pos,
>>>> all of the above? For example, if I have a configuration of one store,
>>>> one pos terminal in the store, and one central server I want the flow
to

> be:
>>>> Push product, pricing, etc from central server down to POS terminal:
>>>> MCS -> PSS -> POS
>>>>
>>>> Pull transactions from POS terminal to MCS:
>>>> POS -> PSS -> MCS
>>>>
>>>> So let's start with the central server as the majority of setup will
>>>> occur here. The main question I have about the central server is, how
>>>> does it know where to "Push"? There is only one setting in
>>>> serviceengine.xml for entity-sync-rmi. So how do I configure multiple
>>>> per store servers? Or do I misunderstand the use of "PUSH" in the
config
>>>> file? Is everything really "Pull?" So we just point each deployment to
>>>> the server where it should communicate? For example the POS terminal
>>>> would always be configured to talk to the PSS, PSS to MCS?
>>>>
>>>> Is it necessary to use a PSS, or can we go straight from POS->MCS?
>>>>
>>>> And for those of you also trying to come up to speed on POS, here is
the
>>>> glossary:
>>>> MCS = Main Central Server
>>>> PSS = Per Store Server
>>>> POS = Point of Sale
>>>>
>
>
>
>

Reply | Threaded
Open this post in threaded view
|

Architecture question

SkipDever
In reply to this post by BJ Freeman
I am in the final throws of writting a standalone Sales Order Entry
application written in pure Java (I gave up on XUI after pulling my hair out
for a week with the complex panel structure).   The proposed architecture
looks like this (forgive the text based graphics):


    +---------------+       +-----------------+
    |               |       |                 |
    |   Web Apps    |       |   Sales Order   |
    |               |       |   Java GUI      |
    +-------+-------+       |                 |
            |               +-----------------+
            |               |                 |
            |               | Ofbiz Framework |
         Internet           |                 |
            |               +-----------------+
            |                        |
     +---------------+               |
     |               |               |
     |  Main Ofbiz   |               |
     |    Server     |               |
     |               |               |
     +------+--------+               |
            |                        |
            +---Internal Network-----+
            |
     +------+---------+
     |                |
     | Postgres Server|
     |                |
     +----------------+

This is the same as the POS app (I even reused some of the same code) except
that I did not use XUI.  Each of the Sales Order Entry apps runs on desktops
configured to talk to the same Postgres server using Ofbiz services, the
same as the Ofbiz server (and POS client I think), and connected via the
internal private network to the database server.  These are built all at the
same time, so any ECA rules, database structure changes, etc. are applied to
all applications.  A copy is then installed on each desktop running the SOE
app.

I intend to use the same architecture for a complicated EOQ purchasing
system that I think will be too hard to do with a web app.

As mentioned, this works.  I have already partially implemented and tested
it in a limited way, i.e. I can access the main server with a browser and
see the sales I have made with the SOE app.

I am worried that I might be missing something, especially when I have 11 of
the SOE apps running at the same time.

Can anyone offer any input?  Is there something internal deep inside Ofbiz
where all transactions need to go through a single entity engine instead of
a dozen or so talking to the same database server?  Are there
synchronization issues I might be overlooking?

I am aware that I will need to re-install the desktops if the server
structure changes in any meaningful way.

Skip

12