Design recommendations pls...

Hi,

I am into a B2C project. The proposed application should serve the agents working for the firm too. A NFR states that the turn-around time for the agents should be 5 secs max. But for Customers it could be 10 sec max.

Proceeding with the design there was a discussion with my colleague. He propose a swing based client for the agents with RMI access to the Business tier directly. Security is implemented via VPN. The customers on the other hand would have HTML client via https.

I see having two different type of client tier as an overhead. But what other means could give distinguished performance? I really appreciate any direction I get.

[671 byte] By [orjaykaya] at [2007-10-2 5:05:30]
# 1

Hi , Considering the long term view, its better to have a single client. I would suggest you to go for a browser based, as its a light weight and fexible. Also in future if you have to perform any enhancements on UI or even functionality, it would be cumbersome to perform at two places.

Sudhir

sudhir0104a at 2007-7-16 1:08:52 > top of Java-index,Other Topics,Patterns & OO Design...
# 2

HI,

I think too, that you need a bowser. But, I think that you could use two different server, one for Agents, and other for Customer.

You could use database tier, for Agent Server, could be more faster.

This solution make independet the Agent and Customer and you could make best service to Agent with best machines that Customer.

You could provide more services, to test to Agent and no for Customer etc.

barbywarea at 2007-7-16 1:08:52 > top of Java-index,Other Topics,Patterns & OO Design...
# 3
Thanks for the responses.Do we still need https if we use VPN? Trying to see if VPN with http would make any difference in performance against https over internet.
orjaykaya at 2007-7-16 1:08:52 > top of Java-index,Other Topics,Patterns & OO Design...
# 4
More information...The proposed design is having 2 servers for the web tier, one each for the business and data tier.
orjaykaya at 2007-7-16 1:08:52 > top of Java-index,Other Topics,Patterns & OO Design...
# 5

I agree with the others, you should be taking a thin client approach, it should be able to meet both limits with ease. However, the responsiveness will be governed more by the clients and agent infrasture than your own. So in some ways it is actually a pretty pointless NFR because it is governed by things you have no (or little) control over.

You need to consider that Non-Functional-Requirements are exactly that 'not functional'. They should be used to drive your infrastucture design and configuration not your functional design.

If your agents are remote and they can use a VPN, you could reduce their latency by skipping the encryption i.e. HTTP rather than HTTPS, and use configuration management to achieve the seperation needed for security.

You can probably also use your application servers admin interface to create a priority service through a different virtual server or port.

MartinS.a at 2007-7-16 1:08:52 > top of Java-index,Other Topics,Patterns & OO Design...