Hello alls, our company is planning to design a solution for one of our client who have 30 outlets (sell points) in the field of pharmasutical accross the country.
i am planning to this job in J2EE and by using EJB's but the main problem i am facing is the best network approach, T1 lines are not here, we have other standard that is ISDN with 64K and 128K channels, now i need some suggestion and feedbacks from you guys who have implementaion and practical experiane in that type of solutions where different branches need to connect with one centerlized place, and transaction ratio of some key points are normally 30 transaction / minutes, i-e customers rush on the shops normally the shops in the Hospitals.
now i am a bit confused because i have never any practical experiance in this sort of solution, the point in my mind is that for example if the centerlized server location is in different city then what about the transaction speed,normally the shops where inventory/accounts software were running is done simple transaction very fast because of no remote call and no network isssue, then where is that solution stand which is in my mind, i am not clear in that and one thing more is that solutions capable of running on simple dialup lines?
i will be very thank full to you all for considring and giving your time on that.
with best regards...
There are two main areas you need to think about / investigate: latency and bandwidth
Latency is your total round trip from your in shop system making a request through to the time it gets a response from the remote server. Bandwidth is how much data you are able to send over the link. In many cases, sending too much data will also result in an increase in latency.
Basically, what you will probably need to work towards is making the minimum number of calls to the remote server while transferring the optimim amount of data in each call. Some common strategies for such an approach are listed below:
1) Store side caching. To eliminate the amount of data you need to pull down from the central server, consider batch approaches that pull down and cache reference data at the store level at regular intervals. This is normally good to do overnight while the store may be closed or lightly used.
2) Consider the reverse as well and store transaction details at store level then communicate them back to a central server at regular intervals in some form of background process.
3) Only use real-time communications to a central server when you absolutely have to, for example when authorising a credit card or checking some form or central stock level. When doing this, make sure you send the minmum amount of information between store and central machine and visa versa.
4) Make sure you consider and allow for the system to function if the ISDN lines or central server are down. Each store should be able to work in a doscinnected mode, running agained cached reference data and so on.
Yes you are right Criss, the network fail possiblity is the very big and major issue in this application although they have POS (point of sale) machines already installed on their locations so validating a credit card is not a issue, any way i will be very great full to you if you give me some suggestion which is in my mind and i am very confuse on that and you have alreay mention in you reply,
1. What will be the stratergy if Link go down we can't stop sale at store.
so in this regard if we maintain the date or client side (@ store) and the replicat the data on specific time (6 PM) for reporting purpose then what is the benefit of using EJB's and J2EE plateform it can be done in visual basic & Sqlserver or Oracle / Developer apps.
2. What will be the stratergy if we are using EJB's and link goes down and we are doing real time transaction on the centeral server what will be the best stratergy for doing that and is the message beans will be the best to do in this case rather then session beans.
3. In inventory controll applications where you are selling items, you need some of the information of the item for example (item level in inventory and price) from the database so with each transaction i need to call the entity bean from the centerlized server to get the detail of that item or caching trick on client side but with every transaction of perticuler item inventory will be change)
4. What do you mean by Isolate the transaction i-e you said that every transaction will be seperate from other.
i will be very greatfull to you for your help.
with best regards...